Exemple #1
0
 public void Tunnels_Summary(string dir)
 {
     try
     {
         if (!Directory.Exists(dir))
         {
             MessageBox.Show(string.Format("Directory Not Found!\n\n{0}", dir), "Report Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
         }
         else
         {
             DirectoryInfo info = new DirectoryInfo(dir);
             FileInfo[] files = info.GetFiles("*.csv");
             if (files.Length != 0)
             {
                 Stats s = new Stats();
                 Stats stats2 = new Stats();
                 Stats stats3 = new Stats();
                 string str = "SW Version: Not detected";
                 foreach (FileInfo info2 in files)
                 {
                     LogManager manager = new LogManager();
                     manager.OpenFileRead(info.FullName + info2.Name);
                     string str2 = manager.ReadLine();
                     for (str2 = manager.ReadLine(); str2 != null; str2 = manager.ReadLine())
                     {
                         string[] strArray = str2.Split(new char[] { ',' });
                         if (strArray.Length >= 11)
                         {
                             int num = Convert.ToInt32(strArray[8]);
                             int num2 = Convert.ToInt32(strArray[9]);
                             int num3 = Convert.ToInt32(strArray[10]);
                             s.InsertSample((double) num);
                             stats2.InsertSample((double) num2);
                             stats3.InsertSample((double) num3);
                         }
                     }
                     manager.CloseFile();
                 }
                 string path = dir + @"\summary_tunnels.xml";
                 StreamWriter f = new StreamWriter(path);
                 f.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                 f.WriteLine("<tunnels>");
                 f.WriteLine("\t<swVersion name=\"{0}\">", str);
                 this.printCDFHelper(f, s, "Time to Lose One SV");
                 this.printCDFHelper(f, stats2, "Time to Lose All SVs");
                 this.printCDFHelper(f, stats3, "Time to Re-Acquire Signal");
                 f.WriteLine("\t</swVersion>");
                 f.WriteLine("</tunnels>");
                 f.Close();
                 string outputFile = dir + @"\summary_tunnels.html";
                 this.GenerateHTMLReport(path, outputFile, ConfigurationManager.AppSettings["InstalledDirectory"] + @"\scripts\tunnelsReport.xsl");
             }
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message, "Error");
     }
 }
Exemple #2
0
 public void PseudoRangeError_Summary(string filename)
 {
     int num = 0x20;
     int num2 = 0;
     Stats s = new Stats();
     Stats stats2 = new Stats();
     Stats[] statsArray = new Stats[num];
     Stats[] statsArray2 = new Stats[num];
     string str = "SW Version: Not detected";
     try
     {
         LogManager manager = new LogManager();
         manager.OpenFileRead(filename);
         string str2 = manager.ReadLine();
         for (str2 = manager.ReadLine(); str2 != null; str2 = manager.ReadLine())
         {
             string[] strArray = str2.Split(new char[] { ',' });
             if (strArray.Length >= 8)
             {
                 double num3 = Convert.ToDouble(strArray[7]);
                 int index = Convert.ToInt32(strArray[0]) - 1;
                 if (num3 != -1.0)
                 {
                     s.InsertSample(Math.Abs(num3));
                     if ((index < num) && (index >= 0))
                     {
                         if (statsArray[index] == null)
                         {
                             statsArray[index] = new Stats();
                         }
                         statsArray[index].InsertSample(Math.Abs(num3));
                     }
                 }
                 else
                 {
                     num2++;
                 }
             }
         }
         manager.CloseFile();
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message, "Exception while generating PR error report");
     }
     try
     {
         string[] strArray2 = filename.Split(new char[] { '\\' });
         string str3 = "";
         if (strArray2.GetLength(0) > 1)
         {
             for (int k = 0; k < (strArray2.GetLength(0) - 1); k++)
             {
                 str3 = str3 + strArray2[k] + '\\';
             }
         }
         StreamWriter f = new StreamWriter(str3 + @"\summary_PRError.xml");
         f.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
         f.WriteLine("<PseudoRangeError>");
         f.WriteLine("\t<swVersion name=\"{0}\">", str);
         this.printCDFHelper(f, s, "Pseudo Range Error - Overall");
         for (int i = 0; i < num; i++)
         {
             if ((statsArray[i] != null) && (statsArray[i].Samples > 0))
             {
                 this.printCDFHelper(f, statsArray[i], "Pseudo Range Error - Per SV (SV=" + i.ToString() + ")");
             }
         }
         this.printCDFHelper(f, stats2, "Pseudo Range Error - Overall at Tunnel Exit");
         for (int j = 0; j < num; j++)
         {
             if ((statsArray2[j] != null) && (statsArray2[j].Samples > 0))
             {
                 this.printCDFHelper(f, statsArray2[j], "Pseudo Range Error - Per SV at Tunnel Exit (SV=" + j.ToString() + ")");
             }
         }
         f.WriteLine("\t</swVersion>");
         f.WriteLine("</PseudoRangeError>");
         f.Close();
     }
     catch (Exception exception2)
     {
         MessageBox.Show(exception2.Message, "Exception while generating PR error report");
     }
 }
