none
시리얼 통신으로 받은 데이터 중에 특정 배열만 출력하려고 합니다...

    질문

  • 모드버스 통신으로 받은 데이터를 배열 형식으로 콘솔상에서 받는거는 됐었는데

    그거를 텍스트박스 상에 바이트로 출력할 수 있는 방법이 있을까요?

    텍스트 박스는 여러개 있고 배열 하나당 한 바이트씩 출력하려고 합니다!

                

                serialPort1.PortName = "COM19";
                serialPort1.BaudRate = 9600; 
                serialPort1.Parity = System.IO.Ports.Parity.None;
                serialPort1.DataBits = 8;
                serialPort1.StopBits = System.IO.Ports.StopBits.One;
                serialPort1.Open();
                if (serialPort1.IsOpen)
                {
                    textBox1.Text = "접속 성공";
                    timer1.Start();
                    byte[] buff = new byte[32];
                    serialPort1.Read(buff, 0, buff.Length);
                    timer2.Start();
                    serialPort1.Write(buff, 0, 8);
                }
                else
                {
                    textBox1.Text = "접속 실패";
                }
            }
            private void Form1_Load(object sender, EventArgs e)
            {
            }
            private void button1_Click(object sender, EventArgs e) //버튼 클릭 이벤트
            {
                connection();
                /*
                serialPort1.PortName = "COM19";//시리얼 포트 번호 지정
                serialPort1.BaudRate = 9600;
                serialPort1.Parity = System.IO.Ports.Parity.None;
                serialPort1.DataBits = 8;
                serialPort1.StopBits = System.IO.Ports.StopBits.One;
                serialPort1.Open();
                if (serialPort1.IsOpen)
                {
                    textBox1.Text = "접속 성공";
                }
                else
                {
                    textBox1.Text = "접속 실패";
                }
                timer1.Start();

                byte[] buff = new byte[32];
                buff[0] = 0x01;
                buff[1] = 0x04;
                buff[2] = 0x00;
                buff[3] = 0x02;
                buff[4] = 0x00;
                buff[5] = 0x08;
                buff[6] = 0x50;
                buff[7] = 0x0c;
                serialPort1.Write(buff, 0, 8);
                serialPort1.Read(buff, 0, buff.Length);
                 * */
            }

            private void timer1_Tick(object sender, EventArgs e)
            {
                byte[] buff = new byte[32];
                buff[0] = 0x01;
                buff[1] = 0x04;
                buff[2] = 0x00;
                buff[3] = 0x02;
                buff[4] = 0x00;
                buff[5] = 0x08;
                buff[6] = 0x50;
                buff[7] = 0x0c;
                serialPort1.Write(buff, 0, 8);

                byte[] result = new byte[32];

            }
             private void Form1_FormClosed(object sender, FormClosedEventArgs e)
            {
                if (null != serialPort1)
                {
                    if (serialPort1.IsOpen)
                    {
                        serialPort1.Close();
                        serialPort1.Dispose();
                        serialPort1 = null;
                    }
                }
            }
             private void timer2_Tick(object sender, EventArgs e)
             {
                 byte[] buff = new byte[32];
                 int len = serialPort1.Read(buff, 0, buff.Length);
                 Console.Write("Receive Data Len {0} : ", len);


                 for(int i = 0; i < len; i++)
                     Console.Write("{0:X2} ", buff[i]);
                     Console.WriteLine();              
             }

    이거는 그때 사용하고 동작이 됐었던 코드중에 일부분입니다.


    2019년 1월 8일 화요일 오전 7:17