【开源】一个基于java语言的物联网中间件,支持常用物联网协议
项目介绍
iot-ucy是使用java语言且基于netty, spring boot, redis等开源项目开发来的物联网网络中间件, 支持udp, tcp, 串口(com)通讯(window、linux、mac)等底层协议和http, mqtt, websocket(默认实现和自定义协议头实现), modbus(tcp,rtu),plc,dtu(支持心跳,设备注册功能以及AT协议和自定义协议支持),dtu for modbus tcp,dtu for modbus rtu组件适配 等上层协议. 主打工业物联网底层网络交互、设备管理、数据存储、大数据处理。(其中plc包括西门子S7系列,欧姆龙Fins) 数据存储将使用taos数据库以及redis消息队列。
已实现功能
- 西门子和欧姆龙PLC原生协议适配
- Modbus Tcp协议客户端实现
- DTU + Modbus(Tcp/RTU)协议的服务端实现
- Mqtt(3.1+版本)客户端实现(一套默认实现并支持自定义实现)
- Websocket协议的客户端和服务端实现(一套默认实现并支持自定义实现)
- 串口通讯(支持平台 mac, windows, linux)
- DTU模拟器
- 支持基于TCP协议的设备协议自定义
- 支持基于UDP协议的设备协议自定义
- 支持在任意的java环境使用不强制依赖spring框架(V3.0.0+)
- 支持动态启用和停用组件服务(V3.0.0+)
- 支持串口+Modbus Rtu(V3.0.0+)
接口主要特性
- 支持服务端启动监听多个端口, 统一所有协议可使用的api接口
- 包含一套代理客户端通信协议,支持调用:客户端 -> 服务端 -> 设备 -> 服务端 -> 客户端
- 支持设备协议对象和其业务对象进行分离(支持默认业务处理器【spring单例注入】和自定义业务处理器)
- 支持同步和异步调用设备, 支持应用程序代理客户端和设备服务端和设备三端之间的同步和异步调用
- 服务端支持设备上线/下线/异常的事件通知, 支持自定义心跳事件, 客户端支持断线重连
- 丰富的日志打印功能,包括设备上线,下线提示, 一个协议的生命周期(请求或者请求+响应)等
- 支持请求时如果连接断线会自动重连(同步等待成功后发送)
- 支持客户端发送请求时如果客户端不存在将自动创建客户端(同步等待成功后发送)
模拟工具
- QtSwissArmyKnife 支持udp、tcp、modbus、websocket、串口等调试
- IotClient 支持plc(西门子,欧姆龙,三菱),modbus,串口,mqtt,tcp, udp等模拟和调试