From 2ebb8217f43b69f491620423ea4d5d5944d1f91d Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期六, 05 七月 2025 22:43:58 +0800
Subject: [PATCH] 格式化部分代码

---
 keil/include/src/GPS.c |  333 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 171 insertions(+), 162 deletions(-)

diff --git a/keil/include/src/GPS.c b/keil/include/src/GPS.c
index 719b20a..639c630 100644
--- a/keil/include/src/GPS.c
+++ b/keil/include/src/GPS.c
@@ -40,7 +40,7 @@
 static ST_GPSRecv l_stGPSRecv;
 static FN_GPSEventCallback l_fnGPSEventCallback;
 ST_GPS l_stGPS;
-
+static HIDO_UINT8 l_u8PosState = 0;
 /*******************************************************************************
  * Function Name     : GPS_AddHours
  * Description       :
@@ -59,54 +59,54 @@
         _pstGPS->m_u8Day++;
         switch (_pstGPS->m_u8Mon)
         {
-            case 1:
-            case 3:
-            case 5:
-            case 7:
-            case 8:
-            case 10:
-                if (_pstGPS->m_u8Day > 31)
+        case 1:
+        case 3:
+        case 5:
+        case 7:
+        case 8:
+        case 10:
+            if (_pstGPS->m_u8Day > 31)
+            {
+                _pstGPS->m_u8Day = 1;
+                _pstGPS->m_u8Mon++;
+            }
+            break;
+        case 2:
+            if (0 == (_pstGPS->m_u16Year % 4))
+            {
+                if (_pstGPS->m_u8Day > 29)
                 {
                     _pstGPS->m_u8Day = 1;
                     _pstGPS->m_u8Mon++;
                 }
-                break;
-            case 2:
-                if (0 == (_pstGPS->m_u16Year % 4))
-                {
-                    if (_pstGPS->m_u8Day > 29)
-                    {
-                        _pstGPS->m_u8Day = 1;
-                        _pstGPS->m_u8Mon++;
-                    }
-                }
-                else
-                {
-                    if (_pstGPS->m_u8Day > 28)
-                    {
-                        _pstGPS->m_u8Day = 1;
-                        _pstGPS->m_u8Mon++;
-                    }
-                }
-                break;
-            case 4:
-            case 6:
-            case 9:
-            case 11:
-                if (_pstGPS->m_u8Day > 30)
+            }
+            else
+            {
+                if (_pstGPS->m_u8Day > 28)
                 {
                     _pstGPS->m_u8Day = 1;
                     _pstGPS->m_u8Mon++;
                 }
-                break;
-            case 12:
-                if (_pstGPS->m_u8Day > 31)
-                {
-                    _pstGPS->m_u8Day = 1;
-                    _pstGPS->m_u8Mon = 1;
-                    _pstGPS->m_u16Year++;
-                }
-                break;
+            }
+            break;
+        case 4:
+        case 6:
+        case 9:
+        case 11:
+            if (_pstGPS->m_u8Day > 30)
+            {
+                _pstGPS->m_u8Day = 1;
+                _pstGPS->m_u8Mon++;
+            }
+            break;
+        case 12:
+            if (_pstGPS->m_u8Day > 31)
+            {
+                _pstGPS->m_u8Day = 1;
+                _pstGPS->m_u8Mon = 1;
+                _pstGPS->m_u16Year++;
+            }
+            break;
         }
     }
 }
@@ -487,82 +487,30 @@
 //static HIDO_UINT8 l_u8GPSBuff[512];
 //static HIDO_UINT32 l_u8GPSLen = 0;
 //static HIDO_UINT32 l_u8GPSRecvTick = 0;
+uint8_t gps_error1,gps_error2;
 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)
     {
+        gps_error1++;
         return HIDO_ERR;
     }
 
     if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%p,%*,%*,%*,%*,%*,%*,%*,%**", &stPosState) != 15)
     {
+        gps_error2++;
         return HIDO_ERR;
     }
-    memcpy(YUANGPS_ParseGGA_data,_pcData,_u32Len);
-    YUANGPS_ParseGGA_changdu=_u32Len;
-    if(*(HIDO_CHAR *)stPosState.m_pData != '0')
-    {
-//        HIDO_DebugString(_pcData, _u32Len);
-        if(l_fnGPSEventCallback != NULL)
-        {
-            l_fnGPSEventCallback(GPS_TYPE_GGA, _pcData, _u32Len);
-        }
-        rtkled=BLUE;
-        GPS_successful_flag=1;
-        _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
-    {
-        rtkled=RED;
-        GPS_successful_flag=0;
-        _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();
-//    gps_ntripsend=1;
-//    NTRIPApp_ReportGGA(GPS_ParseGGA_data, _u32Len);
-//    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP&&gps_ntripsend)
-//    {
-//        gps_ntripsend=0;
-//        NTRIPApp_ReportGGA(GPS_ParseGGA_data, _u32Len);
-////        l_u8GPSLen = 0;
-//    }    
-//    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP)
-//        {
-//            if(GPS_ParseGGA_changdu > 0)
-//            {
-//                if((HIDO_TimerGetTick() - l_u8GPSRecvTick) > 50)
-//                {
-//                    NTRIPApp_ReportGGA(GPS_ParseGGA_data, GPS_ParseGGA_changdu);
-//                    GPS_ParseGGA_changdu = 0;
-//                }
-//            }
-//        }
+    l_u8PosState = atoi((HIDO_CHAR *)stPosState.m_pData);
+
     return HIDO_OK;
 }
+
 
 /*******************************************************************************
  * Function Name     : GPS_ParseRMC
@@ -597,7 +545,7 @@
     }
 
     if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%p,%p,%p,%p,%p,%p,%p,%p,%p,%*,%*,%**", &stTimeData, &stStateData,
-            &stLatData, &stLatSignData, &stLonData, &stLonSignData, &stSpeedData, &stDirData, &stDateData) != 13)
+                             &stLatData, &stLatSignData, &stLonData, &stLonSignData, &stSpeedData, &stDirData, &stDateData) != 13)
     {
         return HIDO_ERR;
     }
@@ -608,7 +556,7 @@
     }
 
     if (_pstGPS->m_eState != GPS_STATE_VALID)
-    {   
+    {
         return HIDO_OK;
     }
 
@@ -666,62 +614,127 @@
  * Author            : hido.ltd
  * Modified Date:    : 2021年5月07日
  *******************************************************************************/
