Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 3
0
        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;
            }
        }