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:
@@ -18,6 +18,9 @@
|
||||
#include "cmcng.h"
|
||||
#include "simple_json.h"
|
||||
#include "tcp_json_srv.h"
|
||||
#if NET_IOT_ENABLE
|
||||
#include "iot_mqtt_srv.h"
|
||||
#endif
|
||||
|
||||
|
||||
uint32_t slen;
|
||||
@@ -539,9 +542,14 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
|
||||
g_net_state.flag = 1;
|
||||
// WCHNET_CreateTcpSocket();
|
||||
}
|
||||
#else /* !NET_SSC_ENABLE — all sockets belong to JSON handler */
|
||||
#else /* !NET_SSC_ENABLE */
|
||||
#if NET_IOT_ENABLE
|
||||
/* IoT MQTT mode — route MQTT socket, JSON server not active */
|
||||
iot_mqtt_handle_sock_int(socketid, intstat);
|
||||
#else
|
||||
tcp_json_handle_sock_int(socketid, intstat);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1123,7 +1131,11 @@ void net_srv_init(void)
|
||||
#if NET_SSC_ENABLE
|
||||
WCHNET_CreateUdpSocket();
|
||||
#endif
|
||||
#if NET_IOT_ENABLE
|
||||
iot_mqtt_init(); // Init IoT MQTT client (connect to broker)
|
||||
#else
|
||||
tcp_json_srv_init(); // Start JSON protocol TCP listener on port 5960
|
||||
#endif
|
||||
#if !NET_SSC_ENABLE
|
||||
g_net_state.flag = 2; // Skip SSC init, advance state directly
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user