zhangbo
2025-05-13 e0a196fc7dcb47d200ab81a933dde2b18d169ed5
keil/include/main/main.c
@@ -46,6 +46,15 @@
#define UWB_MEASUREMENT_INTERVAL 5
#define UWB_MEASUREMENT_INTERVAL_SLEEP 30
//室内外阈值
#define XINGHAOQIANGDU_VALUE 210
#define WEIXINGSHULIANG_VALUE 10
uint8_t heart_upload_time=0;
uint8_t open_gps_time=0;
extern uint8_t mUsartReceivePack[100];
extern uint8_t mUsart2ReceivePack[150];
extern uint8_t state5V_prase_flag,gps_prase_flag;
@@ -110,7 +119,7 @@
    .flow = UART_FLOW_CONTROL_NONE,
    .rx_level = UART_RXFIFO_CHAR_1,
    .tx_level = UART_TXFIFO_EMPTY,
    .baud = BAUD_115200,
    .baud = BAUD_9600,
#if (TEST_UART_MODE == TEST_UART_POLL_MODE)
    .dma_en = false,
    .int_rx = false,
@@ -211,6 +220,71 @@
      power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
      mcu_deep_sleep();
   }
}
extern uint16_t g_spsum_GSV,g_snum_GSV,g_spsum_GSV_sum,g_snum_GSV_sum;
extern uint8_t lounei_flag,open_gps_time,ceju_leave_flag,fixed_solution_count_minute;
void GPS_ONOFF_Task()
{
      if(30<open_gps_time&&open_gps_time<=90)
         {
         Receive_g_spsum_Data(g_spsum_GSV);
         Receive_g_snum_Data(g_snum_GSV);
         if((g_spsum_GSV_sum<XINGHAOQIANGDU_VALUE||g_snum_GSV_sum<WEIXINGSHULIANG_VALUE)&&(fixed_solution_count_minute<30))
         {
         lounei_flag=1;
         }
         if((XINGHAOQIANGDU_VALUE<g_spsum_GSV_sum&&WEIXINGSHULIANG_VALUE<g_snum_GSV_sum)&&(fixed_solution_count_minute>30))
         {
         lounei_flag=0;
         }
         }
         if(open_gps_time>90)
         {
         if(ceju_leave_flag==1)
         {
         Receive_g_spsum_Data(g_spsum_GSV);
         Receive_g_snum_Data(g_snum_GSV);
         if((g_spsum_GSV_sum<XINGHAOQIANGDU_VALUE||g_snum_GSV_sum<WEIXINGSHULIANG_VALUE)&&(fixed_solution_count_minute<30))
         {
         lounei_flag=1;
         }
         if((XINGHAOQIANGDU_VALUE<g_spsum_GSV_sum&&WEIXINGSHULIANG_VALUE<g_snum_GSV_sum)&&(fixed_solution_count_minute>30))
         {
         lounei_flag=0;
         }
         if(heart_upload_time==60)
         {
         ceju_leave_flag=0;
         fixed_solution_count_minute=0;
         if(lounei_flag==1)
         {
            PCA9555_Set_One_Value_Output(GPS_POWER,0);
         }
         }
         if(heart_upload_time==0||heart_upload_time==60)
         {
            heart_upload_time=0;
         }
         heart_upload_time++;
         }
      }
         if(open_gps_time>149&&lounei_flag==1)
         {
         if(open_gps_time-90==60)
         {
            open_gps_time=90;
            TCPHeartBeatUpload();
         }
         }
      uwb_app_poll();
}
void powerON_Task(void)
{
@@ -327,14 +401,15 @@
    {   
        input5v_time=1;
        flag_secondtask = 1;
           open_gps_time++;
           #ifdef UWB_1_5HZ
           uwb_time_count++;
        #endif
            uwb_offtime_count++;
//            uwb_offtime_count++;
           if(uwb_offtime_count>60)
            {
             uwb_offtime_count=0;
             current_state = STATE_SLEEP;
//             current_state = STATE_SLEEP;
            }
        if(!read_5v_input_pca())
        {
@@ -357,6 +432,7 @@
//        OpenUWB();
        }
       upload_apppoll();
       GPS_ONOFF_Task();
    }else{
        flag_secondtask = 0;
    }
@@ -647,7 +723,6 @@
                     case UWB_OPEN_COUNT:
                            CloseUWB();
                          UWBSendUDPTask();
                     break;
                     
                     case UWB_MEASUREMENT_INTERVAL:
@@ -656,7 +731,6 @@
                            Uwb_init();
                            OpenUWB();                  
                   state_start_time = uwb_time_count;   
                     break;                  
                  }
            break;