对RXTX的介绍,copy自https://blog.csdn.net/u011728105/article/details/48085615
RXTX
RXTX是一个提供串口和并口通信的开源java类库,由该项目发布的文件均遵循LGPL协议。
RXTX项目提供了Windows,Linux,Mac os X,Solaris操作系统下的兼容javax.comm串口通讯包API的实现,为其他开发人员在此类系统下开发串口应用提供了相当的方便。
RXTX的使用上与sun提供的comm.jar基本相同,编程时最明显的不同是要包含的包名由javax.comm.*改成了gnu.io.*
RxtxAPI 的核心是抽象的CommPort类(用于描述一个被底层系统支持的端口的抽象类,它包含一些高层的IO控制方法,这些方法对于所有不同的通讯端口来说是通用的)及其两个子类:SerialPort类和ParallePort类。其中,SerialPort类是用于串口通信的类,ParallePort类是用于并行口通信的类。CommPort类还提供了常规的通信模式和方法,例如:getInputStream( )方法和getOutputStream( )方法,专用于与端口上的设备进行通信。
然而,这些类的构造方法都被有意的设置为非公有的(non-public)。所以,不能直接构造对象,而是先通过静态的CommPortIdentifer.getPortIdentifiers()获得端口列表,再从这个端口列表中选择所需要的端口,并调用CommPortIdentifer对象的Open( )方法,这样,就能得到一个CommPort对象。当然,还要将这个CommPort对象的类型转换为某个非抽象的子类,表明是特定的通讯设备,该子类可以是SerialPort类和ParallePort类中的一个。下面将分别对CommPortIdentifier类,串口类SerialPort进行详细的介绍。
接口
CommDriver可负载设备(the loadable device)驱动程序接口的一部分
CommPortOwnershipListener传递各种通讯端口的所有权事件
ParallelPortEventListener传递并行端口事件
SerialPortEventListener传递串行端口事件
类
CommPort通讯端口
CommPortIdentifier通讯端口管理
ParallelPort并行通讯端口
ParallelPortEvent并行端口事件
SerialPortRS-232串行通讯端口
SerialPortEvent 串行端口事件
异常类
NoSuchPortException当驱动程序不能找到指定端口时抛出
PortInUseException当碰到指定端口正在使用中时抛出
UnsupportedCommOperationException驱动程序不允许指定操作时抛出
CommPortIdentifier类
这个类主要用于对通信端口进行管理和设置,是对端口进行访问控制的核心类,主要包括以下方法:
addPortName(String,int, CommDriver) 添加端口名到端口列表里
addPortOwnershipListener(CommPortOwnershipListener)添加端口拥有的监听器
removePortOwnershipListener(CommPortOwnershipListener)移除端口拥有的监听器
getCurrentOwner()获取当前占有端口的对象或应用程序
getName()获取端口名称
getPortIdentifier(CommPort)获取指定打开的端口的CommPortIdentifier类型对象
getPortIdentifier(String)获取以参数命名的端口的CommPortIdentifier类型对象
getPortIdentifiers()获取系统中的端口列表
getPortType()获取端口的类型
isCurrentlyOwned()判断当前端口是否被占用
open(FileDescriptor)用文件描述的类型打开端口
open(String,int) 打开端口,两个参数:程序名称,延迟时间(毫秒数)
SerialPort类
这个类用于描述一个RS-232串行通信端口