Example #1
0
        /// <summary>
        /// 选择geo文件
        /// </summary>
        /// <param name="sender">选择按钮</param>
        /// <param name="e">参数</param>
        private void btnSelectGeoFile_Click(object sender, EventArgs e)
        {
            openFileDialog.Filter = "GEO波形文件 | *.geo";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    txtGeoPath.Text = openFileDialog.FileName;
                    _geoFilePath    = txtGeoPath.Text;
                    string[] sDHI          = Path.GetFileNameWithoutExtension(_geoFilePath).Split('-');
                    string   lineShortName = sDHI[0].ToUpper();
                    _geoHelper.QueryDataChannelInfoHead(_geoFilePath);
                    string mileageRange = _geoHelper.GetExportDataMileageRange(_geoFilePath);
                    mileageRange = mileageRange.Substring(2);
                    float startMileage = float.Parse(mileageRange.Substring(0, mileageRange.IndexOf("-")));
                    float endMileage   = float.Parse(mileageRange.Substring(mileageRange.IndexOf("-") + 1));
                    if (startMileage < endMileage)
                    {
                        cbxKmInc.SelectedIndex = 0;
                    }
                    else
                    {
                        cbxKmInc.SelectedIndex = 1;
                    }
                    txtStartPos.Text = startMileage.ToString();
                    txtEndPos.Text   = endMileage.ToString();
                    string time     = String.Format("{0}:{1}:{2}", sDHI[4].Substring(0, 2), sDHI[4].Substring(2, 2), sDHI[4].Substring(4, 2));
                    string date     = String.Format("{0}/{1}/{2}", sDHI[3].Substring(2, 2), sDHI[3].Substring(0, 2), sDHI[3].Substring(4, 4));
                    string lineCode = GetLineCodeByName(lineShortName);
                    if (!string.IsNullOrEmpty(lineCode))
                    {
                        var lineName = _dtLineCodeAndName.AsEnumerable().Where(p => p.Field <string>("自定义线路编号") == lineCode);
                        if (lineName != null)
                        {
                            cbxLineName.SelectedItem = lineName;
                        }
                    }
                    if (_dicDirAndDesc.ContainsKey(lineShortName.Substring(3, 1)))
                    {
                        cbxLineDir.SelectedItem = _dicDirAndDesc[lineShortName.Substring(3, 1)];
                    }
                    else
                    {
                        cbxLineDir.SelectedIndex = 0;
                    }
                    dateTimePickerDate.Value = DateTime.Parse(date);
                    dateTimePickerTime.Value = DateTime.Parse(time);

                    txtIICFilePath.Text = string.Empty;
                }
                catch (Exception ex)
                {
                    MyLogger.LogError("加载Geo文件时失败", ex);
                    MessageBox.Show(ex.Message);
                }
            }
        }
