Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过串行端口serial.Write()发送功能键_C#_Keyboard_Serial Port - Fatal编程技术网

C# 通过串行端口serial.Write()发送功能键

C# 通过串行端口serial.Write()发送功能键,c#,keyboard,serial-port,C#,Keyboard,Serial Port,有谁能告诉我如何通过串口发送功能键(F1-F11): string read_line; read_line = Console.ReadLine(); SerPort.WriteLine(read_line); 没有将功能键发送到串行端口的标准方式。您需要为键(字符串或字节)定义自己的id,根据用户当前的选择填充并发送。在串行端口的另一端,无论正在侦听/读取的是什么,都应该知道如何处理输入-这将是您自己的通信接口 功能键是特殊键,因此需要使用而不是ReadLine。可

有谁能告诉我如何通过串口发送功能键(F1-F11):

    string read_line;
    read_line = Console.ReadLine();
    SerPort.WriteLine(read_line);
没有将功能键发送到串行端口的标准方式。您需要为键(字符串或字节)定义自己的id,根据用户当前的选择填充并发送。在串行端口的另一端,无论正在侦听/读取的是什么,都应该知道如何处理输入-这将是您自己的通信接口

功能键是特殊键,因此需要使用而不是ReadLine。可能的解决方案如下所示:

var key = Console.ReadKey(true);
string keyInfo = string.Empty;
byte keyInfoId = 0;
switch (key.Key)
{
    case ConsoleKey.F3: Console.WriteLine("F3 hit ..."); 
                        keyInfo = "F3"; 
                        keyInfoId = 0x3; 
                        break;
    case ConsoleKey.F5: Console.WriteLine("F5 hit ..."); 
                        keyInfo = "F5"; 
                        keyInfoId = 0x5; 
                        break;
    // ...
    default: Console.WriteLine("Not a function key"); break;
}
using (var serialPort = new SerialPort())
{
    serialPort.Open();
    serialPort.WriteLine(keyInfo);
    serialPort.Write(new byte[] { keyInfoId }, 0, 1);
    serialPort.Close();
}
您可以使用将信息发送到串行端口