差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:rf-wireless:xbee:zigbee:antai-dongtaitiaojie [2021/07/07 13:35] robindigi:rf-wireless:xbee:zigbee:antai-dongtaitiaojie [2021/07/07 14:14] (当前版本) robin
行 5: 行 5:
 本方案主要在协调器端程序做一些改动,原路由器程序无需变动。 本方案主要在协调器端程序做一些改动,原路由器程序无需变动。
  
-RRI(0xA1)每十分钟个数RRInumber算是一种网络拥堵指标。RRI的增减趋势称为busyIndex,每十分钟统计一次RRInumber值并和之前值比大小,如果大则busyIndex+1, 如果小则busyIndex-1,当busyIndex大于N时,广播调节指标K-Interval+2/D-Interval+2 ,当busyInex小于-N时,广播调节指标K-Interval-2/D-Interval-2。 这里K-Interval和D-Interval分别代表心跳和数据的时间间隔(以秒计)。N为一个经验值,初始建议设置为5~10之间,建议把N放在上位机上设置。+实施本方案之前是静态方案,其中K-Interval和D-Interval分别代表心跳和数据的时间间隔(以秒计)。上位机可设置心跳包和数据包的上报时间间隔,比如41:80,这里心跳上报时间间隔K-Interval=41秒,数据上报时间间隔D-Interval=80秒,这个可作为默认基础值,在上位机设置这两个值后,会广播给下面支架。 
 + 
 +动态调节的目标是取代手动设置这两个值,自动实现网络拥堵时扩大上报间隙,网络畅通时减少上了间隙,以更快获取数据。 
 + 
 +RRI(0xA1)每十分钟个数RRInumber算是一种网络拥堵指标。本方案以10分钟内的RRI个数和CTS个数作为指标,即RRInumber和CTSnumber, 其中RRInumber不作为直接判断网络拥堵依据,而是作为另一个趋势数据busyIndex的参考值,而CTSnumber直接作为网络拥堵的指标。 
 + 
 +RRI的增减趋势称为busyIndex,每十分钟统计一次RRInumber值并和之前值比大小,如果大则busyIndex+1, 如果小则busyIndex-1,当busyIndex累计到N次,就扩大上报间间隙2秒,广播调节指标K-Interval+2/D-Interval+2,并对busyIndex复位清0;当busyInex小于-N时,就缩短上报间隙,此时广播调节指标K-Interval-2/D-Interval-2,并对busyIdex复位清0。 N为一个经验值,初始建议设置为5~10之间,建议把N放在上位机上设置。
  
 BusyIndex需要设置一个上限和下限,到达上下限时清0,以防止这个变量溢出。也可以就以正负N为上下限。当busyIndex到达上限时(一般不可能),同样广播调节指标K-Interval+2/D-Interval+2,当busyIndex到达下限时(网络好有可能),同样广播调节指标K-Interval-2/D-Interval-2。心跳和数据间隔也设置一个最小值,以防止溢出,比如K-Interval或D-Interval的下限都为20秒,小于20秒就不再改小了。 BusyIndex需要设置一个上限和下限,到达上下限时清0,以防止这个变量溢出。也可以就以正负N为上下限。当busyIndex到达上限时(一般不可能),同样广播调节指标K-Interval+2/D-Interval+2,当busyIndex到达下限时(网络好有可能),同样广播调节指标K-Interval-2/D-Interval-2。心跳和数据间隔也设置一个最小值,以防止溢出,比如K-Interval或D-Interval的下限都为20秒,小于20秒就不再改小了。
行 12: 行 18:
  
 考虑到RRI在网络已经严重堵塞时趋势并不一定有变化,因此还要引入另一个高权值变量,即CTS变高的次数CTSnumber。每当CTS变高,记录CTSnumbr+1,当10分钟内有N次检查到CTS变高,和BusyIndex超N作一样应对处理,即CTSnumber大于N时,广播调节指标K-Interval+2/D-Interval+2。 考虑到RRI在网络已经严重堵塞时趋势并不一定有变化,因此还要引入另一个高权值变量,即CTS变高的次数CTSnumber。每当CTS变高,记录CTSnumbr+1,当10分钟内有N次检查到CTS变高,和BusyIndex超N作一样应对处理,即CTSnumber大于N时,广播调节指标K-Interval+2/D-Interval+2。
 +{{:digi:rf-wireless:xbee:zigbee:pasted:20210707-141411.png}}
  
-综上: 程序每10分钟统计读取RRI个数或CTS变高个数,如果CTS变高达N次,心路数据上报时间各扩大2秒。如果RRI连续N次为增量,即BusyIndex累计到N,同样心跳数据上报间隔时间各扩大2秒,直到上限不到增。 反之如果RRI是减量的,即BusyIndex为负,则心跳数据上报时间间隔各减少2秒,直到下限不再减。间隔变动后,CTSnumber和BusyIndex复位为0。+综上: 程序每10分钟统计读取RRI个数或CTS变高个数,如果CTS变高达N次,心路数据上报时间各扩大2秒。如果RRI连续N次为增量,即BusyIndex累计到N,同样心跳数据上报间隔时间各扩大2秒,直到上限不到增。 反之如果RRI是减量的,即BusyIndex为负,则心跳数据上报时间间隔各减少2秒,直到下限不再减。间隔变动后,CTSnumber和BusyIndex复位为0。CTSnumber和BusyIndex取或就可以了,不必重复比较
  
 上位机必须可以设置N的值,以便灵活适当不同场景,如果N在上位机没有设置,可用默认值5. N可以作为BusyINdex或CTSnumber的上限。 上位机必须可以设置N的值,以便灵活适当不同场景,如果N在上位机没有设置,可用默认值5. N可以作为BusyINdex或CTSnumber的上限。