2013-11-22 82 views
0

任何一個可以指導我如何發送功能鍵(F1 - F11)通過串口:發送功能鍵()

string read_line; 
    read_line = Console.ReadLine(); 
    SerPort.WriteLine(read_line); 

回答

1

有發送的無標準方式功能鍵到串口。您需要爲鍵(字符串或字節)定義您自己的ID,並根據用戶的當前選擇進行填充併發送。在串口的另一端,無論是監聽還是閱讀,都應該知道如何處理輸入 - 這將是您自己的通信接口。

功能鍵是特殊鍵,所以你需要使用Console.ReadKey而不是的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(); 
} 

可以使用SerialPort.Write or SerialPort.WriteLine發送信息到串行端口。