yincheng.zhong
2025-04-01 01eb2711c0c175661337934c1f7a888cd31d45af
Src/application/dw_mbx_tag.c
@@ -243,8 +243,7 @@
    dwt_entersleep();
}
#define START_FREQ    480
#define END_FREQ      483  //LR 远距离通道
wg_state_enum wg_state = WG_Lost;
uint8_t lora_sendbuffer[200];
u8 seq_num;
@@ -257,27 +256,22 @@
void LoraReportFreqPoll(void)
{
    if(wg_lost_count++>3)
    if(wg_lost_count++>WG_LOST_SWITCH_THRES)
    {
        wg_state = WG_Lost;
        wg_report_id = DEFAULT_WG_ID;
       // if(wg_report_freq++>END_FREQ)
        if(wg_report_freq++>=END_FREQ)
        {
            wg_report_freq = START_FREQ;
        }
        if(wg_report_freq==END_FREQ)
        {
            SwitchLoraSettings(wg_report_freq,LR_CHANNEL_SF,g_com_map[LORA_POWER]);
        }else{
            SwitchLoraSettings(wg_report_freq, REPORT_CHANNEL_SF,g_com_map[LORA_POWER]);
        }
        
    }
//    wg_report_freq = g_com_map[ALARM_DISTANCE2];
    if(wg_lost_count++>WG_LOST_NOUWB_COUNT) //网关60秒没有通讯,就不开启UWB测距lora监听
        
    {
       // lora_jianting_flag = 0;
//        lora_jianting_flag = 0;
    } else {
        lora_jianting_flag = 1;
    }
@@ -330,10 +324,22 @@
    printf("气压值:%d",intheight);
#endif
    TagListUpdate();
    LoraReportFreqPoll();
    flag_getwgresp = 0;
    if(wg_report_freq==END_FREQ)
    {
        SwitchLoraSettings(wg_report_freq,LR_CHANNEL_SF,g_com_map[LORA_POWER]);
    }else{
        SwitchLoraSettings(wg_report_freq, REPORT_CHANNEL_SF,g_com_map[LORA_POWER]);
    }
    if(wg_state == WG_Lost)
    {
        if(wg_report_freq==END_FREQ)
          TagListUpdate();
    }else{
         TagListUpdate();
    }
    //  wg_report_freq = REPORT_MANGE_CHANNEL_FRQ;
//    SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,g_com_map[LORA_POWER]);
    if(heatbeat_count++>HEATBEAT_UPDATE_TIME && WG_Connected == wg_state) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包
@@ -457,23 +463,23 @@
        {
            Lora_send_flag=0;
#ifdef GROUPID_SWITCH
            if(lora_jianting_flag)
            {
                if(++group_id>2)
                {
                    group_id = 1;
                }
                t22[ti++] = group_id;
                if(ti>=20)
                    ti=0;
                group_min_dist[group_id] = 0xffff;
                Radio.Standby();
                SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
                Radio.Rx(0);
            }
            if(rec_secdelay>0)
            {
                rec_secdelay--;
                if(lora_jianting_flag)
                {
                    if(++group_id>GROUP_NUM)
                    {
                        group_id = 1;
                    }
                    t22[ti++] = group_id;
                    if(ti>=20)
                        ti=0;
                    group_min_dist[group_id] = 0xffff;
                    Radio.Standby();
                    SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
                    Radio.Rx(0);
                }
                return;
            }
//            //找3个小组中最近距离最大的小组,上传报文后切换到这个小组,因为上传报文会时间占用。
@@ -486,7 +492,7 @@
//                group_maxdist_index = group_min_dist[2]>group_min_dist[3]?2:3; //取 2和3 最大值
//                group_mindist_index = group_min_dist[1]<group_min_dist[3]?1:3;//取 1和3 最小值
//            }
          group_id = 1;
//          group_id = 1;
//            group_id = group_maxdist_index;
#endif
            t22[ti++] = group_id;