我想使用串行端口在兩臺計算機之間進行通信,並且我是此區域的新手。我需要從一臺計算機(比如說A)發送請求到另一臺計算機(比如說B)並接收發送請求的響應。我正在用響應更新Java Swing用戶界面。與JSSC同步/異步串行端口通信
我正在使用jSSC庫來執行此操作。我看過SerialPortReader
examples,以下是我的理解。
我將不得不在兩臺計算機上實現SerialPortEventListener
.A將使用writeBytes
方法發送請求。 B將聽取使用SerialPortEventListener
發送的命令,並將使用writeBytes
方法發送響應。 A將使用其SerialPortEventListener
的實現來監聽數據,並且當數據收到時,將更新UI。以下是我的問題。
a)我上面的觀察是否正確?有沒有不同的方式來做到這一點(例如,有可能在協議內存在將返回響應的writeBytes
方法?)
b)我讀了幾個步驟,說明串行端口通信可以是同步或異步。但從例子來說,我不明白代碼是否實現了異步或同步通信。如何使用jSSC實現同步/異步通信?我沒有要求實施。只是一些準則和可以使用的方法。
c)消息可能會部分傳遞。例如,如果我將該命令作爲字符串「get variableThreeValue」發送,則可能只會收到「get」或諸如「get varia」之類的內容(這會導致諸如「get get」等消息。 )我該如何處理這種情況?再次,我沒有要求實施。只是一些準則和可以使用的方法。
你不想同步。串行連接通常是異步的:開始和停止位由HW處理。如果你不相信連接,你將不得不設計一個協議:消息格式(長度,序列號,字節,CRC),acknolwedge /否定確認請求重發,...爲什麼不使用以太網? – laune 2015-02-11 05:12:19
@laune我必須同時支持wi-fi和Serail端口通信。無線電發射器/接收器將被插入串行端口並且通信將以無線方式發生。感謝您的建議。但我也提出了一些問題來提高我的理解力。你能幫助我解決上述問題嗎? – 2015-02-11 05:27:46
檢查並寫出答案。 – laune 2015-02-11 06:07:27