|
@@ -33,7 +33,7 @@ uint8_t MainSlpHandler = 0xff;
|
|
|
uint8_t UartSlpHandler = 0xfe;
|
|
|
uint8_t CanSlpHandler = 0xfd;
|
|
|
uint8_t TcpSlpHandler = 0xfd;
|
|
|
-int TcpconnectID = -1;
|
|
|
+
|
|
|
#define Uart_Send_LEN (8)
|
|
|
#define Uart_Rece_LEN (40)
|
|
|
|
|
@@ -47,6 +47,8 @@ static QueueHandle_t psEventQueueHandle;
|
|
|
static UINT8 gImsi[16] = {0};
|
|
|
static INT32 sockfd = -1;
|
|
|
static UINT32 gCellID = 0;
|
|
|
+int TcpconnectID = -1;
|
|
|
+volatile bool tcp_ready = false;
|
|
|
|
|
|
uint8_t Batt_Cell_Num = 14;//默认数值14、17
|
|
|
uint8_t Batt_Cell_Num_2 ;//默认数值
|
|
@@ -392,6 +394,7 @@ uint8_t* Uart_Receive_func(Uart_Receive_Type Uart_Receive_Msg,uint8_t* Uart_Rece
|
|
|
}
|
|
|
else //接收数据的校验不过屏蔽
|
|
|
{
|
|
|
+ osDelay(2000);
|
|
|
#ifdef USING_PRINTF
|
|
|
printf("Uart_Rece_buffer: ");
|
|
|
for(int i=0;i<Data_Len;i++)
|
|
@@ -883,10 +886,6 @@ static INT32 socketRegisterPSUrcCallback(urcID_t eventID, void *param, UINT32 pa
|
|
|
{
|
|
|
cereg = (CmiPsCeregInd *)param;
|
|
|
gCellID = cereg->celId;
|
|
|
- if (gCellID==0)
|
|
|
- {
|
|
|
- TcpconnectID = -1;
|
|
|
- }
|
|
|
#ifdef USING_PRINTF
|
|
|
printf("URCCallBack:CEREG changed act:%d celId:%d locPresent:%d tac:%d\n", cereg->act, cereg->celId, cereg->locPresent, cereg->tac);
|
|
|
#endif
|
|
@@ -897,6 +896,7 @@ static INT32 socketRegisterPSUrcCallback(urcID_t eventID, void *param, UINT32 pa
|
|
|
netif = (NmAtiNetifInfo *)param;
|
|
|
if (netif->netStatus == NM_NETIF_ACTIVATED)
|
|
|
sendQueueMsg(QMSG_ID_NW_IP_READY, 0);
|
|
|
+ tcp_ready = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -993,37 +993,48 @@ static void Tcp_Task(void* arg)
|
|
|
}
|
|
|
case PROCESS_TCP_STATE_LINK:
|
|
|
{
|
|
|
- if(TcpconnectID<0)
|
|
|
+ if(!tcp_ready)
|
|
|
{
|
|
|
#ifdef USING_PRINTF
|
|
|
- printf("Connecting...!%d\n",TcpconnectID);
|
|
|
+ printf("tcp not ready!\n");
|
|
|
#endif
|
|
|
- if (getaddrinfo( serverip, serverport , &hints, &server_res ) != 0 )
|
|
|
- {
|
|
|
- #ifdef USING_PRINTF
|
|
|
- printf("TCP connect unresolved dns\n");
|
|
|
- #endif
|
|
|
- }
|
|
|
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
|
|
- TcpconnectID = connect(sockfd, (struct sockaddr *) server_res->ai_addr, server_res->ai_addrlen);
|
|
|
+ PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_IDLE);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
if(TcpconnectID<0)
|
|
|
{
|
|
|
#ifdef USING_PRINTF
|
|
|
- printf("Connect failed!%d\n",TcpconnectID);
|
|
|
+ printf("Connecting...!%d\n",TcpconnectID);
|
|
|
#endif
|
|
|
- close(sockfd);
|
|
|
- PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_IDLE);
|
|
|
- break;
|
|
|
+ if (getaddrinfo( serverip, serverport , &hints, &server_res ) != 0 )
|
|
|
+ {
|
|
|
+ #ifdef USING_PRINTF
|
|
|
+ printf("TCP connect unresolved dns\n");
|
|
|
+ #endif
|
|
|
+ }
|
|
|
+ sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
|
|
+ TcpconnectID = connect(sockfd, (struct sockaddr *) server_res->ai_addr, server_res->ai_addrlen);
|
|
|
+ if(TcpconnectID<0)
|
|
|
+ {
|
|
|
+ #ifdef USING_PRINTF
|
|
|
+ printf("Connect failed!%d\n",TcpconnectID);
|
|
|
+ #endif
|
|
|
+ close(sockfd);
|
|
|
+ PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_IDLE);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_WORK);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
+ else
|
|
|
{
|
|
|
PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_WORK);
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_WORK);
|
|
|
- }
|
|
|
break;
|
|
|
}
|
|
|
case PROCESS_TCP_STATE_WORK:
|