| | |
| | | extern uint8_t GPS_data[100]; |
| | | extern uint8_t GPS_successful_flag; |
| | | extern uint32_t uwbled,gpsled,loraled,powerled; |
| | | extern uint8_t jinru_parsegga_flag; |
| | | extern uint8_t fangchai_flag; |
| | | uint8_t GPS_ParseGGA_data[256]; |
| | | uint8_t GPS_ParseGGA_changdu; |
| | | extern uint16_t g_com_map[256]; |
| | | extern uint8_t bat_percent; |
| | | uint8_t gpsbaoxu; |
| | | static HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len) |
| | | { |
| | | uint16_t state_flag; |
| | | ST_GPS stGPS; |
| | | HIDO_DataStruct stPosState; |
| | | |
| | | jinru_parsegga_flag=1; |
| | | memset(&stGPS, 0, sizeof(ST_GPS)); |
| | | if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK) |
| | | { |
| | |
| | | { |
| | | return HIDO_ERR; |
| | | } |
| | | |
| | | if(*(HIDO_CHAR *)stPosState.m_pData != '0') |
| | | { |
| | | // HIDO_DebugString(_pcData, _u32Len); |
| | |
| | | { |
| | | l_fnGPSEventCallback(GPS_TYPE_GGA, _pcData, _u32Len); |
| | | } |
| | | gpsled=BLUE; |
| | | gpsled=RED; |
| | | GPS_successful_flag=1; |
| | | GPS_data[_u32Len-1]=0; |
| | | GPS_data[_u32Len-2]=0; |
| | | memcpy(GPS_data,_pcData, _u32Len-2);//去掉回车换行 |
| | | _pcData[_u32Len-1]=0; |
| | | _pcData[_u32Len-2]=0; |
| | | // memcpy(GPS_data,_pcData, _u32Len-2);//去掉回车换行 |
| | | state_flag = 0; |
| | | state_flag = fangchai_flag; |
| | | |
| | | HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)GPS_ParseGGA_data, sizeof(GPS_ParseGGA_data), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n", |
| | | _pcData, g_com_map[2], bat_percent,0,0,0,state_flag,gpsbaoxu); |
| | | gpsbaoxu++; |
| | | GPS_ParseGGA_changdu=u32Len; |
| | | |
| | | } |
| | | else |
| | | { |
| | | gpsled=RED; |
| | | gpsled=LEDOFF; |
| | | GPS_successful_flag=0; |
| | | GPS_data[_u32Len-1]=0; |
| | | GPS_data[_u32Len-2]=0; |
| | | memcpy(GPS_data,_pcData, _u32Len-2); |
| | | _pcData[_u32Len-1]=0; |
| | | _pcData[_u32Len-2]=0; |
| | | // memcpy(GPS_data,_pcData, _u32Len-2); |
| | | state_flag = 0; |
| | | state_flag = fangchai_flag; |
| | | |
| | | HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)GPS_ParseGGA_data, sizeof(GPS_ParseGGA_data), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n", |
| | | _pcData, g_com_map[2], bat_percent,0,0,0,state_flag,gpsbaoxu); |
| | | gpsbaoxu++; |
| | | GPS_ParseGGA_changdu=u32Len; |
| | | } |
| | | |
| | | return HIDO_OK; |
| | |
| | | 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); |
| | | } |
| | | else if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL) |
| | | { |