当前位置:   article > 正文

java射频通讯开发_Java实现RS485串口通信,发送和接收数据进行解析

java 射频

packagecom.gpdi.sericlport;import gnu.io.*;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.sql.PreparedStatement;importjava.sql.Connection;importjava.sql.SQLException;importjava.sql.Timestamp;importjava.text.SimpleDateFormat;import java.util.*;importjava.util.concurrent.BlockingQueue;importjava.util.concurrent.LinkedBlockingQueue;import com.gpdi.utils.*;public class ContinueRead extends Thread implements SerialPortEventListener { //SerialPortEventListener//监听器,我的理解是独立开辟一个线程监听串口数据//串口通信管理类

staticCommPortIdentifier portId;/*有效连接上的端口的枚举*/

static Enumeration>portList;

InputStream inputStream;//从串口来的输入流

static OutputStream outputStream;//向串口输出的流

static SerialPort serialPort; //串口的引用//堵塞队列用来存放读到的数据

private BlockingQueue msgQueue = new LinkedBlockingQueue();

@Override/*** SerialPort EventListene 的方法,持续监听端口上是否有数据流*/

public void serialEvent(SerialPortEvent event) {//

switch(event.getEventType()) {caseSerialPortEvent.BI:caseSerialPortEvent.OE:caseSerialPortEvent.FE:caseSerialPortEvent.PE:caseSerialPortEvent.CD:caseSerialPortEvent.CTS:caseSerialPortEvent.DSR:caseSerialPortEvent.RI:caseSerialPortEvent.OUTPUT_BUFFER_EMPTY:break;case SerialPortEvent.DATA_AVAILABLE://当有可用数据时读取数据

byte[] readBuffer = null;int availableBytes = 0;try{

availableBytes=inputStream.available();while (availableBytes > 0) {

readBuffer=ContinueRead.readFromPort(serialPort);

String needData=printHexString(readBuffer);

System.out.println(new Date() + "真实收到的数据为:-----" +needData);

availableBytes=inputStream.available();

msgQueue.add(needData);

}

}catch(IOException e) {

}default:break;

}

}/*** 从串口读取数据

*

*@paramserialPort 当前已建立连接的SerialPort对象

*@return读取到的数据*/

public static byte[] readFromPort(SerialPort serialPort) {

InputStream in= null;byte[] bytes ={};try{

in=serialPort.getInputStream();//缓冲区大小为一个字节

byte[] readBuffer = new byte[1];int bytesNum =in.read(readBuffer);w

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/289674
推荐阅读
相关标签
  

闽ICP备14008679号