| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- using DevExpress.XtraEditors;
- using Ips.Ddc;
- using Ips.Library.Basic;
- using Ips.Library.DxpLib;
- using Ips.Library.Entity;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Text.Json;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Ips.Sps.Tools.SignalDdces
- {
- public partial class SignalDdcMainCtrl : DevExpress.XtraEditors.XtraUserControl
- {
- public SignalDdcMainCtrl()
- {
- InitializeComponent();
- FsButtonEdit.SetUnitText("M");
- gvMain.UseDefaultSettings(new GridViewDefaultSetting()
- {
- Editable = true,
- DefaultEmptyDisplayText = false,
- ShowRowNum = true
- });
- }
- string vmfile = Path.Combine(SpsConst.VmFolder, "signalddc.json");
- SignalDdcViewModel vm;
- private void SignalDdcMainCtrl_Load(object sender, EventArgs e)
- {
- if (File.Exists(vmfile))
- {
- vm = JsonSerializer.Deserialize<SignalDdcViewModel>(File.ReadAllText(vmfile));
- }
- else
- {
- vm = new SignalDdcViewModel();
- }
- bsMain.DataSource = vm;
- }
- private void FileInButtonEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
- {
- FileInButtonEdit.EditValue = ToolDialog.OpenFile("", "选择输入文件");
- }
- private void OutDirButtonEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
- {
- OutDirButtonEdit.EditValue = ToolDialog.OpenFolder("选择输出路径");
- }
- private void btnDdc_Click(object sender, EventArgs e)
- {
- string jsonText = JsonSerializer.Serialize(vm, new JsonSerializerOptions() { WriteIndented = true });
- File.WriteAllText(vmfile, jsonText);
- if (ValidateParams() == false) return;
- btnDdc.Enabled = false;
- var fileIn = vm.FileIn;
- var fs = vm.Fs.E6l();
- var outdir = vm.OutDir;
- var ddcItems = vm.DdcItems.Where(m => m.Mutil > 1)
- .Select(m => new DdcSigItem(m.Ffc.E6l(), m.Mutil))
- .ToList();
- Task.Run(() =>
- {
- var res = DdcUtil.ExecAsync(fileIn, fs, outdir, ddcItems, vm.Real, vm.Gpu).Result;
- return res;
- }).ContinueWith(t =>
- {
- //this.Invoke(() =>
- //{
- btnDdc.Enabled = true;
- try
- {
- var res = t.Result as ExeResult<string>;
- if (res == null) return;
- if (res.ExitCode == 0)
- {
- Process.Start("explorer", outdir);
- }
- else
- {
- MsgHelper.ShowError("信道化异常,错误消息:" + res.ExitMsg);
- }
- }
- catch (Exception ex)
- {
- this.Invoke(() =>
- {
- MsgHelper.ShowError("信道化出错,错误消息:" + ex.Message);
- });
- }
- // });
- }, TaskScheduler.FromCurrentSynchronizationContext());
- }
- private bool ValidateParams()
- {
- dxError.ClearErrors();
- if (vm.FileIn.IsNullOrWhitespace() || !File.Exists(vm.FileIn))
- dxError.SetError(FileInButtonEdit, "输入文件不存在");
- if (vm.OutDir.IsNullOrWhitespace() || !Directory.Exists(vm.OutDir))
- dxError.SetError(OutDirButtonEdit, "输出目录不存在");
- if (vm.Fs <= 1 * 1e-6)
- dxError.SetError(FsButtonEdit, "采样率必须大于0");
- var ddcitems = vm.DdcItems.Where(m => m.Mutil < 2).ToList();
- if (ddcitems.IsNullOrEmpty())
- dxError.SetError(grdMain, "信号列表不能为空");
- return !dxError.HasErrors;
- }
- }
- }
|