我很難搞清楚如何正確使用RXTX傳輸(從今天的Git開始)。RXTX with Netty-4.0.0-Beta1-SNAPSHOT
我能夠編寫入站處理程序,它們使用從串行端口讀取的內容,對其進行解碼,並通過自定義出站處理程序將其他內容發送到串行端口。到目前爲止很好。
現在有一個用例,我需要通過主程序的MessageToByteEncoder(我之前提到的同一個自定義外部處理程序)編寫消息(最終,這實際上是一個使用下面的Netty的庫)。所以基本上,我試圖做與上述情況相同,除非我不通過解碼器併發送消息從主程序寫入而不是入站處理程序。這種情況似乎不適用於我的情況:似乎沒有任何事情發生,就好像我的消息沒有發送一樣。不幸的是,在Netty中沒有太多的日誌語句,我可能是錯誤的,但是我可能會遇到問題,因爲主線程不在事件循環中(這裏沒有什麼意外!)。
不幸的是,RXTX例子只是從入站處理程序(通過ChannelHandlerContext)寫入消息,所以我找不到我在做什麼錯誤,或者如果在Netty中最近添加了這個錯誤。
有什麼建議嗎?
其實,我調查了多發一點點。我寫了一個Arduino草圖,發送「AT \ n」字符串時發回「OK」。到目前爲止,我可以通過串口監視器來檢查。然後,我改變了Rxtx示例,以便指定正確的串行端口和正確的波特率。我可以看到Arduino接收到了一些東西,但是當調用buf.writeBytes(in,buf.writableBytes())時,我陷入了RxtxChannel.doReadBytes()方法中... – jeje
Hum。我可能發現了這個問題:如果我在調試模式下使用RxtxChannel.doConnect()中的斷點運行,我可以完成這項工作。我想現在有一個競爭條件或需要等待... – jeje
其實,我現在可以確認這一點:如果我添加像Thread.sleep(5000)之後的cpi.open(getClass()。getName() ),1000)它工作正常! – jeje