spring boot 对串口的读取的快速方法

简介: spring boot 对串口的读取的快速方法

spring-boot-starter-rxtx

spring boot 对串口的读取的快速方法

使用方法

  1. 引入依赖

    <dependency>
        <groupId>cn.qqhxj.common</groupId>
         <artifactId>spring-boot-starter-rxtx</artifactId>
         <version>1.3.1-RELEASE</version>
    </dependency>
  2. 串口配置

    serialport.baud-rate=115200
    serialport.port-name=COM10
  3. 串口数据读取器配置(可选)

    默认配置了 数据开始为 {, 数据结束为} 的数据解析器(VariableLengthSerialReader
    系统还提供了以下四种数据读取器。

    • AnyDataReader 读取一切的数据
    • ConstLengthSerialReader 读取定长的数据
    • VariableLengthSerialReader 读取有前后标识字符的数据
    • LiveControlSerialReader 读取有开始位、数据长度的数据

    大家还可以按照自己的协议实现新的数据解析器

    • 需要实现SerialReader接口
    • 不要忘记要加入到spring的IOC容器中,才能对数据进行处理哦
  4. 数据解析器配置(可选)

    默认配置了 字符串的数据解析器(将数据读取器读取的数据直接转为字符串)
    大家可以自己配置需要的解析器 示例如下

    • 需要实现 SerialDataParser<T> 接口 的 public T parse(byte[] bytes) 方法。解析为相应的对象
    • 不要忘记要加入到spring的IOC容器中,才能对数据进行处理哦

      public class StringSerialDataParser implements SerialDataParser<String> {
          @Override
          public String parse(byte[] bytes) {
              return new String(bytes);
          }
      }
  5. 配置数据处理器

没有进行任何的默认配置
需要的请自行配置

- 要实现`SerialDataProcessor<T>` 接口在 `public void processor(T t)`方法中对数据进行处理
- 要将该处理器加入到spring的IOC容器中。 

配置方法如下所示

@Component
public class XXXProcessor implements SerialDataProcessor<String> {
  @Override
  public void processor(String s) {
      System.out.println(s);
  }
}
  1. 启动

@SpringBootApplication
public class RxtxDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(RxtxDemoApplication.class, args);
        while (true) {
            ;
        }
    }
}
相关文章
|
17天前
|
Java 开发者 Spring
【SpringBoot 异步魔法】@Async 注解:揭秘 SpringBoot 中异步方法的终极奥秘!
【8月更文挑战第25天】异步编程对于提升软件应用的性能至关重要,尤其是在高并发环境下。Spring Boot 通过 `@Async` 注解简化了异步方法的实现。本文详细介绍了 `@Async` 的基本用法及配置步骤,并提供了示例代码展示如何在 Spring Boot 项目中创建与管理异步任务,包括自定义线程池、使用 `CompletableFuture` 处理结果及异常情况,帮助开发者更好地理解和运用这一关键特性。
84 1
|
18天前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
|
27天前
|
Java Spring 容器
SpringBoot整合AOP实现打印方法执行时间切面
SpringBoot整合AOP实现打印方法执行时间切面
28 1
|
20天前
|
Java Spring
|
21天前
|
存储 SQL Java
|
2月前
|
安全 Java Spring
Spring问题之如何配置Bean的初始化方法和销毁方法
Spring问题之如何配置Bean的初始化方法和销毁方法
|
2月前
|
Java Spring
Spring初始化加速的思路和方案问题之在BeanFactory#doGetBean方法中,栈状态的变化影响bean的初始化的问题如何解决
Spring初始化加速的思路和方案问题之在BeanFactory#doGetBean方法中,栈状态的变化影响bean的初始化的问题如何解决
|
27天前
|
Java UED
基于SpringBoot自定义线程池实现多线程执行方法,以及多线程之间的协调和同步
这篇文章介绍了在SpringBoot项目中如何自定义线程池来实现多线程执行方法,并探讨了多线程之间的协调和同步问题,提供了相关的示例代码。
120 0
|
28天前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
34 0
|
2月前
|
Java 数据库连接 API
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法