| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- using DevExpress.XtraEditors;
- using DevExpress.XtraSpreadsheet.Import.Xls;
- using Ips.Library.Basic;
- using Ips.Library.DxpLib;
- using Ips.Library.Entity;
- using Ips.Library.LocLib;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- 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.Xdcs
- {
- public partial class XdcMainCtrl : DevExpress.XtraEditors.XtraUserControl
- {
- public XdcMainCtrl()
- {
- InitializeComponent();
- FileInButtonEdit.SetFileOpen(filter: FileFilterString.Dat);
- FsButtonEdit.SetUnitText("M");
- FileOutButtonEdit.SetFileSave(filter: FileFilterString.Dat);
- gvMain.UseDefaultSettings(new GridViewDefaultSetting()
- {
- Editable = true,
- ShowRowNum = true
- });
- }
- string vmfile = Path.Combine(SpsConst.VmFolder, "xdcparam.json");
- XdcViewModel vm;
- CancellationTokenSource cts;
- private void XdcMainCtrl_Load(object sender, EventArgs e)
- {
- if (File.Exists(vmfile))
- {
- vm = JsonSerializer.Deserialize<XdcViewModel>(File.ReadAllText(vmfile));
- }
- else
- {
- vm = new XdcViewModel();
- }
- bsMain.DataSource = vm;
- }
- private async void btnExcute_Click(object sender, EventArgs e)
- {
- if (ValidateModelState()) return;
- File.WriteAllText(vmfile, JsonSerializer.Serialize(vm));
- btnExcute.Enabled = false;
- btnStop.Enabled = true;
- cts?.Dispose();
- cts = new CancellationTokenSource();
- try
- {
- var dxitems = vm.SigList.Select(m => new XdcItem(m.Ffc, m.BandWidth, m.ModuType)).ToArray();
- var result = await XdcUtil.ExecuteAsync(vm.FileIn, vm.FileOut, vm.Fs, dxitems, vm.Th, token: cts.Token);
- if (result.ExitCode == 0)
- {
- MsgHelper.ShowMsg($"对消处理完成,耗时:{result.RunTime.TotalSeconds:F2}秒");
- }
- //await Task.Delay(3000);
- }
- catch (Exception ex)
- {
- ex.HandleCancelEx(ex =>
- {
- MsgHelper.ShowError(ex.Message, ex);
- });
- }
- finally
- {
- btnExcute.Enabled = true;
- btnStop.Enabled = false;
- }
- }
- private void btnStop_Click(object sender, EventArgs e)
- {
- cts?.Cancel();
- }
- private void btnSaveConfig_Click(object sender, EventArgs e)
- {
- string fileName = ToolDialog.SaveFile($"对消参数{DateTime.Now:yyyyMMddHHmmss}.json", "保存对消参数", filter: FileFilterString.Json);
- if (fileName.IsNullOrWhitespace()) return;
- JsonSerializerOptions jsonOpt = new JsonSerializerOptions()
- {
- WriteIndented = true
- };
- string content = JsonSerializer.Serialize(vm, jsonOpt);
- File.WriteAllText(fileName, content);
- }
- private void btnImportConfig_Click(object sender, EventArgs e)
- {
- string fileName = ToolDialog.OpenFile("", "导入对消参数", filter: FileFilterString.Json);
- if (fileName.IsNullOrWhitespace()) return;
- try
- {
- string content = File.ReadAllText(fileName);
- vm = JsonSerializer.Deserialize<XdcViewModel>(content);
- bsMain.DataSource = vm;
- }
- catch (Exception ex)
- {
- MsgHelper.ShowError(ex.Message, ex, "导入配置参数出错");
- }
- }
- private bool ValidateModelState()
- {
- dxError.ClearErrors();
- if (vm.FileIn.IsNullOrWhitespace() || !File.Exists(vm.FileIn))
- {
- dxError.SetError(FileInButtonEdit, "输入文件不存在!");
- }
- if (vm.Fs <= 0)
- {
- dxError.SetError(FsButtonEdit, "请输入正确的采样率!");
- }
- if (vm.FileOut.IsNullOrWhitespace())
- {
- dxError.SetError(FileOutButtonEdit, "请选择输出文件!");
- }
- if (vm.SigList.IsNullOrEmpty())
- {
- MsgHelper.ShowError("信号列表不能为空");
- return true;
- }
- if (vm.SigList.Any(m => m.BandWidth == 0 || m.ModuType == ModuType.None))
- {
- MsgHelper.ShowError("信号带宽不能为空,且调制方式不能为未知!");
- return true;
- }
- return dxError.HasErrors;
- }
- }
- }
|