java连接串口

本文介绍如何利用mina框架在Java中实现串口通信。首先,由于Java SE本身不提供串口连接组件,因此引入mina库,特别是mina-transport-serial模块。核心类包括SerialConnector和SerialAddress,通过设置IoHandler并连接SerialAddress来建立串口连接。代码示例展示了创建串口连接、设置处理handler、配置串口参数以及读写数据的流程。此外,还提供了配置文件加载、异常处理以及COMHandler类的实现细节。
摘要由CSDN通过智能技术生成

java se 没有连串口的组件,通过mina

mina的简介:

https://www.oschina.net/p/mina?hmsr=aladdin1e1

核心库:

public final class SerialConnector extends AbstractIoConnector

public interface IoHandler

public class SerialAddress extends SocketAddress

大概流程如下:

SerialConnector把IoHandler设置为自己的处理Handler,并且连接指定的SerialAddress。连接完成后,IoHandler中可以通过sessionOpened得到串口连接的sesseion,可以通过session发送数据。

main代码如下:

        //创建串口连接
        SerialConnector connector = new SerialConnector();
        //绑定处理handler
       COMHandler comHandler=new COMHandler();//COMHandler是实现IoHandler的子类

        connector.setHandler(comHandler);
        
        try{        
            //配置串口连接,参数自己用实际的字符串代替
            SerialAddress address = new SerialAddress((String) hs.get("COMM.PortName"),
                    Integer.parseInt((String) hs.get("COMM.BaudRate")), DataBits.DATABITS_8, StopBits.BITS_1, Parity.NONE,
                    FlowControl.NONE);
            connector.connect(address);    
        } catch (Throwable e) {
            throw new RuntimeException("打开串口失败", e);
        }

       comHandler().getSession().write("abcd");//写数据

COMHandler 代码如下:

    

public class COMHandler implements IoHandler 
{
    IoSession session=null;
    @Override
    public void sessionCreated(IoSession session) throws Exception {
        // TODO Auto-generated method stub

    }

    @Override
    public void sessionOpened(IoSession session) throws Exception {
        // TODO Auto-generated method stub
        this.session=session;
    }

    @Override //读数据
    public void messageReceived(IoSession session, Object message) throws Exception {
        // TODO Auto-generated method stub

    }
 

//......

-------------------------------------------------------------------

完整的类:

-------------------------------------------------------------------

pom.xml

        <!-- https://mvnrepository.com/artifact/org.rxtx/rxtx -->
        <dependency>
            <groupId>org.rxtx</groupId>
            <artifactId>rxtx</artifactId>
            <version>2.1.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.mina/mina-core -->

        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
            <version>2.0.2</version&g

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值