From c0220c1d37cd6d23451d082e82771bcbc5106ebf Mon Sep 17 00:00:00 2001 From: wangfq Date: Mon, 6 Jul 2026 10:46:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(vd960DBN):=20IoT=20socket=20=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E5=88=9B=E5=BB=BA=20+=20broker=20IP=20=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - iot_connect_broker: 删除 memcpy,get_ipstr_to_array 已正确解析 IP 之前 memcpy 把原始 ASCII 字节覆写到 broker_ip,导致 IP 变成 49.50.49.46 - peripheral_main.c: IoT 模式下跳过 WCHNET_CreateTcpMqttSocket, 由 iot_connect_broker() 统一管理 socket 生命周期,避免重复创建 --- .../BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c | 3 +-- .../OnlyUpdateApp_Peripheral/APP/peripheral_main.c | 12 +++--------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c index dfc4709..5ac1b67 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c @@ -484,8 +484,7 @@ static void iot_connect_broker(void) { // 解析 broker 地址 if (get_ipstr_to_array((char *)iot_net_info.remote_addr, broker_ip) == 0) { - // 是 IP 地址 - memcpy(broker_ip, iot_net_info.remote_addr, 4); + // 是 IP 地址 — get_ipstr_to_array 已将结果写入 broker_ip,无需 memcpy PRINT("IOT: broker IP %d.%d.%d.%d:%d\n", broker_ip[0], broker_ip[1], broker_ip[2], broker_ip[3], iot_net_info.mqtt_port); diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c index 2e85877..c9f49a4 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/peripheral_main.c @@ -238,15 +238,9 @@ void Main_Circulation(void) if(g_net_state.flag == 2) { if(g_sub_code_enable.iot_enable){ - if(iot_net_info.mode == IOT_Addr_IP_Mode){ - if(get_ipstr_to_array(iot_net_info.remote_addr, RemoteIP) == 0){ - WCHNET_CreateTcpMqttSocket(); - } - } - else{ - //DNS - } - + // IoT MQTT 模式由 iot_connect_broker() 自行管理 socket, + // 不要在此重复创建,直接推进状态 + g_net_state.flag = 3; } else {