keil/include/main/main.c
@@ -151,9 +151,13 @@
    .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)
{
@@ -295,7 +299,8 @@
}
#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;
@@ -309,7 +314,8 @@
      if(bind_count--<=0)
      {
      bind_count=BIND_COUNT_NUM;
      copy_taglist_to_flash();
      copy_taglist_to_flash();
      sys_reset(0);
      bind_flag=0;
      }
   }
@@ -394,21 +400,20 @@
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
    memcpy(&disoffset,&g_com_map[DIST_OFFSET],2);
    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;
@@ -462,27 +467,28 @@
}
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)
@@ -509,7 +515,7 @@
    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();
@@ -545,8 +551,8 @@
    //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);
@@ -602,7 +608,7 @@
            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);