예제 #1
0
파일: Report.cs 프로젝트: facchinm/SiRFLive
 public void ConvertCSVToSDOFormat(string resultDir)
 {
     if (Directory.Exists(resultDir))
     {
         FileInfo[] files = new DirectoryInfo(resultDir).GetFiles("*.csv");
         if (files.Length != 0)
         {
             string path = resultDir + @"\SDO";
             if (!Directory.Exists(path))
             {
                 Directory.CreateDirectory(path);
             }
             int index = 8;
             int num2 = index + 1;
             int num3 = num2 + 3;
             int num4 = num3 + 3;
             int num5 = num4 + 5;
             int num6 = 12;
             double sample = 0.0;
             foreach (FileInfo info2 in files)
             {
                 StreamReader reader = null;
                 StreamWriter s = null;
                 Hashtable dH = null;
                 Hashtable hashtable2 = null;
                 ReportElements elements = null;
                 try
                 {
                     reader = info2.OpenText();
                     string str2 = info2.Name.Replace(".csv", ".yaml");
                     s = new StreamWriter(path + @"\" + str2);
                     string str3 = reader.ReadLine();
                     dH = new Hashtable();
                     elements = new ReportElements();
                     while (str3 != null)
                     {
                         if (str3 == "End Summary")
                         {
                             break;
                         }
                         if (str3 == string.Empty)
                         {
                             str3 = reader.ReadLine();
                         }
                         else
                         {
                             string[] strArray = str3.Split(new char[] { '=' });
                             if (strArray.Length > 1)
                             {
                                 string key = strArray[0].Trim();
                                 string str5 = strArray[1].Trim();
                                 if (!dH.ContainsKey(key))
                                 {
                                     dH.Add(key, str5);
                                 }
                             }
                             else if (strArray.Length == 1)
                             {
                                 string str6 = strArray[0].Trim();
                                 if (!dH.ContainsKey(str6))
                                 {
                                     dH.Add(str6, "Unknown");
                                 }
                             }
                             str3 = reader.ReadLine();
                         }
                     }
                     if (dH.Count < 1)
                     {
                         reader.Close();
                         reader = null;
                         s.Close();
                         s = null;
                     }
                     else
                     {
                         if (!dH.ContainsKey("Test Data Store"))
                         {
                             dH.Add("Test Data Store", resultDir);
                         }
                         double num8 = 0.0;
                         double num9 = 0.0;
                         if (dH.ContainsKey("Test Description"))
                         {
                             string text1 = (string) dH["Test Description"];
                         }
                         if (dH.ContainsKey("TTFF 95% Limit|s"))
                         {
                             string str7 = (string) dH["TTFF 95% Limit|s"];
                             if (str7 == "N/A")
                             {
                                 num8 = -9999.0;
                             }
                             else
                             {
                                 num8 = Convert.ToDouble(str7);
                             }
                         }
                         if (dH.ContainsKey("2D Position Error 95% Limit|m"))
                         {
                             string str8 = (string) dH["2D Position Error 95% Limit|m"];
                             if (str8 == "N/A")
                             {
                                 num9 = -9999.0;
                             }
                             else
                             {
                                 num9 = Convert.ToDouble(str8);
                             }
                         }
                         if (dH.ContainsKey("TTFF Timeout"))
                         {
                             this._timeoutVal = (string) dH["TTFF Timeout"];
                         }
                         this.prinSDOHeader(s, dH);
                         str3 = reader.ReadLine();
                         for (str3 = reader.ReadLine(); str3 != null; str3 = reader.ReadLine())
                         {
                             string[] strArray2 = str3.Split(new char[] { ',' });
                             double num10 = -9999.0;
                             if (strArray2.Length >= 5)
                             {
                                 double num11 = Convert.ToDouble(strArray2[this._ttffReportType]);
                                 double num12 = Convert.ToDouble(strArray2[index]);
                                 if (num11 <= 0.0)
                                 {
                                     elements.NumberOfTTFFMisses++;
                                 }
                                 else if (num11 == Convert.ToDouble(this._timeoutVal))
                                 {
                                     elements.NumberOfTTFFMisses++;
                                 }
                                 else if ((num11 > num8) && (num8 != 0.0))
                                 {
                                     elements.NumberOfTTFFOutOfLimits++;
                                 }
                                 if (num12 <= 0.0)
                                 {
                                     elements.NumberOf2DMisses++;
                                 }
                                 if ((num12 > num9) && (num9 != 0.0))
                                 {
                                     elements.NumberOf2DOutOfLimits++;
                                 }
                                 if (num11 <= 0.0)
                                 {
                                     elements.NumberOfMisses++;
                                 }
                                 else if (num11 > num8)
                                 {
                                     elements.NumberOfMisses++;
                                 }
                                 else if (num12 <= 0.0)
                                 {
                                     elements.NumberOfMisses++;
                                 }
                                 else if ((num12 > num9) && (num9 != 0.0))
                                 {
                                     elements.NumberOfMisses++;
                                 }
                                 double num13 = Convert.ToDouble(strArray2[num3]);
                                 if (num13 != -9999.0)
                                 {
                                     num10 = Math.Abs((double) (num13 - Convert.ToDouble(strArray2[num4])));
                                 }
                                 elements.TTFFSamples.InsertSample(num11);
                                 elements.Position2DErrorSamples.InsertSample(num12);
                                 elements.VerticalErrorSamples.InsertSample(num10);
                                 for (int i = 0; i < num6; i++)
                                 {
                                     sample = Convert.ToDouble(strArray2[num5 + i]);
                                     if (sample != 0.0)
                                     {
                                         elements.CNOSamples.InsertSample(sample);
                                     }
                                 }
                             }
                         }
                         hashtable2 = new Hashtable();
                         double percentile = elements.TTFFSamples.GetPercentile((double) 95.0, -9999.0);
                         double num16 = elements.TTFFSamples.Stats_Max((double) -9999.0);
                         double num17 = elements.Position2DErrorSamples.GetPercentile((double) 95.0, -9999.0);
                         double num18 = elements.Position2DErrorSamples.Stats_Max((double) -9999.0);
                         double num19 = elements.VerticalErrorSamples.GetPercentile((double) 95.0, -9999.0);
                         double num20 = elements.VerticalErrorSamples.Stats_Max((double) -9999.0);
                         double num21 = elements.CNOSamples.GetPercentile((double) 95.0, -9999.0);
                         double num22 = elements.CNOSamples.Stats_Max((double) -9999.0);
                         string str9 = "Test Result";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt = new SDOStatsElememt();
                             elememt.Value = "N/A";
                             hashtable2.Add(str9, elememt);
                         }
                         str9 = "Samples";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt2 = new SDOStatsElememt();
                             elememt2.Value = elements.TTFFSamples.Samples.ToString("D");
                             hashtable2.Add(str9, elememt2);
                         }
                         str9 = "Number of Misses TTFF";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt3 = new SDOStatsElememt();
                             elememt3.Value = elements.NumberOfTTFFMisses.ToString("D");
                             hashtable2.Add(str9, elememt3);
                         }
                         str9 = "Number of Over Limit TTFF";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt4 = new SDOStatsElememt();
                             elememt4.Value = elements.NumberOfTTFFOutOfLimits.ToString("D");
                             hashtable2.Add(str9, elememt4);
                         }
                         str9 = "Number of Misses 2D Position";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt5 = new SDOStatsElememt();
                             elememt5.Value = elements.NumberOf2DMisses.ToString("D");
                             hashtable2.Add(str9, elememt5);
                         }
                         str9 = "Number of Over Limit 2D Position";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt6 = new SDOStatsElememt();
                             elememt6.Value = elements.NumberOf2DOutOfLimits.ToString("D");
                             hashtable2.Add(str9, elememt6);
                         }
                         str9 = "TTFF 95%|s";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt7 = new SDOStatsElememt();
                             if (num8 != 0.0)
                             {
                                 elememt7.Target = num8.ToString("F2");
                                 elememt7.Comparison = "<";
                                 elememt7.ComparisonResult = (percentile < num8) ? "Pass" : "False";
                             }
                             elememt7.Value = percentile.ToString("F2");
                             hashtable2.Add(str9, elememt7);
                         }
                         str9 = "TTFF Max|s";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt8 = new SDOStatsElememt();
                             elememt8.Value = num16.ToString("F2");
                             hashtable2.Add(str9, elememt8);
                         }
                         str9 = "2D Position Error 95%|m";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt9 = new SDOStatsElememt();
                             if (num9 != 0.0)
                             {
                                 elememt9.Target = num9.ToString("F2");
                                 elememt9.Comparison = "<";
                                 elememt9.ComparisonResult = (num17 < num9) ? "Pass" : "False";
                             }
                             elememt9.Value = num17.ToString("F6");
                             hashtable2.Add(str9, elememt9);
                         }
                         str9 = "2D Position Error Max|m";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt10 = new SDOStatsElememt();
                             elememt10.Value = num18.ToString("F6");
                             hashtable2.Add(str9, elememt10);
                         }
                         str9 = "Vertical Position Error 95%|m";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt11 = new SDOStatsElememt();
                             elememt11.Value = num19.ToString("F6");
                             hashtable2.Add(str9, elememt11);
                         }
                         str9 = "Vertical Position Error Max|m";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt12 = new SDOStatsElememt();
                             elememt12.Value = num20.ToString("F6");
                             hashtable2.Add(str9, elememt12);
                         }
                         str9 = "CNo 95%|dBHz";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt13 = new SDOStatsElememt();
                             elememt13.Value = num21.ToString("F2");
                             hashtable2.Add(str9, elememt13);
                         }
                         str9 = "CNo Max|dBHz";
                         if (!hashtable2.ContainsKey(str9))
                         {
                             SDOStatsElememt elememt14 = new SDOStatsElememt();
                             elememt14.Value = num22.ToString("F2");
                             hashtable2.Add(str9, elememt14);
                         }
                         this.printResultStats(s, hashtable2);
                         reader.Close();
                         reader = null;
                         s.Close();
                         s = null;
                         hashtable2.Clear();
                         hashtable2 = null;
                     }
                 }
                 catch (Exception exception)
                 {
                     if (reader != null)
                     {
                         reader.Close();
                         reader = null;
                     }
                     if (s != null)
                     {
                         s.Close();
                         s = null;
                     }
                     if (hashtable2 != null)
                     {
                         hashtable2.Clear();
                         hashtable2 = null;
                     }
                     if (dH != null)
                     {
                         dH.Clear();
                         dH = null;
                     }
                     if (elements != null)
                     {
                         elements.Dispose();
                         dH = null;
                     }
                     throw exception;
                 }
             }
         }
     }
 }
