javbus最新地址,javbus最新地址分享?

营销圈公众号引导关注

现在聊到Java大多都是各种企业应用、互联网应用等,用的都是Spring全家桶系列。最近在某项目中用到了串口通信技术,因此写下此文聊聊相对比较冷门的技术。由于公司项目团队都是用Java开发,因此选型时首选Java相关组件。经过一番学习了解,发现现在的Java实现串口通信是如此简单。

JACOB一个Java-COM中间件。通过这个组件你可以在Java应用程序中调用COM组件和Win32程序库。

NRJavaSerial是Java实现的串口通信组件,是RXTXX项目的分支。

下面开始介绍串口通信的简单实现。

下载JACOB,这里使用的是1.19版本。下载完成后,将jacob-1.19-x64.dll文件复制到jdk的bin目录下(如果是32位jdk则是jacob-1.19-x86.dll)。

新建项目,将JACOB的jar包复制到项目的lib目录下,添加Maven依赖:

<dependency>
    <groupId>com.neuronrobotics</groupId>
    <artifactId>nrjavaserial</artifactId>
    <version>5.2.1</version>
</dependency>
<dependency>
      <groupId>com.jacob</groupId>
			<artifactId>jacob</artifactId>
      <version>1.19</version>
      <scope>system</scope>
      <systemPath>${basedir}/lib/jacob.jar</systemPath>
</dependency>

下发串口指令样例:

// port为串口名,baudRate为波特率
NRSerialPort nrSerialPort = new NRSerialPort(port, baudRate);
nrSerialPort.connect();
// 新建串口的输出流
DataOutputStream dataOutputStream = new DataOutputStream(nrSerialPort.getOutputStream());
// 下发指令,b为字节数据
dataOutputStream.write(b);
nrSerialPort.disconnect();

接收串口指令通过实现SerialPortEventListener来实现,样例代码如下:

// port为串口名,baudRate为波特率
NRSerialPort nrSerialPort = new NRSerialPort(port, baudRate);
nrSerialPort.connect();
// 新建接收命令监听器
DataInputStream dataInputStream = new DataInputStream(nrSerialPort.getInputStream());
serialReader = new SerialReader(dataInputStream);
nrSerialPort.addEventListener(serialReader);
nrSerialPort.notifyOnDataAvailable(true);

SerialReader的实现:

/**
     * 串口事件监听器
     */
    public static class SerialReader implements SerialPortEventListener {
        private DataInputStream dataInputStream;
        private byte[] buffer = new byte[128];

        public SerialReader(DataInputStream dataInputStream) {
            this.dataInputStream = dataInputStream;
        }

        @Override
        public void serialEvent(SerialPortEvent serialPortEvent) {
            int data;
            int len = 0;
            try {
                while ((data = dataInputStream.read()) > -1) {
                    buffer[len++] = (byte) data;
                }
                byte[] tmp = ArrayUtils.subarray(buffer, 0, len);
                log.info("接收到串口消息: {}", tmp);
            } catch (Exception e) {
                log.error("SerialReader exception: {}", e.getMessage());
            }
        }
    }

以上是Java实现串口通信的基础代码样例,如果需要完整可运行代码,请加关注私信我。如果有同行的朋友或者从事Java开发的朋友也可关注我多交流,谢谢!

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/145034.html