给大家分项下用RXTX库实现JAVA串口编程。
一 准备工作
1.1 下载资源文件
首先下载RXTX库对应的资源文件。下载地址 http://fizzed.com/oss/rxtx-for-java 大家根据自己的系统下载对应的文件。
RXTX-FOR-JAVA.png
Windows-x64 对应windows 64位系统。
Windows-x86 对应windows 32位系统。
Windows-ia64 这种用的比较少,我们不管。
Linux-x86_64 对应Linux 64位系统。
Linux-i386 对应Linux 32位系统。
每个文件下面都有我们下面需要的所有文件。
1.1 拷贝动态库
RXJX的实现还需要依赖几个动态库,所以我们要先把动态库放到对应的jdk目录下面去。window和linux拷贝的文件不同,如下所示:
window平台:
拷贝 rxtxSerial.dll —> \jre\bin
拷贝 rxtxParallel.dll —> \jre\bin
linux平台:
拷贝 librxtxSerial.so —> /jre/lib/i386/
拷贝 librxtxParallel.so —> /jre/lib/i386/
1.2 项目引入RXTXcomm.jar
RXTXcomm.jar文件引入到工程代码里面去。
比如我们把RXTXcomm.jar文件放到工程目录下resource/jar目录下面去。然后在pom.xml中把RXTXcomm.jar引入进来。
gnu.io
com-lib
2.2
system
${project.basedir}/src/main/resources/jar/RXTXcomm.jar
二 实现代码
前面准备工作做好了,接下来就是代码实现,好多代码咱们也是从网上copy过来的,这里我就直接贴代码了。
2.1 串口参数的简单封装
package com.pilot.ioserver.basic.pbl.port.serialPort;
import gnu.io.SerialPort;
/**
* @name: SerialPortParameter
* @author: tuacy.
* @date: 2019/6/26.
* @version: 1.0
* @Description: 串口参数
*/
public final class SerialPortParameter {
/**
* 串口名称(COM0、COM1、COM2等等)
*/
private String serialPortName;
/**
* 波特率
* 默认:115200
*/
private int baudRate;
/**
* 数据位 默认8位
* 可以设置的值:SerialPort.DATABITS_5、SerialPort.DATABITS_6、SerialPort.DATABITS_7、SerialPort.DATABITS_8
* 默认:SerialPort.DATABITS_8
*/
private int dataBits;
/**
* 停止位
* 可以设置的值:SerialPort.STOPBITS_1、SerialPort.STOPBITS_2、SerialPort.STOPBITS_1_5
* 默认:SerialPort.STOPBITS_1
*/
private int stopBits;
/**
* 校验位
* 可以设置的值:SerialPort.PARITY_NONE、SerialPort.PARITY_ODD、SerialPort.PARITY_EVEN、SerialPort.PARITY_MARK、SerialPort.PARITY_SPACE
* 默认:SerialPort.PARITY_NONE
*/
private int parity;
public SerialPortParameter(String serialPortName) {
this.serialPortName = serialPortName;
this.baudRate = 115200;
this.dataBits = SerialPort.DATABITS_8;
this.stopBits = SerialPort.STOPBITS_1;
this.parity = SerialPort.PARITY_NONE;
}
public SerialPortParameter(String serialPortName, int baudRate) {
this.serialP