资源简介
Java 串口(rxtx)demo(包含发送、接收、以及连接数据库和连接实际的串口硬件的代码和工具类)

代码片段和文件信息
package com.example.demo.rxtx3;
import com.example.demo.rxtx3.util.DBHelper;
import gnu.io.*;
import java.io.IOException;
import java.io.InputStream;
import java.sql.PreparedStatement;
import java.util.TooManyListenersException;
//写好之后,就是读串口类,要保存至数据库的话就是在读出数据后保存,此处无保存至数据库的代码:
public class EventListener implements SerialPortEventListener {
//1.定义变量
SerialPort serialPort = null;
InputStream inputStream = null;//输入流
Thread readThread = null;
java.sql.Connection conn = null;
PreparedStatement stmt = null;
//2.构造函数:
//实现初始化动作:获取串口COM21、打开串口、获取串口输入流对象、为串口添加事件监听对象
public EventListener() throws NoSuchPortException PortInUseException {
try {
//获取串口、打开窗串口、获取串口的输入流。
serialPort = SerialTool.openPort(“COM3“ 9600);
inputStream = serialPort.getInputStream();
//向串口添加事件监听对象。
serialPort.addEventListener(this);
//设置当端口有可用数据时触发事件,此设置必不可少。
serialPort.notifyondataavailable(true);
} catch (IOException e) {
e.printStackTrace();
} catch (TooManyListenersException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// SerialTool.closePort(serialPort);
}
}
//重写继承的监听器方法
@Override
public void serialEvent(SerialPortEvent event) {
//定义用于缓存读入数据的数组
byte[] cache = new byte[1024];
//记录已经到达串口COM21且未被读取的数据的字节(Byte)数。
int availableBytes = 0;
//如果是数据可用的时间发送,则进行数据的读写
if(event.getEventType() == SerialPortEvent.DATA_AVAILABLE){
try {
availableBytes = inputStream.available();
while(availableBytes > 0){
inputStream.read(cache);
for(int i = 0; i < cache.length && i < availableBytes; i++){
//解码并输出数据
System.out.print((char)cache[i]);
//存储到数据库中
//使用的sql语句
String sql = “insert into entity_test (idstr) values(1)“;
//获得数据库连接‘“+(char)cache[i]+“‘
try {
conn = DBHelper.getConnection();
stmt = conn.prepareStatement(sql);
stmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
availableBytes = inputStream.available();
}
System.out.println();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws NoSuchPortException PortInUseException {
new EventListener();
}
/*
如果是自己虚拟的两个端口,则运行读串口类,再运行写串口类,则能看到接收到的数据。
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-05-21 17:45 rxtx3\
文件 3689 2018-05-21 16:16 rxtx3\EventListener.java
文件 6710 2018-05-18 14:26 rxtx3\SerialTool.java
目录 0 2018-05-21 17:45 rxtx3\util\
文件 1475 2018-05-21 09:37 rxtx3\util\DBHelper.java
文件 1231 2018-05-21 17:23 rxtx3\util\HexUtil.java
文件 777 2018-05-21 17:44 rxtx3\Write.java
- 上一篇:java银联多渠道ISO8583
- 下一篇:mysql数据导出pdf格式
相关资源
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
- 基于C/S架构考试系统(Java)
- java access 仓库管理系统 源码
评论
共有 条评论