From 95956871d993996344b625747e630f4b4873ed48 Mon Sep 17 00:00:00 2001 From: jujihjuji <14168930+jujihjuji@user.noreply.gitee.com> Date: Thu, 16 Apr 2026 10:35:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(applications/vk=5Fclient):=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E9=87=8D=E8=BF=9E=E6=9C=BA=E5=88=B6=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E5=90=8C=E6=97=B6=E6=B7=BB=E5=8A=A0=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E9=87=8D=E8=BF=9E=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/VK_Client.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/applications/VK_Client.c b/applications/VK_Client.c index 5d0daeb..be51ce6 100644 --- a/applications/VK_Client.c +++ b/applications/VK_Client.c @@ -152,22 +152,24 @@ int16_t client_tcp_connect(Cclient_t *client) { return rtn; } +static rt_tick_t last_rx_tick = 0; int16_t client_yield(CLte_dev_t *pLte_dev) { int16_t rtn = 0; while (1) { if (lte_dev.client1->connect_sta == true) { rt_err_t ret = rt_sem_take(lte_dev.com_dev_rx_sem, 1000); + if (rt_tick_get() - last_rx_tick > RT_TICK_PER_SECOND * 10) { + rt_kprintf("timeout!!! reconnect."); + hw_printf("timeout!!! reconnect."); + pLte_dev->client1->connect_sta = false; + } if (RT_EOK == ret) { rt_ssize_t len = 0; while (1) { + rt_memset(lte_dev.at_buf, 0, sizeof(lte_dev.at_buf)); len = rt_device_read(lte_dev.com_dev, 0, lte_dev.at_buf, sizeof(lte_dev.at_buf)); - rt_device_t fmu_com = fmu_com_get(); - if (fmu_com) { - rt_device_write(fmu_com, 0, pLte_dev->at_buf, len); - } - if (len > 0) { /*收到TCP关闭的消息*/ if (strstr((const char *)lte_dev.at_buf, CLOSED)) { @@ -176,22 +178,31 @@ int16_t client_yield(CLte_dev_t *pLte_dev) { if (NULL != strstr((char *)lte_dev.at_buf, cmd_str)) { EC800K_Reset(); pLte_dev->client1->connect_sta = false; + break; } - return 1; + break; } else if (strstr((const char *)lte_dev.at_buf, "NO CARRIER")) { rt_kprintf("disconnect!!!"); + hw_printf("disconnect!!!"); pLte_dev->client1->connect_sta = false; + break; } - } else { + rt_device_t fmu_com = fmu_com_get(); + if (fmu_com) { + rt_device_write(fmu_com, 0, pLte_dev->at_buf, len); + } + }else{ break; } + last_rx_tick = rt_tick_get(); } } } else { BSP_LTE_Config(); client_tcp_connect(lte_dev.client1); + last_rx_tick = rt_tick_get(); } }