WXK
2024-10-09 f9199bf56082288137ac7620f6dc1020417a1bd1
keil/include/main/main.c
@@ -63,11 +63,12 @@
#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
@@ -186,61 +187,61 @@
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采样
@@ -253,9 +254,9 @@
        MinuteTask();
    }
    //UWB更新列表
    TagListUpdate();
//    TagListUpdate();
    //GPS_Poll();
      gps_power_state=1;//测试gps长开
//      gps_power_state=1;//测试gps长开
    //UWB状态检测
    if(IfTCPConnected())
@@ -281,12 +282,12 @@
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;
@@ -337,9 +338,12 @@
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;
@@ -610,15 +614,15 @@
//    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);
@@ -626,38 +630,34 @@
    
    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);