| | |
| | | typedef struct |
| | | { |
| | | E_GPSRecvState m_eState; |
| | | HIDO_CHAR m_acRecvBuf[128]; |
| | | HIDO_CHAR m_acRecvBuf[256]; |
| | | HIDO_UINT32 m_u32RecvLen; |
| | | } ST_GPSRecv; |
| | | |
| | |
| | | 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 |
| | |
| | | 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;//时间 |
| | |
| | | gps_jingdu=stGPS.m_dLat; |
| | | gps_weidu=stGPS.m_dLon; |
| | | gps_height=stGPS.m_fAlt+stGPS.m_fMsl; |
| | | fangzhijinrushuimian_flag=0; |
| | | } |
| | | else//如果不是成功获取位置的那一包 |
| | | { |
| | |
| | | gps_jingdu=0; |
| | | gps_weidu=0; |
| | | gps_height=0; |
| | | fangzhijinrushuimian_flag=0; |
| | | } |
| | | |
| | | return HIDO_OK; |
| | |
| | | * 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) |
| | | { |
| | |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | |
| | | // * 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事件回调 |