示例#1
0
        private void SerialDataReceived(Object sender, SerialDataReceivedEventArgs e)
        {
            byte buf1 = serialComm.ReadByte();
            byte buf2 = serialComm.ReadByte();

            /*List<bool> status = CompareKeyStates(buf1, buf2);
             * int count = 0;
             * foreach (bool b in status)
             * {
             *      if (b)
             *              SendKey(charMap[count]);
             *      count++;
             * }
             * keyBuffers[0] = buf1;
             * keyBuffers[1] = buf2;*/
            List <KeyState> status = KeyStates(buf1, buf2);
            int             count  = 0;

            foreach (KeyState b in status)
            {
                switch (b)
                {
                case KeyState.KeyPress:
                    PressKey(charMap[count]);
                    break;

                case KeyState.KeyRelease:
                    ReleaseKey(charMap[count]);
                    break;
                }
                count++;
            }
            keyBuffers[0] = buf1;
            keyBuffers[1] = buf2;

            try
            {
                this.Invoke(new MethodInvoker(delegate()
                {
                    Char[] buf1Chars = Convert.ToString(buf1, 2).PadLeft(8, '0').ToCharArray();
                    Char[] buf2Chars = Convert.ToString(buf2, 2).PadLeft(8, '0').ToCharArray();
                    Array.Reverse(buf1Chars);
                    Array.Reverse(buf2Chars);
                    textBox1.Text  = new String(buf1Chars);
                    textBox1.Text += new String(buf2Chars);
                }));
            }
            catch (Exception) { }
        }