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

Function clampDataRateRange

pkg/networkserver/mac/adr.go:320–344  ·  view source on GitHub ↗
(
	dev *ttnpb.EndDevice, defaults *ttnpb.MACSettings, minDataRateIndex, maxDataRateIndex ttnpb.DataRateIndex,
)

Source from the content-addressed store, hash-verified

318}
319
320func clampDataRateRange(
321 dev *ttnpb.EndDevice, defaults *ttnpb.MACSettings, minDataRateIndex, maxDataRateIndex ttnpb.DataRateIndex,
322) (min, max ttnpb.DataRateIndex) {
323 clamp := func(dynamicSettings *ttnpb.ADRSettings_DynamicMode) (min, max ttnpb.DataRateIndex) {
324 min, max = minDataRateIndex, maxDataRateIndex
325 minSetting, maxSetting := dynamicSettings.MinDataRateIndex, dynamicSettings.MaxDataRateIndex
326 if minSetting != nil && minSetting.Value > minDataRateIndex {
327 min = minSetting.Value
328 }
329 if maxSetting != nil && maxSetting.Value < maxDataRateIndex {
330 max = maxSetting.Value
331 }
332 return min, max
333 }
334 switch {
335 case dev.GetMacSettings().GetAdr().GetDynamic() != nil:
336 return clamp(dev.MacSettings.Adr.GetDynamic())
337
338 case defaults.GetAdr().GetDynamic() != nil:
339 return clamp(defaults.GetAdr().GetDynamic())
340
341 default:
342 return minDataRateIndex, maxDataRateIndex
343 }
344}
345
346func clampTxPowerRange(
347 dev *ttnpb.EndDevice, defaults *ttnpb.MACSettings, minTxPowerIndex, maxTxPowerIndex uint32,

Callers 1

adrDataRateRangeFunction · 0.85

Calls 3

GetDynamicMethod · 0.45
GetAdrMethod · 0.45
GetMacSettingsMethod · 0.45

Tested by

no test coverage detected