# serial-port-core **Repository Path**: squbirreland/serial-port-core ## Basic Information - **Project Name**: serial-port-core - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-03-21 - **Last Updated**: 2021-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # serial-port-core ## 介绍 串口队列中间件 用于将串口与消息队列连接 实现自动配置自动创建 动态管理 时实监控 并且利用消息队列的特性实现命令发送的可靠性 ## 软件架构 ### 初始化流程 ####1. 扫描配置并存储 注意外化配置 spc.json 路径在当前jar包目录下 其配置为: { "appName":"spc-test-1", "portProperty": { "COM1":{ "bitRate":9600, "dataBits":8, "stopBits":1, "checkParity":0 } } } 只有当前配置了的端口会被监听 如果需要外化application.yml则-> 启动命令 java -jar [jar包] [指定./application.yml路径] ####2. 初始化名称与获取串口 名称规则 : [组件].[方向].[appName].[串口] 例如 COM3的进入队列 Q.TO.test.COM3 COM2的出交换机 E.FROM.test.COM2 ####3. 通过初始化的名称与获取的串口配置生成消息队列 如果对消息队列属性有特别需求 可在entity.model包下更改配置 默认情况下 一个串口会创建: 入队列 出队列 出exchange(默认分发) binding ####4. 初始化串口并配置属性与监听并结束初始化 注意 全局使用了一个volatile的boolean作为初始化是否完成依据 完成后才开始监听生效 该行为主要是避免未初始化完成情况下受到外部干扰 ### 运行流程 外部消息 -> 消费者解析消息 -> 发送消息给串口 -> 消费成功后ack 串口来源命令 -> 监听器解析命令 -> 发送消息到队列 ## 待处理事项 后续可拓展可配置选项 ## 依赖 环境依赖: 特制的 rxtx jar环境 rabbitMq nacos ## 使用说明 maven clean pakage 拿着jar包 当前目录下 必须 spc.json 可外化application.yml ## 注意事项 因为会直接发送命令到串口 所以消息载体数据类型需要为 byte[] 的16进制命令