From ba9bc95d95fbd04e34ca5d61677422d28c089bf8 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期五, 05 七月 2024 16:41:41 +0800 Subject: [PATCH] 1.25,修改后测试一天一夜已经 不死机。 --- Src/application/GPS.c | 95 ++++++++++++++++++++++++++--------------------- 1 files changed, 52 insertions(+), 43 deletions(-) diff --git a/Src/application/GPS.c b/Src/application/GPS.c index a98eb48..13a1810 100644 --- a/Src/application/GPS.c +++ b/Src/application/GPS.c @@ -39,7 +39,7 @@ typedef struct { E_GPSRecvState m_eState; - HIDO_CHAR m_acRecvBuf[128]; + HIDO_CHAR m_acRecvBuf[256]; HIDO_UINT32 m_u32RecvLen; } ST_GPSRecv; @@ -337,41 +337,41 @@ return HIDO_OK; } -#if 0 -/******************************************************************************* - * Function Name : GPS_ParseSpeed - * Description : - * Input : None - * Output : None - * Return : HIDO_OK 成功, HIDO_ERR 失败 - * Author : www.hido-studio.com - * Modified Date: : 2022年5月2日 - *******************************************************************************/ -static HIDO_INT32 GPS_ParseSpeed(HIDO_DataStruct *_pstSpeedData, ST_GPS *_pstGPS) -{ - HIDO_UINT32 u32Len = _pstSpeedData->m_u32Len; - HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstSpeedData->m_pData; - HIDO_CHAR acSpeed[10]; +//#if 0 +///******************************************************************************* +// * Function Name : GPS_ParseSpeed +// * Description : +// * Input : None +// * Output : None +// * Return : HIDO_OK 成功, HIDO_ERR 失败 +// * Author : www.hido-studio.com +// * Modified Date: : 2022年5月2日 +// *******************************************************************************/ +//static HIDO_INT32 GPS_ParseSpeed(HIDO_DataStruct *_pstSpeedData, ST_GPS *_pstGPS) +//{ +// HIDO_UINT32 u32Len = _pstSpeedData->m_u32Len; +// HIDO_CHAR *pcStart = (HIDO_CHAR *) _pstSpeedData->m_pData; +// HIDO_CHAR acSpeed[10]; - if (u32Len >= 10) - { - return HIDO_ERR; - } +// if (u32Len >= 10) +// { +// return HIDO_ERR; +// } - if (u32Len >= 1) - { - memcpy(acSpeed, pcStart, u32Len); - acSpeed[u32Len] = 0; - _pstGPS->m_u16Speed = atof(acSpeed) * 1.852; - } - else - { - _pstGPS->m_u16Speed = 0; - } +// if (u32Len >= 1) +// { +// memcpy(acSpeed, pcStart, u32Len); +// acSpeed[u32Len] = 0; +// _pstGPS->m_u16Speed = atof(acSpeed) * 1.852; +// } +// else +// { +// _pstGPS->m_u16Speed = 0; +// } - return HIDO_OK; -} -#endif +// return HIDO_OK; +//} +//#endif /******************************************************************************* * Function Name : GPS_ParseSpeed @@ -445,11 +445,12 @@ char _pcData_final[256]; extern uint8_t fangchai_flag; extern uint8_t GPSchangdu; -extern uint8_t GPS_GGAdate[200]; +extern uint8_t GPS_GGAdate[400]; extern u8 gps_state,gps_chafenlingqi,gps_satel_num,gps_signalpower; extern double gps_jingdu,gps_weidu; extern float gps_height; -static HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len) +extern uint8_t fangzhijinrushuimian_flag; +HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len) { ST_GPS stGPS; HIDO_DataStruct stTime;//时间 @@ -558,17 +559,19 @@ gps_jingdu=stGPS.m_dLat; gps_weidu=stGPS.m_dLon; gps_height=stGPS.m_fAlt+stGPS.m_fMsl; + fangzhijinrushuimian_flag=0; } else//如果不是成功获取位置的那一包 { gpsled=RED; gps_state=0; - gps_chafenlingqi=0; + // gps_chafenlingqi=0; gps_satel_num=0; gps_signalpower=0; gps_jingdu=0; gps_weidu=0; gps_height=0; + fangzhijinrushuimian_flag=0; } return HIDO_OK; @@ -582,8 +585,8 @@ * Return : one * Author : hido.ltd * Modified Date: : 2021年5月07日 - *******************************************************************************/ -static HIDO_VOID GPS_RecvFsm(HIDO_UINT8 _u8RecvChar) +// *******************************************************************************/ +HIDO_VOID GPS_RecvFsm(HIDO_UINT8 _u8RecvChar) { switch (l_stGPSRecv.m_eState) { @@ -623,7 +626,10 @@ if(strstr(l_stGPSRecv.m_acRecvBuf, "GGA,") != HIDO_NULL) { + GPS_ParseGGA(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen); + memset(l_stGPSRecv.m_acRecvBuf,0,l_stGPSRecv.m_u32RecvLen); +// fangzhijinrushuimian_flag=0; } } @@ -714,11 +720,14 @@ // * Return : None // * Author : hido.ltd // *******************************************************************************/ -HIDO_VOID GPS_Recv_Poll(uint8_t u8RecvChar) -{ - GPS_RecvFsm(u8RecvChar); -} - +//HIDO_VOID GPS_Recv_Poll(uint8_t u8RecvChar) +//{ +// GPS_RecvFsm(u8RecvChar); +//} +//HIDO_VOID GPS_ParseGGAPoll(HIDO_UINT8 data,HIDO_UINT8 datanum) +//{ +// GPS_ParseGGA(&data, datanum); +//} ///******************************************************************************* // * Function Name : GPS_SetEventCallback // * Description : GPS设置GPS事件回调 -- Gitblit v1.9.3