/// <summary> /// 保存结果 /// </summary> /// <param name="grossDataKeys"></param> private void BuildInstantValueStorage(Dictionary <SatelliteNumber, List <Time> > grossDataKeys) { InstantValueStorage = new InstantValueStorage(); foreach (var kv in grossDataKeys) { InstantValueStorage.Regist(kv.Key.ToString(), kv.Value); } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { StartTime = DateTime.Now; int startIndex = int.Parse(textBox_startEpoch.Text); int count = int.Parse(this.textBox_caculateCount.Text); bool isRevseCsUsed = this.checkBox_isreversed.Checked; var path = fileOpenControl1.FilePath; if (!File.Exists(path)) { MessageBox.Show("文件不存在!"); return; } var fileName = Path.GetFileName(path); ResultTables = new ObjectTableManager(this.directorySelectionControl1.Path); var observations = new RinexFileObsDataSource(path); DataSourse = new BufferedStreamService <EpochInformation>(observations); DataSourse.MaterialInputted += DataSourse_MaterialInputted; log.Info("载入数据源 " + DataSourse); GnssSysRemover = new Gnsser.GnssSysRemover(new List <SatelliteType>() { gnssSystemSelectControl1.SatelliteType }); ReverseCycleSlipeReviser = CreateReveredCsReviser(); CycleSlipDetector = CreateCsReviser(); InstantValueStorage = new Geo.InstantValueStorage(); int index = 0; var table = ResultTables.GetOrCreate(DataSourse.Name + "_周跳探测结果"); progressBarComponent1.InitProcess(observations.Header.ObsInfo.Count); foreach (var item in DataSourse) { progressBarComponent1.PerformProcessStep(); if (IsCancel || index >= count + startIndex) { break; } if (index < startIndex) { index++; continue; } var info = item; if (isRevseCsUsed) { ReverseCycleSlipeReviser.Buffers = DataSourse.MaterialBuffers; ReverseCycleSlipeReviser.Revise(ref info); } var list = info.UnstablePrns; if (list.Count > 0) { table.NewRow(); table.AddItem("Epoch", item.ReceiverTime); foreach (var prn in list) { table.AddItem(prn, true); InstantValueStorage.Regist(prn.ToString(), item.ReceiverTime); } } index++; } var obsType = enumRadioControl1.GetCurrent <SatObsDataType>(); CycleSlipDetector.WriteStorageToFile(this.directorySelectionControl1.Path, fileName, obsType); ResultTables.WriteAllToFileAndClearBuffer(); progressBarComponent1.Full(); }