修改联网策略,改为固定10s一次,所有发送失败都重新发起连接
This commit is contained in:
parent
0acbc29baf
commit
782d77531c
|
@ -5,7 +5,7 @@
|
||||||
"type": "mrs-debugger",
|
"type": "mrs-debugger",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"name": "JT-DT-YD4N02A_RTT_MRS-4G",
|
"name": "JT-DT-YD4N02A_RTT_MRS-4G",
|
||||||
"cwd": "c:\\Users\\张喆1223\\Desktop\\NT26K\\JT-DT-YD4N02A_4G_RTT_MRS",
|
"cwd": "d:\\SXDT\\Project\\CH32\\JT-DT-YD4N02A_RTT_MRS-NT26K",
|
||||||
"openOCDCfg": {
|
"openOCDCfg": {
|
||||||
"useLocalOpenOCD": true,
|
"useLocalOpenOCD": true,
|
||||||
"executable": "c:/MounRiver/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/openocd.exe",
|
"executable": "c:/MounRiver/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/openocd.exe",
|
||||||
|
@ -39,8 +39,8 @@
|
||||||
"additionalCommands": []
|
"additionalCommands": []
|
||||||
},
|
},
|
||||||
"loadedFiles": {
|
"loadedFiles": {
|
||||||
"executableFile": "c:\\Users\\张喆1223\\Desktop\\NT26K\\JT-DT-YD4N02A_4G_RTT_MRS\\obj\\JT-DT-YD4N02A_RTT_MRS-4G.elf",
|
"executableFile": "d:\\SXDT\\Project\\CH32\\JT-DT-YD4N02A_RTT_MRS-NT26K\\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",
|
"symbolFile": "d:\\SXDT\\Project\\CH32\\JT-DT-YD4N02A_RTT_MRS-NT26K\\obj\\JT-DT-YD4N02A_RTT_MRS-4G.elf",
|
||||||
"executableFileOffset": 0,
|
"executableFileOffset": 0,
|
||||||
"symbolFileOffset": 0
|
"symbolFileOffset": 0
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-10-09 08:42:14
|
* @Date: 2024-10-09 08:42:14
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-02-06 09:27:48
|
* @LastEditTime: 2025-02-07 08:44:58
|
||||||
* @FilePath: \JT-DT-YD4N02A_RTT_MRS-NT26K\bsp\src\bsp_nt26k.c
|
* @FilePath: \JT-DT-YD4N02A_RTT_MRS-NT26K\bsp\src\bsp_nt26k.c
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
|
@ -346,7 +346,7 @@ int Nt26k_Send_Data(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd,
|
||||||
return RT_ERROR;
|
return RT_ERROR;
|
||||||
}
|
}
|
||||||
rt_memset(ops->body, 0, sizeof(struct DataBody));
|
rt_memset(ops->body, 0, sizeof(struct DataBody));
|
||||||
|
|
||||||
ret = nt26k_ops.update_data(ops, device_type, event_type);
|
ret = nt26k_ops.update_data(ops, device_type, event_type);
|
||||||
if (ret == RT_EOK)
|
if (ret == RT_EOK)
|
||||||
{
|
{
|
||||||
|
@ -361,7 +361,7 @@ int Nt26k_Send_Data(struct Nt26k_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd,
|
||||||
ret = -ret;
|
ret = -ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -795,13 +795,13 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device,
|
||||||
|
|
||||||
if (event) // 处理该事件
|
if (event) // 处理该事件
|
||||||
{
|
{
|
||||||
LOG_D("%s上报\n", event->event_name);// 打印事件的名称
|
LOG_D("%s上报\n", event->event_name); // 打印事件的名称
|
||||||
|
|
||||||
for (size_t i = 0; i < max_retry_count; i++)
|
for (size_t i = 0; i < max_retry_count; i++)
|
||||||
{
|
{
|
||||||
if (nt26k_conncet_tcp_flag)
|
if (nt26k_conncet_tcp_flag)
|
||||||
{
|
{
|
||||||
if (event->send_func)// 如果事件有关联的发送函数,则调用该发送函数
|
if (event->send_func) // 如果事件有关联的发送函数,则调用该发送函数
|
||||||
{
|
{
|
||||||
#ifdef TEST_ENABLE
|
#ifdef TEST_ENABLE
|
||||||
RTC_ShowTime(); // 每次发送打印下时间,容易定位问题
|
RTC_ShowTime(); // 每次发送打印下时间,容易定位问题
|
||||||
|
@ -811,7 +811,9 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device,
|
||||||
if (result != RT_EOK)
|
if (result != RT_EOK)
|
||||||
{
|
{
|
||||||
LOG_E("nt26k send failed\n");
|
LOG_E("nt26k send failed\n");
|
||||||
nt26k_connect_sever_flag = 1;
|
nt26k_connect_sever_flag = 0;
|
||||||
|
nt26k_conncet_tcp_flag = 0;
|
||||||
|
rt_sem_release(nt26k_disconnect_sem);
|
||||||
ret = RT_ERROR;
|
ret = RT_ERROR;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -828,19 +830,21 @@ int Nt26k_Process_Events(Nt26kEvent nt26k_recv_event, struct at_device *device,
|
||||||
{
|
{
|
||||||
// 收不到说明在平台未注册或者信号不行,此时nt26k_connect_sever_flag 为0,但nt26k_conncet_tcp_flag = 1;此时不发起重连,等待事件触发就行
|
// 收不到说明在平台未注册或者信号不行,此时nt26k_connect_sever_flag 为0,但nt26k_conncet_tcp_flag = 1;此时不发起重连,等待事件触发就行
|
||||||
nt26k_connect_sever_flag = 0;
|
nt26k_connect_sever_flag = 0;
|
||||||
ret = RT_ERROR;
|
nt26k_conncet_tcp_flag = 0;
|
||||||
|
rt_sem_release(nt26k_disconnect_sem);
|
||||||
|
ret = RT_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!nt26k_disconnect_retry_flag)
|
// if (!nt26k_disconnect_retry_flag)
|
||||||
{
|
// {
|
||||||
LOG_D("断网,启动重连\n");
|
LOG_D("断网,启动重连\n");
|
||||||
rt_sem_release(nt26k_disconnect_sem);
|
rt_sem_release(nt26k_disconnect_sem);
|
||||||
}
|
// }
|
||||||
LOG_D("断网,等待连接中......\n");
|
// LOG_D("断网,等待连接中......\n");
|
||||||
ret = RT_ERROR;
|
ret = RT_ERROR;
|
||||||
}
|
}
|
||||||
rt_thread_mdelay(5000);
|
rt_thread_mdelay(5000);
|
||||||
|
@ -1452,7 +1456,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter)
|
||||||
struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, nt26k->device_name);
|
struct at_device *device = at_device_get_by_name(AT_DEVICE_NAMETYPE_NETDEV, nt26k->device_name);
|
||||||
RT_ASSERT(device);
|
RT_ASSERT(device);
|
||||||
rt_err_t result = RT_EOK;
|
rt_err_t result = RT_EOK;
|
||||||
rt_uint32_t delay_n = 1;
|
rt_uint32_t delay_n = 0;
|
||||||
|
|
||||||
LOG_D("nt26k_life_thread entry\n");
|
LOG_D("nt26k_life_thread entry\n");
|
||||||
|
|
||||||
|
@ -1465,7 +1469,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter)
|
||||||
{
|
{
|
||||||
LOG_D("重连网络中...\n");
|
LOG_D("重连网络中...\n");
|
||||||
nt26k_connect_sever_flag = 0;
|
nt26k_connect_sever_flag = 0;
|
||||||
at_response_t resp = at_create_resp(64, 0, 5000);
|
at_response_t resp = at_create_resp(128, 0, 5000);
|
||||||
if (resp == RT_NULL)
|
if (resp == RT_NULL)
|
||||||
{
|
{
|
||||||
LOG_E("No memory for response structure!");
|
LOG_E("No memory for response structure!");
|
||||||
|
@ -1475,6 +1479,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter)
|
||||||
if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_ON, RT_NULL) == RT_EOK)
|
if (device->class->device_ops->control(device, AT_DEVICE_CTRL_POWER_ON, RT_NULL) == RT_EOK)
|
||||||
{
|
{
|
||||||
LOG_D("AT device power on success");
|
LOG_D("AT device power on success");
|
||||||
|
rt_thread_mdelay(RT_TICK_PER_SECOND / 2);
|
||||||
/* disable echo */
|
/* disable echo */
|
||||||
at_client_obj_wait_connect(device->client, 5000);
|
at_client_obj_wait_connect(device->client, 5000);
|
||||||
/* disable echo */
|
/* disable echo */
|
||||||
|
@ -1531,6 +1536,7 @@ static void Nt26k_Life_Thread_Entry(void *parameter)
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
rt_thread_mdelay(1);
|
||||||
at_delete_resp(resp);
|
at_delete_resp(resp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1542,19 +1548,21 @@ static void Nt26k_Life_Thread_Entry(void *parameter)
|
||||||
__exit:
|
__exit:
|
||||||
if (result != RT_EOK)
|
if (result != RT_EOK)
|
||||||
{
|
{
|
||||||
nt26k_disconnect_retry_flag = 1;
|
// nt26k_disconnect_retry_flag = 1;
|
||||||
LOG_D("重连网络失败,等待%d s后重连\n", delay_n * 5);
|
// LOG_D("重连网络失败,等待%d s后重连\n", delay_n * 5);
|
||||||
rt_thread_mdelay(5000);
|
LOG_D("重连网络失败,等待10s后重连\n");
|
||||||
|
|
||||||
// rt_thread_mdelay(delay_n * 5000);
|
// rt_thread_mdelay(delay_n * 5000);
|
||||||
|
|
||||||
// delay_n++;
|
delay_n++;
|
||||||
// if (delay_n >= 66) // 大于3小时的重连都不行,则重启设备
|
if (delay_n >= 360) // 连续重连大于1小时都不行,则重启设备
|
||||||
// {
|
{
|
||||||
// Flash_Set_WorkDuration(work_duration);
|
Flash_Set_WorkDuration(work_duration);
|
||||||
// delay_n = 0;
|
rt_thread_mdelay(100);
|
||||||
// reboot();
|
reboot();
|
||||||
// }
|
}
|
||||||
nt26k_conncet_tcp_flag = 0;
|
rt_thread_mdelay(10000);
|
||||||
|
// nt26k_conncet_tcp_flag = 0;
|
||||||
rt_sem_release(nt26k_disconnect_sem);
|
rt_sem_release(nt26k_disconnect_sem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1582,7 +1590,7 @@ int BSP_Nt26k_Thread_Init(void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
timeout = iot_upload_time * 60 * RT_TICK_PER_SECOND;
|
timeout = iot_upload_time * 60 * RT_TICK_PER_SECOND;
|
||||||
if (timeout >= RT_TICK_MAX / 2)//超了就直接默认值
|
if (timeout >= RT_TICK_MAX / 2) // 超了就直接默认值
|
||||||
{
|
{
|
||||||
timeout = 60 * 60 * RT_TICK_PER_SECOND;
|
timeout = 60 * 60 * RT_TICK_PER_SECOND;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue