feat: IoT MQTT 客户端实现 — NET_SSC_ENABLE=0 时启用

新增文件:
- iot_mqtt_srv.h/c: MQTT 客户端 (TCP→CONNECT→SUBSCRIBE→READY)
  支持: dev_info_query, pwd_verify (其他命令框架预留)
  上报: loop_data (传感器), heartbeat (心跳 60s)
  断线重连: 指数退避 5s~60s
  协议: DLD960 IoT MQTT V1.00 (dld960/{sn}/...)

修改:
- net_config.h: 新增 NET_IOT_ENABLE = !NET_SSC_ENABLE,
  IoT 模式分配 1 TCP socket (MQTT client)
- net_srv.c: IoT 初始化 + socket 中断路由
- peripheral_main.c: IoT poll + sensor publish 调用

模式:
  NET_SSC_ENABLE=1 → SCC + TCP JSON Server (原有行为)
  NET_SSC_ENABLE=0 → IoT MQTT Client (新增)
This commit is contained in:
wangfq
2026-07-03 17:36:22 +08:00
parent a73a9392bd
commit 9629729dc9
5 changed files with 718 additions and 7 deletions
@@ -19,9 +19,14 @@ extern "C" {
/*********************************************************************
* Feature toggles (0 = disabled, 1 = enabled)
*
* 模式互斥:
* NET_SSC_ENABLE=1 → SSC 模式 (UDP+TCP client) + TCP JSON server
* NET_SSC_ENABLE=0 → IoT MQTT 模式 (MQTT client)
*/
#define NET_SSC_ENABLE 0 /* SSC (UDP + TCP client) protocol support */
#define NET_JSON_ENABLE 1 /* TCP JSON protocol server (port 5960) */
#define NET_IOT_ENABLE (!NET_SSC_ENABLE) /* IoT MQTT client (auto-derived) */
/*********************************************************************
* socket configuration, IPRAW + UDP + TCP + TCP_LISTEN = number of sockets
@@ -29,17 +34,19 @@ extern "C" {
#define WCHNET_NUM_IPRAW 0 /* Number of IPRAW connections */
#if NET_SSC_ENABLE
#define WCHNET_NUM_UDP 1 /* The number of UDP connections */
#define WCHNET_NUM_UDP 1 /* SSC mode: 1 UDP */
#else
#define WCHNET_NUM_UDP 0
#define WCHNET_NUM_UDP 0 /* IoT mode: 0 UDP */
#endif
#if NET_JSON_ENABLE && NET_SSC_ENABLE
#define WCHNET_NUM_TCP 2 /* JSON listen+data(1) + SSC client(1) */
#define WCHNET_NUM_TCP 2 /* SSC+JSON: JSON(1) + SSC client(1) */
#elif NET_JSON_ENABLE
#define WCHNET_NUM_TCP 1 /* JSON listen+data(1) */
#define WCHNET_NUM_TCP 1 /* JSON only: listen+data(1) */
#elif NET_SSC_ENABLE
#define WCHNET_NUM_TCP 1 /* SSC client(1) */
#define WCHNET_NUM_TCP 1 /* SSC only: TCP client(1) */
#elif NET_IOT_ENABLE
#define WCHNET_NUM_TCP 1 /* IoT MQTT client(1) */
#else
#define WCHNET_NUM_TCP 0
#endif