keil/include/main/main.c
@@ -92,7 +92,7 @@
uint8_t link_success_flag,motor_count;
uint16_t gps_wait_count;
uint8_t state5v = 1;
uint8_t motor_power_state=1,uwb_state,air780_power_state,gps_success_state,chaging_state,changed_state,air780_success_state,first_motor_in_flag;
uint8_t motor_power_state=1,uwb_state,air780_power_state,gps_success_state,red_charge_state,green_charge_state,air780_success_state,first_motor_in_flag;
float nomove_count=0;
static uint32_t sample[NUM_SAMPLES] = {0};
uint8_t recev_error_num,send_messgae_count,send_flag,control_state;
@@ -143,6 +143,7 @@
    .int_tx = false,
#endif
};
int tt1,tt2;
void uart_receive_callback(void *dev, uint32_t err_code)
{
    uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
@@ -169,6 +170,8 @@
            bat_percent = ((fVoltage_mv - 3300) /8);
        }
    }
      gpio_pin_set(ADC_GND_ENABLE);//在拉高
      tt2=gpio_pin_get_val(ADC_GND_ENABLE);
  //  LOG_INFO(TRACE_MODULE_APP, "The voltage is %%%d \r\n",bat_percent);
}
//void UartInit(void)
@@ -180,7 +183,7 @@
//}
extern uint8_t gps_uwb_flag;
uint8_t TCP_reconnect_timer,flag_TCP_reconnectting = 1,flag_alam_state = 0;
uint8_t gps_enable_flag,motor_open_air_flag,moter_open_uwb_flag,flag_fenli_alarm = 0,fenli_alarm_count,delaysleep_count;
uint8_t gps_enable_flag,motor_open_air_flag,moter_open_uwb_flag,flag_fenli_alarm = 0,fenli_alarm_count,delaysleep_count,enbale_blink_flag;
int need_open_gps_count;
void MotorPoll(void)
{
@@ -199,7 +202,7 @@
                    _4GAlarmUpload(2);
                }
            } 
            }
           }
            if(distance>g_com_map[ALARM_DISTANCE1]||anchordata_num==0)
                     {
                if(fenli_alarm_count++>20)
@@ -259,7 +262,7 @@
   }
void MinuteTask(void)
{
{      gpio_pin_clr(ADC_GND_ENABLE);//先拉低
    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
}
void SecondTask(void)
@@ -298,9 +301,15 @@
uint8_t tt=1;
uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
uint8_t uwb_enable_flag=0;
uint8_t enable_system_function_flag;
static void sleep_timer_callback(void *dev, uint32_t time)
{
   // IO_control_init();
   if(enbale_blink_flag)
   {
   green_charge_state=0;
   charge_red_on();
   }
   if(tt)
    UWBPoll();
   //车载poll
@@ -317,24 +326,31 @@
    flag_sleeptimer = 1;
    //马达震动逻辑
    if(g_com_map[MOTOR_ENABLE])
    {
        if(motor_open_air_flag||moter_open_uwb_flag)
        {
           if (motor_count++%3!=0)
           {
            motor_power_state = 1;
           }else {//修改
            motor_power_state = 0;
           }
        } else {
            motor_power_state=1;
        }
    }else{
        motor_power_state=1;
    }
      charge_state_change();//充电状态判断
      
//    //马达震动逻辑
//    if(g_com_map[MOTOR_ENABLE])
//    {
//        if(motor_open_air_flag||moter_open_uwb_flag)
//        {
//           if (motor_count++%3!=0)
//           {
//            motor_power_state = 1;
//           }else {//修改
//            motor_power_state = 0;
//           }
//        } else {
//            motor_power_state=1;
//        }
//    }else{
//        motor_power_state=1;
//    }
      if(enbale_blink_flag)
   {
   green_charge_state=0;
   charge_red_off();
   }
 if(delaysleep_count>0)
        delaysleep_count--;
    //GPS工作逻辑
@@ -463,9 +479,9 @@
}
uint8_t flag_4guart_needinit=0;
uint8_t index1,index2,index3;
int tt2;
int test1,test3;
uint32_t test4;
int16_t Voltage_input;
int main(void)
{
    board_clock_run();
@@ -506,18 +522,33 @@
    TCPClient_Init();
    gpio_open();
      board_output_init();
    //board_led_init();
      //防止充电电流过低导致设备无法启动
      battery_monitor_open();
      Voltage_input=battery_monitor_get();
      battery_monitor_close();
      if(Voltage_input<=3270)
      {
      enable_system_function_flag=0;//供电不足不能启动4G和GPS
      }else{
      enable_system_function_flag=1;
      }
      //检测通过后改为正常adc采集模式
    adc_open(&usr_adc_cfg);
      
    IIC2_Init();
    Accelerometer_Init();
    IO_control_init();
      #ifdef BO_XING
    io_pin_mux_set(SCL_PIN, IO_FUNC0);//测试测距波形
    gpio_pin_set_dir(SCL_PIN , GPIO_DIR_OUT, 0);
    io_pull_set(SCL_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4);
      #endif
    gps_air780_power_change(0,1);//开启gps,4G 
//加速度计初始化必须在IO_control_init之前因为复用SDA引脚
      //加速度计初始化必须在IO_control_init之前因为复用SDA引脚
      tt1=gpio_pin_get_val(ADC_GND_ENABLE);
      gpio_pin_clr(ADC_GND_ENABLE);//Ïȵ
    adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
         Program_Init();
    //uart_open(UART_ID1, &test_uart_cfg);
@@ -537,8 +568,8 @@
//       LOG_INFO(TRACE_MODULE_APP, "测试进入app");
      board_4GUsart_detection_init(_4gUsart_handler);
    while (1)
    {
         tt2 = gpio_pin_get_val(_4G_USART_RX_Pin);
    { tt1=gpio_pin_get_val(ADC_GND_ENABLE);
         //tt2 = gpio_pin_get_val(_4G_USART_RX_Pin);
        if(flag_TCP_reconnectting||IfTCPConnected())
        {
        //    LOG_INFO(TRACE_MODULE_APP, "处理4G任务\r\n");
@@ -604,7 +635,6 @@
            HIDO_ATLitePoll();
            HIDO_TimerPoll();
            TCPClient_Poll();
         //   power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)_4G_USART_RX_Pin, POWER_WAKEUP_LEVEL_LOW);
            
           // delay_us(300000);
            trace_flush();