Exemple #3
0
 private void ttfsPlotBtn_Click(object sender, EventArgs e)
 {
     this.ttfsPlotBtn.Enabled = false;
     if (this._CDFPlotWin == null)
     {
         this._CDFPlotWin = new frmCDFPlots();
         this._CDFPlotWin.MdiParent = base.MdiParent;
         this._CDFPlotWin.UpdateStatusToParentWin += new frmCDFPlots.UpdateParentEventHandler(this.updatePlotStatus);
         this._CDFPlotWin.UpdateStatsData += new frmCDFPlots.UpdateParentEventHandler(this.RefreshCDFPlot);
     }
     Stats dataClass = new Stats();
     for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
     {
         try
         {
             dataClass.InsertSample(Convert.ToDouble(this.dataGridView1["TTFS", i].Value.ToString()));
         }
         catch
         {
             this.ttfsPlotBtn.Enabled = true;
         }
     }
     string label = "Time To First Sync";
     if ((dataClass != null) && (dataClass.Samples > 0))
     {
         this._CDFPlotWin.SetPlotData(dataClass, dataClass.Samples, "CDF Plot", label, Color.Blue);
         this._CDFPlotWin.Show();
         this._CDFPlotWin.SetXAxisTitle("Time To First Frame Sync(s)");
     }
 }