+extern uint8_t GPS_UPLOAD_FLAG;
+uint16_t GPS_UPload_sleep_flag=0;
+uint8_t gpserror;
 HIDO_VOID GPS_RecvFsm(HIDO_UINT8 _u8RecvChar)
 {
     switch (l_stGPSRecv.m_eState)
     {
-        case GPS_RECV_STATE_IDLE:
+    case GPS_RECV_STATE_IDLE:
+    {
+        if ('$' == _u8RecvChar)
         {
-            if ('$' == _u8RecvChar)
-            {
-                l_stGPSRecv.m_eState = GPS_RECV_STATE_CR;
-                l_stGPSRecv.m_u32RecvLen = 0;
-                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
-            }
-            break;
-        }
-        case GPS_RECV_STATE_CR:
-        {
+            l_stGPSRecv.m_eState = GPS_RECV_STATE_CR;
+            l_stGPSRecv.m_u32RecvLen = 0;
             l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
-
-            if (l_stGPSRecv.m_u32RecvLen >= (sizeof(l_stGPSRecv.m_acRecvBuf) - 2))
-            {
-                l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
-                break;
-            }
-
-            if ('\r' == _u8RecvChar)
-            {
-                l_stGPSRecv.m_eState = GPS_RECV_STATE_LF;
-            }
-
-            break;
         }
-        case GPS_RECV_STATE_LF:
+        break;
+    }
+    case GPS_RECV_STATE_CR:
+    {
+        l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+
+        if (l_stGPSRecv.m_u32RecvLen >= (sizeof(l_stGPSRecv.m_acRecvBuf) - 2))
         {
-            if ('\n' == _u8RecvChar)
-            {
-            	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
-            	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen] = '\0';
-
-            	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)
-            	{
-            		GPS_ParseRMC(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
-            	}
-            }
-
             l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
             break;
         }
-        default:
+
+        if ('\r' == _u8RecvChar)
         {
-            break;
+            l_stGPSRecv.m_eState = GPS_RECV_STATE_LF;
         }
+
+        break;
+    }
+    case GPS_RECV_STATE_LF:
+    {
+        if ('\n' == _u8RecvChar)
+        {
+            l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
+            l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen] = '\0';
+//                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+            if(strstr(l_stGPSRecv.m_acRecvBuf, "GGA,") != HIDO_NULL)
+            {
+                GPS_ParseGGA(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
+                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                    #ifdef UWB_CG
+                if(g_com_map[GPSENBLE]==0)
+                {
+//                    UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                }
+                else if(g_com_map[GPSENBLE]&&g_com_map[GPSFrequency]==1)
+                {
+                    if (l_u8PosState >= 1)
+                    {
+                        UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);           //
+                    }
+                    else if (l_u8PosState == 0)
+                    {
+                        if (++GPS_UPload_sleep_flag >= 60)
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                            GPS_UPload_sleep_flag = 0;
+                        }
+                    }
+                }
+                else if(g_com_map[GPSENBLE])
+                {
+                    if (l_u8PosState >= 1)
+                    {
+                        if (++GPS_UPLOAD_FLAG >= g_com_map[GPSFrequency])
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                            GPS_UPLOAD_FLAG = 0;
+                        }
+                    }
+                    else if (l_u8PosState == 0)
+                    {
+                        if (++GPS_UPload_sleep_flag >= 60)
+                        {
+                            UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
+                            GPS_UPload_sleep_flag = 0;
+                        }
+                    }
+                }
+                switch(l_u8PosState)
+                {
+                case 0:
+                    rtkled = RED;
+                    break;
+                case 1:
+                    rtkled = BLUE;
+                    break;
+                case 2:
+                    rtkled = BLUE+GREEN;
+                    break;
+                case 4:
+                    rtkled = GREEN;
+                    break;
+                case 5:
+                    rtkled = YELLOW;
+                    break;
+                default:
+                    rtkled = WHITE;
+                    break;
+                }
+            }
+
+            else //if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
+            {
+                gpserror++;
+            }
+        }
+
+        l_stGPSRecv.m_eState = GPS_RECV_STATE_IDLE;
+        break;
+    }
+    default:
+    {
+        break;
+    }
     }
 }
 
