前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >对LoRaWAN修改入网速率和入网间隔的说明

对LoRaWAN修改入网速率和入网间隔的说明

作者头像
ManInRoad
发布2021-03-10 13:42:52
发布2021-03-10 13:42:52
79400
代码可运行
举报
文章被收录于专栏:物联网思考物联网思考
运行总次数:0
代码可运行

一、修改入网速率

在RegionCN470.c中有如下函数:

代码语言:javascript
代码运行次数:0
复制
int8_t RegionCN470AlternateDr( AlternateDrParams_t* alternateDr ){    int8_t datarate = 0;
    if( ( alternateDr->NbTrials % 48 ) == 0 )    {        datarate = DR_0;    }    else if( ( alternateDr->NbTrials % 32 ) == 0 )    {        datarate = DR_1;    }    else if( ( alternateDr->NbTrials % 24 ) == 0 )    {        datarate = DR_2;    }    else if( ( alternateDr->NbTrials % 16 ) == 0 )    {        datarate = DR_3;    }    else if( ( alternateDr->NbTrials % 8 ) == 0 )    {        datarate = DR_4;    }    else    {        datarate = DR_2;    }    return datarate;}

可以看出:入网的时候速率是不断调整的,主要是与入网的次数有关,入网次数是48的倍数的时候使用DR_0,入网次数是32的倍数的时候使用DR_1,以此类推,其余入网的时候使用DR_2(对CN470来说就是SF10)。如果想要修改入网速率,就可以根据实际情况调整。

二、修改入网间隔

在RegionCommon.c文件中有如下函数:

代码语言:javascript
代码运行次数:0
复制
#define BACKOFF_DC_1_HOUR       100#define BACKOFF_DC_10_HOURS     1000#define BACKOFF_DC_24_HOURS     10000
代码语言:javascript
代码运行次数:0
复制
uint16_t RegionCommonGetJoinDc( TimerTime_t elapsedTime ){    uint16_t dutyCycle = 0;    if( elapsedTime < 3600000 )    {        dutyCycle = BACKOFF_DC_1_HOUR;    }    else if( elapsedTime < ( 3600000 + 36000000 ) )    {        dutyCycle = BACKOFF_DC_10_HOURS;    }    else    {        dutyCycle = BACKOFF_DC_24_HOURS;    }    return dutyCycle;}

elapsedTime表示过去的时间,可以看出随着时间往后,入网的间隔越久。如果要改变入网时间,可以修改上面的三个宏。

======================================

相关阅读

LoRa串口透传

LoRa连接到腾讯云物联网平台

STM32与LoRa低功耗调试总结

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档