|
@@ -54,13 +54,13 @@ void Uart_4G_Task(void *pvParameters)
|
|
|
uint8 pReadLen = 0;
|
|
|
InitFunc(); // 4G模块初始化,注:AT同步不通过,没有进行次数判定及跳转
|
|
|
uint32 SendTimerCounter = 0;
|
|
|
+ uint32 RecvTimerDelay = 0;
|
|
|
for (;;)
|
|
|
{
|
|
|
switch (gProcess_Tcp_Task)
|
|
|
{
|
|
|
case PROCESS_TCP_IDLE: //空闲状态
|
|
|
{
|
|
|
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1,STD_OFF);
|
|
|
memset(RX_Buffer[UART_LPUART1], 0x00, sizeof(RX_Buffer[UART_LPUART1]));
|
|
|
UART_Receive_Data(UART_LPUART1, RX_Buffer[UART_LPUART1], &pReadLen, 50);//10ms检测
|
|
|
if (SocketId < 0)
|
|
@@ -70,12 +70,17 @@ void Uart_4G_Task(void *pvParameters)
|
|
|
else if (pReadLen>0)
|
|
|
{
|
|
|
PROC_TCP_STATE_SWITCH(PROCESS_TCP_RECV);
|
|
|
+ RecvTimerDelay = TimerCounter;
|
|
|
}
|
|
|
else if (AppConfigInfo.eolFlg == 1 && (TimerCounter - SendTimerCounter) >= 1000 && TcpWorkState==0)
|
|
|
{
|
|
|
SendTimerCounter = TimerCounter;
|
|
|
PROC_TCP_STATE_SWITCH(PROCESS_TCP_SEND);
|
|
|
}
|
|
|
+ if((TimerCounter-RecvTimerDelay)>=10000 && TcpWorkState==1)//10s内没有命令下发,进行正常发送任务
|
|
|
+ {
|
|
|
+ TcpWorkState = 0;
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
case PROCESS_TCP_ATSYS:
|
|
@@ -124,7 +129,7 @@ void Uart_4G_Task(void *pvParameters)
|
|
|
}
|
|
|
case PROCESS_TCP_SEND: //网络数据发送
|
|
|
{
|
|
|
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1,STD_ON);
|
|
|
+// Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1,STD_ON);
|
|
|
sint8 SendRet = -1;
|
|
|
SendRet = TcpDataSendFunc(SocketId);
|
|
|
if (SendRet == 0)
|
|
@@ -140,6 +145,7 @@ void Uart_4G_Task(void *pvParameters)
|
|
|
}
|
|
|
case PROCESS_TCP_RECV: //网络数据接收,100ms空闲状态下即可接收
|
|
|
{
|
|
|
+ Dio_FlipChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1);
|
|
|
if (pReadLen > 0 && SocketId >= 0)
|
|
|
{
|
|
|
TcpDataInfoRecvHandle(RX_Buffer[UART_LPUART1], pReadLen);
|
|
@@ -642,7 +648,7 @@ void TcpDataEncode(uint32 *PtrSendAddr, uint16 *SendLen)
|
|
|
{
|
|
|
DataIdx = VerMsg; //版本信息发送
|
|
|
}
|
|
|
- else if (TcpSendTimeCounter % 10 == 0)
|
|
|
+ else if (TcpSendTimeCounter % 30 == 0)
|
|
|
{
|
|
|
DataIdx = TruckBattMsg; //电池信息发送
|
|
|
}
|
|
@@ -1099,6 +1105,7 @@ static void TcpDataInfoRecvHandle(uint8 *DataRecv, uint16 DataRecvLen)
|
|
|
TcpCmdAnswer[2] = TCP_CONCMD_SYM;
|
|
|
if (*(Ptr + 30) == 0x01) //远程升级指令
|
|
|
{
|
|
|
+ Fota_Func(Ptr, SocketId);
|
|
|
}
|
|
|
else
|
|
|
{
|