feat: 初始化后端服务基础架构与核心组件
- 添加项目基础结构,包括 .gitignore、package.json、Docker 配置和环境变量示例 - 实现核心模块:Kafka 消费者、PostgreSQL 数据库管理器、Redis 客户端与错误队列 - 添加工具类:日志记录器、指标收集器、UUID 生成器 - 实现数据处理器,支持 0x36 上报和 0x0F 命令的解析与存储 - 添加数据库初始化脚本和分区管理,支持按时间范围分区 - 引入 Zod 数据验证和 Vitest 单元测试框架 - 提供完整的项目文档,包括数据库设计、Kafka 格式规范和 Redis 集成协议
This commit is contained in:
78
docs/project.md
Normal file
78
docs/project.md
Normal file
@@ -0,0 +1,78 @@
|
||||
1. 0x36 上报数据格式
|
||||
-------------------------------------------------------------------
|
||||
P0: 系统锁状态
|
||||
0x00:未锁定
|
||||
0x01:锁定
|
||||
P1~P6: 保留
|
||||
P7: 上报设备数量
|
||||
P8~P13: 设备参数,描述一个设备参数固定为6Byte,具体格式如下:
|
||||
DevType:设备类型– 1Byte
|
||||
DevAddr:设备地址– 1Byte
|
||||
DevLoop:设备回路– 2Byte
|
||||
DevData:设备状态– 2Byte
|
||||
P14: 上报设备故障数量
|
||||
P15~P20: 上报设备故障数量
|
||||
DevType:设备类型– 1Byte
|
||||
DevAddr:设备地址– 1Byte
|
||||
DevLoop:设备回路– 2Byte
|
||||
ErrorType:故障类型– 1Byte
|
||||
ErrorData:故障内容– 1Byte
|
||||
-------------------------------------------------------------------
|
||||
上报设备的状态具体参数需要查看备数*6Byte,如果故障设备数为0,则没有设备故障参数。
|
||||
故障参数解析:
|
||||
故障类型 故障内容
|
||||
0x01 0:在线 1:离线
|
||||
0x02 0~100电量
|
||||
0x03 电流(10mA)
|
||||
0x04 1901故障检测次数
|
||||
0x05 设备回路故障具体设备,不同类型的设备上报状态的描述是不同的。
|
||||
具体有多少设备状态需要上报,设备参数所占用的字节=设备数*6Byte
|
||||
同样设备故障参数所占用的字节=设
|
||||
2. 0x0F 下发数据格式
|
||||
-------------------------------------------------------------------
|
||||
P0:控制设备总数
|
||||
P1 ~P495:设备控制参数,描述一个设备控制参数固定为6Byte,具体格式如下
|
||||
DevType:控制设备类型 - 1Byte
|
||||
DevAddr:控制设备地址 - 1Byte
|
||||
Loop:控制设备的回路地址 - 2Byte
|
||||
Type:控制设备的输出类型 - 2Byte
|
||||
Type_L:执行方式
|
||||
Type_H:执行内容
|
||||
-------------------------------------------------------------------
|
||||
该命令一般用于服务下发控制数据
|
||||
3. 0x0F 上报数据格式
|
||||
ACK (待补充)
|
||||
|
||||
4. 数据表结构
|
||||
|
||||
不可为空字段:
|
||||
日志产生时间(ts_ms)
|
||||
入库时间(write_ts_ms)
|
||||
酒店(index)
|
||||
房间(index)
|
||||
方向(上传/下发)(index)
|
||||
命令字(index)
|
||||
通讯帧号
|
||||
UDP消息原文
|
||||
记录行为类型(ACK、下发控制、主动控制、设备回路状态)(index),通过设备类型区分
|
||||
可为空字段:
|
||||
系统锁状态
|
||||
本次上报数量
|
||||
DevType:设备类型– 1Byte
|
||||
DevAddr:设备地址– 1Byte
|
||||
DevLoop:设备回路– 2Byte
|
||||
DevData:设备状态– 2Byte
|
||||
本次故障数量
|
||||
DevType:设备类型– 1Byte
|
||||
DevAddr:设备地址– 1Byte
|
||||
DevLoop:设备回路– 2Byte
|
||||
ErrorType:故障类型– 1Byte
|
||||
ErrorData:故障内容– 1Byte
|
||||
|
||||
一条命令可能会有多条状态,每个状态生成一条记录,通过命令字和帧号来做串联。
|
||||
即:一条UDP通讯可能对照多条数据库记录
|
||||
|
||||
|
||||
5. 队列结构
|
||||
队列分区数:6
|
||||
Topic:blwlog4Nodejs-rcu-action-topic
|
||||
Reference in New Issue
Block a user