| | |
| | | |
| | | #define UWB_OPEN_COUNT 1 |
| | | #define UWB_MEASUREMENT_INTERVAL 5 |
| | | #define UWB_MEASUREMENT_INTERVAL_SLEEP 60 |
| | | #define UWB_MEASUREMENT_INTERVAL_SLEEP 30 |
| | | |
| | | extern uint8_t mUsartReceivePack[100]; |
| | | extern uint8_t mUsart2ReceivePack[150]; |
| | |
| | | } Operation_step; |
| | | |
| | | Operation_step UWB_work_state; |
| | | // 定义状态 |
| | | typedef enum { |
| | | STATE_NORMAL, // 正常状态,3秒测距上传一次 |
| | | STATE_SLEEP // 休眠状态,1分钟测距上传一次 |
| | | } CountState_t; |
| | | |
| | | |
| | | uint32_t uwb_time_count = 0; // 定时器计数值 |
| | | //uint32_t step_count = 0; // 步数计数 |
| | |
| | | .flow = UART_FLOW_CONTROL_NONE, |
| | | .rx_level = UART_RXFIFO_CHAR_1, |
| | | .tx_level = UART_TXFIFO_EMPTY, |
| | | .baud = BAUD_9600, |
| | | .baud = BAUD_115200, |
| | | #if (TEST_UART_MODE == TEST_UART_POLL_MODE) |
| | | .dma_en = false, |
| | | .int_rx = false, |
| | |
| | | deep_sleep_falg=0; |
| | | PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED |
| | | PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G |
| | | PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入 |
| | | // PCA9555_Set_One_Value_Output(MAIN_RI,1); |
| | | // PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入 |
| | | // |
| | | //// PCA9555_Set_One_Value_Output(MAIN_RI,1); |
| | | boot_deinit(); |
| | | CloseUWB(); |
| | | PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G |
| | |
| | | power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW); |
| | | mcu_deep_sleep(); |
| | | } |
| | | } |
| | | void powerON_Task(void) |
| | | { |
| | | if(deep_sleep_falg==0) |
| | | { |
| | | PCA9555_Set_One_Value_Output(PWR_ENABLE,1); |
| | | } |
| | | |
| | | } |
| | | void UserKeyTask(void) |
| | | { |
| | |
| | | } |
| | | uint8_t tt=1; |
| | | uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag; |
| | | uint8_t uwb_enable_flag=0; |
| | | uint8_t uwb_offtime_count=0; |
| | | uint8_t input5v_time; |
| | | extern uint8_t taglist_num; |
| | | uint8_t gps_ntripsend; |
| | | static void sleep_timer_callback(void *dev, uint32_t time) |
| | | { |
| | | // powerON_Task(); |
| | | if(secondtask_count++%2==0) |
| | | { |
| | | input5v_time=1; |
| | | flag_secondtask = 1; |
| | | #ifdef UWB_1_5HZ |
| | | uwb_time_count++; |
| | | #endif |
| | | #endif |
| | | uwb_offtime_count++; |
| | | if(uwb_offtime_count>60) |
| | | { |
| | | uwb_offtime_count=0; |
| | | // current_state = STATE_SLEEP; |
| | | } |
| | | if(!read_5v_input_pca()) |
| | | { |
| | | if(bat_percent>15) |
| | |
| | | } |
| | | g_com_map[MODBUS_MODE] = 0; |
| | | log_4g_enable_flag=g_com_map[LOG_4G_ENABLE]; |
| | | g_com_map[VERSION] = (1<<8)|8; |
| | | g_com_map[VERSION] = (1<<8)|14; |
| | | |
| | | |
| | | LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); |
| | |
| | | void upload_apppoll() |
| | | { |
| | | uint32_t elapsed_time_jibu; |
| | | #ifdef UWB_1_5HZ |
| | | |
| | | |
| | | switch (current_state) |
| | | { |
| | | #ifdef UWB_1_5HZ |
| | | case STATE_NORMAL: |
| | | elapsed_time_jibu = uwb_time_count - state_start_time; |
| | | switch(elapsed_time_jibu) |
| | | { |
| | | case UWB_OPEN_COUNT: |
| | | CloseUWB(); |
| | | // uwbled = LEDOFF; |
| | | UWBSendUDPTask(); |
| | | GPS_UPLOAD_FLAG=1; |
| | | |
| | | break; |
| | | |
| | | case UWB_MEASUREMENT_INTERVAL: |
| | | OpenUWB(); |
| | | // uwbled = WHITE; |
| | | taglist_num = 0; |
| | | CloseUWB(); |
| | | Uwb_init(); |
| | | OpenUWB(); |
| | | state_start_time = uwb_time_count; |
| | | |
| | | break; |
| | | } |
| | | break; |
| | | #endif |
| | | case STATE_SLEEP: |
| | | elapsed_time_jibu = uwb_time_count - state_start_time; |
| | | switch(elapsed_time_jibu) |
| | | { |
| | | case UWB_OPEN_COUNT: |
| | | |
| | | CloseUWB(); |
| | | CloseUWB(); |
| | | UWBSendUDPTask(); |
| | | break; |
| | | |
| | | case UWB_MEASUREMENT_INTERVAL_SLEEP: |
| | | |
| | | OpenUWB(); |
| | | state_start_time = uwb_time_count; |
| | | taglist_num = 0; |
| | | CloseUWB(); |
| | | Uwb_init(); |
| | | OpenUWB(); |
| | | state_start_time = uwb_time_count; |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | #endif |
| | | |
| | | } |
| | | |
| | | uint8_t flag_4guart_needinit=0; |
| | |
| | | uint32_t test4; |
| | | extern uint8_t receive_flag; |
| | | int main(void) |
| | | { |
| | | { |
| | | __enable_irq(); |
| | | board_clock_run(); |
| | | boot_deinit(); |
| | | board_pins_config(); |
| | | gpio_open(); |
| | | IIC2_Init(); |
| | | Accelerometer_Init(); |
| | | PCA9555_init(); |
| | | board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200); |
| | | |
| | | // Reset reason |
| | | reset_cause_get(); |
| | | reset_cause_clear(); |
| | |
| | | } |
| | | else |
| | | { |
| | | board_calibration_params_default(); |
| | | board_calibration_params_default(); |
| | | } |
| | | calib_chip(); |
| | | wdt_close(WDT_ID0); |
| | |
| | | TCPClient_Init_1(); |
| | | } |
| | | // HTTPClient_Init(); |
| | | gpio_open(); |
| | | |
| | | LED_output_init();//配置彩色灯引脚 |
| | | IIC2_Init(); |
| | | Accelerometer_Init(); |
| | | PCA9555_init(); |
| | | |
| | | |
| | | WT588E02B_Init(); |
| | | adc_open(&usr_adc_cfg); |
| | | uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | | power_init(); |
| | |
| | | gps_prase_flag=1;//恢复gps解析 |
| | | uart1_change_from_debug_to_gps();//测试 |
| | | PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS |
| | | #ifdef UWB_CG |
| | | CloseUWB(); |
| | | #endif |
| | | while (1) |
| | | { |
| | | |
| | | uwb_app_poll(); |
| | | Internet_Poll(); |
| | | HIDO_TimerPoll(); |