JavaWeb 用于windows的串口数据读取

本文介绍了如何在Windows环境下使用JavaWeb进行串口数据读取,涉及RXTX开源库的使用,以及配置和项目的依赖设置。通过创建被观察者SerialReader和观察者CommDataObserver实现串口通信,Controller方法调用获取数据用于业务开发。
摘要由CSDN通过智能技术生成

串口数据读取类,用于windows的串口数据读取;

1.例如观察者为羊,被观察者为狼 ,模仿的场景为狼叫羊跑,可参考博客:

https://blog.csdn.net/dada360778512/article/details/6977758

2.模拟串口传输数据,需要两个工具,Virtual Serial Port Driver、串口调试助手;可参考:

https://jingyan.baidu.com/article/046a7b3eae7028f9c27fa9f7.html

3.基于RXTX(提供串口和并口通信)开源类库对串口进行操作的。具体配置,详见:

https://blog.csdn.net/liu4071325/article/details/53392218

必备插件/工具包:
1.项目里引用:  RXTXcomm.jar

2.windows服务器需要以下三个文件:
       \JDK目录\jre\lib\ext ---> RXTXcomm.jar
      \JDK目录\bin ---> rxtxParallel.dll 和 rxtxSerial.dll

2.Linux服务器需要放置以下三个文件

       \JDK目录\jre\lib\ext ---> RXTXcomm.jar
      \JDK目录\bin --->librxtxParallel.so 和 librxtxSerial.so

感谢分享!

代码:

1.创建被观察者 SerialReader.java 

import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Observable;
import java.util.TooManyListenersException;

/**
 * <p>串口数据读取类,用于windows的串口数据读取</p>
 * 
 * 声明被观察者SerialReader,继承Observable<br/>
 * 观察者,继承Observer<br/>
 * 
 * Observer模式  主要是观察者与被观察者之间的关系。<br/>
 * 
 */
public class SerialReader extends Observable implements Runnable, SerialPortEventListener {
	static CommPortIdentifier portId;
	int delayRead = 200;
	int numBytes; // buffer中的实际数据字节数
	private static byte[] readBuffer = new byte[4096]; // 4k的buffer空间,缓存串口读入的数据
	static Enumeration portList;
	InputStream inputStream;
	SerialPort serialPort;
	//声明观察者时,被指定的参数信息
	HashMap serialParams;
	// 端口读入数据事件触发后,等待n毫秒后再读取,以便让数据一次性读完
	public static final String PARAMS_DELAY = "delay read"; // 延时等待端口数据准备的时间
	public static final String PARAMS_TIMEOUT = "timeout"; // 超时时间
	public static final String PARAMS_PORT = "port name"; // 端口名称
	public static final String PARAMS_DATABITS = "data bits"; // 数据位
	public static final String PARAMS_STOPBITS = "
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值