java read com port

</pre>java 读取串口的技术<p></p><p>       1、rxtx  </p><p>   http://rxtx.qbang.org/wiki/index.php/Download</p><pre code_snippet_id="1674392" snippet_file_name="blog_20160506_2_2194645" name="code" class="java">package fpx.grs.aliexpress.com;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;

import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;

public class SimpleRead implements Runnable, SerialPortEventListener {
    static CommPortIdentifier portId;
    static Enumeration portList;

    InputStream inputStream;
    SerialPort serialPort;
    Thread readThread;

    public static void main(String[] args) {
        portList = CommPortIdentifier.getPortIdentifiers();

        while (portList.hasMoreElements()) {
            portId = (CommPortIdentifier) portList.nextElement();
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                 if (portId.getName().equals("COM4")) {
            //                if (portId.getName().equals("/dev/term/a")) {
                    SimpleRead reader = new SimpleRead();
                }
            }
        }
    }

    public SimpleRead() {
        try {
            serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
        } catch (PortInUseException e) {System.out.println(e);}
        try {
            inputStream = serialPort.getInputStream();
        } catch (IOException e) {System.out.println(e);}
    try {
            serialPort.addEventListener(this);
    } catch (TooManyListenersException e) {System.out.println(e);}
        serialPort.notifyOnDataAvailable(true);
        try {
            serialPort.setSerialPortParams(9600,
                SerialPort.DATABITS_8,
                SerialPort.STOPBITS_1,
                SerialPort.PARITY_NONE);
        } catch (UnsupportedCommOperationException e) {System.out.println(e);}
        readThread = new Thread(this);
        readThread.start();
    }

    public void run() {
        try {
            Thread.sleep(20000);
        } catch (InterruptedException e) {System.out.println(e);}
    }

    public void serialEvent(SerialPortEvent event) {
        switch(event.getEventType()) {
        case SerialPortEvent.BI:
        case SerialPortEvent.OE:
        case SerialPortEvent.FE:
        case SerialPortEvent.PE:
        case SerialPortEvent.CD:
        case SerialPortEvent.CTS:
        case SerialPortEvent.DSR:
        case SerialPortEvent.RI:
        case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
            break;
        case SerialPortEvent.DATA_AVAILABLE:
            byte[] readBuffer = new byte[20];

            try {
                while (inputStream.available() > 0) {
                    int numBytes = inputStream.read(readBuffer);
                }
                System.out.print(new String(readBuffer));
            } catch (IOException e) {System.out.println(e);}
            break;
        }
    }
}



       2、jSerialComm

       在rxtx基础上不需要增加系统的dll

     https://github.com/Fazecast/jSerialComm/wiki

       3、jssc

       google的不需要依赖系统的dll

 https://code.google.com/archive/p/java-simple-serial-connector/downloads

       

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要将Java Serial Port集成到Java项目中,请按照以下步骤操作: 1. 下载并安装Java Serial PortJava Serial Port库是一个Java扩展库,可用于通过串行端口进行数据通信。您可以从官方网站(https://serialio.com/support/Downloads)下载适用于您的操作系统的库,并按照说明进行安装。 2. 在Java项目中导入Java Serial Port库 将Java Serial Port库的jar文件导入到您的Java项目中。具体步骤可能因您使用的IDE而有所不同,但通常可以通过右键单击项目文件夹并选择“Build Path” > “Configure Build Path” > “Libraries” > “Add External JARs”来完成。 3. 编写代码以使用Java Serial Port 您现在可以在Java项目中使用Java Serial Port库了。编写代码以打开串行端口、读取和写入数据等。 以下是一个简单的示例代码,演示如何使用Java Serial Port库读取从串行端口发送的数据: ```java import java.io.*; import javax.comm.*; public class SerialPortReader implements SerialPortEventListener { static CommPortIdentifier portId; static SerialPort serialPort; static InputStream inputStream; public static void main(String[] args) { try { // 获取串口 portId = CommPortIdentifier.getPortIdentifier("COM1"); // 打开串口 serialPort = (SerialPort) portId.open("SerialPortReader", 2000); // 配置串口参数 serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // 获取输入流 inputStream = serialPort.getInputStream(); // 注册事件监听器 serialPort.addEventListener(new SerialPortReader()); serialPort.notifyOnDataAvailable(true); } catch (Exception e) { e.printStackTrace(); } } public void serialEvent(SerialPortEvent event) { if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int availableBytes = inputStream.available(); byte[] bytes = new byte[availableBytes]; inputStream.read(bytes, 0, availableBytes); String message = new String(bytes); System.out.println("Received message: " + message); } catch (IOException e) { e.printStackTrace(); } } } } ``` 上述示例代码演示了如何在Java项目中打开串行端口、配置串口参数、获取输入流以及注册事件监听器以读取从串行端口发送的数据。您可以根据需要修改此代码,并添加写入数据的功能。 ### 回答2: 要将Java串口集成到Java项目中,可以按照以下步骤进行操作: 1. 下载并安装Java串口通信库,如RXTX或jSerialComm。这些库提供了Java与串口通信的API。 2. 在Java项目中,导入所需的串口库。具体方法取决于你使用的开发环境,可以通过在项目的构建路径中添加库,或通过Maven或Gradle等构建工具的依赖管理来导入。 3. 创建一个串口管理类,用于配置和控制串口通信。这个类应该具有打开、关闭、配置和发送/接收数据的方法。 4. 在需要使用串口的地方,实例化串口管理类,并调用相关方法来打开和配置串口。 5. 为串口添加数据监听器,以便实时接收串口发来的数据。监听器将在接收到数据时触发相应的处理逻辑。 6. 可以使用串口管理类提供的方法发送数据到串口。确保数据的格式和编码与串口设备要求相匹配。 7. 处理串口接收到的数据。根据实际需求,可以将数据进行解析、处理或显示。 需要注意的是,串口通信通常需要设置一些参数,如波特率、数据位、校验位和停止位等。在配置串口时,需要根据串口设备的要求进行正确的设置。 另外,串口通信可能涉及到跨平台的问题。因此,在开发过程中,要对不同操作系统上的串口连接进行测试和调试,确保项目在各个平台上都能正常运行。 ### 回答3: 要将Java Serial Port集成到Java项目中,可以按照以下步骤进行操作: 1. 下载并安装JavaComm库:JavaComm库是用于在Java中操作串口的标准库。你可以在Oracle官网上找到并下载安装对应操作系统的JavaComm库。 2. 在项目中引入JavaComm库:将下载的JavaComm库的jar文件添加到项目的classpath中,这样Java编译器就能正常识别和使用JavaComm库的相关类和方法。 3. 导入JavaComm库的包:根据需要在代码中导入JavaComm库的相关包,主要是`javax.comm`和`gnu.io`。 4. 初始化串口:根据需要,选择合适的串口初始化方法进行串口的打开、配置和设置监听器等操作。例如,可以使用`CommPortIdentifier`类来获取可用串口列表,并通过`SerialPort`类打开和配置指定的串口。 5. 使用串口进行数据通信:使用串口对象提供的输入输出流进行数据的读写操作。可以使用`InputStream`和`OutputStream`来操作串口。 6. 关闭串口:在使用完串口后,通过调用`close`方法关闭串口,以释放系统资源。 以上是集成Java Serial PortJava项目的基本步骤。根据具体的需求,可能还需要添加更多的代码来处理串口数据的解析、错误处理等。在实际操作中,还应注意遵循串口通信的规范和协议,确保数据的正确传输和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值