예제 #1
0
        /// <summary>
        /// 保存按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            //删除
            _fixedTable = new UserFixedTable(waveformMaker.WaveformDataList[0].IndexOperator, waveformMaker.WaveformDataList[0].CitFile.iKmInc);
            _fixedTable.Clear();
            //重新保存索引库
            for (int i = 0; i < dgvMarkedPoints.Rows.Count; i++)
            {
                UserMarkedPoint markedPoint = new UserMarkedPoint();
                markedPoint.ID             = dgvMarkedPoints.Rows[i].Cells[0].Value.ToString();
                markedPoint.FilePointer    = long.Parse(dgvMarkedPoints.Rows[i].Cells[2].Value.ToString());
                markedPoint.UserSetMileage = float.Parse(dgvMarkedPoints.Rows[i].Cells[3].Value.ToString()) * 1000;
                _fixedTable.MarkedPoints.Add(markedPoint);
            }
            _fixedTable.Save();
            //创建计算后的索引库
            MilestoneFix fix = new MilestoneFix(waveformMaker.WaveformDataList[0].CitFilePath, waveformMaker.WaveformDataList[0].IndexOperator);

            try
            {
                fix.ClearMilestoneFixTable();
                fix.RunFixingAlgorithm();
                fix.SaveMilestoneFixTable();
                MessageBox.Show("保存成功!");
                btnLoad_Click(sender, e);
            }
            catch (Exception ex)
            {
                MyLogger.LogError("手动里程修正失败", ex);
                MessageBox.Show("错误:" + ex.Message);
            }
        }
        /// <summary>
        /// 向idf文件中写入
        /// </summary>
        /// <param name="idfFilePath"></param>
        private void WriteIdf(String idfFilePath)
        {
            bool writeResult   = false;
            bool CacluteResult = false;

            try
            {
                UserFixedTable fixedTable = new UserFixedTable(waveformMaker.WaveformDataList[0].IndexOperator, waveformMaker.WaveformDataList[0].CitFile.iKmInc);
                fixedTable.Clear();
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    float           mile        = (int)dataGridView1.Rows[i].Cells[2].Value + (int)(dataGridView1.Rows[i].Cells[3].Value);
                    UserMarkedPoint markedPoint = new UserMarkedPoint();
                    markedPoint.ID             = (i + 1).ToString();
                    markedPoint.FilePointer    = long.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
                    markedPoint.UserSetMileage = mile;
                    fixedTable.MarkedPoints.Add(markedPoint);
                }
                fixedTable.Save();
                writeResult = true;
            }
            catch (Exception ex)
            {
                MyLogger.logger.Error("读取里程修正表错误:" + ex.Message + ",堆栈:" + ex.StackTrace);
                MessageBox.Show("错误:" + ex.Message);
            }

            try
            {
                MilestoneFix fix = new MilestoneFix(waveformMaker.WaveformDataList[0].CitFilePath, waveformMaker.WaveformDataList[0].IndexOperator);
                fix.RunFixingAlgorithm();
                fix.SaveMilestoneFixTable();
                CacluteResult = true;
            }
            catch (Exception ex)
            {
                MyLogger.logger.Error("手动里程修正失败:" + ex.Message + ",堆栈:" + ex.StackTrace);
                MessageBox.Show("错误:" + ex.Message);
            }
            if (writeResult && CacluteResult)
            {
                MessageBox.Show("创建并且写入成功!");
            }
        }
예제 #3
0
        /// <summary>
        /// 向idf文件中写入
        /// </summary>
        /// <param name="citFilePath">cit文件路径----->来自里程快速校正中的选择cit文件的按钮</param
        /// <param name="numericUpDown1">跳变允许值----->来自里程快速校正中的  跳变容许值</param>
        /// <param name="innerdbpath">内部数据库-----></param>
        private string _writeIdf(String citFilePath, int numericUpDown1, string innerdbpath)
        {
            //String idfFileName = Path.GetFileNameWithoutExtension(citFilePath) + ".idf";

            //String idfFilePath = Path.Combine(Path.GetDirectoryName(citFilePath), idfFileName);

            //if (!File.Exists(idfFilePath))
            //{
            //    //MessageBox.Show("找不到波形索引文件!");
            //    Console.WriteLine("找不到波形索引文件!");
            //    return;
            //}

            //公共方法
            ResultInfo resultInfo = new ResultInfo();

            //读取cit文件
            List <AutoIndex> autoIndexClsList = _readCit(citFilePath, numericUpDown1);

            String idfFileName = Path.GetFileNameWithoutExtension(citFilePath) + "_MileageFix" + ".idf";

            String idfFilePath = Path.Combine(Path.GetDirectoryName(citFilePath), idfFileName);

            //设置附带数据库路径和链接字符串,流程修正使用
            InnerFileOperator.InnerFilePath   = innerdbpath;
            InnerFileOperator.InnerConnString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = {0}; Persist Security Info = True; Mode = Share Exclusive; Jet OLEDB:Database Password = iicdc; ";
            //InnerFileOperator.InnerConnString = "provider=Microsoft.Ace.OLEDB.12.0;extended properties=excel 12.0; Data Source = {0}; Persist Security Info = True; Mode = Share Exclusive; Extended Properties=Excel 12.0:Database Password = iicdc; ";

            try
            {
                _op = new IndexOperator();
                _op.IndexFilePath = idfFilePath;
                CITFileProcess  cit        = new CITFileProcess();
                FileInformation fileforma  = cit.GetFileInformation(citFilePath);
                UserFixedTable  fixedTable = new UserFixedTable(_op, fileforma.iKmInc);
                fixedTable.Clear();
                for (int i = 0; i < autoIndexClsList.Count; i++)
                {
                    float           mile        = autoIndexClsList[i].km_current + autoIndexClsList[i].meter_current;
                    UserMarkedPoint markedPoint = new UserMarkedPoint();
                    markedPoint.ID             = (i + 1).ToString();
                    markedPoint.FilePointer    = autoIndexClsList[i].milePos;
                    markedPoint.UserSetMileage = mile;
                    fixedTable.MarkedPoints.Add(markedPoint);
                }
                fixedTable.Save();

                try
                {
                    MilestoneFix fix = new MilestoneFix(citFilePath, _op);
                    fix.RunFixingAlgorithm();
                    fix.SaveMilestoneFixTable();

                    resultInfo.flag = 1;
                    resultInfo.msg  = "";
                    resultInfo.data = idfFilePath;
                }
                catch (Exception ex)
                {
                    resultInfo.flag = 0;
                    resultInfo.msg  = ex.Message;
                }
            }
            catch (Exception ex)
            {
                resultInfo.flag = 0;
                resultInfo.msg  = ex.Message;
            }

            return(JsonConvert.SerializeObject(resultInfo));
        }