@@ -810,7 +823,7 @@
 
     while (Uart_GetChar(UART_ID_DBG_GPS, &u8RecvChar) == HIDO_OK)
     {
-    	GPS_RecvFsm(u8RecvChar);
+        GPS_RecvFsm(u8RecvChar);
     }
 }
 
@@ -853,21 +866,17 @@
  * Return            : None
  * Author            : hido.ltd
  *******************************************************************************/
-//HIDO_VOID GPS_Init(void)
-//{
+HIDO_VOID GPS_Init(void)
+{
+    char str[19]= {"$POLCFGMSG,0,2,0\r\n"};
 //    GPS_PowerOn();
 //    GPS_Rest();
-
-//    ST_UartInit stInit;
-
-//    stInit.m_eRxMode = UART_RX_MODE_INT;
-//    stInit.m_eTxMode = UART_TX_MODE_POLL;
-//    stInit.m_pu8RxBuf = l_au8GPSUartRxBuf;
-//    stInit.m_u32RxBufSize = GPS_UART_RX_BUF_SIZE;
-//    stInit.m_pu8TxBuf = l_au8GPSUartTxBuf;
-//    stInit.m_u32TxBufSize = GPS_UART_TX_BUF_SIZE;
-//    stInit.m_u32TxQueueMemberCnt = 2;
-//    Uart_Init(UART_ID_GPS, &stInit);
-
-//    HIDO_UtilBzero(&l_stGPSRecv, sizeof(ST_GPSRecv));
-//}
+    uart_send(UART_ID1, str,19, NULL);
+    delay_ms(10);
+    sprintf(str,"$POLCFGMSG,0,1,0\r\n");
+    uart_send(UART_ID1, str,19, NULL);
+    delay_ms(10);
+    sprintf(str,"$POLCFGSAVE\r\n");
+    uart_send(UART_ID1, str,19, NULL);
+    delay_ms(10);
+}

--
Gitblit v1.9.3