public ChannelEditorWnd(ChannelParams channel)
 {
   this.InitializeComponent();
   this.channel.Frequency = channel.Frequency;
   this.channel.DatarateRange = channel.DatarateRange;
   this.channel.Band = channel.Band;
   this.channelView.Channel = this.channel;
 }
Example #2
0
 public Mac()
 {
     Channels = new ChannelParams[16];
     for (int id = 0; id < Channels.Length; ++id)
     {
         Channels[id] = new ChannelParams(id, 0U, Datarates.DR_0, Datarates.DR_0, Bands.BAND_G1_0);
     }
     Rx2Channel                      = new Rx2ChannelParams(0U, Datarates.DR_0);
     ChannelsMask                    = new ushort[6];
     Channels[0].Frequency           = 868100000U;
     Channels[0].DatarateRange.Value = (sbyte)80;
     Channels[0].Band                = Bands.BAND_G1_1;
     Channels[1].Frequency           = 868300000U;
     Channels[1].DatarateRange.Value = (sbyte)96;
     Channels[1].Band                = Bands.BAND_G1_1;
     Channels[2].Frequency           = 868500000U;
     Channels[2].DatarateRange.Value = (sbyte)80;
     Channels[2].Band                = Bands.BAND_G1_1;
     Channels[3].Frequency           = 867100000U;
     Channels[3].DatarateRange.Value = (sbyte)80;
     Channels[3].Band                = Bands.BAND_G1_0;
     Channels[4].Frequency           = 867300000U;
     Channels[4].DatarateRange.Value = (sbyte)80;
     Channels[4].Band                = Bands.BAND_G1_0;
     Channels[5].Frequency           = 867500000U;
     Channels[5].DatarateRange.Value = (sbyte)80;
     Channels[5].Band                = Bands.BAND_G1_0;
     Channels[6].Frequency           = 867700000U;
     Channels[6].DatarateRange.Value = (sbyte)80;
     Channels[6].Band                = Bands.BAND_G1_0;
     Channels[7].Frequency           = 867900000U;
     Channels[7].DatarateRange.Value = (sbyte)80;
     Channels[7].Band                = Bands.BAND_G1_0;
     Channels[8].Frequency           = 868800000U;
     Channels[8].DatarateRange.Value = (sbyte)119;
     Channels[8].Band                = Bands.BAND_G1_2;
     ChannelsMask[0]                 = (ushort)7;
     ChannelsMask[1]                 = (ushort)0;
     ChannelsMask[2]                 = (ushort)0;
     ChannelsMask[3]                 = (ushort)0;
     ChannelsMask[4]                 = (ushort)0;
     ChannelsMask[5]                 = (ushort)0;
     ChannelsTxPower                 = Powers.TX_POWER_14_DBM;
     ChannelsDatarate                = Datarates.DR_0;
     ChannelsNbTrans                 = (byte)1;
     MaxRxWindow                     = 3000000U;
     ReceiveDelay1                   = 1000000U;
     ReceiveDelay2                   = 2000000U;
     JoinAcceptDelay1                = 5000000U;
     JoinAcceptDelay2                = 6000000U;
     DutyCycleOn                     = true;
     PublicNetwork                   = true;
     DeviceClass                     = DeviceClasses.CLASS_A;
     DevicePhy = DevicePhys.EU868;
 }