Exemple #4
0
 public void PointToPointErrorCalculation(string dataFile, string refFile, double startPoint, double endPoint)
 {
     ArrayList list = this._helperFunctions.ReadIMUFile(dataFile, startPoint, endPoint);
     ArrayList list2 = this._helperFunctions.ReadIMUFile(refFile, startPoint, endPoint);
     Stats stats = new Stats();
     Stats stats2 = new Stats();
     Stats stats3 = new Stats();
     Stats stats4 = new Stats();
     Stats stats5 = new Stats();
     Stats stats6 = new Stats();
     Stats stats7 = new Stats();
     Stats stats8 = new Stats();
     PositionErrorCalc calc = new PositionErrorCalc();
     List<string> list3 = new List<string>();
     string item = string.Empty;
     List<double> positionDataList = new List<double>(8);
     for (int i = 0; i < 8; i++)
     {
         positionDataList.Add(0.0);
     }
     PositionInfo.PositionStruct struct2 = new PositionInfo.PositionStruct();
     PositionInfo.PositionStruct struct3 = new PositionInfo.PositionStruct();
     int num2 = 0;
     int num3 = 0;
     double tOW = 0.0;
     double num5 = 0.0;
     double sample = 0.0;
     double num7 = 0.0;
     double num8 = 0.0;
     double num9 = 0.0;
     double num10 = 0.0;
     double num11 = 0.0;
     double num12 = 0.0;
     int num13 = 0;
     int num14 = 0;
     int num15 = 0;
     int num16 = 0;
     int num17 = 0;
     int num18 = 0;
     int num19 = 0;
     int num20 = 0;
     int num21 = 0;
     string str2 = "Not detected";
     if ((list.Count > 0) && (list2.Count > 0))
     {
         for (num2 = 0; (num2 < list.Count) && (num3 < list2.Count); num2++)
         {
             struct2 = (PositionInfo.PositionStruct) list[num2];
             struct3 = (PositionInfo.PositionStruct) list2[num3];
             if (struct2.SW_Version != string.Empty)
             {
                 str2 = struct2.SW_Version.TrimStart(new char[] { ':' });
             }
             if (struct2.NavType > 0)
             {
                 tOW = struct2.TOW;
                 num5 = struct3.TOW;
                 while (tOW > num5)
                 {
                     num3++;
                     if (num3 >= list2.Count)
                     {
                         break;
                     }
                     struct3 = (PositionInfo.PositionStruct) list2[num3];
                     num5 = struct3.TOW;
                 }
                 if (num8 == 0.0)
                 {
                     num8 = tOW;
                 }
                 num9 = tOW;
                 if (tOW == num5)
                 {
                     positionDataList[0] = struct2.Latitude;
                     positionDataList[1] = struct2.Longitude;
                     positionDataList[2] = struct2.Altitude;
                     positionDataList[3] = struct2.Heading;
                     positionDataList[4] = struct3.Latitude;
                     positionDataList[5] = struct3.Longitude;
                     positionDataList[6] = struct3.Altitude;
                     positionDataList[7] = struct3.Heading;
                     calc.GetPositionErrorsInMeter(positionDataList);
                     sample = calc.HorizontalError;
                     stats.InsertSample(sample);
                     num7 = Math.Abs(calc.VerticalErrorInMeter);
                     stats2.InsertSample(num7);
                     num11 = Math.Abs(calc.AlongTrackErrorInMeter);
                     stats7.InsertSample(num11);
                     num12 = Math.Abs(calc.XTrackErrorInMeter);
                     stats8.InsertSample(num12);
                     num10 = Math.Abs((double) (struct2.Heading - struct3.Heading));
                     if (num10 > 180.0)
                     {
                         num10 = 360.0 - num10;
                     }
                     stats6.InsertSample(num10);
                     stats3.InsertSample(struct2.HDOP);
                     stats4.InsertSample((double) struct2.NumSVInFix);
                     stats5.InsertSample(struct2.MaxCN0);
                     if (sample > 50.0)
                     {
                         num13++;
                         num19++;
                         if (num13 == 4)
                         {
                             num16++;
                         }
                     }
                     else
                     {
                         num13 = 0;
                     }
                     if (sample > 25.0)
                     {
                         num14++;
                         num20++;
                         if (num14 == 4)
                         {
                             num17++;
                         }
                     }
                     else
                     {
                         num14 = 0;
                     }
                     if (sample > 10.0)
                     {
                         num15++;
                         num21++;
                         if (num15 == 4)
                         {
                             num18++;
                         }
                     }
                     else
                     {
                         num15 = 0;
                     }
                     item = string.Format("{0},{1}, {2:F6},{3:F6},{4:F6},{5:F6},{6:F6},{7:F6},{8:F6}, {9:F6}, {10:F2}, {11:F2}, {12:F2}, {13:F2},{14:F2},{15:F2},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25}, {26},{27}", new object[] {
                         tOW, num5, struct2.Latitude, struct2.Longitude, struct2.Altitude, struct3.Latitude, struct3.Longitude, struct3.Altitude, struct2.Heading, struct3.Heading, sample, num7, num12, num11, struct2.HDOP, struct2.NumSVInFix,
                         struct2.MaxCN0, struct2.NavType, num19, num16, num20, num17, num21, num18, num13, num14, num15, num10
                      });
                     list3.Add(item);
                     num3++;
                 }
             }
         }
         if (stats.Samples > 0)
         {
             double percentile = stats.GetPercentile((double) 50.0, -9999.0);
             double num23 = stats.GetPercentile((double) 68.0, -9999.0);
             double num24 = stats.GetPercentile((double) 95.0, -9999.0);
             double num25 = stats.Stats_Max((double) -9999.0);
             stats.Stats_Min((double) -9999.0);
             stats.Stats_Mean((double) -9999.0);
             double num26 = stats2.GetPercentile((double) 50.0, -9999.0);
             double num27 = stats2.GetPercentile((double) 68.0, -9999.0);
             double num28 = stats2.GetPercentile((double) 95.0, -9999.0);
             double num29 = stats2.Stats_Max((double) -9999.0);
             stats2.Stats_Min((double) -9999.0);
             stats2.Stats_Mean((double) -9999.0);
             double num30 = stats8.GetPercentile((double) 50.0, -9999.0);
             double num31 = stats8.GetPercentile((double) 68.0, -9999.0);
             double num32 = stats8.GetPercentile((double) 95.0, -9999.0);
             double num33 = stats8.Stats_Max((double) -9999.0);
             stats8.Stats_Min((double) -9999.0);
             stats8.Stats_Mean((double) -9999.0);
             double num34 = stats7.GetPercentile((double) 50.0, -9999.0);
             double num35 = stats7.GetPercentile((double) 68.0, -9999.0);
             double num36 = stats7.GetPercentile((double) 95.0, -9999.0);
             double num37 = stats7.Stats_Max((double) -9999.0);
             stats7.Stats_Min((double) -9999.0);
             stats7.Stats_Mean((double) -9999.0);
             int samples = stats.Samples;
             double num39 = stats3.Stats_Mean((double) -9999.0);
             double num40 = stats4.Stats_Mean((double) -9999.0);
             double num41 = (((double) samples) / ((num9 - num8) + 1.0)) * 100.0;
             double num42 = stats5.Stats_Mean((double) -9999.0);
             double num43 = stats6.Stats_Max((double) -9999.0);
             stats6.Stats_Min((double) -9999.0);
             stats6.Stats_Mean((double) -9999.0);
             double num44 = stats6.GetPercentile((double) 50.0, -9999.0);
             double num45 = stats6.GetPercentile((double) 68.0, -9999.0);
             double num46 = stats6.GetPercentile((double) 95.0, -9999.0);
             string path = dataFile.Replace(".gps", "_PointToPointAccuracy.csv");
             FileInfo info = new FileInfo(dataFile);
             StreamWriter writer = new StreamWriter(path);
             FileInfo info2 = new FileInfo(refFile);
             writer.WriteLine("IMU file path= {0}", info2.Name);
             writer.WriteLine("Data file path= {0}", info.Name);
             writer.WriteLine("SW Version= {0}", str2);
             writer.WriteLine("MaxCN0 Ave|dBHz= {0:F1}", num42);
             writer.WriteLine("Samples= {0:}", samples);
             writer.WriteLine("Tracking Availability= {0:F1}%", num41);
             writer.WriteLine("HDOP Ave= {0:F1}", num39);
             writer.WriteLine("Satellite Number Ave= {0:F1}", num40);
             writer.WriteLine("Horizontal Error 50% CEP|m= {0:F1}", percentile);
             writer.WriteLine("Horizontal Error 68% CEP|m= {0:F1}", num23);
             writer.WriteLine("Horizontal Error 95% CEP|m= {0:F1}", num24);
             writer.WriteLine("Horizontal Error Max|m= {0:F1}", num25);
             writer.WriteLine("Altitude Error 50% CEP|m= {0:F1}", num26);
             writer.WriteLine("Altitude Error 68% CEP|m= {0:F1}", num27);
             writer.WriteLine("Altitude Error 95% CEP|m= {0:F1}", num28);
             writer.WriteLine("Altitude Error Max|m= {0:F1}", num29);
             writer.WriteLine("Cross Track Error 50% CEP|m= {0:F1}", num30);
             writer.WriteLine("Cross Track Error 68% CEP|m= {0:F1}", num31);
             writer.WriteLine("Cross Track Error 95% CEP|m= {0:F1}", num32);
             writer.WriteLine("Cross Track Error Max|m= {0:F1}", num33);
             writer.WriteLine("Along Track Error 50% CEP|m= {0:F1}", num34);
             writer.WriteLine("Along Track Error 68% CEP|m= {0:F1}", num35);
             writer.WriteLine("Along Track Error 95% CEP|m= {0:F1}", num36);
             writer.WriteLine("Along Track Error Max|m= {0:F1}", num37);
             writer.WriteLine("Exceed50mCount= {0}", num19);
             writer.WriteLine("Exceed50m3sNotPullInCount= {0}", num16);
             writer.WriteLine("Exceed25mCount= {0}", num20);
             writer.WriteLine("Exceed25m3sNotPullInCount= {0}", num17);
             writer.WriteLine("Exceed10mCount= {0}", num21);
             writer.WriteLine("Exceed10m3sNotPullInCount= {0}", num18);
             writer.WriteLine("Heading Error 50% CEP|m= {0:F1}", num44);
             writer.WriteLine("Heading Error 68% CEP|m= {0:F1}", num45);
             writer.WriteLine("Heading Error 95% CEP|m= {0:F1}", num46);
             writer.WriteLine("Heading Error Max|m= {0:F1}", num43);
             writer.WriteLine("End Summary");
             writer.WriteLine("Tow,RefTow,Latitude,Longitude,Altitude,RefLatitude,RefLongitude,RefAltitude,Heading,RefHeading,HzError,AltError,CrossTrackError,AlongTrackError,HDOP,NumSVInFix,MaxCN0,NavType,Exceed50mCount,Exceed50m3sNotPullInCount,Exceed25mCount,Exceed25m3sNotPullInCount,Exceed10mCount,Exceed10m3sNotPullInCount,PullInTime50m,PullInTime25m,ullInTime10m,headingError");
             foreach (string str4 in list3)
             {
                 writer.WriteLine(str4);
             }
             writer.Close();
         }
         list.Clear();
         list2.Clear();
     }
     stats.Dispose();
     stats = null;
     stats2.Dispose();
     stats2 = null;
     stats3.Dispose();
     stats3 = null;
     stats4.Dispose();
     stats4 = null;
     stats5.Dispose();
     stats5 = null;
     stats8.Dispose();
     stats8 = null;
     stats7.Dispose();
     stats7 = null;
     stats6.Dispose();
     stats6 = null;
     calc = null;
     list3.Clear();
     list3 = null;
 }
Exemple #5
0
 private void RefreshCDFPlot()
 {
     if (this._CDFPlotWin != null)
     {
         Stats dataClass = new Stats();
         for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
         {
             try
             {
                 dataClass.InsertSample(Convert.ToDouble(this.dataGridView1["TTFS", i].Value.ToString()));
             }
             catch
             {
             }
         }
         string label = "Time To First Sync";
         if ((dataClass != null) && (dataClass.Samples > 0))
         {
             this._CDFPlotWin.SetPlotData(dataClass, dataClass.Samples, "CDF Plot", label, Color.Blue);
             this._CDFPlotWin.RefreshPlot();
             this._CDFPlotWin.SetXAxisTitle("Time To First Frame Sync(s)");
         }
     }
 }