WXK
2025-03-05 6facaabcb51a77459d098b4957213038e6bb0a73
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();