EMS4J平台提供了两种不同的IoT设备对接方案,以适应不同的业务场景和技术需求:
- 设备直连(自有平台):内置IoT模块处理协议接入和设备管理
- 第三方IoT平台对接:通过适配器模式集成外部IoT平台
+----------+ Protocol Processing +------------+ Business Logic +------------+
| Device |------------------------->| ems-iot |--------------------->| ems-business|
| | | Module | | Module |
| (TCP/ | | | | |
| UDP/ | | | | |
| Serial) | | | | |
+----------+ +------------+ +------------+
- 协议接入层:处理网络连接和协议解析
- 设备处理器:实现特定设备通信协议
- 命令调度:管理命令发送和ACK处理
- 事件发布:向业务模块发布设备事件
- 多协议支持:基于Netty的动态协议处理
- 连接管理:通道会话管理和串行队列
- ACK处理:命令确认和超时处理
- 设备标识映射:跨系统的统一设备标识
- 协议分析:分析设备通信协议规范
- 处理器开发:在
ems-iot中实现协议特定处理器 - 消息解析:解析传入数据包并转换为业务对象
- 事件发布:通过消息向业务模块发布事件
- 命令转换:将业务命令转换为设备特定协议
详细接入与实现细节可参考:协议接入指南。
+----------+ Platform Integration +-------------------+ Adapter Pattern +------------+
| Device |<-------------------------->| ems-foundation- |<-------------------->| ems-business|
| | (API/Sync) | integration | | Module |
| (Multi- | | | | |
| Vendor) | | Platform Adapter | | |
+----------+ +-------------------+ +------------+
- 平台适配器:针对不同IoT平台的具体实现
- EnergyService接口:能源数据访问的标准接口
- 设备同步:平台间设备数据同步
- 命令转发:向外部平台转发命令
- 适配器模式:可插拔的平台集成
- 标准接口:统一的
EnergyService用于所有平台交互 - 数据同步:双向数据同步能力
- 命令代理:透明地将命令转发到外部平台
- 平台分析:研究第三方平台API规范
- 适配器开发:实现平台特定的适配器类
- 接口实现:实现
EnergyService接口方法 - 配置设置:配置平台连接参数
- 数据映射:将平台特定数据结构映射到内部模型
- 实现
EnergyService接口以确保行为一致性 - 使用配置驱动的平台切换(真实vs模拟)
- 实现适当的错误处理和重试机制
- 维护平台间的数据一致性