mina serial 串列埠

心鑫發表於2014-04-16
前提


在訪問串列埠之前,Java應用程式需要一個native庫。MINA使用ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip,請把它放到你的JDK或JRE的lib/i386/下,

並在程式啟動的命令列中加入-Djava.library.path=來指定你的native庫的位置。 


連線到串列埠


串列埠通訊通過IoConnector來實現,這是有通訊媒介的點對點特性來決定的。我們假定你已經通過MINA的教程瞭解到了IoConnector的相關知識。連線到串列埠需要SerialConnector:


Java程式碼 複製程式碼
// create your connector   
IoConnector connector = new SerialConnector()   
connector.setHandler( ... here your buisness logic IoHandler ... );  
與SocketConnector,並沒有什麼不同。讓我們建立一個地址來連線串列埠:


Java程式碼 複製程式碼
SerialAddress portAddress=new SerialAddress( "/dev/ttyS0", 38400, ****, StopBits.BITS_1, Parity.NONE, FlowControl.NONE );  
 第一個引數代表串列埠的識別符號。對於Windows系統,串列埠一般叫做"COM1"、"COM2"以此類推,對於Linux或者一些Unix系統,通常由"/dev/ttyS0"、"/dev/ttyS1"、"/dev/ttyUSB0"來表示。


剩下的引數取決於你的硬體裝置的連線特性。


波特率
資料位數
奇偶校驗
流控制機制
當這些都具備,就可以連線到該地址:


Java程式碼 複製程式碼
ConnectFuture future = connector.connect( portAddress );   
future.await();   
IoSession sessin = future.getSession();  
 其他的事情和使用TCP協議等一樣,你可以加入你的filters和codecs。

問題一、
用 rxtx-2.1-7-bins-r2.zip 檔案來讀寫串列埠的,老是出現java.lang.NoClassDefFoundError: gnu/io/CommPortIdentifier錯誤,

在“ClassPaht”裡增加“RXTXcomm.jar”檔案,問題解決。


資源地址  http://download.csdn.net/detail/proud2005/7516503

相關文章