我對C#編程頗爲陌生,對串行端口知之甚少。我正在關注微軟提供的this method,以不斷讀取進入多個串行端口的信息。總的來說,我的應用程序是從多個COM端口提取數據,並對結果數據執行計算任務。在Main中使用從多個串行端口讀取數據()
1)我想使用多個串行端口。不幸的是,我目前沒有足夠的USB-RS232適配器來測試多個端口。我不確定創建第二個DataReceivedHandler方法是否是正確的方法。這是我目前有:
// Receive data on COM Port A
private static void DataReceivedHandlerA(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string inDataA = sp.ReadExisting();
}
// Receive data on COM Port B
private static void DataReceivedHandlerB(object sender, SerialDataReceivedEventArgs e)
{
SerialPort spB = (SerialPort)sender;
string inDataB = spB.ReadExisting();
}
2)在Main()循環的其他地方DataReceivedHandler方法中使用接收到的數據。由於該方法是私有的,因此我無法在Main()循環中使用inDataA。每當我公開這種方法時,它似乎都失敗了。我想能夠返回字符串inDataB。這是可能的,還是有另一種更好的方式來做到這一點。
我試過了,但在DataReceivedHandlerA方法中,接收到錯誤「inDataA中的名稱'在當前上下文中不存在」inDataA旁邊。我相信它不喜歡該方法是靜態的,如果我使它非靜態,該方法會失敗。 – baconcow
在新的更新版本中使它們像上面那樣是靜態的 – SirH
這樣可以在調試期間停止所有錯誤。但是,在Main()循環中運行以下內容不會導致任何內容寫入控制檯:'code' Console.Write(inDataA); 'code' – baconcow