|
@@ -70,11 +70,9 @@ UINT8 bcc_chk(UINT8* data, UINT8 length);
|
|
|
//线程任务区
|
|
|
static void TcpTask(void* arg)
|
|
|
{
|
|
|
- INT32 connectionId = -1;
|
|
|
appSetEDRXSettingSync(0,5,1800000);
|
|
|
appSetPSMSettingSync(1,3*60*60,10);
|
|
|
appSetCFUN(1);
|
|
|
- UINT8 Error_count=0;
|
|
|
psEventQueueHandle = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(eventCallbackMessage_t*));
|
|
|
PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_IDLE);
|
|
|
if (psEventQueueHandle == NULL)
|
|
@@ -89,6 +87,7 @@ static void TcpTask(void* arg)
|
|
|
{
|
|
|
Error_Mutex = osMutexNew(NULL);
|
|
|
}
|
|
|
+ osDelay(5000);//等待驻网延时5s
|
|
|
while (true)
|
|
|
{
|
|
|
osDelay(100);
|
|
@@ -115,7 +114,7 @@ static void TcpTask(void* arg)
|
|
|
switch(queueItem->messageId)
|
|
|
{
|
|
|
case QMSG_ID_NW_IP_READY:
|
|
|
- if(connectionId < 0)
|
|
|
+ if(socContext.id < 0)
|
|
|
{
|
|
|
struct addrinfo hints;
|
|
|
struct addrinfo *servinfo = NULL;
|
|
@@ -133,15 +132,14 @@ static void TcpTask(void* arg)
|
|
|
for(int i=0;i<16;i++)
|
|
|
printf("%c",*(Tcp_ip_des+i));
|
|
|
#endif
|
|
|
- connectionId = tcpipConnectionCreate(TCPIP_CONNECTION_PROTOCOL_TCP, PNULL, 0, Tcp_ip_des, QX_TCP_PORT, socketAppConnectionCallBack);
|
|
|
+ socContext.id = tcpipConnectionCreate(TCPIP_CONNECTION_PROTOCOL_TCP, PNULL, 0, Tcp_ip_des, QX_TCP_PORT, socketAppConnectionCallBack);
|
|
|
if (NULL != servinfo) {
|
|
|
freeaddrinfo(servinfo);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if(connectionId >= 0)
|
|
|
+ if(socContext.id >= 0)
|
|
|
{
|
|
|
- socContext.id = connectionId;
|
|
|
socContext.status = APP_SOCKET_CONNECTION_CONNECTED;
|
|
|
#ifdef USING_PRINTF
|
|
|
printf("create connection %u success", socContext.id);
|
|
@@ -158,15 +156,12 @@ static void TcpTask(void* arg)
|
|
|
}
|
|
|
break;
|
|
|
case QMSG_ID_NW_IP_NOREACHABLE:
|
|
|
- if(Error_count>=10)
|
|
|
{
|
|
|
- Error_count = 0;
|
|
|
- #ifdef DEBUGLOG
|
|
|
- Debug_printf("404\n");
|
|
|
- #endif
|
|
|
+ Error_count++;
|
|
|
appSetCFUN(0);
|
|
|
- osDelay(1000);
|
|
|
- EC_SystemReset();
|
|
|
+ osDelay(5000);
|
|
|
+ appSetCFUN(1);
|
|
|
+ osDelay(5000);
|
|
|
}
|
|
|
break;
|
|
|
case QMSG_ID_SOCK_SENDPKG:
|
|
@@ -176,7 +171,6 @@ static void TcpTask(void* arg)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Error_count++;
|
|
|
sendQueueMsg(QMSG_ID_NW_IP_READY, 0);
|
|
|
#ifdef USING_PRINTF
|
|
|
printf("connection %u or status invalid", socContext.id, socContext.status);
|
|
@@ -428,6 +422,7 @@ static void TcpDataInfoAssembleSend()
|
|
|
else
|
|
|
{
|
|
|
TcpSendLen = 0xFD & TcpSendLen;
|
|
|
+ sendQueueMsg(QMSG_ID_NW_IP_SUSPEND, 0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -479,6 +474,7 @@ static void TcpDataInfoAssembleSend()
|
|
|
else
|
|
|
{
|
|
|
TcpSendLen = 0xFB & TcpSendLen;
|
|
|
+ sendQueueMsg(QMSG_ID_NW_IP_SUSPEND, 0);
|
|
|
}
|
|
|
}
|
|
|
#ifdef USING_PRINTF1
|
|
@@ -564,6 +560,7 @@ static void TcpDataInfoAssembleSend()
|
|
|
else
|
|
|
{
|
|
|
TcpSendLen = 0xFE & TcpSendLen;
|
|
|
+ sendQueueMsg(QMSG_ID_NW_IP_SUSPEND, 0);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -581,12 +578,12 @@ static void TcpDataInfoAssembleSend()
|
|
|
if(BufferLen>200)
|
|
|
{
|
|
|
Debug_Del_Logfile();
|
|
|
- return;
|
|
|
+ #ifdef DEBUGLOG
|
|
|
+ Debug_printf("Sys:%d\n",AppDataInfo.SysReStart);
|
|
|
+ #endif
|
|
|
+ BufferLen = Debug_GetSize();
|
|
|
}
|
|
|
UINT8 rbuf[BufferLen];
|
|
|
- #ifdef USING_PRINTF
|
|
|
- printf("BufferLen:%d!\n",BufferLen);
|
|
|
- #endif
|
|
|
Debug_Read_Logfile(rbuf,BufferLen);
|
|
|
SendBuffer = malloc(BufferLen+sizeof(DebugMsgInfo));
|
|
|
memcpy(SendBuffer+sizeof(DebugMsgInfo)-1, rbuf,BufferLen);
|
|
@@ -732,14 +729,6 @@ static void TcpDataInfoRecvHandle()
|
|
|
}
|
|
|
default:
|
|
|
{
|
|
|
- TcpCmdAnswer[3] = 0x0f;
|
|
|
- memcpy(&TcpCmdAnswer[4],(Ptr+4),BATT_SN_LEN);
|
|
|
- TcpCmdAnswer[21] = TCP_ENCPT_DISABLE;
|
|
|
- TcpCmdAnswer[22] = 0x00;
|
|
|
- TcpCmdAnswer[23] = 0x06;
|
|
|
- memcpy(&TcpCmdAnswer[24],(Ptr+24),6);
|
|
|
- TcpCmdAnswer[30] = bcc_chk(TcpCmdAnswer,30);
|
|
|
- tcpipConnectionSend(socContext.id,TcpCmdAnswer,31,0,0,0);
|
|
|
break;
|
|
|
}
|
|
|
}
|