Example #1
0
 public void Spur_Summary(string dir)
 {
     Hashtable hashtable = new Hashtable();
     string path = dir + @"\summary_spur.xml";
     StreamWriter f = new StreamWriter(path);
     try
     {
         if (!Directory.Exists(dir))
         {
             MessageBox.Show(string.Format("Directory Not Found!\n\n{0}", dir), "Report Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
         }
         else
         {
             FileInfo[] files = new DirectoryInfo(dir).GetFiles("*.csv");
             if (files.Length != 0)
             {
                 foreach (FileInfo info2 in files)
                 {
                     PerRxReport report;
                     PerNavStateReport report2;
                     string str9;
                     int num2;
                     List<string> list;
                     Invalid_Data data = new Invalid_Data();
                     StreamReader reader = info2.OpenText();
                     string name = info2.Name;
                     string pattern = @"_P(?<loop>\d+)_(?<msgID>msg\d+)";
                     Regex regex = new Regex(pattern, RegexOptions.Compiled);
                     bool flag = regex.IsMatch(name);
                     string str4 = "Unknown";
                     string str5 = "Unknown";
                     string key = "Unknown";
                     if (flag)
                     {
                         str4 = regex.Match(name).Result("${loop}");
                         str5 = regex.Match(name).Result("${msgID}");
                     }
                     string str7 = string.Empty;
                     string str8 = string.Empty;
                     str8 = "Loop(" + str4 + ")";
                     string str25 = str5;
                     if (str25 != null)
                     {
                         if (!(str25 == "msg2"))
                         {
                             if (str25 == "msg28")
                             {
                                 goto Label_0146;
                             }
                             if (str25 == "msg41")
                             {
                                 goto Label_014F;
                             }
                         }
                         else
                         {
                             key = "Nav";
                         }
                     }
                     goto Label_0156;
                 Label_0146:
                     key = "Track";
                     goto Label_0156;
                 Label_014F:
                     key = "Nav";
                 Label_0156:
                     str9 = reader.ReadLine();
                     if (str9 != null)
                     {
                         pattern = "SW Version:(?<swVer>.*)";
                         Regex regex2 = new Regex(pattern, RegexOptions.Compiled);
                         if (regex2.IsMatch(str9))
                         {
                             str7 = regex2.Match(str9).Result("${swVer}");
                         }
                         else
                         {
                             str7 = "SW Version: Not detected";
                         }
                     }
                     else
                     {
                         str7 = "SW Version: Not detected";
                     }
                     str9 = reader.ReadLine();
                     int num = 0;
                     string str10 = "N/A";
                     Hashtable hashtable2 = new Hashtable();
                     if (str9 != null)
                     {
                         string[] strArray = str9.Split(new char[] { '=' });
                         num2 = 3;
                         if (strArray.Length > 1)
                         {
                             str10 = strArray[1];
                             if (this.perRxSetupData.ContainsKey(str10))
                             {
                                 goto Label_027C;
                             }
                             if (strArray.Length > 1)
                             {
                                 hashtable2.Add(strArray[0], strArray[1]);
                             }
                             while (((str9 = reader.ReadLine()) != null) && (num < num2))
                             {
                                 strArray = str9.Split(new char[] { '=' });
                                 if (strArray.Length > 1)
                                 {
                                     hashtable2.Add(strArray[0], strArray[1]);
                                 }
                                 num++;
                             }
                             this.perRxSetupData.Add(str10, hashtable2);
                         }
                     }
                     goto Label_028E;
                 Label_0276:
                     num++;
                 Label_027C:
                     if (((str9 = reader.ReadLine()) != null) && (num < num2))
                     {
                         goto Label_0276;
                     }
                 Label_028E:
                     list = new List<string>();
                     if (this.perRxSetupData.ContainsKey(str10))
                     {
                         Hashtable hashtable3 = (Hashtable) this.perRxSetupData[str10];
                         string str11 = "SV List";
                         if (hashtable3.ContainsKey(str11))
                         {
                             foreach (string str12 in ((string) hashtable3[str11]).Split(new char[] { ',' }))
                             {
                                 if (!list.Contains(str12))
                                 {
                                     list.Add(str12);
                                 }
                             }
                         }
                         if (!hashtable3.ContainsKey("SW Version"))
                         {
                             hashtable3.Add("SW Version", str7);
                         }
                     }
                     string str13 = string.Empty;
                     if (this.perRxSetupData.ContainsKey(str10))
                     {
                         Hashtable hashtable4 = (Hashtable) this.perRxSetupData[str10];
                         string str14 = "Rx";
                         if (hashtable4.ContainsKey(str14))
                         {
                             str13 = (string) hashtable4[str14];
                         }
                     }
                     if (hashtable.Contains(str13))
                     {
                         report = (PerRxReport) hashtable[str13];
                     }
                     else
                     {
                         PerRxReport report3 = new PerRxReport();
                         hashtable.Add(str13, report3);
                         report = (PerRxReport) hashtable[str13];
                     }
                     if (report.PerNavStateData.Contains(key))
                     {
                         report2 = (PerNavStateReport) report.PerNavStateData[key];
                     }
                     else
                     {
                         PerNavStateReport report4 = new PerNavStateReport();
                         report.PerNavStateData.Add(key, report4);
                         report2 = (PerNavStateReport) report.PerNavStateData[key];
                     }
                     Invalid_Data data2 = new Invalid_Data();
                     while (str9 != null)
                     {
                         string str15;
                         string[] strArray3 = str9.Split(new char[] { ',' });
                         if (strArray3.Length >= 5)
                         {
                             str15 = strArray3[1];
                             str25 = strArray3[2];
                             if (str25 != null)
                             {
                                 if (!(str25 == "2"))
                                 {
                                     if (str25 == "28")
                                     {
                                         goto Label_0607;
                                     }
                                     if (str25 == "41")
                                     {
                                         goto Label_0740;
                                     }
                                 }
                                 else
                                 {
                                     string str17 = strArray3[14];
                                     if (report2.PerMsgData.Contains("Total"))
                                     {
                                         data = (Invalid_Data) report2.PerMsgData["Total"];
                                     }
                                     else
                                     {
                                         Invalid_Data data3 = new Invalid_Data();
                                         report2.PerMsgData.Add("Total", data3);
                                         data = (Invalid_Data) report2.PerMsgData["Total"];
                                     }
                                     data.EpochCount++;
                                     if (report2.PerMsgData.Contains(str8))
                                     {
                                         data2 = (Invalid_Data) report2.PerMsgData[str8];
                                     }
                                     else
                                     {
                                         Invalid_Data data4 = new Invalid_Data();
                                         report2.PerMsgData.Add(str8, data4);
                                         data2 = (Invalid_Data) report2.PerMsgData[str8];
                                     }
                                     data2.EpochCount++;
                                     if (strArray3.Length >= 20)
                                     {
                                         if (Convert.ToInt16(str17) > 4)
                                         {
                                             data2.InvalidSVsCount++;
                                             data.InvalidSVsCount++;
                                         }
                                         else
                                         {
                                             int num3 = 0;
                                             int num4 = 12;
                                             for (num3 = 0; num3 < num4; num3++)
                                             {
                                                 if (strArray3[num3 + 15] != "0")
                                                 {
                                                     string str18 = strArray3[num3 + 15];
                                                     if (!list.Contains(str18))
                                                     {
                                                         data2.InvalidSVsCount++;
                                                         data.InvalidSVsCount++;
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                         goto Label_0877;
                     Label_0607:
                         Convert.ToInt16(strArray3[11]);
                         string item = strArray3[5];
                         if (report2.PerMsgData.Contains("Total"))
                         {
                             data = (Invalid_Data) report2.PerMsgData["Total"];
                         }
                         else
                         {
                             Invalid_Data data5 = new Invalid_Data();
                             report2.PerMsgData.Add("Total", data5);
                             data = (Invalid_Data) report2.PerMsgData["Total"];
                         }
                         int num5 = 0;
                         int num6 = 0;
                         for (num6 = 0; num6 < 10; num6++)
                         {
                             num5 += Convert.ToInt16(strArray3[num6 + 12]);
                         }
                         double num1 = ((double) num5) / 10.0;
                         if ((str15 == "0") || !list.Contains(item))
                         {
                             if (report2.PerMsgData.Contains(str8))
                             {
                                 data2 = (Invalid_Data) report2.PerMsgData[str8];
                             }
                             else
                             {
                                 Invalid_Data data6 = new Invalid_Data();
                                 report2.PerMsgData.Add(str8, data6);
                                 data2 = (Invalid_Data) report2.PerMsgData[str8];
                             }
                             data2.InvalidSVsCount++;
                             data.InvalidSVsCount++;
                         }
                         goto Label_0877;
                     Label_0740:
                         if (report2.PerMsgData.Contains("Total"))
                         {
                             data = (Invalid_Data) report2.PerMsgData["Total"];
                         }
                         else
                         {
                             Invalid_Data data7 = new Invalid_Data();
                             report2.PerMsgData.Add("Total", data7);
                             data = (Invalid_Data) report2.PerMsgData["Total"];
                         }
                         data.EpochCount++;
                         if (report2.PerMsgData.Contains(str8))
                         {
                             data2 = (Invalid_Data) report2.PerMsgData[str8];
                         }
                         else
                         {
                             Invalid_Data data8 = new Invalid_Data();
                             report2.PerMsgData.Add(str8, data8);
                             data2 = (Invalid_Data) report2.PerMsgData[str8];
                         }
                         data2.EpochCount++;
                         if (str15 == "1")
                         {
                             double sample = Convert.ToDouble(strArray3[strArray3.Length - 1]);
                             data.MyStats.InsertSample(sample);
                             data2.MyStats.InsertSample(sample);
                             if (sample > Convert.ToDouble(this._hrErrLimit))
                             {
                                 data2.HrErrCount++;
                                 data.HrErrCount++;
                             }
                         }
                     Label_0877:
                         str9 = reader.ReadLine();
                     }
                     reader.Close();
                 }
                 f.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                 f.WriteLine("<spur>");
                 foreach (string str20 in hashtable.Keys)
                 {
                     f.WriteLine("\t<rxName name=\"{0}\">", str20);
                     PerRxReport report5 = (PerRxReport) hashtable[str20];
                     int num8 = 0;
                     int num9 = 0;
                     double num10 = 0.0;
                     double num11 = 0.0;
                     double num12 = 0.0;
                     double num13 = 0.0;
                     Hashtable hashtable5 = new Hashtable();
                     foreach (string str21 in report5.PerNavStateData.Keys)
                     {
                         f.WriteLine("\t\t<msg name=\"{0}\">", str21);
                         PerNavStateReport report6 = (PerNavStateReport) report5.PerNavStateData[str21];
                         foreach (string str22 in report6.PerMsgData.Keys)
                         {
                             Invalid_Data data9 = (Invalid_Data) report6.PerMsgData[str22];
                             if (str21 == "Nav")
                             {
                                 num8 = data9.EpochCount / 2;
                                 num10 = data9.MyStats.Stats_Max((double) Convert.ToInt32("-9999"));
                                 num11 = data9.MyStats.Stats_Min((double) Convert.ToInt32("-9999"));
                                 num12 = data9.MyStats.Stats_Mean((double) Convert.ToInt32("-9999"));
                                 num13 = data9.MyStats.StandardDeviation((double) Convert.ToInt32("-9999"));
                             }
                             else
                             {
                                 num10 = 0.0;
                                 num11 = 0.0;
                                 num12 = 0.0;
                                 num13 = 0.0;
                             }
                             if (((data9.InvalidSVsCount != 0) || (data9.HrErrCount != 0)) && (str22 != "Total"))
                             {
                                 f.WriteLine("\t\t\t\t<loop number=\"{0}\">", str22);
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Invalid SV\" value=\"{0}\" criteria=\"{1}\" direction=\"&lt;\" units=\"\"/>", data9.InvalidSVsCount, this._invalidSV);
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Hr Error &gt;{0} m\" value=\"{1}\" criteria=\"{2}\" direction=\"&lt;\" units=\"\"/>", this._hrErrLimit, data9.HrErrCount, this._limitVal);
                                 if (str21 == "Nav")
                                 {
                                     f.WriteLine("\t\t\t\t\t<field name=\"Max Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num10);
                                     f.WriteLine("\t\t\t\t\t<field name=\"Min Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num11);
                                     f.WriteLine("\t\t\t\t\t<field name=\"Mean Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num12);
                                     f.WriteLine("\t\t\t\t\t<field name=\"Std Dev Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num13);
                                 }
                                 else
                                 {
                                     f.WriteLine("\t\t\t\t\t<field name=\"Max Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                                     f.WriteLine("\t\t\t\t\t<field name=\"Min Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                                     f.WriteLine("\t\t\t\t\t<field name=\"Mean Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                                     f.WriteLine("\t\t\t\t\t<field name=\"Std Dev Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                                 }
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Epoch\" value=\"{0}\" criteria=\"\" direction=\"\" units=\"\"/>", num8);
                                 f.WriteLine("\t\t\t\t</loop>");
                             }
                         }
                         string str23 = "Total";
                         f.WriteLine("\t\t\t\t<loop number=\"{0}\">", str23);
                         Invalid_Data data10 = (Invalid_Data) report6.PerMsgData[str23];
                         if (str21 == "Nav")
                         {
                             num9 = data10.EpochCount / 2;
                             num10 = data10.MyStats.Stats_Max((double) -9999.0);
                             num11 = data10.MyStats.Stats_Min((double) -9999.0);
                             num12 = data10.MyStats.Stats_Mean((double) -9999.0);
                             num13 = data10.MyStats.StandardDeviation((double) -9999.0);
                             hashtable5.Add("Max Error(m)", num10);
                             hashtable5.Add("Min Error(m)", num11);
                             hashtable5.Add("Mean Error(m)", num12);
                             hashtable5.Add("Std Dev Error(m)", num13);
                             hashtable5.Add("Total Test Time (hour)", ((double) num9) / 3600.0);
                             hashtable5.Add("Total Invalid SVs in Nav", (double) data10.InvalidSVsCount);
                             hashtable5.Add("Total Horz Error > " + this._hrErrLimit.ToString() + "(m)", (double) data10.HrErrCount);
                         }
                         else
                         {
                             num10 = 0.0;
                             num11 = 0.0;
                             num12 = 0.0;
                             num13 = 0.0;
                             hashtable5.Add("Total Invalid SVs in Track", (double) data10.InvalidSVsCount);
                         }
                         f.WriteLine("\t\t\t\t\t<field name=\"# Invalid SV\" value=\"{0}\" criteria=\"{1}\" direction=\"&lt;\" units=\"\"/>", data10.InvalidSVsCount, this._invalidSV);
                         f.WriteLine("\t\t\t\t\t<field name=\"# Hr Error &gt;{0} m\" value=\"{1}\" criteria=\"{2}\" direction=\"&lt;\" units=\"\"/>", this._hrErrLimit, data10.HrErrCount, this._limitVal);
                         if (str21 == "Nav")
                         {
                             f.WriteLine("\t\t\t\t\t<field name=\"Max Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num10);
                             f.WriteLine("\t\t\t\t\t<field name=\"Min Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num11);
                             f.WriteLine("\t\t\t\t\t<field name=\"Mean Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num12);
                             f.WriteLine("\t\t\t\t\t<field name=\"Std Dev Error(m)\" value=\"{0:F3}\" criteria=\"\" direction=\"\" units=\"\"/>", num13);
                         }
                         else
                         {
                             f.WriteLine("\t\t\t\t\t<field name=\"Max Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                             f.WriteLine("\t\t\t\t\t<field name=\"Min Error(m)\" value=\" - \" criteria=\"\" direction=\"\" units=\"\"/>");
                             f.WriteLine("\t\t\t\t\t<field name=\"Mean Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                             f.WriteLine("\t\t\t\t\t<field name=\"Std Dev Error(m)\" value=\" -\" criteria=\"\" direction=\"\" units=\"\"/>");
                         }
                         f.WriteLine("\t\t\t\t\t<field name=\"# Epoch\" value=\"{0}\" criteria=\"\" direction=\"\" units=\"\"/>", num9);
                         f.WriteLine("\t\t\t\t</loop>");
                         f.WriteLine("\t\t</msg>");
                         if (!this._perRxSummary.Contains(str20))
                         {
                             this._perRxSummary.Add(str20, hashtable5);
                         }
                         else
                         {
                             this._perRxSummary[str20] = hashtable5;
                         }
                     }
                     f.WriteLine("\t</rxName>");
                 }
                 this.printTestSummary(f);
                 this.printTestSetup(f);
                 f.WriteLine("</spur>");
                 f.Close();
                 hashtable.Clear();
                 this.perRxSetupData.Clear();
                 string outputFile = dir + @"\summary_spur.html";
                 this.GenerateHTMLReport(path, outputFile, ConfigurationManager.AppSettings["InstalledDirectory"] + @"\scripts\spurReport.xsl");
             }
         }
     }
     catch (Exception exception)
     {
         this.perRxSetupData.Clear();
         hashtable.Clear();
         f.Close();
         MessageBox.Show(exception.Message, "Error");
     }
 }
Example #2
0
 public void CW_Summary(string dir)
 {
     Hashtable hashtable = new Hashtable();
     string path = dir + @"\summary_cw.xml";
     StreamWriter f = new StreamWriter(path);
     try
     {
         if (!Directory.Exists(dir))
         {
             MessageBox.Show(string.Format("Directory Not Found!\n\n{0}", dir), "Report Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
         }
         else
         {
             FileInfo[] files = new DirectoryInfo(dir).GetFiles("*.csv");
             if (files.Length != 0)
             {
                 foreach (FileInfo info2 in files)
                 {
                     Header1DataClass class2;
                     PerEnvReport report;
                     PerPowerReport report2;
                     string str10;
                     int num2;
                     List<string> list;
                     Invalid_Data data = new Invalid_Data();
                     StreamReader reader = info2.OpenText();
                     string name = info2.Name;
                     string pattern = @"_P(?<state>\d)_(?<power>-?\d+.\d?)_(?<msgID>msg\d+)";
                     Regex regex = new Regex(pattern, RegexOptions.Compiled);
                     bool flag = regex.IsMatch(name);
                     string str4 = "Unknown";
                     string str5 = "Unknown";
                     string str6 = "Unknown";
                     string key = "Unknown";
                     if (flag)
                     {
                         str4 = regex.Match(name).Result("${state}");
                         str5 = regex.Match(name).Result("${msgID}");
                         str6 = regex.Match(name).Result("${power}");
                     }
                     string str8 = string.Empty;
                     string str9 = string.Empty;
                     if (str4 == "0")
                     {
                         str9 = "RF OFF -- CW(" + str6 + ")";
                     }
                     else
                     {
                         str9 = "RF ON -- CW(" + str6 + ")";
                     }
                     string str26 = str5;
                     if (str26 != null)
                     {
                         if (!(str26 == "msg2"))
                         {
                             if (str26 == "msg28")
                             {
                                 goto Label_0185;
                             }
                             if (str26 == "msg41")
                             {
                                 goto Label_018E;
                             }
                         }
                         else
                         {
                             key = "Nav";
                         }
                     }
                     goto Label_0195;
                 Label_0185:
                     key = "Track";
                     goto Label_0195;
                 Label_018E:
                     key = "Nav";
                 Label_0195:
                     str10 = reader.ReadLine();
                     if (str10 != null)
                     {
                         pattern = "SW Version:(?<swVer>.*)";
                         Regex regex2 = new Regex(pattern, RegexOptions.Compiled);
                         if (regex2.IsMatch(str10))
                         {
                             str8 = regex2.Match(str10).Result("${swVer}");
                         }
                         else
                         {
                             str8 = "SW Version: Not detected";
                         }
                     }
                     else
                     {
                         str8 = "SW Version: Not detected";
                     }
                     if (hashtable.Contains(str8))
                     {
                         class2 = (Header1DataClass) hashtable[str8];
                     }
                     else
                     {
                         Header1DataClass class3 = new Header1DataClass();
                         hashtable.Add(str8, class3);
                         class2 = (Header1DataClass) hashtable[str8];
                     }
                     if (class2.Header2DataHash.Contains(key))
                     {
                         report = (PerEnvReport) class2.Header2DataHash[key];
                     }
                     else
                     {
                         PerEnvReport report3 = new PerEnvReport();
                         class2.Header2DataHash.Add(key, report3);
                         report = (PerEnvReport) class2.Header2DataHash[key];
                     }
                     if (report.PerSiteData.Contains(str9))
                     {
                         report2 = (PerPowerReport) report.PerSiteData[str9];
                     }
                     else
                     {
                         PerPowerReport report4 = new PerPowerReport();
                         report.PerSiteData.Add(str9, report4);
                         report2 = (PerPowerReport) report.PerSiteData[str9];
                     }
                     str10 = reader.ReadLine();
                     int num = 0;
                     string str11 = "N/A";
                     Hashtable hashtable2 = new Hashtable();
                     if (str10 != null)
                     {
                         string[] strArray = str10.Split(new char[] { '=' });
                         num2 = 5;
                         if (strArray.Length > 1)
                         {
                             str11 = strArray[1];
                             if (this.perRxSetupData.ContainsKey(str11))
                             {
                                 goto Label_039C;
                             }
                             if (strArray.Length > 1)
                             {
                                 hashtable2.Add(strArray[0], strArray[1]);
                             }
                             while (((str10 = reader.ReadLine()) != null) && (num < num2))
                             {
                                 strArray = str10.Split(new char[] { '=' });
                                 if (strArray.Length > 1)
                                 {
                                     hashtable2.Add(strArray[0], strArray[1]);
                                 }
                                 num++;
                             }
                             this.perRxSetupData.Add(str11, hashtable2);
                         }
                     }
                     goto Label_03AE;
                 Label_0396:
                     num++;
                 Label_039C:
                     if (((str10 = reader.ReadLine()) != null) && (num < num2))
                     {
                         goto Label_0396;
                     }
                 Label_03AE:
                     list = new List<string>();
                     if (this.perRxSetupData.ContainsKey(str11))
                     {
                         Hashtable hashtable3 = (Hashtable) this.perRxSetupData[str11];
                         string str12 = "SV List";
                         if (hashtable3.ContainsKey(str12))
                         {
                             foreach (string str13 in ((string) hashtable3[str12]).Split(new char[] { ',' }))
                             {
                                 if (!list.Contains(str13))
                                 {
                                     list.Add(str13);
                                 }
                             }
                         }
                     }
                     Invalid_Data data2 = new Invalid_Data();
                     while (str10 != null)
                     {
                         string str14;
                         string str15;
                         int num5;
                         string[] strArray3 = str10.Split(new char[] { ',' });
                         if (strArray3.Length >= 5)
                         {
                             str14 = strArray3[2];
                             str15 = strArray3[3];
                             str26 = strArray3[4];
                             if (str26 != null)
                             {
                                 if (!(str26 == "2"))
                                 {
                                     if (str26 == "28")
                                     {
                                         goto Label_0659;
                                     }
                                     if (str26 == "41")
                                     {
                                         goto Label_079C;
                                     }
                                 }
                                 else
                                 {
                                     string str17 = strArray3[0x10];
                                     if (report2.PerFreqData.Contains("Total"))
                                     {
                                         data = (Invalid_Data) report2.PerFreqData["Total"];
                                     }
                                     else
                                     {
                                         Invalid_Data data3 = new Invalid_Data();
                                         report2.PerFreqData.Add("Total", data3);
                                         data = (Invalid_Data) report2.PerFreqData["Total"];
                                     }
                                     data.EpochCount++;
                                     if (strArray3.Length >= 20)
                                     {
                                         if (Convert.ToInt16(str17) > 4)
                                         {
                                             if (report2.PerFreqData.Contains(str14))
                                             {
                                                 data2 = (Invalid_Data) report2.PerFreqData[str14];
                                             }
                                             else
                                             {
                                                 Invalid_Data data4 = new Invalid_Data();
                                                 report2.PerFreqData.Add(str14, data4);
                                                 data2 = (Invalid_Data) report2.PerFreqData[str14];
                                             }
                                             data2.InvalidSVsCount++;
                                             data.InvalidSVsCount++;
                                         }
                                         else
                                         {
                                             int num3 = 0;
                                             int num4 = 12;
                                             for (num3 = 0; num3 < num4; num3++)
                                             {
                                                 if (strArray3[num3 + 0x11] != "0")
                                                 {
                                                     string str18 = strArray3[num3 + 0x11];
                                                     if (!list.Contains(str18))
                                                     {
                                                         data2.InvalidSVsCount++;
                                                         data.InvalidSVsCount++;
                                                     }
                                                 }
                                             }
                                         }
                                         if (report2.PerFreqData.Contains(str14))
                                         {
                                             data2 = (Invalid_Data) report2.PerFreqData[str14];
                                             data2.EpochCount++;
                                         }
                                     }
                                 }
                             }
                         }
                         goto Label_08A8;
                     Label_0659:
                         num5 = Convert.ToInt16(strArray3[13]);
                         string item = strArray3[7];
                         if (report2.PerFreqData.Contains("Total"))
                         {
                             data = (Invalid_Data) report2.PerFreqData["Total"];
                         }
                         else
                         {
                             Invalid_Data data5 = new Invalid_Data();
                             report2.PerFreqData.Add("Total", data5);
                             data = (Invalid_Data) report2.PerFreqData["Total"];
                         }
                         if ((num5 & 1) != 0)
                         {
                             int num6 = 0;
                             int num7 = 0;
                             for (num7 = 0; num7 < 10; num7++)
                             {
                                 num6 += Convert.ToInt16(strArray3[num7 + 14]);
                             }
                             double num1 = ((double) num6) / 10.0;
                             if ((str15 == "0") || !list.Contains(item))
                             {
                                 if (report2.PerFreqData.Contains(str14))
                                 {
                                     data2 = (Invalid_Data) report2.PerFreqData[str14];
                                 }
                                 else
                                 {
                                     Invalid_Data data6 = new Invalid_Data();
                                     report2.PerFreqData.Add(str14, data6);
                                     data2 = (Invalid_Data) report2.PerFreqData[str14];
                                 }
                                 data2.InvalidSVsCount++;
                                 data.InvalidSVsCount++;
                             }
                         }
                         goto Label_08A8;
                     Label_079C:
                         if (report2.PerFreqData.Contains("Total"))
                         {
                             data = (Invalid_Data) report2.PerFreqData["Total"];
                         }
                         else
                         {
                             Invalid_Data data7 = new Invalid_Data();
                             report2.PerFreqData.Add("Total", data7);
                             data = (Invalid_Data) report2.PerFreqData["Total"];
                         }
                         data.EpochCount++;
                         if (report2.PerFreqData.Contains(str14))
                         {
                             data2 = (Invalid_Data) report2.PerFreqData[str14];
                         }
                         else
                         {
                             Invalid_Data data8 = new Invalid_Data();
                             report2.PerFreqData.Add(str14, data8);
                             data2 = (Invalid_Data) report2.PerFreqData[str14];
                         }
                         if ((str15 == "1") && (Convert.ToDouble(strArray3[strArray3.Length - 1]) > Convert.ToDouble(this._hrErrLimit)))
                         {
                             data2.HrErrCount++;
                             data.HrErrCount++;
                         }
                     Label_08A8:
                         str10 = reader.ReadLine();
                     }
                     reader.Close();
                 }
                 f.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                 f.WriteLine("<cw>");
                 foreach (string str20 in hashtable.Keys)
                 {
                     f.WriteLine("\t<swVersion name=\"{0}\">", str20);
                     Header1DataClass class4 = (Header1DataClass) hashtable[str20];
                     int num9 = 0;
                     int num10 = 0;
                     foreach (string str21 in class4.Header2DataHash.Keys)
                     {
                         f.WriteLine("\t\t<msg name=\"{0}\">", str21);
                         PerEnvReport report5 = (PerEnvReport) class4.Header2DataHash[str21];
                         foreach (string str22 in report5.PerSiteData.Keys)
                         {
                             f.WriteLine("\t\t\t<environment name=\"{0}\">", str22);
                             PerPowerReport report6 = (PerPowerReport) report5.PerSiteData[str22];
                             foreach (string str23 in report6.PerFreqData.Keys)
                             {
                                 Invalid_Data data9 = (Invalid_Data) report6.PerFreqData[str23];
                                 if (str21 == "Nav")
                                 {
                                     num9 = data9.EpochCount / 2;
                                 }
                                 if (((data9.InvalidSVsCount != 0) || (data9.HrErrCount != 0)) && !(str23 == "Total"))
                                 {
                                     f.WriteLine("\t\t\t\t<freq value=\"{0}\">", str23);
                                     f.WriteLine("\t\t\t\t\t<field name=\"# Invalid SV\" value=\"{0}\" criteria=\"{1}\" direction=\"&lt;\" units=\"\"/>", data9.InvalidSVsCount, this._invalidSV);
                                     f.WriteLine("\t\t\t\t\t<field name=\"# Hr Error &gt;{0} m\" value=\"{1}\" criteria=\"{2}\" direction=\"&lt;\" units=\"\"/>", this._hrErrLimit, data9.HrErrCount, this._limitVal);
                                     f.WriteLine("\t\t\t\t\t<field name=\"# Epoch\" value=\"{0}\" criteria=\"\" direction=\"\" units=\"\"/>", num9);
                                     f.WriteLine("\t\t\t\t</freq>");
                                 }
                             }
                             string str24 = "Total";
                             Invalid_Data data10 = (Invalid_Data) report6.PerFreqData[str24];
                             f.WriteLine("\t\t\t\t<freq value=\"{0}\">", str24);
                             if (data10 != null)
                             {
                                 if (str21 == "Nav")
                                 {
                                     num10 = data10.EpochCount / 2;
                                 }
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Invalid SV\" value=\"{0}\" criteria=\"{1}\" direction=\"&lt;\" units=\"\"/>", data10.InvalidSVsCount, this._invalidSV);
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Hr Error &gt;{0} m\" value=\"{1}\" criteria=\"{2}\" direction=\"&lt;\" units=\"\"/>", this._hrErrLimit, data10.HrErrCount, this._limitVal);
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Epoch\" value=\"{0}\" criteria=\"\" direction=\"\" units=\"\"/>", num10);
                                 f.WriteLine("\t\t\t\t</freq>");
                             }
                             else
                             {
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Invalid SV\" value=\"0\" criteria=\"{0}\" direction=\"&lt;\" units=\"\"/>", this._invalidSV);
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Hr Error &gt;{0} m\" value=\"0\" criteria=\"{1}\" direction=\"&lt;\" units=\"\"/>", this._hrErrLimit, this._limitVal);
                                 f.WriteLine("\t\t\t\t\t<field name=\"# Epoch\" value=\"{0}\" criteria=\"\" direction=\"\" units=\"\"/>", num10);
                                 f.WriteLine("\t\t\t\t</freq>");
                             }
                             f.WriteLine("\t\t\t</environment>");
                         }
                         f.WriteLine("\t\t</msg>");
                     }
                     f.WriteLine("\t</swVersion>");
                 }
                 this.printTestSetup(f);
                 f.WriteLine("</cw>");
                 f.Close();
                 hashtable.Clear();
                 this.perRxSetupData.Clear();
                 string outputFile = dir + @"\summary_cw.html";
                 this.GenerateHTMLReport(path, outputFile, ConfigurationManager.AppSettings["InstalledDirectory"] + @"\scripts\cwReport.xsl");
             }
         }
     }
     catch (Exception exception)
     {
         this.perRxSetupData.Clear();
         hashtable.Clear();
         f.Close();
         MessageBox.Show(exception.Message, "Error");
     }
 }