| | |
| | | .int_tx = false, |
| | | #endif |
| | | }; |
| | | void uart_receive_callback(void *dev, uint32_t err_code) |
| | | void uart0_receive_callback(void *dev, uint32_t err_code) |
| | | { |
| | | uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | | uart_receive(UART_ID0,m_EUART0_DMA_RXBuf,EUART0_RX_BUF_SIZE,uart0_receive_callback); |
| | | } |
| | | void uart1_receive_callback(void *dev, uint32_t err_code) |
| | | { |
| | | uart_receive(UART_ID1,m_EUART1_DMA_RXBuf,EUART1_RX_BUF_SIZE,uart1_receive_callback); |
| | | } |
| | | void mcu_deep_sleep(void) |
| | | { |
| | |
| | | |
| | | } |
| | | #define BIND_COUNT_NUM 50 |
| | | uint8_t bind_flag,bind_count=BIND_COUNT_NUM; |
| | | uint8_t bind_flag; |
| | | int8_t bind_count=BIND_COUNT_NUM; |
| | | extern uint8_t find_flag; |
| | | void SecondTask(void) |
| | | {static uint8_t second_count; |
| | | if(second_count++>60) |
| | |
| | | if(bind_count--<=0) |
| | | { |
| | | bind_count=BIND_COUNT_NUM; |
| | | copy_taglist_to_flash(); |
| | | sys_reset(0); |
| | | bind_flag=0; |
| | | } |
| | | } |
| | |
| | | extern uint16_t ip0,ip1,ip2,ip3,port; |
| | | extern uint8_t gps_4g_flag; |
| | | extern uint8_t gps_need_data_flag,gps_open_flag; |
| | | |
| | | extern uint16_t bind_distance,button_determinate_distance,change_by_frequency_distance; |
| | | extern uint8_t tag_near_frequency; |
| | | void Program_Init(void) |
| | | { |
| | | Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 |
| | | Usart1ParseDataCallback = Usart1ParseDataHandler;//需改为默认为gps处理,Usart1ParseDataHandler为升级处理当调试时候改为 |
| | | Usart0ParseDataCallback=Usart0ParseDataHandler; |
| | | parameter_init_anchor();//g_com_map表初始化角色默认为基站 |
| | | dev_id=g_com_map[DEV_ID];//这里不太对 |
| | | group_id=g_com_map[GROUP_ID];//组ID |
| | | // tag_frequency = 1000/g_com_map[COM_INTERVAL];//测距频率这个存的是测距时间 |
| | | memcpy(&disoffset,&g_com_map[DIST_OFFSET],2); |
| | | // g_com_map[ALARM_DISTANCE1] = 40; |
| | | // g_com_map[ALARM_DISTANCE2] = 40; |
| | | warning_distance=g_com_map[ALARM_DISTANCE1]; |
| | | prewarning_distance=g_com_map[ALARM_DISTANCE2]; |
| | | send_struct.warnDistence=warning_distance; |
| | | send_struct.alarmDistence=prewarning_distance;//更新报警距离 |
| | | memcpy(&send_struct.gunLableId,&g_com_map[BIND_DEV_ID],2);//更新绑定ID |
| | | send_struct.tagId=dev_id;//更新设备ID |
| | | |
| | | memcpy(&bind_distance,&g_com_map[BIND_DISTANCE],2); |
| | | memcpy(&button_determinate_distance,&g_com_map[DETERMINATION_DISTANCE],2);//设定开关判断距离 |
| | | memcpy(&tag_near_frequency,&g_com_map[NERA_FREQUENCY],1);//设定附近HZ数 |
| | | memcpy(&change_by_frequency_distance,&g_com_map[FREQUENCY_DISTANCE],2);//设定修改HZ生效默认范围 |
| | | if(g_com_map[BIND_DEV_ID]==0) |
| | | { |
| | | UWB_work_state = UN_BIND; |
| | |
| | | } |
| | | void IdleTask(void) |
| | | { |
| | | if(read_5v_input_pca()) |
| | | { |
| | | if(state5v==0) |
| | | { |
| | | state5v=1; |
| | | state5V_prase_flag=state5v; |
| | | gps_prase_flag=0;//解除gps解析 |
| | | uart1_change_from_gps_to_debug();//测试 |
| | | PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 |
| | | } |
| | | }else { |
| | | if(state5v==1) |
| | | { |
| | | g_com_map[MODBUS_MODE] = 0; |
| | | state5v=0; |
| | | state5V_prase_flag=state5v; |
| | | gps_prase_flag=1;//恢复gps解析 |
| | | uart1_change_from_debug_to_gps();//测试 |
| | | PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS |
| | | } |
| | | } |
| | | //if(read_5v_input_pca()) |
| | | // { |
| | | // if(state5v==0) |
| | | // { |
| | | // state5v=1; |
| | | // state5V_prase_flag=state5v; |
| | | // gps_prase_flag=0;//解除gps解析 |
| | | // uart1_change_from_gps_to_debug();//测试 |
| | | // PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 |
| | | // } |
| | | // }else { |
| | | // if(state5v==1) |
| | | // { |
| | | // g_com_map[MODBUS_MODE] = 0; |
| | | // state5v=0; |
| | | // state5V_prase_flag=state5v; |
| | | // gps_prase_flag=1;//恢复gps解析 |
| | | // uart1_change_from_debug_to_gps();//测试 |
| | | // PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS |
| | | // } |
| | | // } |
| | | UART0_CheckReceive(); |
| | | UART_CheckReceive(); |
| | | } |
| | | void boot_deinit(void) |
| | |
| | | board_clock_run(); |
| | | boot_deinit(); |
| | | board_pins_config(); |
| | | board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200); |
| | | board_debug_console_open_baud(TRACE_PORT_UART0,BAUD_115200); |
| | | // Reset reason |
| | | reset_cause_get(); |
| | | reset_cause_clear(); |
| | |
| | | //uart_open(UART_ID1, &test_uart_cfg); |
| | | // uart1_change_from_gps_to_debug(); |
| | | //Uart1GpsRecDebugSend(); |
| | | uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | | |
| | | uart_receive(UART_ID0,m_EUART0_DMA_RXBuf,EUART0_RX_BUF_SIZE,uart0_receive_callback); |
| | | uart_receive(UART_ID1,m_EUART1_DMA_RXBuf,EUART1_RX_BUF_SIZE,uart1_receive_callback); |
| | | // Initialize low power mode |
| | | power_init(); |
| | | sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback); |
| | |
| | | trace_flush(); |
| | | lock = int_lock(); |
| | | power_enter_power_down_mode(0); |
| | | uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | | uart_receive(UART_ID1,m_EUART1_DMA_RXBuf,EUART1_RX_BUF_SIZE,uart1_receive_callback); |
| | | // test3=gpio_pin_get_val(_4G_USART_RX_Pin); |
| | | //LOG_INFO(TRACE_MODULE_APP, "进入休眠\r\n"); |
| | | int_unlock(lock); |