Example #1
0
 public static List<WizardConfig> createWizardDescriptorFromXLS(bool enableAFC, Modulation modulation, double dataRate)
 {
     List<WizardConfig> list = new List<WizardConfig>();
     ResourceManager manager = new ResourceManager("NewWDS.Applications.App_Si4455.App_Si4455_Resource", Assembly.GetExecutingAssembly());
     ExcelCalculatorAPISpreadsheetGear gear = new ExcelCalculatorAPISpreadsheetGear((byte[]) manager.GetObject("EZR2WizardData_v0_2B"));
     int workSheetNumber = 0;
     if (modulation == Modulation.OOK)
     {
         workSheetNumber = 1;
     }
     if (!enableAFC)
     {
         workSheetNumber += 2;
     }
     gear.WriteCell(workSheetNumber, "B4", dataRate.ToString("0.###"));
     int[] numArray = new int[] { 7, 20, 0x1d };
     for (int i = 0; i < numArray.Length; i++)
     {
         for (int j = numArray[i]; gear.ReadCell(workSheetNumber, "B" + j.ToString()) != ""; j++)
         {
             try
             {
                 WizardConfig item = new WizardConfig {
                     AFCEnabled = enableAFC,
                     Modulation = modulation,
                     DataRate = dataRate,
                     Region = (UsingRegion) Enum.Parse(typeof(UsingRegion), gear.ReadCell(workSheetNumber, "B" + j.ToString()), true)
                 };
                 string[] strArray = gear.ReadCell(workSheetNumber, "C" + j.ToString()).Split(new char[] { '-' });
                 double[] numArray2 = new double[Math.Min(strArray.Length, 2)];
                 if (((strArray.Length < 2) || !WDSConverters.ParseDouble(strArray[0], out numArray2[0])) || !WDSConverters.ParseDouble(strArray[1], out numArray2[1]))
                 {
                     throw new Exception("Could not parse Frequency band: " + gear.ReadCell(workSheetNumber, "B" + j.ToString()).Split(new char[] { '-' }));
                 }
                 item.FrequencyBand = new FreqRange();
                 item.FrequencyBand.LowEnd = numArray2[0];
                 item.FrequencyBand.HighEnd = numArray2[1];
                 string[] strArray2 = gear.ReadCell(workSheetNumber, "D" + j.ToString()).Split(new char[] { '-' });
                 double[] numArray3 = new double[Math.Min(strArray2.Length, 2)];
                 if (((strArray2.Length < 2) || !WDSConverters.ParseDouble(strArray2[0], out numArray3[0])) || !WDSConverters.ParseDouble(strArray2[1], out numArray3[1]))
                 {
                     throw new Exception("Could not parse Xtal tolerance: " + gear.ReadCell(workSheetNumber, "D" + j.ToString()).Split(new char[] { '-' }));
                 }
                 item.CrystalTolerance = (int) ((numArray3[0] + numArray3[1]) / 2.0);
                 double[] numArray4 = new double[4];
                 WDSConverters.ParseDouble(gear.ReadCell(workSheetNumber, "F" + j.ToString()), out numArray4[0]);
                 WDSConverters.ParseDouble(gear.ReadCell(workSheetNumber, "G" + j.ToString()), out numArray4[1]);
                 WDSConverters.ParseDouble(gear.ReadCell(workSheetNumber, "H" + j.ToString()), out numArray4[2]);
                 WDSConverters.ParseDouble(gear.ReadCell(workSheetNumber, "I" + j.ToString()), out numArray4[3]);
                 item.RangeIndorMax = (int) numArray4[0];
                 item.RangeIndorAllowed = (int) numArray4[1];
                 item.RangeOutdorMax = (int) numArray4[2];
                 item.RangeOutdorAllowed = (int) numArray4[3];
                 string[] strArray3 = gear.ReadCell(workSheetNumber, "J" + j.ToString()).Split(new char[] { ';' });
                 double[] numArray5 = new double[Math.Min(strArray3.Length, 2)];
                 if (((strArray3.Length < 3) || !WDSConverters.ParseDouble(strArray3[1], out numArray5[0])) || !WDSConverters.ParseDouble(strArray3[2], out numArray5[1]))
                 {
                     throw new Exception("Could not parse TX options: " + gear.ReadCell(workSheetNumber, "J" + j.ToString()).Split(new char[] { '-' }));
                 }
                 item.AntennaType = strArray3[0];
                 item.ConductedPower = numArray5[0];
                 item.CurrentDriven = numArray5[1];
                 item.Description = gear.ReadCell(workSheetNumber, "K" + j.ToString());
                 item.Standards = gear.ReadCell(workSheetNumber, "L" + j.ToString());
                 if (item.Standards.Contains("~"))
                 {
                     string strValue = item.Standards.Split(new char[] { '~' })[1].Trim();
                     if (strValue.EndsWith("dBm"))
                     {
                         strValue = strValue.Substring(0, strValue.Length - 3);
                     }
                     double num4 = 0.0;
                     WDSConverters.ParseDouble(strValue, out num4);
                     item.DbmDiff = num4;
                 }
                 item.AntennaGain = gear.ReadCell(workSheetNumber, "M" + j.ToString());
                 item.TxEirps = gear.ReadCell(workSheetNumber, "N" + j.ToString());
                 double doubleValue = 0.0;
                 WDSConverters.ParseDouble(gear.ReadCell(workSheetNumber, "R" + j.ToString()), out doubleValue);
                 item.CurrentDriven = doubleValue;
                 string str2 = gear.ReadCell(workSheetNumber, "Q" + j.ToString());
                 byte result = 0x4f;
                 if (str2.StartsWith("0x") && (str2.Length >= 4))
                 {
                     byte.TryParse(str2.Substring(2, 2), NumberStyles.HexNumber, (IFormatProvider) null, out result);
                 }
                 item.PowerSetting = result;
                 string str3 = "";
                 if (item.Standards.Contains("~"))
                 {
                     str3 = item.Standards.Split(new char[] { '~' })[1];
                 }
                 else if (item.TxEirps.Contains("~"))
                 {
                     str3 = item.TxEirps.Split(new char[] { '~' })[1];
                 }
                 if ((str3 != "") && str3.EndsWith("dBm"))
                 {
                     double num7 = 0.0;
                     if (WDSConverters.ParseDouble(str3.Substring(0, str3.Length - 3), out num7))
                     {
                         item.ConductedPower = num7;
                     }
                 }
                 list.Add(item);
             }
             catch (Exception exception)
             {
                 _log.Error("Could not create Si4455 Wizard configuration. " + exception.Message);
             }
         }
     }
     return list;
 }
Example #2
0
 private void dgvTxOptions_SelectionChanged(object sender, EventArgs e)
 {
     Console.WriteLine("dgvTxOptions_SelectionChanged " + this.dgvTxOptions.SelectedRows.Count.ToString());
     if (this.dgvTxOptions.SelectedRows.Count > 0)
     {
         WizardConfig tag = (WizardConfig) this.dgvTxOptions.SelectedRows[0].Tag;
         Console.WriteLine("Selected wizard config modulation: " + tag.Modulation.ToString());
         if (tag != null)
         {
             this.rtbTxOptionDescription.Text = tag.Description + "\n" + tag.Standards + "\n" + tag.AntennaGain + "\n" + tag.TxEirps;
             this.SelectedWizardConfig = tag;
         }
     }
 }