|
|
@ -152,22 +152,24 @@ int16_t client_tcp_connect(Cclient_t *client) { |
|
|
return rtn; |
|
|
return rtn; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static rt_tick_t last_rx_tick = 0; |
|
|
int16_t client_yield(CLte_dev_t *pLte_dev) { |
|
|
int16_t client_yield(CLte_dev_t *pLte_dev) { |
|
|
int16_t rtn = 0; |
|
|
int16_t rtn = 0; |
|
|
|
|
|
|
|
|
while (1) { |
|
|
while (1) { |
|
|
if (lte_dev.client1->connect_sta == true) { |
|
|
if (lte_dev.client1->connect_sta == true) { |
|
|
rt_err_t ret = rt_sem_take(lte_dev.com_dev_rx_sem, 1000); |
|
|
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) { |
|
|
if (RT_EOK == ret) { |
|
|
rt_ssize_t len = 0; |
|
|
rt_ssize_t len = 0; |
|
|
while (1) { |
|
|
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, |
|
|
len = rt_device_read(lte_dev.com_dev, 0, lte_dev.at_buf, |
|
|
sizeof(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) { |
|
|
if (len > 0) { |
|
|
/*收到TCP关闭的消息*/ |
|
|
/*收到TCP关闭的消息*/ |
|
|
if (strstr((const char *)lte_dev.at_buf, CLOSED)) { |
|
|
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)) { |
|
|
if (NULL != strstr((char *)lte_dev.at_buf, cmd_str)) { |
|
|
EC800K_Reset(); |
|
|
EC800K_Reset(); |
|
|
pLte_dev->client1->connect_sta = false; |
|
|
pLte_dev->client1->connect_sta = false; |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
return 1; |
|
|
|
|
|
|
|
|
break; |
|
|
} else if (strstr((const char *)lte_dev.at_buf, "NO CARRIER")) { |
|
|
} else if (strstr((const char *)lte_dev.at_buf, "NO CARRIER")) { |
|
|
rt_kprintf("disconnect!!!"); |
|
|
rt_kprintf("disconnect!!!"); |
|
|
|
|
|
hw_printf("disconnect!!!"); |
|
|
pLte_dev->client1->connect_sta = false; |
|
|
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; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
last_rx_tick = rt_tick_get(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
BSP_LTE_Config(); |
|
|
BSP_LTE_Config(); |
|
|
client_tcp_connect(lte_dev.client1); |
|
|
client_tcp_connect(lte_dev.client1); |
|
|
|
|
|
last_rx_tick = rt_tick_get(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|