예제 #2
0
파일: Report.cs 프로젝트: facchinm/SiRFLive
 private void printResultStats(StreamWriter s, Hashtable dH)
 {
     if (((s != null) && (dH != null)) && (s != null))
     {
         string path = clsGlobal.InstalledDirectory + @"\Config\sdoHeaderName.cfg";
         if (!File.Exists(path))
         {
             path = null;
         }
         else
         {
             IniHelper helper = new IniHelper(path);
             List<string> keys = helper.GetKeys("Stats");
             s.WriteLine("Test Statistics:");
             SDOStatsElememt elememt = new SDOStatsElememt();
             if (keys != null)
             {
                 foreach (string str2 in keys)
                 {
                     elememt.Init();
                     if (dH.ContainsKey(str2))
                     {
                         elememt = (SDOStatsElememt) dH[str2];
                         if (elememt.Target != "N/A")
                         {
                             s.WriteLine(string.Format("\t{0}:", str2));
                             s.WriteLine(string.Format("\t\t- Target:{0}", elememt.Target));
                             s.WriteLine(string.Format("\t\t- Result:{0}", elememt.Value));
                             s.WriteLine(string.Format("\t\t- Comparison:{0}", elememt.Comparison));
                             s.WriteLine(string.Format("\t\t- Comparison Result:{0}", elememt.ComparisonResult));
                         }
                         else
                         {
                             s.WriteLine(string.Format("\t{0}:{1}", str2, elememt.Value));
                         }
                     }
                 }
             }
             elememt = null;
             keys.Clear();
             keys = null;
             helper = null;
         }
     }
 }