串口向下位机如何发送组合键指令,以下代码是发送文本指令的方法,现在有个指令要向下位机发送一个 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();
}
}
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();
}
}
一个产品在测试的时候需要发送一个Ctrl + u 指令进入工程模式,客户提供的程序是可以的,不过我们现在想改成自己的程序来测试,这样可以减少一些步骤,一直找不到方法,所以来论坛请教高手