在MINA2.0中,你可以使用串行传输进行连接,就像使用TCP通信那样。
获取MINA 2.0
可以下载最新版本的的MINA版本。如果想获取其他版本的MINA,如果有什么疑问,可以查看开发者手册。
必要前提
提示信息:
如果想要通过Java程序访问串行端口,需要一个本地库(.DLL 或者 .so 取决于你的操作系统). MINA使用的是RXTX.org这个 : ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip .
如果想要通过Java程序访问串行端口,需要一个本地库(.DLL 或者 .so 取决于你的操作系统). MINA使用的是RXTX.org这个 : ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip .
放置正确的 .dll 或者 .so 在JDK/JRE的
jre/lib/i386/ 路径中,或者使用-Djava.library.path= argument 专门指向本地库路径
提示信息:
所需要使用的 mina-transport-serial jar包并没有完整地 包含在发布版中。你可以从这里下载到它。
所需要使用的 mina-transport-serial jar包并没有完整地 包含在发布版中。你可以从这里下载到它。
连接到串行端口
串行通信只提供了一个IoConnector接口,因为串行通信是基于点对点的,这个问题,在之前的教程中已经提起过了。要连接到一个串行通信端口上,需要创建一个SerialConnector。
// create your connector IoConnector connector = new SerialConnector() connector.setHandler( ... here your buisness logic IoHandler ... );
这和创建一个SocketConnector没有太多不同,现在创建一个地址连接到一个串行端口。
SerialAddress portAddress=new SerialAddress( "/dev/ttyS0", 38400, 8, StopBits.BITS_1, Parity.NONE, FlowControl.NONE );
第一个参数是串行端口标识符,对于Windows系统来说,串行端口被称作“COM1”、“COM2”、...等,对于Linux和Unix系统来说,被称作"/dev/ttyS0"、"/dev/ttyS1"和"/dev/ttyUsb0"等。
剩余的参数取决于所使用的设备和所想要的通信特性:
- 波特率
- 数位
- 奇偶校验
- 流量控制机制
一旦这些完成,连接器就可以连接到该地址
ConnectFuture future = connector.connect( portAddress ); future.await(); IoSession sessin = future.getSession();
瞧!其他的一切都一样,可以按照自己的意愿添加自己的过滤器和编码解码器。要知道更多的RS232的内容,参看:http://en.wikipedia.org/wiki/RS232