MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / deviceShouldAdaptDataRate

Function deviceShouldAdaptDataRate

pkg/networkserver/mac/adr.go:120–147  ·  view source on GitHub ↗
(dev *ttnpb.EndDevice, defaults *ttnpb.MACSettings, phy *band.Band)

Source from the content-addressed store, hash-verified

118}
119
120func deviceShouldAdaptDataRate(dev *ttnpb.EndDevice, defaults *ttnpb.MACSettings, phy *band.Band) (adaptDataRate bool, resetDesiredParameters bool, staticSettings *ttnpb.ADRSettings_StaticMode) {
121 switch {
122 case dev.GetMulticast():
123 return false, true, nil
124
125 case dev.GetMacSettings().GetAdr().GetDisabled() != nil:
126 return false, true, nil
127 case dev.GetMacSettings().GetAdr().GetStatic() != nil:
128 return false, false, dev.MacSettings.Adr.GetStatic()
129
130 case defaults.GetAdr().GetDisabled() != nil:
131 return false, true, nil
132 case defaults.GetAdr().GetStatic() != nil:
133 return false, false, defaults.GetAdr().GetStatic()
134
135 case !phy.SupportsDynamicADR:
136 return false, true, nil
137
138 case dev.GetMacSettings().GetAdr().GetDynamic() != nil:
139 return true, true, nil
140
141 case defaults.GetAdr().GetDynamic() != nil:
142 return true, true, nil
143
144 default:
145 return false, false, nil
146 }
147}
148
149// DeviceShouldAdaptDataRate returns if the ADR algorithm should be run for the end device.
150func DeviceShouldAdaptDataRate(dev *ttnpb.EndDevice, defaults *ttnpb.MACSettings, phy *band.Band) (adaptDataRate bool, resetDesiredParameters bool, staticSettings *ttnpb.ADRSettings_StaticMode) {

Callers 1

Calls 6

GetMulticastMethod · 0.80
GetStaticMethod · 0.80
GetDisabledMethod · 0.45
GetAdrMethod · 0.45
GetMacSettingsMethod · 0.45
GetDynamicMethod · 0.45

Tested by

no test coverage detected