public bool ComputePRerrorOneFile(string GPSFileName, string RinexFileName, string IMUFileName, string outFileName) { bool flag = false; try { StreamWriter writer; StreamReader reader = File.OpenText(GPSFileName); if (File.Exists(outFileName)) { writer = File.AppendText(outFileName); } else { writer = File.CreateText(outFileName); } string str = string.Format("PRTrue, ClkBiasRange, TxTOW", new object[0]); string str2 = string.Format("svPRN, TOW, PR, {0}, ClkBias, PRError\r\n", str); writer.Write(str2); ArrayList list = new ArrayList(); ArrayList list2 = new ArrayList(); string str3 = ""; while (((str3 = reader.ReadLine()) != null) && !str3.Contains("End of File")) { string[] strArray = str3.Split(new char[] { ',' }); if (strArray[0] == "28") { Msg28svData data; int index = 3; int num2 = 4; int num3 = 5; data.svPRN = int.Parse(strArray[index]); data.TOW = double.Parse(strArray[num2]); data.PR = double.Parse(strArray[num3]); list.Add(data); } else { if (strArray[0] == "30") { Msg30svData data2; int num4 = 1; int num5 = 14; data2.svPRN = int.Parse(strArray[num4]); data2.ionoErr = double.Parse(strArray[num5]); list2.Add(data2); continue; } if (str3.StartsWith("Week:") || (strArray[0] == "7")) { double clkBias = 0.0; if (str3.StartsWith("Week:")) { string[] strArray2 = str3.Split(new char[] { ':' }); clkBias = double.Parse(strArray2[strArray2.Length - 1].Split(new char[] { ' ' })[0]) * 1E-09; } if (strArray[0] == "7") { int num7 = 5; clkBias = double.Parse(strArray[num7]) * 1E-09; } foreach (Msg28svData data3 in list) { string str4; Msg30svData data4 = new Msg30svData(); foreach (Msg30svData data5 in list2) { if (data5.svPRN == data3.svPRN) { data4 = data5; break; } } double num8 = this.ComputePRerrorOneSV(data3.svPRN, data3.TOW, data3.PR, data4.ionoErr, clkBias, RinexFileName, IMUFileName, out str4); string str5 = string.Format("{0},{1},{2},{3},{4},{5}\r\n", new object[] { data3.svPRN, data3.TOW, data3.PR, str4, clkBias, num8 }); writer.Write(str5); flag = true; } list.Clear(); list2.Clear(); } } } writer.Flush(); writer.Close(); } catch (Exception exception) { MessageBox.Show(exception.Message, "Computing PR error...", MessageBoxButtons.OK); } return(flag); }
public bool ComputePRerrorOneFile(string GPSFileName, string RinexFileName, string IMUFileName, string outFileName) { bool flag = false; try { StreamWriter writer; StreamReader reader = File.OpenText(GPSFileName); if (File.Exists(outFileName)) { writer = File.AppendText(outFileName); } else { writer = File.CreateText(outFileName); } string str = string.Format("PRTrue, ClkBiasRange, TxTOW", new object[0]); string str2 = string.Format("svPRN, TOW, PR, {0}, ClkBias, PRError\r\n", str); writer.Write(str2); ArrayList list = new ArrayList(); ArrayList list2 = new ArrayList(); string str3 = ""; while (((str3 = reader.ReadLine()) != null) && !str3.Contains("End of File")) { string[] strArray = str3.Split(new char[] { ',' }); if (strArray[0] == "28") { Msg28svData data; int index = 3; int num2 = 4; int num3 = 5; data.svPRN = int.Parse(strArray[index]); data.TOW = double.Parse(strArray[num2]); data.PR = double.Parse(strArray[num3]); list.Add(data); } else { if (strArray[0] == "30") { Msg30svData data2; int num4 = 1; int num5 = 14; data2.svPRN = int.Parse(strArray[num4]); data2.ionoErr = double.Parse(strArray[num5]); list2.Add(data2); continue; } if (str3.StartsWith("Week:") || (strArray[0] == "7")) { double clkBias = 0.0; if (str3.StartsWith("Week:")) { string[] strArray2 = str3.Split(new char[] { ':' }); clkBias = double.Parse(strArray2[strArray2.Length - 1].Split(new char[] { ' ' })[0]) * 1E-09; } if (strArray[0] == "7") { int num7 = 5; clkBias = double.Parse(strArray[num7]) * 1E-09; } foreach (Msg28svData data3 in list) { string str4; Msg30svData data4 = new Msg30svData(); foreach (Msg30svData data5 in list2) { if (data5.svPRN == data3.svPRN) { data4 = data5; break; } } double num8 = this.ComputePRerrorOneSV(data3.svPRN, data3.TOW, data3.PR, data4.ionoErr, clkBias, RinexFileName, IMUFileName, out str4); string str5 = string.Format("{0},{1},{2},{3},{4},{5}\r\n", new object[] { data3.svPRN, data3.TOW, data3.PR, str4, clkBias, num8 }); writer.Write(str5); flag = true; } list.Clear(); list2.Clear(); } } } writer.Flush(); writer.Close(); } catch (Exception exception) { MessageBox.Show(exception.Message, "Computing PR error...", MessageBoxButtons.OK); } return flag; }