Example #3
0
		public Mac()
		{
			Channels = new ChannelParams[16];
			for (int id = 0; id < Channels.Length; ++id)
				Channels[id] = new ChannelParams(id, 0U, Datarates.DR_0, Datarates.DR_0, Bands.BAND_G1_0);
			Rx2Channel = new Rx2ChannelParams(0U, Datarates.DR_0);
			ChannelsMask = new ushort[6];
			Channels[0].Frequency = 868100000U;
			Channels[0].DatarateRange.Value = (sbyte)80;
			Channels[0].Band = Bands.BAND_G1_1;
			Channels[1].Frequency = 868300000U;
			Channels[1].DatarateRange.Value = (sbyte)96;
			Channels[1].Band = Bands.BAND_G1_1;
			Channels[2].Frequency = 868500000U;
			Channels[2].DatarateRange.Value = (sbyte)80;
			Channels[2].Band = Bands.BAND_G1_1;
			Channels[3].Frequency = 867100000U;
			Channels[3].DatarateRange.Value = (sbyte)80;
			Channels[3].Band = Bands.BAND_G1_0;
			Channels[4].Frequency = 867300000U;
			Channels[4].DatarateRange.Value = (sbyte)80;
			Channels[4].Band = Bands.BAND_G1_0;
			Channels[5].Frequency = 867500000U;
			Channels[5].DatarateRange.Value = (sbyte)80;
			Channels[5].Band = Bands.BAND_G1_0;
			Channels[6].Frequency = 867700000U;
			Channels[6].DatarateRange.Value = (sbyte)80;
			Channels[6].Band = Bands.BAND_G1_0;
			Channels[7].Frequency = 867900000U;
			Channels[7].DatarateRange.Value = (sbyte)80;
			Channels[7].Band = Bands.BAND_G1_0;
			Channels[8].Frequency = 868800000U;
			Channels[8].DatarateRange.Value = (sbyte)119;
			Channels[8].Band = Bands.BAND_G1_2;
			ChannelsMask[0] = (ushort)7;
			ChannelsMask[1] = (ushort)0;
			ChannelsMask[2] = (ushort)0;
			ChannelsMask[3] = (ushort)0;
			ChannelsMask[4] = (ushort)0;
			ChannelsMask[5] = (ushort)0;
			ChannelsTxPower = Powers.TX_POWER_14_DBM;
			ChannelsDatarate = Datarates.DR_0;
			ChannelsNbTrans = (byte)1;
			MaxRxWindow = 3000000U;
			ReceiveDelay1 = 1000000U;
			ReceiveDelay2 = 2000000U;
			JoinAcceptDelay1 = 5000000U;
			JoinAcceptDelay2 = 6000000U;
			DutyCycleOn = true;
			PublicNetwork = true;
			DeviceClass = DeviceClasses.CLASS_A;
			DevicePhy = DevicePhys.EU868;
		}
