chen
3 天以前 d715e84d0578eebc57d6393fb8eff70ff58acad1
keil/include/main/main.c
@@ -118,6 +118,7 @@
uint8_t group_id,enable_sleep_count;
uint32_t dev_id;
uint16_t disoffset;
uint16_t set_mk_time;
uint8_t flag_sleeptimer,flag_secondtask,secondtask_count;
float nomove_count;
// Default pool descriptor.
@@ -129,6 +130,8 @@
{
    // LOG_INFO(TRACE_MODULE_APP, "Wake up by sleep timer %d\r\n", time);
}
extern uint8_t start_wait_flag;
extern int16_t end_count1;
static void sleep_timer_callback_normal(void *dev, uint32_t time)
{
   if(secondtask_count++%2==0)
@@ -137,7 +140,11 @@
    }else{
        flag_secondtask = 0;
    }
      if(start_wait_flag)//lora升级等待超时标志
      {
      if(end_count1--<=0)
      start_wait_flag=0;
      }
// if(delaysleep_count>0)
//     delaysleep_count--;
}
@@ -170,12 +177,12 @@
    port = g_com_map[TCP_PORT];
    g_com_map[VERSION] = (1<<8)|0;
    LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
      if(gpio_pin_get_val(MODE_CHANGE_PIN))
    LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
      else{
      LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 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);
//      if(gpio_pin_get_val(MODE_CHANGE_PIN))
//    LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
//      else{
//      LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 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);
}
void MinuteTask(void)
{      
@@ -306,10 +313,10 @@
#else
      spi_init();
    // 模式判断脚和spi nrst脚初始化
//    // 模式判断脚和spi nrst脚初始化
    board_mode_pin_init();
            Program_Init();
//    board_led_on(BOARD_LED_1);
    //board_led_on(BOARD_LED_1);
#endif
      Board_LORA_NVIC_Init(Lora_irq_handler);
    board_configure();
@@ -351,6 +358,18 @@
}
uint8_t bat_percent;
uint8_t  stationary_flag;
extern uint8_t send_flag;
extern uint8_t txdone;
void mcu_deep_sleep(void)
{
            uint32_t lock;
            trace_flush();
            lock = int_lock();
                     sleep_timer_stop();
            power_enter_power_down_mode(1);
            int_unlock(lock);
}
int main(void)
{      
   // Initialize MCU system
@@ -358,8 +377,15 @@
    // Disable watchdog timer
    wdt_close(WDT_ID0);
    LOG_INFO(TRACE_MODULE_APP, "UCI FiRa example\r\n");
//   delay_ms(500);
//   lora_in_sleep();
//    power_init();
//   mcu_deep_sleep();
   if(gpio_pin_get_val(SLEEP_PIN))
   {
   if(gpio_pin_get_val(MODE_CHANGE_PIN))//记得改回来与正式的相反
   {
      LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
      // Platform init for WSF
    PalSysInit();
@@ -455,18 +481,23 @@
    while (1)
    {
        wsfOsDispatcher();
#ifdef MY_MODE
            if(normal_flag)
            {
            IdleTask();
            }
#endif
        power_manage();
            if(!gpio_pin_get_val(SLEEP_PIN))
            {
            delay_ms(300);
               //LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
               //gpio_pin_clr(LORA_NRST);//lora休眠
               //spi_close(SPI_ID0);
               lora_in_sleep();
                power_init();
               mcu_deep_sleep();
            }
    }
   }else{
    }else{
      LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
      uart0_Init_normal();
      Lora_1268_Init();
       //LOG_INFO(TRACE_MODULE_APP," 切换6\r\n");
      SwitchLoraSettings(478,7,22);
      Uwb_init();//默认为我们测距配置
      OpenUWB();
@@ -477,9 +508,12 @@
      sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
          while (1)
            {
               if(send_flag)
               {
                  LOG_INFO(TRACE_MODULE_APP,"发送数量%d. \r\n",txdone);
                  send_flag=0;
               }
            uwb_app_poll();//我们的测距逻辑
            if(flag_secondtask)
        {
            flag_secondtask = 0;
@@ -487,11 +521,30 @@
               //Lora_Tx_Poll();
        }
            Lora_Tx_Poll();   
            //LoraUp_Poll();//网关升级
            if(!gpio_pin_get_val(SLEEP_PIN))
            {
               delay_ms(300);
            //LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
            //gpio_pin_clr(LORA_NRST);//lora休眠
            //spi_close(SPI_ID0);
            lora_in_sleep();
             power_init();
            mcu_deep_sleep();
            }
            IdleTask();
            }
   }    
}else{
delay_ms(300);
   //LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n");//会打断休眠
   //gpio_pin_clr(LORA_NRST);//lora休眠
   //spi_close(SPI_ID0);
   lora_in_sleep();
    power_init();
   mcu_deep_sleep();
}
}
void app_restore_from_power_down(void)