Example #1
0
        public void SendPacket()
        {
            int checksum = 0;

            if (PacketNum++ > 999)
            {
                PacketNum = 0;
            }

            //get all the data in string form
            String num    = PacketNum.ToString("D3");
            String A0val  = A0.ReadRaw().ToString("D4");
            String A1val  = A1.ReadRaw().ToString("D4");
            String A2val  = A2.ReadRaw().ToString("D4");
            String A3val  = A3.ReadRaw().ToString("D4");
            String A4val  = A4.ReadRaw().ToString("D4");
            String A5val  = A5.ReadRaw().ToString("D4");
            char   D0val  = D0.Read() ? '1' : '0';
            char   D1val  = D1.Read() ? '1' : '0';
            char   D2val  = D2.Read() ? '1' : '0';
            char   D3val  = D3.Read() ? '1' : '0';
            char   D4val  = D4.Read() ? '1' : '0';
            char   D5val  = D5.Read() ? '1' : '0';
            char   D6val  = D6.Read() ? '1' : '0';
            char   D7val  = D7.Read() ? '1' : '0';
            char   Btnval = Btn.Read() ? '1' : '0';

            //concat the data
            String packet = num + A0val + A1val + A2val + A3val + A4val + A5val + Btnval + D0val + D1val + D2val + D3val + D4val + D5val + D6val + D7val;

            //compute checksum
            foreach (char digit in packet)
            {
                checksum += (digit);
            }
            checksum %= 1000;

            //append checksum and protocol frame stuff
            packet = "###" + packet + checksum + "\r\n";

            //convert to byte array for sending
            byte[] bytepacket = System.Text.Encoding.UTF8.GetBytes(packet);

            //send the packet
            _serial.Write(bytepacket, 0, bytepacket.Length);
        }