keil/include/src/GPS.c
@@ -21,7 +21,7 @@
/**************************************************************************************************************************************/
#define ARRAY_SIZE 60  
uint8_t  Gsv_count = 0;               // 已存储的数据个数
uint8_t lounei_flag;
uint8_t lounei_flag=0;
/**************************************************************************************************************************************/
typedef enum
{
@@ -495,9 +495,10 @@
extern uint16_t g_spsum_GSV,g_snum_GSV;
extern uint16_t g_spsum_GSV_sum;
extern uint16_t g_snum_GSV_sum;
//static HIDO_UINT8 l_u8GPSBuff[512];
//static HIDO_UINT32 l_u8GPSLen = 0;
//static HIDO_UINT32 l_u8GPSRecvTick = 0;
extern uint8_t heart_upload_time;
uint8_t fixed_solution_count_minute;
extern uint8_t ceju_leave_flag;
extern uint8_t open_gps_time;
static HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
{
    uint16_t state_flag;
@@ -505,7 +506,7 @@
    HIDO_DataStruct stPosState;
    jinru_parsegga_flag=1;
    memset(&stGPS, 0, sizeof(ST_GPS));
     ave_sp_GSV=g_spsum_GSV;
//     ave_sp_GSV=g_spsum_GSV;
    if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK)
    {
        return HIDO_ERR;
@@ -517,6 +518,7 @@
    }
    memcpy(YUANGPS_ParseGGA_data,_pcData,_u32Len);
    YUANGPS_ParseGGA_changdu=_u32Len;
    if(*(HIDO_CHAR *)stPosState.m_pData != '0')
    {
//        HIDO_DebugString(_pcData, _u32Len);
@@ -536,6 +538,10 @@
                _pcData, g_com_map[2], bat_percent,g_spsum_GSV_sum,g_snum_GSV_sum,lounei_flag,state_flag,gpsbaoxu);
        gpsbaoxu++;
        GPS_ParseGGA_changdu=u32Len;
            if(ceju_leave_flag==1)
            {
             fixed_solution_count_minute++;
            }
    }
    else
@@ -555,9 +561,15 @@
        gpsbaoxu++;
        GPS_ParseGGA_changdu=u32Len;
    }
    UDPClient_UploadGPS();
    gps_ntripsend=1;
    NTRIPApp_ReportGGA(GPS_ParseGGA_data, _u32Len);
      if((open_gps_time%UPLOAD_4G_TIME==0))
      {
      UDPClient_UploadGPS();
    NTRIPApp_ReportGGA(GPS_ParseGGA_data, _u32Len);
      }
      ave_sp_GSV=0;
      g_spsum_GSV=0;
//      g_spsum_GSV_sum=0;
@@ -582,7 +594,7 @@
//        }
    return HIDO_OK;
}
extern uint8_t in_the_room_flag;
uint16_t g_spsum_GSV,g_snum_GSV;
static HIDO_INT32 GPS_ParseGSV(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
@@ -940,13 +952,13 @@
 *******************************************************************************/
uint16_t GSV_sum;
uint16_t GSV_g_snum_sum;
uint16_t g_spsum_GSV_sum=0;
uint16_t g_snum_GSV_sum=0;
uint16_t g_spsum_GSV_sum=300;
uint16_t g_snum_GSV_sum=10;
void Receive_g_spsum_Data(int newData)
{
    GSV_sum +=newData;                   
    if (Gsv_count < ARRAY_SIZE) {
        Gsv_count++;                                  // 如果数组未满,增加已存储的数据个数
        Gsv_count++;
    }
      if(Gsv_count==60)
      {
@@ -975,18 +987,13 @@
 * Output            : 
 * Return            : 
 *******************************************************************************/
extern uint8_t heart_upload_time;
void Switch_low_power_mode(int mode)
void Switch_low_power_mode()
{
   switch(mode)
   if(lounei_flag==1)
   {
      case 0:   PCA9555_Set_One_Value_Output(GPS_POWER,0);
                  PCA9555_Set_One_Value_Output(LED_POWER,0);
                  break;
     case 1:   PCA9555_Set_One_Value_Output(GPS_POWER,1);
                  PCA9555_Set_One_Value_Output(LED_POWER,1);
                  heart_upload_time=0;
                  break;
   }
    PCA9555_Set_One_Value_Output(GPS_POWER,0);
//    PCA9555_Set_One_Value_Output(LED_POWER,0);
   }
}