串口向下位机如何发送组合键指令,以下代码是发送文本指令的方法,现在有个指令要向下位机发送一个 Ctrl + u 的组合键指令,请高手指点下,该如何操作,谢谢!
 private void TestCom_DataSend(string cmd) //发送串口指令
        {
            if (ComDevice.IsOpen == true)
            {
                byte[] SendBytes = null;
                string SendData = cmd;//指令
                //16进制发送
                try
                {
                    //剔除所有空格
                    SendData = SendData.Replace(" ", "");
                    if (SendData.Length % 2 == 1)
                    {//奇数个字符
                        SendData = SendData.Remove(SendData.Length - 1, 1);//去除末位字符
                    }
                    List<string> SendDataList = new List<string>();
                    for (int i = 0; i < SendData.Length; i = i + 2)
                    {
                        SendDataList.Add(SendData.Substring(i, 2));
                    }
                    SendBytes = new byte[SendDataList.Count];
                    for (int j = 0; j < SendBytes.Length; j++)
                    {
                        SendBytes[j] = (byte)(Convert.ToInt32(SendDataList[j], 16));
                    }
                }
                catch
                {
                    MessageBox.Show("请输入正确的16进制数据!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                ComDevice.Write(SendBytes, 0, SendBytes.Length);//发送数据
            }
            else
            {
                MessageBox.Show("串口未打开,请打开串口后重试", "错误");
                Time_Read.Stop();
            }
        }

解决方案 »

  1.   

    可以参考下这里:http://www.cnblogs.com/binfire/archive/2011/10/08/2201973.html
      

  2.   

    什么叫做“组合键指令”?在pc机上识别到字母u被按下时,可以同时识别Ctrl按键是否按下,那是有一定的驱动支持的。你不能想当然地发明什么“组合键指令”这种奇怪的概念。你应该稍微深入一点去了解一些,然后再来设计。或许你更应该先理解你的“下位机”能够支持什么功能,再来重新考虑设计。
      

  3.   


    一个产品在测试的时候需要发送一个Ctrl + u 指令进入工程模式,客户提供的程序是可以的,不过我们现在想改成自己的程序来测试,这样可以减少一些步骤,一直找不到方法,所以来论坛请教高手