|
@@ -38,7 +38,7 @@ static void TcpTask(void* arg)
|
|
|
}
|
|
|
if(TcpRecvHandle == NULL)
|
|
|
{
|
|
|
- TcpRecvHandle = osMessageQueueNew(1,sizeof(TcpipConnectionRecvDataInd*), NULL);
|
|
|
+ TcpRecvHandle = osMessageQueueNew(3,sizeof(TcpipConnectionRecvDataInd*), NULL);
|
|
|
}
|
|
|
osDelay(5000);//等待驻网延时5s
|
|
|
while (true)
|
|
@@ -226,7 +226,6 @@ static void TcpDataInfoAssembleSend()
|
|
|
UINT16 DataLen=0;
|
|
|
UINT8 BattSendFreq=30;
|
|
|
UINT8 GpsSendFreq=30;
|
|
|
- UINT8 WorkState=0;
|
|
|
|
|
|
UINT16 year;
|
|
|
UINT8 month,day,hour,minute,sec;
|
|
@@ -234,7 +233,43 @@ static void TcpDataInfoAssembleSend()
|
|
|
UINT8 i = 0;
|
|
|
INT8 len = -1;
|
|
|
UINT8 *SendBuffer = NULL;
|
|
|
- WorkState = battWorkState; //电池工作模式的延迟转换由Maintask负责,发送频率调节由tcp负责
|
|
|
+ //电池工作模式的延迟转换由Maintask负责,发送频率调节由tcp负责
|
|
|
+ switch (BattWorkStateDelay)
|
|
|
+ {
|
|
|
+ case BATT_IDLE_SYM:
|
|
|
+ {
|
|
|
+ BattSendFreq = AppDataInfo.BattInfoSendFreqLow;
|
|
|
+ GpsSendFreq = AppDataInfo.PosInfoSendFreqLow;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case BATT_CHARGE_SYM:
|
|
|
+ {
|
|
|
+ BattSendFreq = AppDataInfo.BattInfoSendFreqHigh;
|
|
|
+ GpsSendFreq = AppDataInfo.PosInfoSendFreqLow;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case BATT_DISCHARGE_SYM:
|
|
|
+ {
|
|
|
+ BattSendFreq = AppDataInfo.BattInfoSendFreqNomal;
|
|
|
+ GpsSendFreq = AppDataInfo.PosInfoSendFreqHigh;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ {
|
|
|
+ BattSendFreq = AppDataInfo.BattInfoSendFreqNomal;
|
|
|
+ GpsSendFreq = AppDataInfo.PosInfoSendFreqNormal;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(getbit(PadInterrupt,3)==1||getbit(PadInterrupt,4)==1)//有震动产生,提高位置信息发送频率
|
|
|
+ {
|
|
|
+ GpsSendFreq = AppDataInfo.PosInfoSendFreqHigh;
|
|
|
+ if(send_counter%10==0)
|
|
|
+ {
|
|
|
+ clrbit(PadInterrupt,3);
|
|
|
+ clrbit(PadInterrupt,4);
|
|
|
+ }
|
|
|
+ }
|
|
|
if(send_counter%BattSendFreq==0 && send_counter!=0)
|
|
|
{
|
|
|
UINT16 ErrorTemp = 0x00;
|
|
@@ -465,12 +500,12 @@ static void TcpDataInfoAssembleSend()
|
|
|
VerMsgToTcpInfo.VerInfo.msgCollectionTimeUTC[5] = UTC8TimeTcp.second & 0xFF;
|
|
|
memcpy(VerMsgToTcpInfo.VerInfo.ICCID,iccid,20);
|
|
|
memcpy(VerMsgToTcpInfo.VerInfo.IMEI,imei,15);
|
|
|
- VerMsgToTcpInfo.VerInfo.BMSHwVersion[0] = bmsHwVersion /10;
|
|
|
- VerMsgToTcpInfo.VerInfo.BMSHwVersion[1] = bmsHwVersion%10;
|
|
|
+ VerMsgToTcpInfo.VerInfo.BMSHwVersion[0] = AppNVMData.BmsHwVersion/10;
|
|
|
+ VerMsgToTcpInfo.VerInfo.BMSHwVersion[1] = AppNVMData.BmsHwVersion%10;
|
|
|
VerMsgToTcpInfo.VerInfo.BMSSwVersion[0] = 0;
|
|
|
VerMsgToTcpInfo.VerInfo.BMSSwVersion[1] = 0;
|
|
|
- VerMsgToTcpInfo.VerInfo.BMSSwVersion[2] = bmsSwVersion/10;
|
|
|
- VerMsgToTcpInfo.VerInfo.BMSSwVersion[3] = bmsSwVersion%10;
|
|
|
+ VerMsgToTcpInfo.VerInfo.BMSSwVersion[2] = AppNVMData.BmsSwVersion/10;
|
|
|
+ VerMsgToTcpInfo.VerInfo.BMSSwVersion[3] = AppNVMData.BmsSwVersion%10;
|
|
|
VerMsgToTcpInfo.VerInfo.NBHwVersion[0] = (HWVERSION>>8)& 0xFF;
|
|
|
VerMsgToTcpInfo.VerInfo.NBHwVersion[1] = (HWVERSION)& 0xFF;
|
|
|
VerMsgToTcpInfo.VerInfo.BLVersion[0] = (BLSWVERSION>>24)& 0xFF;
|
|
@@ -507,6 +542,11 @@ static void TcpDataInfoAssembleSend()
|
|
|
{
|
|
|
DebugMsgtoTcpType DebugMsgInfo;
|
|
|
UINT16 BufferLen = 0;
|
|
|
+ slpManWakeSrc_e Wakeup_source;
|
|
|
+ Wakeup_source = slpManGetWakeupSrc();//获取唤醒源
|
|
|
+ #ifdef DEBUGLOG
|
|
|
+ Debug_printf("[%d,%d,%d]\n",Wakeup_source,AppDataInfo.SysReStartCount,AppDataInfo.AccMileage);
|
|
|
+ #endif
|
|
|
BufferLen = Debug_GetSize();
|
|
|
if(BufferLen==0)
|
|
|
{
|
|
@@ -517,7 +557,7 @@ static void TcpDataInfoAssembleSend()
|
|
|
{
|
|
|
Debug_Del_Logfile();
|
|
|
#ifdef DEBUGLOG
|
|
|
- Debug_printf("Sys:%d\n",AppDataInfo.SysReStartCount);
|
|
|
+ Debug_printf("oversize-Sys:%d\n",AppDataInfo.SysReStartCount);
|
|
|
#endif
|
|
|
BufferLen = Debug_GetSize();
|
|
|
}
|
|
@@ -614,7 +654,7 @@ static void TcpDataInfoRecvHandle()
|
|
|
UINT8 TcpCmdAnswer[31];
|
|
|
TcpCmdAnswer[0] = TCP_START_SYM1;
|
|
|
TcpCmdAnswer[1] = TCP_START_SYM1;
|
|
|
- if(TcpRecvData != NULL)
|
|
|
+ if(TcpRecvData!=NULL&&TcpRecvData->length!=0)
|
|
|
{
|
|
|
Ptr = TcpRecvData->data;
|
|
|
if((*(Ptr+0)==TCP_START_SYM1)&&(*(Ptr+1)==TCP_START_SYM2))//服务器起始信息
|
|
@@ -656,7 +696,7 @@ static void TcpDataInfoRecvHandle()
|
|
|
AppDataInfo.BattLock = TRUE;
|
|
|
tcpipConnectionSend(socContext.id,TcpCmdAnswer,31,0,0,0);
|
|
|
}
|
|
|
- else //0x02代表解锁
|
|
|
+ else if(*(Ptr+31)==0x02) //0x02代表解锁
|
|
|
{
|
|
|
AppDataInfo.appDataModify = TRUE;
|
|
|
AppDataInfo.BattLock = FALSE;
|