diff --git a/bsp/src/at_device_nt26k.c b/bsp/src/at_device_nt26k.c index f3b1567..08eef4d 100644 --- a/bsp/src/at_device_nt26k.c +++ b/bsp/src/at_device_nt26k.c @@ -102,7 +102,7 @@ static rt_err_t nt26k_power_off(struct at_device *device) struct at_device_nt26k *nt26k = RT_NULL; nt26k = (struct at_device_nt26k *)device->user_data; - device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL); + // device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL); rt_pin_write(nt26k->pwr_en_pin, PIN_LOW); diff --git a/bsp/src/bsp_nt26k.c b/bsp/src/bsp_nt26k.c index 6423b2f..60aa010 100644 --- a/bsp/src/bsp_nt26k.c +++ b/bsp/src/bsp_nt26k.c @@ -859,7 +859,7 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device, { rt_thread_mdelay(500); } - if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_OFF, RT_NULL) == RT_EOK) + if (device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL) == RT_EOK) { LOG_D("关闭模组"); nt26k_power_down_flag = 1; @@ -1478,7 +1478,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter) at_delete_resp(resp); result = -RT_ETIMEOUT; } - if (device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL) == RT_EOK) + if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_OFF, RT_NULL) == RT_EOK) { if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_ON, RT_NULL) == RT_EOK) { @@ -1486,7 +1486,11 @@ static void Nt26k_Life_Thread_Entry(void *parameter) rt_thread_mdelay(RT_TICK_PER_SECOND / 2); /* disable echo */ LOG_D("AT"); - at_client_obj_wait_connect(device->client, 10000); + if (at_client_obj_wait_connect(device->client, 10000) != RT_EOK) + { + result = -RT_ERROR; + goto __exit; + } /* disable echo */ LOG_D("ATE0"); @@ -1543,7 +1547,23 @@ static void Nt26k_Life_Thread_Entry(void *parameter) rt_thread_mdelay(100); Nt26k_Send_Event(kNt26kHeartbeatEvent); } + else + { + if (device->class->device_ops->control(device, AT_DEVICE_RF_CLOSE, RT_NULL) == RT_EOK) + { + LOG_D("关闭模组功能"); + } + goto __exit; + } } + else + { + goto __exit; + } + } + else + { + goto __exit; } } } @@ -1556,15 +1576,11 @@ static void Nt26k_Life_Thread_Entry(void *parameter) if (result != RT_EOK) { nt26k_disconnect_retry_flag = 1; - // LOG_D("重连网络失败,等待%d s后重连\n", delay_n * 5); - LOG_D("重连网络失败,等待10s后重连\n"); - - // rt_thread_mdelay(delay_n * 5000); + LOG_D("联网错误,等待10s后重连"); if (resp != RT_NULL) { at_delete_resp(resp); } - delay_n++; if (delay_n >= 360) // 连续重连大于1小时都不行,则重启设备 { @@ -1572,7 +1588,6 @@ static void Nt26k_Life_Thread_Entry(void *parameter) rt_thread_mdelay(100); reboot(); } - rt_thread_mdelay(IMEI_Delay() + 10000); nt26k_conncet_tcp_flag = 0; rt_sem_release(nt26k_disconnect_sem); } diff --git a/rt-thread/rtconfig.h b/rt-thread/rtconfig.h index ca53d9c..5246183 100644 --- a/rt-thread/rtconfig.h +++ b/rt-thread/rtconfig.h @@ -15,8 +15,8 @@ /*使用动态日志及密码功能时,需开启宏 FINSH_USING_AUTH ULOG_USING_FILTER ENABLE_LOG_ALL ULOG_OUTPUT_LVL = 7 以及设置ulog.c 1522行 输出等级为0*/ /**/ -#define FINSH_USING_AUTH //开启终端密码登录功能 -#define ULOG_USING_FILTER //开启动态修改日志等级 默认修改在ulog.c 1522行 +// #define FINSH_USING_AUTH //开启终端密码登录功能 +// #define ULOG_USING_FILTER //开启动态修改日志等级 默认修改在ulog.c 1522行 #define ENABLE_LOG_ALL #define TEST_ENABLE //打开所有的终端测试程序