/// <summary> /// Tries to get the <see cref="LoRaRegionType"/> based on <paramref name="value"/>. /// </summary> public static bool TryTranslateToRegion(LoRaRegionType value, out Region region) { region = null; switch (value) { case LoRaRegionType.EU863: //Case added for LoRa Basics Station compatibility case LoRaRegionType.EU868: region = EU868; return(true); case LoRaRegionType.US902: //Case added for LoRa Basics Station compatibility case LoRaRegionType.US915: region = US915; return(true); case LoRaRegionType.CN470RP1: region = CN470RP1; return(true); case LoRaRegionType.CN470RP2: region = CN470RP2; return(true); case LoRaRegionType.AS923: region = AS923; return(true); case LoRaRegionType.NotSet: default: return(false); } }
public void Check_incorrect_RXPK_Datr_Are_Refused(LoRaRegionType loRaRegionType, ushort datrIndex, bool upstream = true) { if (loRaRegionType == LoRaRegionType.EU868) { if (upstream) { Assert.False(RegionManager.EU868.RegionLimits.IsCurrentUpstreamDRIndexWithinAcceptableValue(datrIndex)); } else { Assert.False(RegionManager.EU868.RegionLimits.IsCurrentDownstreamDRIndexWithinAcceptableValue(datrIndex)); } } else { if (upstream) { Assert.False(RegionManager.US915.RegionLimits.IsCurrentUpstreamDRIndexWithinAcceptableValue(datrIndex)); } else { Assert.False(RegionManager.US915.RegionLimits.IsCurrentDownstreamDRIndexWithinAcceptableValue(datrIndex)); } } }
[InlineData(LoRaRegionType.US915, "SF9BW500", 920.0, (ushort)12, 920.0, "SF8BW500")] // Standard EU. public void GetDownStreamRx2(LoRaRegionType loRaRegion, string nwksrvrx2dr, double?nwksrvrx2freq, ushort?rx2drfromtwins, double expectedFreq, string expectedDr) { var devEui = "testDevice"; RegionManager.TryTranslateToRegion(loRaRegion, out Region region); var datr = region.GetDownstreamRX2Datarate(devEui, nwksrvrx2dr, rx2drfromtwins); var freq = region.GetDownstreamRX2Freq(devEui, nwksrvrx2freq); Assert.Equal(expectedFreq, freq); Assert.Equal(expectedDr, datr); }
public void EnsureRegionLimitTestAreWorking(double freq, string datarate, LoRaRegionType region) { var rxpk = GenerateRxpk(datarate, freq); if (region == LoRaRegionType.EU868) { Assert.False(RegionManager.EU868.TryGetUpstreamChannelFrequency(rxpk[0], out double frequency) && RegionManager.EU868.GetDownstreamDR(rxpk[0]) != null); } if (region == LoRaRegionType.US915) { Assert.False(RegionManager.US915.TryGetUpstreamChannelFrequency(rxpk[0], out double frequency) && RegionManager.US915.GetDownstreamDR(rxpk[0]) != null); } }
/// <summary> /// Tries to get the <see cref="LoRaRegionType"/> based on <paramref name="value"/>. /// </summary> public static bool TryTranslateToRegion(LoRaRegionType value, out Region region) { region = null; switch (value) { case LoRaRegionType.EU868: region = EU868; return(true); case LoRaRegionType.US915: region = US915; return(true); } return(false); }
public void TestTranslateToRegion(Region region, LoRaRegionType loRaRegion) { Assert.True(RegionManager.TryTranslateToRegion(loRaRegion, out var translatedRegion)); Assert.IsType(region.GetType(), translatedRegion); }