From 6facaabcb51a77459d098b4957213038e6bb0a73 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 05 三月 2025 16:06:30 +0800 Subject: [PATCH] 1.1,功能开发完成 --- keil/include/main/main.c | 148 +++++++++++++++++++++++++++++-------------------- 1 files changed, 87 insertions(+), 61 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 67238fe..50cc2c6 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -166,7 +166,7 @@ sleep_timer_stop(); //adc_close(); power_enter_power_down_mode(1); - //LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n"); + LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n"); sys_reset(0); int_unlock(lock); } @@ -312,23 +312,23 @@ // //UWB状态检测 //if(!power_low_flag)//低供电下不需要检测重连 // { - if(IfTCPConnected()) - { - TCP_reconnect_timer =0; - flag_TCP_reconnectting = 0; - } else { - if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 - { - flag_TCP_reconnectting = 1; - } else { - flag_TCP_reconnectting = 0; - } - if(TCP_reconnect_timer++>600) - { - TCP_reconnect_timer = 0; - } +// if(IfTCPConnected()) +// { +// TCP_reconnect_timer =0; +// flag_TCP_reconnectting = 0; +// } else { +// if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 +// { +// flag_TCP_reconnectting = 1; +// } else { +// flag_TCP_reconnectting = 0; +// } +// if(TCP_reconnect_timer++>600) +// { +// TCP_reconnect_timer = 0; +// } - } +// } // } HIDO_TimerTick(); // if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 @@ -340,10 +340,13 @@ uint8_t tt=1; uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag; uint8_t uwb_enable_flag=0; +uint8_t input5v_time; +extern uint8_t taglist_num; static void sleep_timer_callback(void *dev, uint32_t time) { if(secondtask_count++%2==0) - { + { + input5v_time=1; flag_secondtask = 1; if(!read_5v_input_pca()) { @@ -357,29 +360,41 @@ // ledontime=HIDO_TimerGetTick(); Set4LEDColor(uwbled,rtkled,led4g,powerled); } + input5v_time=1; + if(taglist_num==0) + { + CloseUWB(); + Uwb_init(); + OpenUWB(); + } }else{ flag_secondtask = 0; } if(delaysleep_count>0) delaysleep_count--; } +uint8_t test11,test21,test31,test41,test51; static void pca_handler(enum IO_PIN_T pin) { PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值 uint16_t gpio_state; gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1]; + test41++; if(WAKE_UP_POSITION&gpio_state) { nomove_count=0; + test11++; } - if(!(MAIN_RI_POSITION&gpio_state)) - { - flag_4G_recdata = 1; - delaysleep_count = 3; - } +// if(!(MAIN_RI_POSITION&gpio_state)) +// { +// flag_4G_recdata = 1; +// delaysleep_count = 3; +// test21++; +// } if((PWR_ON_POSITION&gpio_state)) { PowerTask(); + test31++; } } @@ -429,7 +444,7 @@ ip2 = (g_com_map[TCP_IP_2]>>12&0xf)*1000+(g_com_map[TCP_IP_2]>>8&0xf)*100+(g_com_map[TCP_IP_2]>>4&0xf)*10+(g_com_map[TCP_IP_2]&0xf); ip3 = (g_com_map[TCP_IP_3]>>12&0xf)*1000+(g_com_map[TCP_IP_3]>>8&0xf)*100+(g_com_map[TCP_IP_3]>>4&0xf)*10+(g_com_map[TCP_IP_3]&0xf); port = g_com_map[TCP_PORT]; - g_com_map[VERSION] = (1<<8)|0; + g_com_map[VERSION] = (1<<8)|1; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port); @@ -451,39 +466,47 @@ uart1_change_from_gps_to_debug();//测试 PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 } -// chongman_time=0; -// only_one_flag=0; -// uwbled=0; -// rtkled=0; -// led4g=0; -// powerled=0; -// while(read_5v_input_pca()) -// { -// nomove_count = 0; -// if(HIDO_TimerGetTick()-adctick>6000) //10分钟采样一次 电量 -// { -// chongman_time=chongman_time+6; -// adctick = HIDO_TimerGetTick(); -// PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 -// adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 -// } -// if(bat_percent>=99&&!only_one_flag) -// { -// only_one_flag=1; -// chongman_time=0; -// } -// if(bat_percent>=99&&chongman_time>=1800) -// { -// powerled = GREEN; -// }else{ -// powerled = RED; -// } -// UART_CheckReceive(); -// delay_ms(100); -// Internet_Poll(); -// Set4LEDColor(0,0,0,powerled); -// } -// NVIC_SystemReset(); + chongman_time=0; + only_one_flag=0; + uwbled=0; + rtkled=0; + led4g=0; + powerled=0; + PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); + while(1) + { + nomove_count = 0; + if(HIDO_TimerGetTick()-adctick>6000) //10分钟采样一次 电量 + { + chongman_time=chongman_time+6; + adctick = HIDO_TimerGetTick(); + PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 + adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 + } + if(bat_percent>=99&&!only_one_flag) + { + only_one_flag=1; + chongman_time=0; + } + if(bat_percent>=99&&chongman_time>=1800) + { + powerled = GREEN; + }else{ + powerled = RED; + } + UART_CheckReceive(); + delay_ms(100); + Internet_Poll(); + Set4LEDColor(0,0,0,powerled); + if(input5v_time) + { + if(!read_5v_input_pca()) + { + break; + } + } + } + NVIC_SystemReset(); input5vflag=1; } else @@ -519,6 +542,10 @@ if(ledonflag==1) { ledonflag=0; + uwbled=0; + rtkled=0; + led4g=0; + powerled=0; Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); } } @@ -579,10 +606,10 @@ Internet_Init(); TCPClient_Init(); gpio_open(); - LED_output_init();//配置彩色灯引脚 - IIC2_Init(); + LED_output_init();//配置彩色灯引脚 + IIC2_Init(); Accelerometer_Init(); - PCA9555_init(); + PCA9555_init(); //AIR780E_Reset(); @@ -622,7 +649,6 @@ while (1) { uwb_app_poll(); -// Air780eTask(); Internet_Poll(); HIDO_TimerPoll(); HIDO_ATLitePoll(); -- Gitblit v1.9.3