精华内容
下载资源
问答
  • mina串口通讯

    热门讨论 2014-08-20 09:50:02
    使用mina框架实现串口通讯,费了一番周折终于调通,和大家分享一下!
  • SpringBoot整合Mina串口通讯

    万次阅读 2017-06-02 14:14:42
    整合串口 @Configuration public class SerialServer { private static Log log = LogFactory.getLog(SerialServer.class); public static String PORT = PropertyUtil.getProperty("COM_PORT"); @Bean
    整合串口
    @Configuration
    public class SerialServer {
    
        private static Log log = LogFactory.getLog(SerialServer.class);
        public static String PORT = PropertyUtil.getProperty("COM_PORT");
    
        @Bean
        public LoggingFilter loggingFilter() {
            return new LoggingFilter();
        }
    
        @Bean
        public SerialProtocolCodecFactory serialProtocolCodecFactory() {
            return new SerialProtocolCodecFactory();
        }
        @Bean
        public IoHandlerAdapter ioHandlerAdapter() {
            return new SerialHandler();
        }
    
    
        ConnectFuture future ;
    
        private SerialPooler pooler;
    
        @Bean
        public SerialConnector serialCon()
        {
            //创建串口连接
            SerialConnector connector = new SerialConnector();
            //绑定处理handler
            connector.setHandler(ioHandlerAdapter());
            //设置过滤器
            connector.getFilterChain().addLast("logger",loggingFilter());
            connector.getFilterChain().addLast("codec",
                    new ProtocolCodecFilter(serialProtocolCodecFactory()));
            //配置串口连接
            SerialAddress address = new SerialAddress
                    (PORT, 9600, DataBits.DATABITS_8,StopBits.BITS_1 , Parity.NONE, FlowControl.NONE);
    
            future = connector.connect(address);
            try {
                future.await();
    //       IoSession sessin = future.getSession();
                pooler= new SerialPooler();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            log.info("Serial Server Started");
            return connector;
        }
    
        public void close()
        {
            future.cancel();
            log.info("UDP Server closed");
        }
    }
    
     
    
    打包整理
    
    
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <packaging>jar</packaging>
    
        <groupId>com.natop</groupId>
        <artifactId>goes2</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.2.5.RELEASE</version>
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <version.spring>3.2.9.RELEASE</version.spring>
            <version.jackson>2.4.4</version.jackson>
            <java.version>1.7</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- 这里指定打包的时候不再需要tomcat相关的包
    	本地运行时需注释
     -->
           <!-- <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.8</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jdbc</artifactId>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
    
            <!---->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.1.43</version>
            </dependency>
            <!-- <dependency>
                 <groupId>com.mangofactory</groupId>
                 <artifactId>swagger-springmvc</artifactId>
                 <version>0.9.5</version>
             </dependency>-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.2.2</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.2.2</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${version.jackson}</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>2.0.9</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-transport-apr</artifactId>
                <version>2.0.9</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-transport-serial</artifactId>
                <version>2.0.9</version>
            </dependency>
    
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.2.4</version>
            </dependency>
            <dependency>
                <groupId>org.bidib.jbidib.org.qbang.rxtx</groupId>
                <artifactId>rxtxcomm</artifactId>
                <version>2.2</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <extensions>true</extensions>
                </plugin>
    
                <!-- maven打包的时候告诉maven不需要web.xml,否刚会报找不到web.xml错误 -->
               <!-- <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>-->
            </plugins>
        </build>
        <repositories>
            <repository>
                <id>spring-milestone</id>
                <url>https://repo.spring.io/libs-release</url>
            </repository>
        </repositories>
    
        <pluginRepositories>
            <pluginRepository>
                <id>spring-milestone</id>
                <url>https://repo.spring.io/libs-release</url>
            </pluginRepository>
        </pluginRepositories>
    
    
    </project>

    展开全文
  • springboot + mina 实现串口通讯

    千次阅读 热门讨论 2019-09-06 13:35:24
    记一次串口开发,以下代码只能调用本机的串口发送指令。 下载mfz-rxtx-2.2-20081207-win-x64压缩包,将以下三个文件放入指定文件夹内。 Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext Copy rxtxSerial....

    记一次串口开发,以下代码只能调用本机的串口发送指令。

    下载mfz-rxtx-2.2-20081207-win-x64压缩包,将以下三个文件放入指定文件夹内。

    Copy RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext
    Copy rxtxSerial.dll ---> <JAVA_HOME>\jre\bin
    Copy rxtxParallel.dll ---> <JAVA_HOME>\jre\bin
    

    项目中加入依赖

    		<!--RXTX实现串口通讯-->
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>2.0.9</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-transport-apr</artifactId>
                <version>2.0.9</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-transport-serial</artifactId>
                <version>2.0.9</version>
            </dependency>
            <dependency>
                <groupId>org.bidib.jbidib.org.qbang.rxtx</groupId>
                <artifactId>rxtxcomm</artifactId>
                <version>2.2</version>
            </dependency>
    

    功能实现

        /**
         * 发送指令至串口
         * @param command
         */
        private void sendCommand(String command) {
            if (StringUtils.isNotBlank(command)) {
                IoBuffer buffer = IoBuffer.wrap(command.getBytes());
                IoSession session = null;
                try {
                    //创建串口连接
                    SerialConnector connector = new SerialConnector();
                    //绑定处理handler
                    connector.setHandler(new IoHandlerAdapter());
                    //设置过滤器
                    connector.getFilterChain().addLast("logger", new LoggingFilter());
                    //配置串口连接
                    SerialAddress address = new SerialAddress(BasicConstants.SERIAL_PORT, BasicConstants.BAUD_RATE, SerialAddress.DataBits.DATABITS_8, SerialAddress.StopBits.BITS_1 , SerialAddress.Parity.NONE, SerialAddress.FlowControl.NONE);
                    ConnectFuture future = connector.connect(address);
                    future.await();
                    session = future.getSession();
                    session.write(buffer);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (session != null) {
                        session.close(true);
                    }
                }
            }
        }
    

    附:串口调试工具

    展开全文
  • springboot mina 串口对接

    2020-08-26 15:52:47
    springboot集成mina实现串口协议对接,包含断包、粘包处理。串口协议发送与接收是异步的,发送没有返回,只能通过监听获取。
  • MINA集成使用的RXTX串口开发框架,里面有RXTXcomm.jar ,rxtxSerial.dll , rxtxParallel.dll。
  • MINA框架中的Serial串口通讯

    千次阅读 2015-03-18 17:58:30
    MINA作为优秀的网络应用开发框架,也集成了关于串口通讯的开发,其集成使用的为RXTX串口开发框架,RXTX为各操作系统下的兼容javax.comm串口通讯包API的实现,若不甚了解或遇安装问题请参考我另一篇博文:...

    MINA作为优秀的网络应用开发框架,也集成了关于串口通讯的开发,其集成使用的为RXTX串口开发框架,RXTX为各操作系统下的兼容javax.comm串口通讯包API的实现,若不甚了解或遇安装问题请参考我另一篇博文:http://blog.csdn.net/cheng157507947/article/details/43764623
    由于我原先使用过RXTX做过串口开发测试,环境并无问题,windows7 64位下创建了两个虚拟串口用于串口调试,linux下也是使用xgcom串口调试工具,其环境问题不在赘述。

    MINA官网中有对Serial Transport的大致说明和样例,可参考:
    http://mina.apache.org/mina-project/userguide/ch6-transports/serial-transport.html(一些需要注意的问题官网中也有解释)
    在开发测试之前,除RXTX环境外,需知在MINA提供的2.0.9的基础包中并不包含Serial开发包,在上述连接中已有标明,并已提供了下载地址,开发环境中需加入mina-transport-serial jar。
    此外MINA框架使用slf4j,在不做任何处理的情况下会报出

    SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

    解决方法可参考另一博文:http://blog.csdn.net/cheng157507947/article/details/45039309

    下面即可开始Serial通讯开发,根据官网介绍,串口开发只有客户端,不存在服务端代码,即:

    IoConnector connector = new SerialConnector();
    
    //添加数据解析Filter
    connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MessageCodecFactory()));
    
    //添加事件处理handler 
    connector.setHandler(new SerialHandler());
    
    SerialAddress portAddress = new SerialAddress("COM1", 9600, DataBits.DATABITS_8, StopBits.BITS_1, Parity.NONE, FlowControl.NONE);
    
    ConnectFuture future = connector.connect(portAddress);
    future.await();
    IoSession session = future.getSession();
    session.write("00");

    这里除部分Serial地址设置方法不同外,其余与MINA框架客户端开发并无不同,编写自己的处理方法即可,不了解MINA框架的处理方式可参考另一篇博文http://blog.csdn.net/cheng157507947/article/details/44099637


    串口通讯的注意点:
    1.需正确添加SerialAddress参数值,可参考RXTX中的串口获得。
    2.在我测试的串口通讯中,原先使用的TextLineCodecFactory Filter并不适用,原因为串口通讯中多数使用指定协议(如ModBus协议),使用byte传输16进制命令,形如“01 03 00 01 00 01 D5 CA”。
    可使用自定义IoFilter用于数据的编码和解码:
    定义编码工厂类:

    public class MessageCodecFactory implements ProtocolCodecFactory {
    
        private final MessageEncoder encoder;
    
        private final MessageDecoder decoder;
    
        public MessageCodecFactory() {
            this.encoder = new MessageEncoder();
            this.decoder = new MessageDecoder();
        }
    
        @Override
        public ProtocolDecoder getDecoder(IoSession session) throws Exception {
            return decoder; 
        }
    
        @Override
        public ProtocolEncoder getEncoder(IoSession session) throws Exception {
            return encoder;
        }
    
    }

    编码器(向串口发送数据时的数据编码加工):

    public class MessageEncoder extends ProtocolEncoderAdapter {
    
        @SuppressWarnings("unused")
        private final static Logger log = LoggerFactory.getLogger(MessageDecoder.class);
    
        @Override
        public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
            if(message instanceof ...){
                IoBuffer buffer = IoBuffer.allocate(100).setAutoExpand(true);
                ...
                byte[] send = ...
                buffer.put(send);
                buffer.flip();
                session.write(buffer);
            }
        }
    }

    解码器(接收串口数据时的数据解码加工):

    public class MessageDecoder extends CumulativeProtocolDecoder {
    
        private static Logger log = LoggerFactory.getLogger(MessageDecoder.class);
    
        ...
    
        @Override
        protected boolean doDecode(IoSession session, IoBuffer in,
                ProtocolDecoderOutput out) throws Exception {
            byte[] input = new byte[in.limit()];
            in.get(input, 0, input.length);
            log.info("接收:{}", ByteUtil.toHexString(input));
            ...
                    out.write(...);
            ...
                return true;
            }
            return false;
        }
    

    具体处理按照项目要求,不再贴详细代码

    展开全文
  • 找了很长时间网上没有一个详细整合的例子,现在已整合成功 放上来让大家参照,少走弯路,稍后会放出博客说明 使用idea 打开后可以直接使用的例子,很珍贵
  • mina serial 串口

    千次阅读 2015-08-23 15:43:58
    前提 在访问串口之前,Java应用程序需要一个native库。MINA使用ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip,请把它放到你的JDK或JRE的lib/i386/下, 并在程序启动的命令行中加入-Djava...串口通讯通过I

    前提

    在访问串口之前,Java应用程序需要一个native库。MINA使用ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip,请把它放到你的JDK或JRE的lib/i386/下,

    并在程序启动的命令行中加入-Djava.library.path=来指定你的native库的位置。 
    连接到串口

    串口通讯通过IoConnector来实现,这是有通讯媒介的点对点特性来决定的。我们假定你已经通过MINA的教程了解到了IoConnector的相关知识。连接到串口需要SerialConnector:

    Java代码 复制代码
    // create your connector   
    IoConnector connector = new SerialConnector()   
    connector.setHandler( ... here your buisness logic IoHandler ... );  
    与SocketConnector,并没有什么不同。让我们创建一个地址来连接串口:

    Java代码 复制代码
    SerialAddress portAddress=new SerialAddress( "/dev/ttyS0", 38400, ****, StopBits.BITS_1, Parity.NONE, FlowControl.NONE );  
     第一个参数代表串口的标识符。对于Windows系统,串口一般叫做"COM1"、"COM2"以此类推,对于Linux或者一些Unix系统,通常由"/dev/ttyS0"、"/dev/ttyS1"、"/dev/ttyUSB0"来表示。

    剩下的参数取决于你的硬件设备的连接特性。

    波特率
    数据位数
    奇偶校验
    流控制机制
    当这些都具备,就可以连接到该地址:

    Java代码 复制代码
    ConnectFuture future = connector.connect( portAddress );   
    future.await();   
    IoSession sessin = future.getSession();  
     其他的事情和使用TCP协议等一样,你可以加入你的filters和codecs。

    问题一、
    用 rxtx-2.1-7-bins-r2.zip 文件来读写串口的,老是出现java.lang.NoClassDefFoundError: gnu/io/CommPortIdentifier错误,
    在“ClassPaht”里增加“RXTXcomm.jar”文件,问题解决。

    资源地址  http://download.csdn.net/detail/proud2005/7516503

    展开全文
  • 这里提供的是能够让mina服务端与客户端进行通讯的几个必需jar包。
  • mina学习笔记七:串口编程

    千次阅读 2014-07-12 17:45:44
    以前做过一个针对串口扫描枪解析的项目,当时是用的java.comm包。回忆一下dangshi
  • Mina 实现TCP、UDP、串口功能

    千次阅读 2017-03-03 18:36:45
    Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、...经过查找发现,Mina正好合适,内部对于TCP、UDP和串口都做了封装,修改不同通讯
  • mina2.0.9下载

    2014-11-25 11:38:15
    当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。 Apache MINA 2.0.9 发布,此版本是个 bug 修复版本,修复了...
  • mina简介

    2012-08-22 11:10:26
    Apache MINA(Multipurpose Infrastructure for Network ...当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展
  • mina

    2016-02-26 14:42:03
    Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。 Mina包的简介: org.apache.mina.core.buffer 用于...
  • 集成框架SpringBoot+myBatis+Mina,内附CRC校验工具类和进制转换工具类 SpringBoot集成Socket通讯Mina框架
  • Apache MINA是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利...当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供)。
  • Mina

    2014-03-10 20:41:36
    MINA 框架简介 Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发...
  • MINA框架源码

    2014-03-22 11:43:48
    当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。 目前正在使用 MINA 的软件包括有:Apache Directory ...
  • MINa

    2011-12-07 21:40:00
    使用 Apache MINA 开发高性能网络应用程序 刘 冬 (javayou@gmail.com), 开发工程师, 广州市摩网信息技术有限公司 简介:本文将通过一个简单的问候程序 HelloServer 来介绍 MINA 的基础架构的同时演示如何...
  • MINA基础

    2017-06-27 09:29:18
    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 ...当前发行的 MINA 版本支持基于 Java NIO 技术的TCP/UDP 应用程序开发、串口通讯程序。  Mina 的应用层:    一个设计成熟的开
  • Apache Mina实例

    千次阅读 2013-08-09 20:47:15
    Apache MINA(Multipurpose Infrastructure for Network Applications) 官网http://mina.apache.org/ ...当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 610
精华内容 244
关键字:

mina串口通讯