使用java进行控制USB控制塔灯
- 准备工作:USB控制塔灯连接,串口程序安装,RXTX架包配置,java程序实现
(1)塔灯连接:一般笔记本电脑有三个串口,分别是COM1,COM2,COM3,插入以后可以在电脑的设备管理查看相关的信息,配置相关信息,下图为我所用的产品指令表。
波特率,数据位,停止位,校验位都可以在电脑上配置,不会的可以去百度。
(2)串口程序安装
这个基本上你购买了塔灯就能找商家拿到,就和平常安装一个软件一样,注意是将串口接收到的消息来控制串口连接的设备。
(3)RXTX架包的配置
RXTX架包的下载,可通过http://fizzed.com/oss/rxtx-for-java,进入官网进行下载,选择正确的RXTX架包。如图
下载后配置,解压开以后的包的文件列表,如图
接下来要将下列的三个文件放入对应的位置
Copy RXTXcomm.jar —> <JAVA_HOME>\jre\lib\ext
Copy rxtxSerial.dll —> <JAVA_HOME>\jre\bin
Copy rxtxParallel.dll —> <JAVA_HOME>\jre\bin
每个人的jdk安装路径不同,别放错了。
maven项目配置
<!-- https://mvnrepository.com/artifact/org.bidib.jbidib.org.qbang.rxtx/rxtxcomm -->
<dependency>
<groupId>org.bidib.jbidib.org.qbang.rxtx</groupId>
<artifactId>rxtxcomm</artifactId>
<version>2.2</version>
</dependency>
随后就是关键代码,如下
/**
* @Author LiuFangWei
* @Date 2021/5/7 20:58
* @Version 1.0
*/
//Component注释是在spring boot项目里的注释,是其他类引用用的,可去掉。在用时直接new一个
@Component
public class LightControllerSwitch {
public void threeSecondsWarning(){
try{
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier("COM3");//自己接在那个串口要清除,别写错了,还有就是串口是不能并发通信的,要断开先前的通信
SerialPort sPort = (SerialPort)portId.open("名字",1000);//通信名称自己定义填写
OutputStream outputStream = sPort.getOutputStream();
outputStream.write(11);//和指令表里的指令对应,这里是打开红灯
//写入对应指令
Thread.sleep(3000);
//停3秒,再写入指令
outputStream.write(00);//和指令表的指令对应,这里是全部关闭
outputStream.flush();
outputStream.close();
//关闭端口别忘了
sPort.close();
}
catch (PortInUseException | IOException | InterruptedException | NoSuchPortException e) {
e.printStackTrace();
}
}
想要学习更多的串口通信的可以到官方的说明文档去学习。网址http://rxtx.qbang.org/wiki/index.php/Examples