| | |
| | | #include "TCPClient.h" |
| | | #include "mk_spi.h" |
| | | #include "pan_port.h" |
| | | #include "dw_app.h" |
| | | //#include "pan_param.h" |
| | | //#include "pan_rf.h" |
| | | #include "lora_3029.h" |
| | | #define DEBUG_MODE |
| | | extern int simple_main(void); |
| | | //extern int simple_main(void); |
| | | extern int temp_main(void); |
| | | #define TEST_UART_POLL_MODE 0 |
| | | #define TEST_UART_INTERUPT_MODE 1 |
| | |
| | | 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; |
| | | int need_open_gps_count; |
| | | void MotorPoll(void) |
| | | { |
| | | if(UWB_work_state==UN_BIND) { |
| | | gps_uwb_flag=0;//关闭GPS |
| | | moter_open_uwb_flag=0;//关闭震动 |
| | | need_open_gps_count=0;//清0计数gps |
| | | } else { //绑定状态下 |
| | | if(anchordata_num==1) { |
| | | if(distance<g_com_map[ALARM_DISTANCE1]) { //小于预警距离 |
| | | if(flag_alam_state) |
| | | { |
| | | flag_alam_state = 0; |
| | | _4GAlarmUpload(2); |
| | | } |
| | | need_open_gps_count=0; |
| | | moter_open_uwb_flag=0;//关闭震动 |
| | | gps_uwb_flag=0;//关闭GPS |
| | | } else if(g_com_map[ALARM_DISTANCE1]<=distance&&distance<=g_com_map[ALARM_DISTANCE2]) { //大于预警距离小于报警距离 |
| | | need_open_gps_count++; |
| | | moter_open_uwb_flag=1;//开启震动 |
| | | if(need_open_gps_count>=20) { |
| | | if(!flag_alam_state) |
| | | { |
| | | flag_alam_state = 1; |
| | | _4GAlarmUpload(1); |
| | | } |
| | | gps_uwb_flag=1;//开启gps测距流程 |
| | | need_open_gps_count=0; |
| | | } |
| | | } else if(distance>=g_com_map[ALARM_DISTANCE2]) { //大于报警距离 |
| | | need_open_gps_count++; |
| | | moter_open_uwb_flag=1;//开启震动 |
| | | if(need_open_gps_count>=20) { |
| | | if(!flag_alam_state) |
| | | { |
| | | flag_alam_state = 1; |
| | | _4GAlarmUpload(1); |
| | | } |
| | | gps_uwb_flag=1;//开启gps测距流程 |
| | | need_open_gps_count=0; |
| | | } |
| | | } |
| | | } else if(anchordata_num==0) { |
| | | if(!flag_alam_state) |
| | | { |
| | | flag_alam_state = 1; |
| | | _4GAlarmUpload(1); |
| | | } |
| | | distance = -1; |
| | | gps_uwb_flag=1;//开启gps测距流程 |
| | | moter_open_uwb_flag=1;//开启震动 |
| | | need_open_gps_count=0; |
| | | } |
| | | } |
| | | } |
| | | //void MotorPoll(void) |
| | | //{ |
| | | // if(UWB_work_state==UN_BIND) { |
| | | // gps_uwb_flag=0;//关闭GPS |
| | | // moter_open_uwb_flag=0;//关闭震动 |
| | | // need_open_gps_count=0;//清0计数gps |
| | | // } else { //绑定状态下 |
| | | // if(anchordata_num==1) { |
| | | // if(distance<g_com_map[ALARM_DISTANCE1]) { //小于预警距离 |
| | | // if(flag_alam_state) |
| | | // { |
| | | // flag_alam_state = 0; |
| | | // _4GAlarmUpload(2); |
| | | // } |
| | | // need_open_gps_count=0; |
| | | // moter_open_uwb_flag=0;//关闭震动 |
| | | // gps_uwb_flag=0;//关闭GPS |
| | | // } else if(g_com_map[ALARM_DISTANCE1]<=distance&&distance<=g_com_map[ALARM_DISTANCE2]) { //大于预警距离小于报警距离 |
| | | // need_open_gps_count++; |
| | | // moter_open_uwb_flag=1;//开启震动 |
| | | // if(need_open_gps_count>=20) { |
| | | // if(!flag_alam_state) |
| | | // { |
| | | // flag_alam_state = 1; |
| | | // _4GAlarmUpload(1); |
| | | // } |
| | | // gps_uwb_flag=1;//开启gps测距流程 |
| | | // need_open_gps_count=0; |
| | | // } |
| | | // } else if(distance>=g_com_map[ALARM_DISTANCE2]) { //大于报警距离 |
| | | // need_open_gps_count++; |
| | | // moter_open_uwb_flag=1;//开启震动 |
| | | // if(need_open_gps_count>=20) { |
| | | // if(!flag_alam_state) |
| | | // { |
| | | // flag_alam_state = 1; |
| | | // _4GAlarmUpload(1); |
| | | // } |
| | | // gps_uwb_flag=1;//开启gps测距流程 |
| | | // need_open_gps_count=0; |
| | | // } |
| | | // } |
| | | // } else if(anchordata_num==0) { |
| | | // if(!flag_alam_state) |
| | | // { |
| | | // flag_alam_state = 1; |
| | | // _4GAlarmUpload(1); |
| | | // } |
| | | // distance = -1; |
| | | // gps_uwb_flag=1;//开启gps测距流程 |
| | | // moter_open_uwb_flag=1;//开启震动 |
| | | // need_open_gps_count=0; |
| | | // } |
| | | // } |
| | | //} |
| | | void MinuteTask(void) |
| | | { |
| | | adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 |
| | |
| | | MinuteTask(); |
| | | } |
| | | //UWB更新列表 |
| | | TagListUpdate(); |
| | | // TagListUpdate(); |
| | | //GPS_Poll(); |
| | | gps_power_state=1;//测试gps长开 |
| | | // gps_power_state=1;//测试gps长开 |
| | | //UWB状态检测 |
| | | |
| | | if(IfTCPConnected()) |
| | |
| | | uint8_t flag_sleeptimer,flag_secondtask,secondtask_count; |
| | | static void sleep_timer_callback(void *dev, uint32_t time) |
| | | { |
| | | IO_control_init(); |
| | | UWBPoll(); |
| | | // IO_control_init(); |
| | | // UWBPoll(); |
| | | |
| | | |
| | | MotorPoll(); |
| | | |
| | | // MotorPoll(); |
| | | g_start_send_flag=1; |
| | | if(secondtask_count++%2==0) |
| | | { |
| | | flag_secondtask = 1; |
| | |
| | | void Program_Init(void) |
| | | { |
| | | Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 |
| | | parameter_init_anchor();//g_com_map表初始化角色默认为基站 |
| | | parameter_init_anchor();//g_com_map表初始化角色默认为基站 |
| | | g_com_map[DEV_ID]=0x6688; |
| | | g_com_map[GROUP_ID]=9; |
| | | 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; |
| | |
| | | // gps_air780_power_change(0,1);//开启gps,4G |
| | | ////加速度计初始化必须在IO_control_init之前因为复用SDA引脚 |
| | | // adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 |
| | | // Program_Init(); |
| | | Program_Init(); |
| | | // uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); |
| | | // |
| | | //// Initialize low power mode |
| | | // power_init(); |
| | | // AIR780E_Reset(); //4G模块重启,耗时1.5秒,这个是无法同步的关键 |
| | | // sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback); |
| | | sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback); |
| | | |
| | | // sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试 |
| | | sleep_timer_start(__MS_TO_32K_CNT(1000));//测试 |
| | | |
| | | // board_acceleration_detection_init(move_handler); |
| | | |
| | |
| | | |
| | | while (1) |
| | | { |
| | | // rf_irq_process(); |
| | | // if(rf_get_transmit_flag() == RADIO_FLAG_TXDONE) |
| | | // { |
| | | if(g_start_send_flag) |
| | | { |
| | | //LOG_INFO(TRACE_MODULE_APP, "测距ing"); |
| | | |
| | | g_start_send_flag = 0; |
| | | |
| | | simple_main(); |
| | | IdleTask(); |
| | | }else{ |
| | | IdleTask(); |
| | | } |
| | | |
| | | // |
| | | // rf_set_transmit_flag(RADIO_FLAG_IDLE); |
| | | // rf_delay_ms(1000); |
| | | // if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != 0) |
| | | // rf_enter_continous_tx(); |
| | | // if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) |
| | | // { |
| | | // error_cnt++; |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // successful_cnt ++; |
| | | //// DDL_Printf("Tx cnt %d\r\n", cnt ); |
| | | // } |
| | | // } |
| | | |
| | | |
| | | // |
| | | |
| | | // io14_state=gpio_pin_get_val(LORA_DIO); |
| | | rf_set_transmit_flag(RADIO_FLAG_IDLE); |
| | | rf_delay_ms(1000); |
| | | rf_enter_continous_tx(); |
| | | // rf_set_transmit_flag(RADIO_FLAG_TXDONE); |
| | | if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) |
| | | { |
| | | // rf_enter_continous_rx(); |
| | | } |
| | | else |
| | | { |
| | | successful_cnt ++; |
| | | } |
| | | |
| | | |
| | | // while (rf_get_transmit_flag() == RADIO_FLAG_IDLE) ; |
| | | // |
| | | // rf_set_transmit_flag(RADIO_FLAG_IDLE); |