Example #1
0
        private void recvData(object sender, EventArgs e)
        {
            try
            {
                string str = "";
                str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper();
                if (str.Equals(Rs232Utils.ByteToHex(Rs232Utils.STX)))
                {
                    // Local ID MSB
                    str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper();
                    // Local ID LSB
                    str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper();
                    // Pay Load Length MSB + LSB
                    str  = Convert.ToString(serialPort1.ReadByte(), 16);
                    str += Convert.ToString(serialPort1.ReadByte(), 16);
                    str += Convert.ToString(serialPort1.ReadByte(), 16);
                    str  = Rs232Utils.ConvertHexToString(str);
                    int payloadLength = Int32.Parse(str);

                    for (int i = 0; i < payloadLength; i++)
                    {
                        str        = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper();
                        recieveSB += Rs232Utils.ConvertHexToString(str);
                    }

                    str = Convert.ToString(serialPort1.ReadByte(), 16).ToUpper();
                    if (str.Equals(Rs232Utils.ByteToHex(Rs232Utils.ETX)))
                    {
                        this.Invoke(new EventHandler(HandleReadData));
                    }
                }
            }
            catch (Exception ex)
            {
                // 누적 데이터를 없애고
                recieveSB = "";
                sendCnt   = 0;
            }
        }