Example #2
0
        public string geotocit(string json)
        {
            //公共方法
            ResultInfo resultInfo = new ResultInfo();

            try
            {
                JObject obj         = (JObject)JsonConvert.DeserializeObject(json);
                string  lineCode    = Convert.ToString(obj["lineCode"]);
                string  lineName    = Convert.ToString(obj["lineName"]);
                string  train       = Convert.ToString(obj["train"]);
                int     kmInc       = Convert.ToInt32(String.IsNullOrEmpty(obj["kmInc"].ToString()) ? "0" : obj["kmInc"].ToString());   //增减里程
                int     runDir      = Convert.ToInt32(String.IsNullOrEmpty(obj["runDir"].ToString()) ? "0" : obj["runDir"].ToString()); //检测方向
                int     dir         = Convert.ToInt32(String.IsNullOrEmpty(obj["dir"].ToString()) ? "0" : obj["dir"].ToString());       //行别
                string  geoFile     = Convert.ToString(obj["geoFile"]);
                string  citFile     = Convert.ToString(obj["citFile"]);
                string  csvFilePath = getCsvFilePath(Convert.ToString(obj["csvFilePath"]), train);
                string  citFilePath = Path.GetFileNameWithoutExtension(geoFile) + ".cit";
                String  geoFileNew  = Path.Combine(Path.GetDirectoryName(geoFile), citFilePath);

                //sw.WriteLine("lineCode:" + lineCode);
                //sw.WriteLine("lineName:" + lineName);
                //sw.WriteLine("train:" + train);
                //sw.WriteLine("kmInc:" + kmInc);
                //sw.WriteLine("runDir:" + runDir);
                //sw.WriteLine("dir:" + dir);
                //sw.WriteLine("geoFile:" + geoFile);
                //sw.WriteLine("citFile:" + citFile);
                //sw.WriteLine("csvFilePath:" + csvFilePath);

                //这里获取头部部分的信息
                int      kmIncNew      = 0;
                int      runDirNew     = 0;
                int      dirNew        = 0;
                string[] sDHI          = Path.GetFileNameWithoutExtension(geoFile).Split('-');
                string   lineShortName = sDHI[0].ToUpper();
                gfprocess.QueryDataChannelInfoHead(geoFile);
                string mileageRange = gfprocess.GetExportDataMileageRange(geoFile);
                mileageRange = mileageRange.Substring(2);
                float startMileage = float.Parse(mileageRange.Substring(0, mileageRange.IndexOf("-")));  //开始里程
                float endMileage   = float.Parse(mileageRange.Substring(mileageRange.IndexOf("-") + 1)); //结束里程
                if (startMileage < endMileage)
                {
                    kmIncNew  = 0;
                    runDirNew = 0;
                }
                else
                {
                    kmIncNew  = 1;
                    runDirNew = 1;
                }
                //行别 1:上行,2:下行,3:单线
                if (lineShortName.Substring(3, 1).Equals("X"))
                {//下
                    dirNew = 1;
                }
                else if (lineShortName.Substring(3, 1).Equals("S"))
                {//上
                    dirNew = 2;
                }
                else
                {//单
                    dirNew = 3;
                }
                if (String.IsNullOrEmpty(citFile))
                {//判断citfile路径是否为空
                    citFile = geoFileNew;
                }
                if (kmInc == 0)
                {
                    kmInc = kmIncNew;
                }
                if (runDir == 0)
                {
                    runDir = runDirNew;
                }
                if (dir == 0)
                {
                    dir = dirNew;
                }

                string time = null;
                string date = null;
                try
                {
                    time = String.Format("{0}:{1}:{2}", sDHI[4].Substring(0, 2), sDHI[4].Substring(2, 2), sDHI[4].Substring(4, 2));//4:31
                }
                catch (Exception)
                {
                    time = null;
                }
                try
                {
                    date = String.Format("{0}/{1}/{2}", sDHI[3].Substring(2, 2), sDHI[3].Substring(0, 2), sDHI[3].Substring(4, 4));//2106/5/21
                }
                catch (Exception)
                {
                    date = null;
                }

                FileInformation citFileHeader = new FileInformation();
                citFileHeader = gfprocess.GetFileHeadInfo(lineCode, lineName, train, kmInc, runDir, dir);

                //sw.WriteLine("写入时间前date:" + date);
                //sw.WriteLine("写入时间前time:" + time);

                if (time != null)
                {
                    citFileHeader.sTime = time;
                }
                if (date != null)
                {
                    citFileHeader.sDate = date;
                }

                //sw.WriteLine("写入时间后的citFileHeader:" + citFileHeader.sDate);
                //sw.WriteLine("写入时间后citFileHeader.sTime:" + citFileHeader.sTime);

                gfprocess.InitChannelMapping(csvFilePath);//初始化端口
                bool result = gfprocess.ConvertData(geoFile, citFile, citFileHeader);
                if (result)
                {
                    resultInfo.flag = 1;
                    resultInfo.msg  = "";
                    resultInfo.data = citFile;
                }
                else
                {
                    resultInfo.flag = 0;
                    resultInfo.msg  = "";
                    resultInfo.data = "转化失败";
                }
            }
            catch (Exception ex)
            {
                resultInfo.flag = 0;
                resultInfo.msg  = ex.Message;
            }

            //sw.Close();

            return(JsonConvert.SerializeObject(resultInfo));
        }