From e9614b7115ff8f2979ec899e2b5b7ed944c28a4b Mon Sep 17 00:00:00 2001 From: stark1898y <1658608470@qq.com> Date: Fri, 14 Feb 2025 19:55:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=B9=B3=E5=8F=B0=E5=BB=BA?= =?UTF-8?q?=E8=AE=AE=EF=BC=8C=E5=B0=86=E8=8E=B7=E5=8F=96=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E7=9A=84=E7=AD=89=E5=BE=85=E6=94=B9=E4=B8=BA15s,=E9=87=8D?= =?UTF-8?q?=E8=BF=9E=E7=9A=84=E5=88=9D=E5=A7=8B=E5=80=BC=E6=94=B9=E4=B8=BA?= =?UTF-8?q?8s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 ++- bsp/inc/bsp_emv.h | 13 +++++++++---- bsp/src/bsp_nt26k.c | 21 +++++++++++++-------- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5b8b7de..338e87b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -61,5 +61,6 @@ "bsp_vin_detection.h": "c", "ulog_def.h": "c" }, - "commentTranslate.multiLineMerge": true + "commentTranslate.multiLineMerge": true, + "C_Cpp.errorSquiggles": "disabled" } diff --git a/bsp/inc/bsp_emv.h b/bsp/inc/bsp_emv.h index ef303e6..a17d648 100644 --- a/bsp/inc/bsp_emv.h +++ b/bsp/inc/bsp_emv.h @@ -1,12 +1,12 @@ -/*** +/*** * @Author: mbw * @Date: 2024-11-01 11:03:06 * @LastEditors: mbw && 1600520629@qq.com * @LastEditTime: 2024-12-26 11:18:19 * @FilePath: \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\bsp_emv.h - * @Description: + * @Description: * @ - * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. */ /*** * @Author: mbw @@ -31,7 +31,12 @@ // 高电平 关闭电磁阀 #define EMV_OFF rt_pin_write(EMV_PIN, PIN_HIGH) -#define EMV_CLOSE_VALVE do {rt_pin_write(EMV_PIN, PIN_HIGH);rt_thread_mdelay(RT_TICK_PER_SECOND / 2);rt_pin_write(EMV_PIN, PIN_LOW);} while (0) +#define EMV_CLOSE_VALVE \ + do { \ + rt_pin_write(EMV_PIN, PIN_HIGH); \ + rt_thread_mdelay(RT_TICK_PER_SECOND / 2); \ + rt_pin_write(EMV_PIN, PIN_LOW); \ + } while (0) extern volatile rt_uint16_t emv_state_flag; int BSP_Set_Emv_Status(rt_bool_t status); diff --git a/bsp/src/bsp_nt26k.c b/bsp/src/bsp_nt26k.c index 8f9ecaf..e37ac97 100644 --- a/bsp/src/bsp_nt26k.c +++ b/bsp/src/bsp_nt26k.c @@ -816,7 +816,7 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, } else { - if (rt_sem_take(nt26k_recv_msg_sem, 4000) == RT_EOK) + if (rt_sem_take(nt26k_recv_msg_sem, 15000) == RT_EOK) { LOG_D("收到回复\n"); nt26k_connect_sever_flag = 1; @@ -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 = 4000; + rt_uint32_t retry_delay = 8000; LOG_D("nt26k_life_thread entry\n"); while (1) @@ -1482,9 +1482,14 @@ static void Nt26k_Life_Thread_Entry(void *parameter) result = -RT_ETIMEOUT; goto __exit; } - 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); + if(device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_DISCONN, RT_NULL) == RT_EOK) + { + rt_thread_mdelay(RT_TICK_PER_SECOND);//这里如果有TCP连接,先关掉TCP,没有返回错误无所谓 + } + if(device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL) == RT_EOK) + { + rt_thread_mdelay(RT_TICK_PER_SECOND);//这里如果有TCP连接,先关掉TCP,没有返回错误无所谓 + } rt_thread_mdelay(RT_TICK_PER_SECOND); if (device->class->device_ops->control(device, AT_DEVICE_CTRL_WAKEUP, RT_NULL) == RT_EOK) { @@ -1552,7 +1557,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter) if (at_obj_exec_cmd(device->client, resp, "AT+CSQ") == RT_EOK) { int signal_strength = 0, err_rate = 0; - + if (at_resp_parse_line_args_by_kw(resp, "+CSQ:", "+CSQ: %d,%d", &signal_strength, &err_rate) > 0) { if ((signal_strength != 99) && (signal_strength != 0)) @@ -1575,7 +1580,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter) if (at_obj_exec_cmd(device->client, resp, "AT+CEREG?") == RT_EOK) // 60s内注册CS业务 { int link_stat = 0; - + if (at_resp_parse_line_args_by_kw(resp, "+CEREG:", "+CEREG: %*d,%d", &link_stat) > 0) { if ((link_stat == 1) || (link_stat == 5)) @@ -1600,7 +1605,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter) delay_n = 0; nt26k_disconnect_retry_flag = 0; at_delete_resp(resp); - retry_delay = 1000; // 重置重连延迟时间 + retry_delay = 8000; // 重置重连延迟时间 rt_thread_mdelay(100); Nt26k_Send_Event(kNt26kHeartbeatEvent); }