From 9d2cdf6e26d9f8b3b0e298985b5d4584abe48aeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=5F666?= <13089258+pony-six-hundred-and-sixty-six@user.noreply.gitee.com> Date: Fri, 14 Feb 2025 16:32:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86TCP=E9=87=8D=E8=BF=9E=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E5=BF=83=E8=B7=B3=E6=94=B9=E4=B8=BA3?= =?UTF-8?q?=E5=88=86=E9=92=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .mrs/launch.json | 6 +++--- bsp/src/at_device_nt26k.c | 4 ++-- bsp/src/bsp_nt26k.c | 13 ++++++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.mrs/launch.json b/.mrs/launch.json index be75f06..25a7cbf 100644 --- a/.mrs/launch.json +++ b/.mrs/launch.json @@ -5,7 +5,7 @@ "type": "mrs-debugger", "request": "launch", "name": "JT-DT-YD4N02A_RTT_MRS-4G", - "cwd": "d:\\SXDT\\Project\\CH32\\JT-DT-YD4N02A_RTT_MRS-NT26K", + "cwd": "c:\\Users\\张喆1223\\Desktop\\NT26K\\JT-DT-YD4N02A_4G_RTT_MRS", "openOCDCfg": { "useLocalOpenOCD": true, "executable": "c:/MounRiver/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/openocd.exe", @@ -39,8 +39,8 @@ "additionalCommands": [] }, "loadedFiles": { - "executableFile": "d:\\SXDT\\Project\\CH32\\JT-DT-YD4N02A_RTT_MRS-NT26K\\obj\\JT-DT-YD4N02A_RTT_MRS-4G.elf", - "symbolFile": "d:\\SXDT\\Project\\CH32\\JT-DT-YD4N02A_RTT_MRS-NT26K\\obj\\JT-DT-YD4N02A_RTT_MRS-4G.elf", + "executableFile": "c:\\Users\\张喆1223\\Desktop\\NT26K\\JT-DT-YD4N02A_4G_RTT_MRS\\obj\\JT-DT-YD4N02A_RTT_MRS-4G.elf", + "symbolFile": "c:\\Users\\张喆1223\\Desktop\\NT26K\\JT-DT-YD4N02A_4G_RTT_MRS\\obj\\JT-DT-YD4N02A_RTT_MRS-4G.elf", "executableFileOffset": 0, "symbolFileOffset": 0 }, diff --git a/bsp/src/at_device_nt26k.c b/bsp/src/at_device_nt26k.c index 2f80eef..63ee575 100644 --- a/bsp/src/at_device_nt26k.c +++ b/bsp/src/at_device_nt26k.c @@ -111,7 +111,7 @@ static rt_err_t nt26k_power_off(struct at_device *device) static rt_err_t nt26k_Close_Rf(struct at_device *device) { - at_response_t resp = at_create_resp(64, 0, rt_tick_from_millisecond(60000)); + at_response_t resp = at_create_resp(64, 0, rt_tick_from_millisecond(10000)); if (resp == RT_NULL) { LOG_D("no memory for resp create."); @@ -888,7 +888,7 @@ static void nt26k_init_thread_entry(void *parameter) goto __exit; } /*设置保活信息*/ - if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"tcp/keepalive\",1,1000,100,10") != RT_EOK) + if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"tcp/keepalive\",1,180,75,9") != RT_EOK) { result = -RT_ERROR; goto __exit; diff --git a/bsp/src/bsp_nt26k.c b/bsp/src/bsp_nt26k.c index 755c655..69f56f7 100644 --- a/bsp/src/bsp_nt26k.c +++ b/bsp/src/bsp_nt26k.c @@ -1462,7 +1462,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter) rt_err_t result = RT_ETIMEOUT; rt_uint32_t delay_n = 0; at_response_t resp = RT_NULL; - rt_uint32_t retry_delay = 1000; + rt_uint32_t retry_delay = 4000; LOG_D("nt26k_life_thread entry\n"); while (1) @@ -1482,8 +1482,10 @@ static void Nt26k_Life_Thread_Entry(void *parameter) result = -RT_ETIMEOUT; goto __exit; } - device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL); + device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_DISCONN, RT_NULL); rt_thread_mdelay(RT_TICK_PER_SECOND);//这里如果有TCP连接,先关掉TCP,没有返回错误无所谓 + device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL); + rt_thread_mdelay(RT_TICK_PER_SECOND); if (device->class->device_ops->control(device, AT_DEVICE_CTRL_WAKEUP, RT_NULL) == RT_EOK) { if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_ON, RT_NULL) == RT_EOK) @@ -1522,7 +1524,8 @@ static void Nt26k_Life_Thread_Entry(void *parameter) } /*设置保活信息*/ LOG_D("AT+QICFG=\"tcp/keepalive\",1,1000,100,10"); - if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"tcp/keepalive\",1,1000,100,10") != RT_EOK) + // if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"tcp/keepalive\",1,1000,100,10") != RT_EOK) + if (at_obj_exec_cmd(device->client, resp, "AT+QICFG=\"tcp/keepalive\",1,180,75,9") != RT_EOK) { LOG_E("AT+QICFG=\"tcp/keepalive\" error\n"); result = -RT_ETIMEOUT; @@ -1640,9 +1643,9 @@ static void Nt26k_Life_Thread_Entry(void *parameter) nt26k_disconnect_retry_flag = 1; LOG_D("联网错误,等待%dms后重连", retry_delay); rt_thread_mdelay(retry_delay); - retry_delay = MIN(retry_delay * 2, 60000); // 最大延迟60秒 + retry_delay = MIN(retry_delay * 2, 1800000); // 最大延迟30min delay_n++; - if (delay_n >= 360) // 连续重连大于1小时都不行,则重启设备 + if (delay_n >= 21) // 连续重连大于1小时都不行,则重启设备 { Flash_Set_WorkDuration(work_duration); rt_thread_mdelay(100);