/// <summary> /// 窗体加载事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ExportDataByMileageForm_Load(object sender, EventArgs e) { txtExportPath.Text = Path.Combine(Path.GetDirectoryName(_maker.WaveformDataList[0].CitFilePath), DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + _maker.WaveformDataList[0].CitFile.sTrackName + ".cit"); saveFileDialog.InitialDirectory = Path.GetDirectoryName(_maker.WaveformDataList[0].CitFilePath); //if (_maker.WaveformDataList.Count > 0 && _maker.WaveformDataList[0].MileageFix.FixData.Count > 0 && _maker.WaveformDataList[0].IsLoadIndex) //{ // startMileage = (_maker.WaveformDataList[0].MileageFix.FixData[0].MarkedStartPoint.UserSetMileage/1000 ); // endMileage = (_maker.WaveformDataList[0].MileageFix.FixData[_maker.WaveformDataList[0].MileageFix.FixData.Count-1].MarkedEndPoint.UserSetMileage/1000); // txtMileStart.Text = startMileage.ToString("F3"); // txtMileEnd.Text = endMileage.ToString("F3"); //} //else //{ txtMileStart.Text = (citProcess.GetStartMilestone(_maker.WaveformDataList[0].CitFilePath).GetMeter() / 1000).ToString(); txtMileEnd.Text = (citProcess.GetEndMilestone(_maker.WaveformDataList[0].CitFilePath).GetMeter() / 1000).ToString(); //} }
/// <summary> /// 统计按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonStatistics_Click(object sender, EventArgs e) { if (dataGridView1.Rows.Count == 0) { return; } int totalCount = dataGridView1.Rows.Count; int totalGongli = 0; int startMile = 0; int endMile = 0; if (bIndex) { startMile = (int)(waveformMaker.WaveformDataList[0].MileageFix.FixData[0].MarkedStartPoint.UserSetMileage * 1000); endMile = (int)(waveformMaker.WaveformDataList[0].MileageFix.FixData[waveformMaker.WaveformDataList[0].MileageFix.FixData.Count - 1].MarkedEndPoint.UserSetMileage) * 1000; } else { Milestone milestone = citHelper.GetStartMilestone(citFilePath); startMile = Convert.ToInt32(milestone.mKm * 1000 + milestone.mMeter); milestone = citHelper.GetEndMilestone(citFilePath); endMile = Convert.ToInt32(milestone.mKm * 1000 + milestone.mMeter); } totalGongli = Math.Abs(startMile - endMile); List <StatisticsData> dataList = new List <StatisticsData>(); try { int typeNum = 0; //无效区段类型的个数 Dictionary <int, String> dicInvalidType = new Dictionary <int, String>(); //无效区段类型 DataTable dt = invalidManager.GetValidDataType(); for (int i = 0; i < dt.Rows.Count; i++) { dicInvalidType.Add(Convert.ToInt32(dt.Rows[i][0].ToString()), dt.Rows[i][1].ToString()); } typeNum = dicInvalidType.Count; List <InvalidData> list = invalidManager.InvalidDataList(idfFilePath); for (int i = 0; i < typeNum; i++) { List <InvalidData> listNew = list.Where(s => s.iType == i).ToList(); StatisticsData statisticsDataCls = null; for (int j = 0; j < listNew.Count; j++) { if (statisticsDataCls == null) { statisticsDataCls = new StatisticsData(totalCount, totalGongli); } statisticsDataCls.reasonType = dicInvalidType[listNew[j].iType];//类型 statisticsDataCls.sumcount++; startMile = (int)(float.Parse(listNew[j].sStartMile) * 1000); endMile = (int)(float.Parse(listNew[j].sEndMile) * 1000); statisticsDataCls.sumGongli = statisticsDataCls.sumGongli + Math.Abs(endMile - startMile); } if (statisticsDataCls != null) { dataList.Add(statisticsDataCls); } } } catch (System.Exception ex) { MyLogger.LogError("统计无效数据时失败", ex); MessageBox.Show(ex.Message); } //无效区段统计窗体 InvalidDataStatisticsForm statisticsForm = new InvalidDataStatisticsForm(dataList); //statisticsForm.TopLevel = true; statisticsForm.Show(); }
public void DisplayInListview(string citPath) { FileInformation fileInfo = null; double startMileage = 0; double endMileage = 0; double totalMileage = 0; try { fileInfo = _citProcess.GetFileInformation(citPath); long[] startAndEnd = _citProcess.GetPositons(citPath); Milestone start = _citProcess.GetStartMilestone(citPath); Milestone end = _citProcess.GetEndMilestone(citPath); startMileage = start.GetMeter() / 1000; endMileage = end.GetMeter() / 1000; long sampleCount = _citProcess.GetSampleCountByRange(citPath, startAndEnd[0], startAndEnd[1]); totalMileage = (sampleCount * 0.25) / 1000; } catch (Exception ex) { MyLogger.logger.Error("读取文件头部信息出错:" + ex.Message + ",堆栈:" + ex.StackTrace + ",CIT文件名称:" + citPath); MessageBox.Show("读取文件头部信息出错,请检查文件是否有效!"); } if (fileInfo != null) { //线路名 ListViewItem item = new ListViewItem(fileInfo.sTrackName); //线路编码 item.SubItems.Add(fileInfo.sTrackCode); //行别 string dir = string.Empty; switch (fileInfo.iDir) { case 1: { dir = "上行"; break; } case 2: { dir = "下行"; break; } case 3: { dir = "单线"; break; } default: { dir = "上行"; break; } } item.SubItems.Add(dir); if (dir.Contains("下")) { item.BackColor = Color.LightCyan; } else { item.BackColor = Color.LightBlue; } //方向 item.SubItems.Add(fileInfo.iRunDir == 0 ? "正" : "反"); //增减里程 item.SubItems.Add(fileInfo.iKmInc == 0 ? "增" : "减"); item.SubItems.Add(startMileage.ToString()); //起始里程 item.SubItems.Add(endMileage.ToString()); //终止里程 item.SubItems.Add(totalMileage.ToString()); //总里程 //检测日期 item.SubItems.Add(fileInfo.sDate); //检测时间 item.SubItems.Add(fileInfo.sTime); //检测车号 item.SubItems.Add(fileInfo.sTrain); //原始文件名 item.SubItems.Add(Path.GetFileName(citPath)); //大小 item.SubItems.Add((new FileInfo(citPath)).Length.ToString()); //原始路径 item.SubItems.Add(Path.GetDirectoryName(citPath)); //ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem(); //subItem.ForeColor = Color.Red; //subItem.Text = "点击移除"; item.SubItems.Add("点击移除"); item.Tag = fileInfo; item.Checked = true; listViewFiles.Items.Add(item); listViewFiles.Columns[listViewFiles.Columns.Count - 1].Width = -2; } }