4 Commits
Author SHA1 Message Date
wangfq e32f3892fe feat: Modbus RTU V1.6 私有协议编码实现
新增:
- rs485_modbus.h/c — 完整 Modbus RTU 从机实现 (516行)
  · FC 0x02 读离散输入 (9-bit 位图: car_state/线圈/光耦/继电器)
  · FC 0x03 读保持寄存器 (含 HR 0x0010/0x0011)
  · FC 0x04 读输入寄存器 (基础 IR + 全数据块 0x0100-0x0112)
  · FC 0x06/0x10 写寄存器 (含值域校验+只读拦截)
  · FC 0x11 Report Slave ID
  · CRC16 查表 (poly=0xA001)
  · 全数据块组装 (19 reg = 38B big-endian)
  · 主动上报 3 级速率调度 (事件立即/活动150ms/空闲800ms)
  · 车间距/通过时间测量 (mstick/2=10ms单位, relay边沿触发)
  · 光耦状态实时读取 (GPIOB_ReadPortPin)
  · Holding Register 写穿透: Fusion Mode 同步 direction_mode,
    Hold Time 同步 g_hold_time, Freq Level 同步 g_loop_cng_unit

改造:
- rs485_700bs.h/c: 暴露 rs485_send() + rx缓冲(_rx_buf/_rx_len/_rx_last_tick) 供Modbus共用
- peripheral_main.c: g_fm_700bs_disable 分派 700BS/Modbus; modbus_init() 随 rs485_init 调用
2026-07-30 12:02:24 +08:00
wangfq e974fd7814 fix(rs485): 修正心跳周期 — mstick() 单位是 5ms/tick
RS485_HEARTBEAT_MS: 5000→1000 (5s / 5ms = 1000 tick)
RS485_FAULT_MS:     1000→200  (1s / 5ms = 200 tick)
2026-07-24 17:48:18 +08:00
wangfq d50135c77b feat(rs485): 0x3D DIP查询从BLE配置实时映射灵敏度/输出/延时
- rs485_700bs.c: handle_query_dip() 从 g_loop_cng_unit 读取 sensitvity/output_mode/exist_mode/delay_time,映射为 DIP1-5 位
- rs485_700bs.h: 恢复 CMD_QUERY_DIP / RSP_DIP 常量
- docs: 添加 DLD-700BS V1.15 使用说明书 MD 版
- DLD154Pro 无物理拨码,所有配置通过 BLE 管理,0x3D 返回当前有效参数
2026-07-23 19:07:12 +08:00
wangfq ab469315bf feat(DLD154Pro): RS485 700BS 从机协议实现
新增 rs485_700bs.c/h:
  - UART0 9600 8N1 中断接收, PA13 方向控制
  - 命令处理: 0xFA(状态)/0x1B(频率)/0x2C(复位)/0x3D(拨码)
  - 心跳上报: 0xAA 空闲5s/故障1s/事件立即
  - XOR 校验, 地址匹配 (g_rs485_id)
  - 0x2C 复位: loop1_LC_Reset + INI_LOOP 完整初始化

集成 peripheral_main.c:
  - rs485_init() 替换 GPIO placeholder
  - rs485_poll() 加入主循环 (cjq_srv 之后)
2026-07-23 18:51:30 +08:00