/// <summary> /// 修正按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnWaveFix_Click(object sender, EventArgs e) { btnWaveFix.Enabled = false; float superelevation = float.Parse(txtSuperelevation.Text); float gage = float.Parse(txtGage.Text); float LProf = float.Parse(txtL_Prof.Text); float RProf = float.Parse(txtR_Prof.Text); int fixedCount = int.Parse(txtOriginalPointCount.Text); int targetCount = int.Parse(txtTargetPointCount.Text); IntelligentMilestoneFix fix = new IntelligentMilestoneFix(); fix.FixedSamplingCount = fixedCount; fix.TargetSamplingCount = targetCount; fix.FixParams.Add(new FixParam() { ChannelName = "Gage", ThreShold = gage, Priority = 1 }); fix.FixParams.Add(new FixParam() { ChannelName = "Superelevation", ThreShold = superelevation, Priority = 0 }); fix.FixParams.Add(new FixParam() { ChannelName = "L_Prof_SC", ThreShold = LProf, Priority = 2 }); fix.FixParams.Add(new FixParam() { ChannelName = "R_Prof_SC", ThreShold = RProf, Priority = 3 }); fix.InitFixData(_maker.WaveformDataList[0].CitFilePath); Task task = Task.Factory.StartNew(() => { foreach (string path in lstCitFiles.Items) { fix.RunMilestoneFix(path); } }); task.ContinueWith((t) => { if (t.IsFaulted || t.Exception != null) { foreach (var error in t.Exception.InnerExceptions) { MyLogger.logger.Error("运行智能里程失败:" + t.Exception.InnerException.Message); } MessageBox.Show("处理中出现错误:" + t.Exception.InnerExceptions[0].Message); } else if (t.IsCompleted) { MessageBox.Show("处理完成!"); } this.Invoke(new Action(() => { btnWaveFix.Enabled = true; })); }); }
public void TestMethod1() { IntelligentMilestoneFix fix = new IntelligentMilestoneFix(); fix.FixParams.Add(new FixParam() { ChannelName = "Gage", ThreShold = 0.8f, Priority = 1 }); fix.FixParams.Add(new FixParam() { ChannelName = "Superelevation", ThreShold = 0.8f, Priority = 0 }); fix.FixParams.Add(new FixParam() { ChannelName = "L_Prof_SC", ThreShold = 0.8f, Priority = 2 }); fix.FixParams.Add(new FixParam() { ChannelName = "R_Prof_SC", ThreShold = 0.8f, Priority = 3 }); fix.InitFixData(@"D:\cit\gjhx-beijing-shanghai-22012015-052640-1-(0-406).cit"); fix.CheckData(@"D:\cit\gjhx-beijing-shanghai-27062014-221903.cit"); fix.SaveToFile(@"D:\cit\gjhx-beijing-shanghai-27062014-221903.cit"); }
public string Correction(string json) { //公共方法 ResultInfo resultInfo = new ResultInfo(); try { JObject obj = (JObject)JsonConvert.DeserializeObject(json); //修正后的cit文件路径 string citFile = Convert.ToString(obj["citFile"]); //修正后的idf文件路径 string idfFile = Convert.ToString(obj["idfFile"]); //要处理的cit文件路径的集合 string[] lstCitFiles = JsonConvert.DeserializeObject <string[]>(obj["lstCitFiles"].ToString()); //超高门阚值 float superelevation = Convert.ToSingle(obj["superelevation"].ToString()); //轨距门阚值 float gage = Convert.ToSingle(obj["gage"].ToString()); //左高低门阚值 float LProf = Convert.ToSingle(obj["LProf"].ToString()); //右高低门阚值 float RProf = Convert.ToSingle(obj["RProf"].ToString()); //原始数据点 int fixedCount = Convert.ToInt32(obj["fixedCount"].ToString()); //目标数据点 int targetCount = Convert.ToInt32(obj["targetCount"].ToString()); IntelligentMilestoneFix fix = new IntelligentMilestoneFix(); fix.FixedSamplingCount = fixedCount; fix.TargetSamplingCount = targetCount; fix.FixParams.Add(new FixParam() { ChannelName = "Gage", ThreShold = gage, Priority = 1 }); fix.FixParams.Add(new FixParam() { ChannelName = "Superelevation", ThreShold = superelevation, Priority = 0 }); fix.FixParams.Add(new FixParam() { ChannelName = "L_Prof_SC", ThreShold = LProf, Priority = 2 }); fix.FixParams.Add(new FixParam() { ChannelName = "R_Prof_SC", ThreShold = RProf, Priority = 3 }); fix.InitFixData(citFile, idfFile, true); try { /* * foreach (string path in lstCitFiles) * { * bool exec=fix.RunMilestoneFix(path, true); * break; * } */ List <string> successlist = new List <string>(); List <string> faillist = new List <string>(); foreach (string path in lstCitFiles) { //string path = lstCitFiles[0]; bool exec = fix.RunMilestoneFix(path, true); string targetIdf = path.Replace(".cit", "_MileageFix.idf"); if (exec) { successlist.Add(targetIdf); } else { faillist.Add(path); } } if (faillist.Count > 0) { resultInfo.flag = 1; resultInfo.msg = "修正失败:" + JsonConvert.SerializeObject(faillist); resultInfo.data = JsonConvert.SerializeObject(successlist); } else { resultInfo.flag = 1; resultInfo.msg = ""; resultInfo.data = JsonConvert.SerializeObject(successlist); } } catch (Exception ex) { resultInfo.flag = 0; resultInfo.msg = ex.ToString(); return(JsonConvert.SerializeObject(resultInfo)); } } catch (Exception ex) { resultInfo.flag = 0; resultInfo.msg = ex.Message; return(JsonConvert.SerializeObject(resultInfo)); } return(JsonConvert.SerializeObject(resultInfo)); }