From 4225a893c6c67cbed43e1aae264a3f79c010c998 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期二, 14 一月 2025 10:32:50 +0800 Subject: [PATCH] 3.2,修改灯亮的逻辑。 --- FML/GPS.c | 45 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 34 insertions(+), 11 deletions(-) diff --git a/FML/GPS.c b/FML/GPS.c index aa6ae4f..54c54fe 100644 --- a/FML/GPS.c +++ b/FML/GPS.c @@ -474,11 +474,19 @@ 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) { @@ -489,7 +497,6 @@ { return HIDO_ERR; } - if(*(HIDO_CHAR *)stPosState.m_pData != '0') { // HIDO_DebugString(_pcData, _u32Len); @@ -499,19 +506,34 @@ } gpsled=BLUE; 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; 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; } - + UDPClient_UploadGPS((char*)GPS_data); return HIDO_OK; } @@ -658,6 +680,7 @@ 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) { @@ -706,7 +729,7 @@ { l_bIsPowerOn = HIDO_TRUE; // GPIO_RESET(&l_astGPSPin[GPS_PIN_EN]); - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); } /******************************************************************************* @@ -722,7 +745,7 @@ { l_bIsPowerOn = HIDO_FALSE; // GPIO_RESET(&l_astGPSPin[GPS_PIN_EN]); - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); } /******************************************************************************* -- Gitblit v1.9.3