常见的Java串口包
SUN的CommAPI分别提供了对常用的RS232串行端口和IEEE1284并行端口通讯的支持。目前,常见的Java串口包有SUN在1998年发布的串口通信API:comm2.0.jar(Windows下)、comm3.0.jar(Linux/Solaris);IBM的串口通信API以及一个开源的实现。鉴于在Windows下SUN的API比较常用以及IBM的实现和SUN的在API层面都是一样的,那个开源的实现又不像两家大厂的产品那样让人放心,这里就只介绍SUN的串口通信API在Windows平台下的使用。南京Java培训
串口包的安装(Windows下)
到SUN的网站下载javacomm20-win32.zip,包含的东西如下所示:
按照其使用说明(Readme.html)的说法,要想使用串口包进行串口通信,除了设置好环境变量之外,还要将win32com.dll复制到\bin目录下;将comm.jar复制到\lib;把javax.comm.properties也同样拷贝到\lib目录下。然而在真正运行使用串口包的时候,仅作这些是不够的。因为通常当运行“java MyApp”的时候,是由JRE下的虚拟机启动MyApp的。而我们只复制上述文件到JDK相应目录下,所以应用程序将会提示找不到串口。解决这个问题的方法很简单,我们只须将上面提到的文件放到JRE相应的目录下就可以了。南京Java培训
串口API介绍
javax.comm.CommPort
这是用于描述一个被底层系统支持的端口的抽象类。它包含一些高层的IO控制方法,这些方法对于所有不同的通讯端口来说是通用的。SerialPort 和ParallelPort都是它的子类,前者用于控制串行端口而后者用于控这并口,二者对于各自底层的物理端口都有不同的控制方法。这里我们只关心SerialPort。南京Java培训
javax.comm.CommPortIdentifier
这个类主要用于对串口进行管理和设置,是对串口进行访问控制的核心类。主要包括以下方法
确定是否有可用的通信端口
为IO操作打开通信端口
决定端口的所有权
处理端口所有权的争用
管理端口所有权变化引发的事件(Event)
javax.comm.SerialPort
这个类用于描述一个RS-232串行通信端口的底层接口,它定义了串口通信所需的最小功能集。通过它,用户可以直接对串口进行读、写及设置工作。南京Java培训
串口API实例
压缩包中除了api,还包括了几个小例子,下面我们就一起看一下串口包自带的例子---SerialDemo中的一小段代码来加深对串口API核心类的使用方法的认识。南京Java培训