Example #4
0
		private void SettingsUpdateFrom(byte[] data)
		{
			try
			{
				if (data == null)
					return;
				int index1 = 0;
				appSettings.Header.Magic = (ushort)((uint)data[index1] | (uint)data[index1 + 1] << 8);
				int index2 = index1 + 2 + 2;
				appSettings.Header.Crc = (uint)((int)data[index2] | (int)data[index2 + 1] << 8 | (int)data[index2 + 2] << 16 | (int)data[index2 + 3] << 24);
				int num1 = index2 + 4;
				if ((int)appSettings.Header.Crc != (int)ComputeChecksum(data))
				{
					Console.WriteLine("ERROR: Wrong checksum!!!");
				}
				else
				{
					Header.Version version1 = appSettings.Header.Ver;
					byte[] numArray1 = data;
					int num2 = num1;
					int num3 = num2 + 1;
					int index3 = num2;
					int num4 = (int)numArray1[index3];
					version1.Major = (byte)num4;
					Header.Version version2 = appSettings.Header.Ver;
					byte[] numArray2 = data;
					int num5 = num3;
					int num6 = num5 + 1;
					int index4 = num5;
					int num7 = (int)numArray2[index4];
					version2.Minor = (byte)num7;
					Header.Version version3 = appSettings.Header.FwVer;
					byte[] numArray3 = data;
					int num8 = num6;
					int num9 = num8 + 1;
					int index5 = num8;
					int num10 = (int)numArray3[index5];
					version3.Major = (byte)num10;
					Header.Version version4 = appSettings.Header.FwVer;
					byte[] numArray4 = data;
					int num11 = num9;
					int num12 = num11 + 1;
					int index6 = num11;
					int num13 = (int)numArray4[index6];
					version4.Minor = (byte)num13;
					Array.Reverse((Array)data, num12, appSettings.DevEui.Length);
					Array.Copy((Array)data, num12, (Array)appSettings.DevEui, 0, appSettings.DevEui.Length);
					int num14 = num12 + appSettings.DevEui.Length;
					AppSettings appSettings1 = appSettings;
					byte[] numArray5 = data;
					int num15 = num14;
					int num16 = num15 + 1;
					int index7 = num15;
					int num17 = (int)numArray5[index7] == 0 ? 0 : 1;
					appSettings1.OtaOn = num17 != 0;
					int sourceIndex1 = num16 + 3;
					int index8;
					if (appSettings.OtaOn)
					{
						appSettings.Activation.Ota.DutyCycle = (uint)((int)data[sourceIndex1] | (int)data[sourceIndex1 + 1] << 8 | (int)data[sourceIndex1 + 2] << 16 | (int)data[sourceIndex1 + 3] << 24);
						int num18 = sourceIndex1 + 4;
						Array.Reverse((Array)data, num18, appSettings.Activation.Ota.AppEui.Length);
						Array.Copy((Array)data, num18, (Array)appSettings.Activation.Ota.AppEui, 0, appSettings.Activation.Ota.AppEui.Length);
						int sourceIndex2 = num18 + appSettings.Activation.Ota.AppEui.Length;
						Array.Copy((Array)data, sourceIndex2, (Array)appSettings.Activation.Ota.AppKey, 0, appSettings.Activation.Ota.AppKey.Length);
						index8 = sourceIndex2 + (appSettings.Activation.Ota.AppKey.Length + 8);
					}
					else
					{
						Array.Copy((Array)data, sourceIndex1, (Array)appSettings.Activation.Pa.NwkSKey, 0, appSettings.Activation.Pa.NwkSKey.Length);
						int sourceIndex2 = sourceIndex1 + appSettings.Activation.Pa.NwkSKey.Length;
						Array.Copy((Array)data, sourceIndex2, (Array)appSettings.Activation.Pa.AppSKey, 0, appSettings.Activation.Pa.AppSKey.Length);
						int index9 = sourceIndex2 + appSettings.Activation.Pa.AppSKey.Length;
						appSettings.Activation.Pa.DevAddr = (uint)((int)data[index9] | (int)data[index9 + 1] << 8 | (int)data[index9 + 2] << 16 | (int)data[index9 + 3] << 24);
						index8 = index9 + 4;
					}
					ChannelParams channelParams1 = new ChannelParams();
					for (int index9 = 0; index9 < appSettings.Mac.Channels.Length; ++index9)
					{
						ChannelsList[index9].Frequency = appSettings.Mac.Channels[index9].Frequency = (uint)((int)data[index8] | (int)data[index8 + 1] << 8 | (int)data[index8 + 2] << 16 | (int)data[index8 + 3] << 24);
						int num18 = index8 + 4;
						DrRange datarateRange1 = ChannelsList[index9].DatarateRange;
						DrRange datarateRange2 = appSettings.Mac.Channels[index9].DatarateRange;
						byte[] numArray6 = data;
						int num19 = num18;
						int num20 = num19 + 1;
						int index10 = num19;
						int num21;
						sbyte num22 = (sbyte)(num21 = (int)(sbyte)numArray6[index10]);
						datarateRange2.Value = (sbyte)num21;
						int num23 = (int)num22;
						datarateRange1.Value = (sbyte)num23;
						ChannelParams channelParams2 = ChannelsList[index9];
						ChannelParams channelParams3 = appSettings.Mac.Channels[index9];
						byte[] numArray7 = data;
						int num24 = num20;
						int num25 = num24 + 1;
						int index11 = num24;
						int num26;
						Bands bands = (Bands)(num26 = (int)numArray7[index11]);
						channelParams3.Band = (Bands)num26;
						int num27 = (int)bands;
						channelParams2.Band = (Bands)num27;
						index8 = num25 + 2;
					}
					appSettings.Mac.Rx2Channel.Frequency = (uint)((int)data[index8] | (int)data[index8 + 1] << 8 | (int)data[index8 + 2] << 16 | (int)data[index8 + 3] << 24);
					int num28 = index8 + 4;
					Rx2ChannelParams rx2ChannelParams = appSettings.Mac.Rx2Channel;
					byte[] numArray8 = data;
					int num29 = num28;
					int num30 = num29 + 1;
					int index12 = num29;
					int num31 = (int)numArray8[index12];
					rx2ChannelParams.Datarate = (Datarates)num31;
					int num32 = num30 + 3;
					Mac mac1 = appSettings.Mac;
					byte[] numArray9 = data;
					int num33 = num32;
					int num34 = num33 + 1;
					int index13 = num33;
					int num35 = (int)numArray9[index13];
					mac1.ChannelsTxPower = (Powers)num35;
					Mac mac2 = appSettings.Mac;
					byte[] numArray10 = data;
					int num36 = num34;
					int index14 = num36 + 1;
					int index15 = num36;
					int num37 = (int)numArray10[index15];
					mac2.ChannelsDatarate = (Datarates)num37;
					appSettings.Mac.ChannelsMask[0] = (ushort)((uint)data[index14] | (uint)data[index14 + 1] << 8);
					int index16 = index14 + 2;
					appSettings.Mac.ChannelsMask[1] = (ushort)((uint)data[index16] | (uint)data[index16 + 1] << 8);
					int index17 = index16 + 2;
					appSettings.Mac.ChannelsMask[2] = (ushort)((uint)data[index17] | (uint)data[index17 + 1] << 8);
					int index18 = index17 + 2;
					appSettings.Mac.ChannelsMask[3] = (ushort)((uint)data[index18] | (uint)data[index18 + 1] << 8);
					int index19 = index18 + 2;
					appSettings.Mac.ChannelsMask[4] = (ushort)((uint)data[index19] | (uint)data[index19 + 1] << 8);
					int index20 = index19 + 2;
					appSettings.Mac.ChannelsMask[5] = (ushort)((uint)data[index20] | (uint)data[index20 + 1] << 8);
					int num38 = index20 + 2;
					Mac mac3 = appSettings.Mac;
					byte[] numArray11 = data;
					int num39 = num38;
					int num40 = num39 + 1;
					int index21 = num39;
					int num41 = (int)numArray11[index21];
					mac3.ChannelsNbTrans = (byte)num41;
					int index22 = num40 + 1;
					appSettings.Mac.MaxRxWindow = (uint)((int)data[index22] | (int)data[index22 + 1] << 8 | (int)data[index22 + 2] << 16 | (int)data[index22 + 3] << 24);
					int index23 = index22 + 4;
					appSettings.Mac.ReceiveDelay1 = (uint)((int)data[index23] | (int)data[index23 + 1] << 8 | (int)data[index23 + 2] << 16 | (int)data[index23 + 3] << 24);
					int index24 = index23 + 4;
					appSettings.Mac.ReceiveDelay2 = (uint)((int)data[index24] | (int)data[index24 + 1] << 8 | (int)data[index24 + 2] << 16 | (int)data[index24 + 3] << 24);
					int index25 = index24 + 4;
					appSettings.Mac.JoinAcceptDelay1 = (uint)((int)data[index25] | (int)data[index25 + 1] << 8 | (int)data[index25 + 2] << 16 | (int)data[index25 + 3] << 24);
					int index26 = index25 + 4;
					appSettings.Mac.JoinAcceptDelay2 = (uint)((int)data[index26] | (int)data[index26 + 1] << 8 | (int)data[index26 + 2] << 16 | (int)data[index26 + 3] << 24);
					int num42 = index26 + 4;
					Mac mac4 = appSettings.Mac;
					byte[] numArray12 = data;
					int num43 = num42;
					int num44 = num43 + 1;
					int index27 = num43;
					int num45 = (int)numArray12[index27] == 0 ? 0 : 1;
					mac4.DutyCycleOn = num45 != 0;
					Mac mac5 = appSettings.Mac;
					byte[] numArray13 = data;
					int num46 = num44;
					int num47 = num46 + 1;
					int index28 = num46;
					int num48 = (int)numArray13[index28] == 0 ? 0 : 1;
					mac5.PublicNetwork = num48 != 0;
					Mac mac6 = appSettings.Mac;
					byte[] numArray14 = data;
					int num49 = num47;
					int num50 = num49 + 1;
					int index29 = num49;
					int num51 = (int)numArray14[index29];
					mac6.DeviceClass = (DeviceClasses)num51;
					Mac mac7 = appSettings.Mac;
					byte[] numArray15 = data;
					int num52 = num50;
					int num53 = num52 + 1;
					int index30 = num52;
					int num54 = (int)numArray15[index30];
					mac7.DevicePhy = (DevicePhys)num54;
					AppSettings appSettings2 = appSettings;
					byte[] numArray16 = data;
					int num55 = num53;
					int num56 = num55 + 1;
					int index31 = num55;
					int num57 = (int)numArray16[index31];
					appSettings2.AppMode = (AppModes)num57;
					int index32 = num56 + 3;
					int num58;
					switch (appSettings.AppMode)
					{
						case AppModes.APP_GPS_TRACKING_DEMO:
							appSettings.Params.GpsTrackingDemo.TxDutyCycle = (uint)((int)data[index32] | (int)data[index32 + 1] << 8 | (int)data[index32 + 2] << 16 | (int)data[index32 + 3] << 24);
							int index33 = index32 + 4;
							appSettings.Params.GpsTrackingDemo.TxDutyCycleRnd = (uint)((int)data[index33] | (int)data[index33 + 1] << 8 | (int)data[index33 + 2] << 16 | (int)data[index33 + 3] << 24);
							int num59 = index33 + 4;
							AppGpsTrackingDemoParam trackingDemoParam1 = appSettings.Params.GpsTrackingDemo;
							byte[] numArray17 = data;
							int num60 = num59;
							int num61 = num60 + 1;
							int index34 = num60;
							int num62 = (int)numArray17[index34] == 0 ? 0 : 1;
							trackingDemoParam1.AdrOn = num62 != 0;
							AppGpsTrackingDemoParam trackingDemoParam2 = appSettings.Params.GpsTrackingDemo;
							byte[] numArray18 = data;
							int num63 = num61;
							num58 = num63 + 1;
							int index35 = num63;
							int num64 = (int)numArray18[index35] == 0 ? 0 : 1;
							trackingDemoParam2.DownlinkTestOn = num64 != 0;
							break;
						case AppModes.APP_RADIO_COVERAGE_TESTER:
							AppRadioCoverageTesterParam coverageTesterParam1 = appSettings.Params.RadioCoverageTester;
							byte[] numArray19 = data;
							int num65 = index32;
							int num66 = num65 + 1;
							int index36 = num65;
							int num67 = (int)numArray19[index36];
							coverageTesterParam1.Id = (byte)num67;
							AppRadioCoverageTesterParam coverageTesterParam2 = appSettings.Params.RadioCoverageTester;
							byte[] numArray20 = data;
							int num68 = num66;
							int num69 = num68 + 1;
							int index37 = num68;
							int num70 = (int)numArray20[index37];
							coverageTesterParam2.NbPackets = (byte)num70;
							AppRadioCoverageTesterParam coverageTesterParam3 = appSettings.Params.RadioCoverageTester;
							byte[] numArray21 = data;
							int num71 = num69;
							int num72 = num71 + 1;
							int index38 = num71;
							int num73 = (int)numArray21[index38] == 0 ? 0 : 1;
							coverageTesterParam3.DownlinkTestOn = num73 != 0;
							num58 = num72 + 1 + 7;
							break;
						default:
							appSettings.Params.SensorsGpsDemo.TxDutyCycle = (uint)((int)data[index32] | (int)data[index32 + 1] << 8 | (int)data[index32 + 2] << 16 | (int)data[index32 + 3] << 24);
							int index39 = index32 + 4;
							appSettings.Params.SensorsGpsDemo.TxDutyCycleRnd = (uint)((int)data[index39] | (int)data[index39 + 1] << 8 | (int)data[index39 + 2] << 16 | (int)data[index39 + 3] << 24);
							int num74 = index39 + 4;
							AppSensorsGpsDemoParam sensorsGpsDemoParam1 = appSettings.Params.SensorsGpsDemo;
							byte[] numArray22 = data;
							int num75 = num74;
							int num76 = num75 + 1;
							int index40 = num75;
							int num77 = (int)numArray22[index40] == 0 ? 0 : 1;
							sensorsGpsDemoParam1.AdrOn = num77 != 0;
							AppSensorsGpsDemoParam sensorsGpsDemoParam2 = appSettings.Params.SensorsGpsDemo;
							byte[] numArray23 = data;
							int num78 = num76;
							num58 = num78 + 1;
							int index41 = num78;
							int num79 = (int)numArray23[index41] == 0 ? 0 : 1;
							sensorsGpsDemoParam2.DownlinkTestOn = num79 != 0;
							break;
					}
					SettingsUiUpdate();
				}
			}
			catch (Exception ex)
			{
				Console.WriteLine(ex.Message);
			}
		}