From 562254e0f3c501306147bd88807596ee51c0390e Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 25 十二月 2024 10:12:07 +0800 Subject: [PATCH] 调试完成,功耗可以 目前是5分钟上发一次心跳包 --- APL/UDPClient.c | 183 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 137 insertions(+), 46 deletions(-) diff --git a/APL/UDPClient.c b/APL/UDPClient.c index dec53ad..58fd42e 100644 --- a/APL/UDPClient.c +++ b/APL/UDPClient.c @@ -33,7 +33,7 @@ #include "TONE.h" #include "EC600SFSM.h" #endif - +#include "WS2812.h" /******************************************************************************* * Macro * *******************************************************************************/ @@ -74,6 +74,9 @@ * Modified Date: : 2021年1月9日 *******************************************************************************/ uint16_t beepontime; +uint8_t receive1_gotosleep_flag; +uint8_t receive2_gotosleep_flag; +uint8_t receive3_gotosleep_flag; static HIDO_INT32 UDPClient_CmdParse(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len) { HIDO_CHAR *apcSplitStr[12]; @@ -191,6 +194,33 @@ } } } + else if(STRCMP(_u8Data, "$receive,") == 0) + { + u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr)); + + if(u32SplitCnt < 3) + { + return HIDO_ERR; + } + + /* 设备ID检查 */ + if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID]) + { + if(HIDO_UtilHexStrToInt(apcSplitStr[2])==1) + { + receive1_gotosleep_flag=1; + } + if(HIDO_UtilHexStrToInt(apcSplitStr[2])==2) + { + receive2_gotosleep_flag=1; + } + if(HIDO_UtilHexStrToInt(apcSplitStr[2])==3) + { + receive3_gotosleep_flag=1; + } + } + } + /* $update,id,url,version */ else if(STRCMP(_u8Data, "$update,") == 0) { @@ -429,10 +459,16 @@ * Modified Date: : 2021年1月9日 *******************************************************************************/ uint8_t heartbeasend_flag = 0,userkey_state4g; +extern uint32_t uwbled,gpsled,loraled,powerled; +extern uint8_t fangchai_flag; +extern uint8_t nomove_flag; +extern uint8_t zuihoufasong_falg; +extern uint32_t main_time; HIDO_INT32 UDPClient_Poll(void) { if(Internet_IsIPReady() == HIDO_TRUE) { + loraled=RED; if(UDP_CLIENT_STATE_IDLE == l_eUDPCLientState) { l_eUDPCLientState = UDP_CLIENT_STATE_CONNECTING; @@ -441,22 +477,43 @@ g_com_map[IP_0], g_com_map[IP_1], g_com_map[IP_2], g_com_map[IP_3]); Socket_Connect(l_i32UDPCLientID, (HIDO_CHAR *)l_au8CmdBuff, g_com_map[PORT]); + +// HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u", +// 39, 105, 162, 230); + +// Socket_Connect(l_i32UDPCLientID, (HIDO_CHAR *)l_au8CmdBuff, 8999); } else if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState) { - HIDO_UINT32 u32CurTick = HIDO_TimerGetTick(); - - if((u32CurTick - l_u32HeartBeatTick) >= 60000) - { - heartbeasend_flag = 0; - l_u32HeartBeatTick = u32CurTick; - UDPClient_Heartbeat(); - userkey_state4g = 0; - } +// HIDO_UINT32 u32CurTick = main_time; +// if(fangchai_flag==0) +// { +// if((u32CurTick - l_u32HeartBeatTick) >= 10000) +// { +// heartbeasend_flag = 0; +// l_u32HeartBeatTick = u32CurTick; +// UDPClient_Heartbeat(); +//// if(nomove_flag==1) +//// {zuihoufasong_falg=1;} +// userkey_state4g = 0; +// } +// } +// else +// { + if((main_time - l_u32HeartBeatTick) >= 300) + { + printf("发送4G心跳包\r\n"); + heartbeasend_flag = 0; + l_u32HeartBeatTick = main_time; + UDPClient_Heartbeat(); + userkey_state4g = 0; + } +// } } } else { + loraled=LEDOFF; l_eUDPCLientState = UDP_CLIENT_STATE_IDLE; } @@ -475,41 +532,69 @@ extern uint8_t fangchai_flag; extern uint8_t bat_percent; +extern uint8_t GPS_ParseGGA_data[256]; +extern uint8_t GPS_ParseGGA_changdu; HIDO_INT32 UDPClient_UploadGPS(HIDO_CHAR *_pcGGA) -{uint16_t state_flag; +{ +// uint16_t state_flag; static HIDO_CHAR l_acUploadBuff[1024]; static HIDO_UINT32 l_u32UploadBuffLen = 0; static HIDO_UINT32 l_u32UdpsendTick = 0; if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState) { - state_flag = 0; - state_flag = fangchai_flag; - - HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n", - _pcGGA, g_com_map[DEV_ID], bat_percent,0,0,0,state_flag); +// state_flag = 0; +// state_flag = fangchai_flag; +// +// HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n", +// _pcGGA, g_com_map[DEV_ID], bat_percent,0,0,0,state_flag,gpsbaoxu); +// gpsbaoxu++; + +// +// if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff)) +// { +// memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len); +// l_u32UploadBuffLen += u32Len; +// } +// //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len); +// //l_u32UploadBuffLen += u32Len; +// // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff)) +// if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200) +// { +// l_u32UdpsendTick = HIDO_TimerGetTick(); +// Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen); +// l_u32UploadBuffLen = 0; +// } - - if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff)) - { - memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len); - l_u32UploadBuffLen += u32Len; - } - //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len); - //l_u32UploadBuffLen += u32Len; - // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff)) - if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200) - { - l_u32UdpsendTick = HIDO_TimerGetTick(); - Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen); - l_u32UploadBuffLen = 0; - } +// } + +// return HIDO_OK; +// if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState) +// { +//// memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len); +//// l_u32UploadBuffLen += u32Len; +// // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff)) +// if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200) +// { +// l_u32UdpsendTick = HIDO_TimerGetTick(); +// Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len); +// memset(l_au8CmdBuff,0,u32Len); +// l_u32UploadBuffLen = 0; +// } - } +// } +// if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200) +// { +// l_u32UdpsendTick = HIDO_TimerGetTick(); + Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)GPS_ParseGGA_data, GPS_ParseGGA_changdu); + memset(GPS_ParseGGA_data,0,GPS_ParseGGA_changdu); + GPS_ParseGGA_changdu = 0; +// } return HIDO_OK; + } } HIDO_INT32 UDPClient_Uploadhex(uint8_t *_pcGGA,uint16_t u32Len) { @@ -522,12 +607,12 @@ memcpy(l_acUploadBuff + l_u32UploadBuffLen, _pcGGA, u32Len); l_u32UploadBuffLen += u32Len; // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff)) - if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200) - { - l_u32UdpsendTick = HIDO_TimerGetTick(); +// if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200) +// { +// l_u32UdpsendTick = HIDO_TimerGetTick(); Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen); l_u32UploadBuffLen = 0; - } +// } } @@ -544,26 +629,23 @@ * Modified Date: : 2021年1月9日 *******************************************************************************/ uint8_t bat_percent2 = 0; +extern uint8_t input_5v_flag; +extern uint8_t nomove_flag; //extern qxwz_sdk_config_t sdk_config; +uint8_t xintiaobaoxu; HIDO_INT32 UDPClient_Heartbeat(HIDO_VOID) { HIDO_UINT32 u32Len = 0; if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState) { - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) - { u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,3:%d.%d.%d.%d:%d.", - g_com_map[DEV_ID], bat_percent2, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]); - }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP) { - u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,2%s %s", - g_com_map[DEV_ID], bat_percent2, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,(char *)&g_com_map[NTRIP_HOST_INDEX],(char *)&g_com_map[NTRIP_USERNANME_INDEX]); - }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE) - { - u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.", - g_com_map[DEV_ID], bat_percent2, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]); + u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.,%d,%d,%d,%d", + g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,input_5v_flag,fangchai_flag,nomove_flag,xintiaobaoxu); + xintiaobaoxu ++; } Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len); + memset(l_au8CmdBuff,0,u32Len); } return HIDO_OK; @@ -584,3 +666,12 @@ return HIDO_OK; } +uint8_t IfTCPConnected(void) +{ + if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState) + { + return 1; + } else { + return 0; + } +} \ No newline at end of file -- Gitblit v1.9.3