我正在開發一個應用程序,與8個COM端口一起工作,當從一個COM端口接收數據時,調用事件處理程序,應用程序爲通過COM端口接收的消息創建封裝器,並通過TCP將其發送到遠程主機。事實上,在包裝之後,它成爲基於以太網的網絡中某個設備的命令(開始測量命令)。審訊組織,超時
我正在使用SerialPort和SerialDataReceivedEventHandler處理COM端口。問題是我有一個超時(0-1000毫秒)通過窗體爲每個COM端口指定不同。在這個超時之後,我必須發送另一個命令從設備獲取一些數據(獲取數據命令)。
- 該命令僅通過COM端口接收數據和發送第一命令之後是每8個COM端口
- 該命令應當sended不同
- 兩個命令之間超時是針對每個COM端口不同
您是否對超時組織有任何建議?謝謝。
我有一個想法,但我不知道是否有可能: 我有8個事件處理函數爲每個COM端口。
...something
sendFirstCommand();
Thread.Sleep(comPortNTimeout);
sendSecondCommand();
我可以在他們每個人中使用相同的結構嗎?例如,如果在第二個端口的處理程序中調用數據Thread.Sleep(),將不會凍結第一個端口的處理程序?
謝謝你的工作,它是真正偉大的,有用的帖子。不幸的是,我的工作站沒有機會獲得至少一個額外的串行端口。我將來只能測試這個問題。 – vard
您可以創建一個很好的測試工具來模擬多個端口,並確保您的實現正常工作,這對您長期以來也會有用 – sll
實際上,如果我有8個用於這種應用程序的COM端口設備,我會使用這些rs232到以太網設備,所以你的SW可以直接處理以太網,而不會混淆串口。 http://www.perle.com/products/RS232-to-Ethernet.shtml?utm_source=ppc&utm_medium=cpc&utm_campaign=server – TJD