feat: 协议 V1.04 — 主动上报增加继电器输出次数 (misc_type=3)

- loop_uart_proto.h: LUP_CoilSensor.misc 联合体新增 relay_count
- tcp_json_srv.c: format_sensor_json 处理 misc_type=3 → relay_count
- docs: 更新协议文档至 V1.04
This commit is contained in:
wangfq
2026-07-02 16:50:06 +08:00
parent 8033bca949
commit 2163b89d28
3 changed files with 9 additions and 5 deletions

View File

@@ -96,13 +96,14 @@ typedef struct {
uint8_t condition : 4; // 环境状态评估值(0=正常, 值越大干扰越大)
uint8_t loop_state : 1; // 0=正常, 1=断开
uint8_t car_state : 1; // 0=无车, 1=有车
uint8_t misc_type : 2; // 0=时间量, 1=断开次数, 2=车流量
uint8_t misc_type : 2; // 0=时间量, 1=断开次数, 2=车流量, 3=继电器输出次数
uint32_t freq; // 频率 (3 bytes, little-endian)
uint16_t variation; // 变化量 (2 bytes, little-endian)
union {
uint32_t passtime_ms5; // 通过时间/车间距, 5ms单位 (misc_type=0)
uint32_t cut_amount; // 线圈断开次数 (misc_type=1)
uint32_t flow_amount; // 车流量数 (misc_type=2)
uint32_t relay_count; // 继电器输出次数 (misc_type=3)
} misc;
} LUP_CoilSensor;

View File

@@ -950,6 +950,7 @@ static int format_sensor_json(char *buf, uint16_t buf_size, const LUP_SensorRepo
case 0: misc_field = "\"passtime_ms5\""; misc_val = cs->misc.passtime_ms5; break;
case 1: misc_field = "\"cut_amount\""; misc_val = cs->misc.cut_amount; break;
case 2: misc_field = "\"flow_amount\""; misc_val = cs->misc.flow_amount; break;
case 3: misc_field = "\"relay_count\""; misc_val = cs->misc.relay_count; break;
default: misc_field = "\"misc\""; misc_val = 0; break;
}

View File

@@ -4,7 +4,7 @@
## 1.1 通信方式
串口通信波特率192000
串口通信波特率115200
# 2 协议格式
@@ -213,10 +213,10 @@ SensData传感数据
| 字段 | 字节数 | 内容 | 详情 |
| --- | --- | --- | --- |
| 配置 1 | 1 | freq\_level(2bit), Direction(1bit)freq\_type(1bit), sens(4bit) | 线圈 1 配置freq\_level:高低频两个比特位00 表示高频(33nF),01表示中高(43nF), 10表示中低(66nF), 11表示低频(76nF)。Direction: 0 表示触发1 表示方向判别freq\_type: 0 表示初始频率1 表示当前实时频率。sens低四位表示当前的灵敏度等级 |
| 线圈评估条件 | 1 | condition(4bit), loop\_state(1bit),<br>car\_state(1bit),<br>report\_msic(2bit) | loop\_condition 正常0有效环境状态条件环境状态评估值值越大干扰越大高四位有效。低四位中 其中第3位表示线圈状态0 表示正常1 表示线圈断开 2 位表示有无车0 表示无车1 表示有车低两位表示**杂项类型**0b00表示时间量0b01表示线圈断开次数0b10表示车流量数 |
| 线圈评估条件 | 1 | condition(4bit), loop\_state(1bit),<br>car\_state(1bit),<br>report\_msic(2bit) | loop\_condition 正常0有效环境状态条件环境状态评估值值越大干扰越大高四位有效。低四位中 其中第3位表示线圈状态0 表示正常1 表示线圈断开 2 位表示有无车0 表示无车1 表示有车低两位表示**杂项类型**0b00表示时间量0b01表示线圈断开次数0b10表示车流量数0b11表示继电器输出次数 |
| 频率 1 | 3 | frequent | 低字节在前 |
| 变化量 1 | 2 | variation | 低字节在前 |
| 杂项 | 4 | in\_out\_passtime/cut\_amount/flow\_amount | **杂项类型**,可能是时间量,也可能是线圈断开次数、车流量数,说明:<br>1、通过时间或车间距5ms为单位最大计时<br>2、线圈断开次数<br>3、车流量数 |
| 杂项 | 4 | in\_out\_passtime/cut\_amount/flow\_amount | **杂项类型**,可能是时间量,也可能是线圈断开次数、车流量数,说明:<br>1、通过时间或车间距5ms为单位最大计时<br>2、线圈断开次数<br>3、车流量数<br>4、继电器输出次数 |
eg:
@@ -252,4 +252,6 @@ E2 34 校验字节
| | | | |
| V1.00 | 2026-02-11 | 创建协议初始版本 | wangfq |
| V1.01 | 2026-06-22 | 补充遗漏的接口说明 | wangfq |
| V1.02 | 2026-07-02 | 查缺补漏,补充例程说明。 | wangfq |
| V1.02 | 2026-07-02 | 查缺补漏,补充例程说明。 | wangfq |
| V1.03 | 2026-07-02 | 0x8A 响应格式 + LEN 计算修正 | wangfq |
| V1.04 | 2026-07-02 | 主动上报增加继电器输出次数 类型 | wangfq |