コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
 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));
         }
     }
 }
コード例 #3
0
        [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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
 public void TestTranslateToRegion(Region region, LoRaRegionType loRaRegion)
 {
     Assert.True(RegionManager.TryTranslateToRegion(loRaRegion, out var translatedRegion));
     Assert.IsType(region.GetType(), translatedRegion);
 }