diff --git a/applications/user_sys.h b/applications/user_sys.h index 305bef6..5eda3a0 100644 --- a/applications/user_sys.h +++ b/applications/user_sys.h @@ -20,7 +20,7 @@ #define MAX_EXPIRATION_DAYS (365 * MAX_EXPIRATION_YEARS + 30 * 3U) #define SYS_HW_VERSION (0X22U) -#define SYS_SW_VERSION (0X12U) +#define SYS_SW_VERSION (0X13U) #define SYS_IOT_UPLOAD_CYCLE_MIN (0X3C00U) // 高位在前,低位在后 #define SYS_IOT_RETRY (0X03U) #define SYS_TEMP_ALARM_THRESHOLD (0X30U) diff --git a/bsp/src/bsp_nt26k.c b/bsp/src/bsp_nt26k.c index 60aa010..fb89f12 100644 --- a/bsp/src/bsp_nt26k.c +++ b/bsp/src/bsp_nt26k.c @@ -813,9 +813,6 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, if (result != RT_EOK) { LOG_E("nt26k send failed\n"); - nt26k_connect_sever_flag = 0; - nt26k_conncet_tcp_flag = 0; - rt_sem_release(nt26k_disconnect_sem); ret = RT_ERROR; continue; } @@ -831,9 +828,7 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, else { // 收不到说明在平台未注册或者信号不行,此时nt26k_connect_sever_flag 为0,但nt26k_conncet_tcp_flag = 1;此时不发起重连,等待事件触发就行 - nt26k_connect_sever_flag = 0; - nt26k_conncet_tcp_flag = 0; - rt_sem_release(nt26k_disconnect_sem); + ret = RT_ERROR; } } @@ -841,12 +836,6 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, } else { - if (!nt26k_disconnect_retry_flag) - { - LOG_D("断网,启动重连\n"); - rt_sem_release(nt26k_disconnect_sem); - } - LOG_D("断网,等待连接中......\n"); ret = RT_ERROR; } rt_thread_mdelay(3000); @@ -866,6 +855,21 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, ret = RT_EOK; } } + else + { + if (ret != RT_EOK) + { + nt26k_connect_sever_flag = 0; + nt26k_conncet_tcp_flag = 0; + if (!nt26k_disconnect_retry_flag) + { + LOG_D("断网,启动重连\n"); + rt_sem_release(nt26k_disconnect_sem); + } + LOG_D("断网,等待连接中......\n"); + } + } + return ret; } @@ -1540,7 +1544,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter) if (device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL) == RT_EOK) { LOG_D("重连网络成功\n"); - nt26k_conncet_tcp_flag = RT_TRUE; + nt26k_conncet_tcp_flag = 1; delay_n = 0; nt26k_disconnect_retry_flag = 0; at_delete_resp(resp); @@ -1566,6 +1570,10 @@ static void Nt26k_Life_Thread_Entry(void *parameter) goto __exit; } } + else + { + nt26k_disconnect_retry_flag = 0; + } } else { @@ -1575,12 +1583,12 @@ static void Nt26k_Life_Thread_Entry(void *parameter) __exit: if (result != RT_EOK) { - nt26k_disconnect_retry_flag = 1; - LOG_D("联网错误,等待10s后重连"); if (resp != RT_NULL) { at_delete_resp(resp); } + nt26k_disconnect_retry_flag = 1; + LOG_D("联网错误,等待10s后重连"); delay_n++; if (delay_n >= 360) // 连续重连大于1小时都不行,则重启设备 {