From b707241429548f841caad34c37ce71a3e13dd947 Mon Sep 17 00:00:00 2001 From: wangfq Date: Tue, 7 Jul 2026 09:46:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20MQTT=20=E5=8F=8C=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=88=B0=20vd960DBN=20=E5=9B=BA=E4=BB=B6=20+?= =?UTF-8?q?=20DBNMQTTool=20devlog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vd960DBN 固件改动: - net_srv.h: 默认 topic 改为 dld960/{sn}/srv + dld960/{sn}/dev - net_srv.c: dg_subscribe_display_topic() 直接用 topic_sub 订阅(不再追加 client_id/sn 后缀) - net_srv.c: mqtt_deserialize_publish() topic 过滤改用 g_iot_topic.topic_sub(不再硬编码 TOPIC_DEFAULT_SUBSCRIBE) DBNMQTTool 文档: - devlog.md: 清理过期 topic 引用语义 --- .gitignore | 4 ++++ DBNMQTTool/docs/devlog.md | 4 ++-- .../APP/include/net_srv.h | 4 ++-- .../OnlyUpdateApp_Peripheral/APP/net_srv.c | 20 +++++++++---------- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index d152f72..2b9f141 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,7 @@ at32_ide_proj/ wchreference/ +# Python +__pycache__/ +*.pyc + diff --git a/DBNMQTTool/docs/devlog.md b/DBNMQTTool/docs/devlog.md index 33364d0..afe0980 100644 --- a/DBNMQTTool/docs/devlog.md +++ b/DBNMQTTool/docs/devlog.md @@ -17,7 +17,7 @@ ### 2. 协议Topic Tab -- 预加载 `dld960/{sn}/srv/...` 订阅主题 和 `dev/...` 设备发起主题 +- 预加载双主题:`dld960/{sn}/srv`(下发)、`dld960/{sn}/dev`(上报) - QListWidget 展示,双击自动填充到发布区 - 发布区可编辑 JSON 载荷,一键发布 - 主题列表受 SN 输入框驱动,实时更新 @@ -74,7 +74,7 @@ paho-mqtt v2 默认 `callback_api_version=VERSION2`,`on_disconnect` 回调签 ### 功能 (初始版本, tkinter) - MQTT Broker 连接管理 -- 设备自动发现 (`dld960/+/dev/#` 通配符订阅) +- 设备自动发现 (`dld960/+/dev` 通配符订阅) - 设备信息查询 + 主题配置 - 实时线圈数据 / 事件上报 / 心跳 监控 - 控制命令: 密码验证/设置、出厂初始化、设备复位 diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/include/net_srv.h b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/include/net_srv.h index e466f58..2f038f3 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/include/net_srv.h +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/include/net_srv.h @@ -32,8 +32,8 @@ #define COM_LSSC_UDP_PORT 5500 #define COM_DEV_MESSAGE_PORT 4900 //udp dev local message port -#define TOPIC_DEFAULT_SUBSCRIBE "ptpc/display" -#define TOPIC_DEFAULT_PUBLISH "gtpc/display/Initialize" +#define TOPIC_DEFAULT_SUBSCRIBE "dld960/{sn}/srv" +#define TOPIC_DEFAULT_PUBLISH "dld960/{sn}/dev" #define UART_BAUD_DEFAULT_PORT_1 115200 // ��Loop MCU ͨ�ŵIJ����� TTL, g_storage_uart_baud_1 #define UART_BAUD_DEFAULT_PORT_2 115200 // baud2 TTL g_storage_uart_baud_2 diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c index af956ee..b5da4ad 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c @@ -137,17 +137,13 @@ void dg_subscribe_display_topic(void) } memset(mBuff, 0, 256); - if(g_iot_topic.clientid_enable) - { - sprintf(mBuff, "%s/%s", g_iot_topic.topic_sub, iot_net_info.client_id); - } - else - { - sprintf(mBuff, "%s/%s", g_iot_topic.topic_sub, g_dev_number_str); - } + // V1.01: 双主题协议 — topic_sub 即为完整订阅主题,不再追加后缀 + strcpy(mBuff, (char *)g_iot_topic.topic_sub); { - PRINT("\r\nWill subscribe display_topic:\n%s\r\n", mBuff); + PRINT(" +\nWill subscribe display_topic:\n%s +\n", mBuff); } MQTT_Subscribe(mBuff, 1); @@ -225,9 +221,11 @@ void mqtt_deserialize_publish(char* topic, char* msg, int length) { // if(g_flag_debug) // { -// printf("display_mqtt_callback rev topic: %s\n msg:%s, len:%d\r\n", topic, msg, length); +// printf("display_mqtt_callback rev topic: %s\n msg:%s, len:%d +\n", topic, msg, length); // } - if(strstr(topic, (char *)TOPIC_DEFAULT_SUBSCRIBE) != NULL) // + // V1.01: 使用配置的 topic_sub 匹配,而非硬编码默认值 + if(strstr(topic, (char *)g_iot_topic.topic_sub) != NULL) { manage_mqtt_recv_message(msg, length); }