| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | 
							- using DevExpress.XtraEditors;
 
- using Ips.Library.Basic;
 
- using Ips.Library.DxpLib;
 
- using Ips.Sim.Interops;
 
- 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.SignalMerges
 
- {
 
-     public partial class SignalMergeMainCtrl : DevExpress.XtraEditors.XtraUserControl
 
-     {
 
-         public SignalMergeMainCtrl()
 
-         {
 
-             InitializeComponent();
 
-             InFsButtonEdit.SetUnitText("M");
 
-             OutFsButtonEdit.SetUnitText("M");
 
-             gvMain.UseDefaultSettings(new GridViewDefaultSetting()
 
-             {
 
-                 Editable = true,
 
-                 MultiSelect = true,
 
-                 DefaultEmptyDisplayText = false
 
-             });
 
-         }
 
-         string vmfile = Path.Combine(SpsConst.VmFolder, "signalmerge.json");
 
-         SignalMergeViewModel vm;
 
-         private void SignalMergeMainCtrl_Load(object sender, EventArgs e)
 
-         {
 
-             if (File.Exists(vmfile))
 
-             {
 
-                 vm = JsonSerializer.Deserialize<SignalMergeViewModel>(File.ReadAllText(vmfile));
 
-             }
 
-             else
 
-             {
 
-                 vm = new SignalMergeViewModel();
 
-             }
 
-             bsMain.DataSource = vm;
 
-         }
 
-         private void OutFileButtonEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 
-         {
 
-             string fileName = ToolDialog.SaveFile(OutFileButtonEdit.Text, "输出文件");
 
-             OutFileButtonEdit.EditValue = fileName;
 
-         }
 
-         private void inFileEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 
-         {
 
-             string infile = ToolDialog.OpenFile("", "输入文件");
 
-             gvMain.ActiveEditor.EditValue = infile;
 
-         }
 
-         private void btnSigMerge_Click(object sender, EventArgs e)
 
-         {
 
-             if (!ValidateInput()) return;
 
-             string vmjson = JsonSerializer.Serialize(vm, new JsonSerializerOptions() { WriteIndented = true });
 
-             File.WriteAllText(vmfile, vmjson);
 
-             var mergeItems = vm.MergeItems.Where(m => m.FileName.IsNotNullOrWhitespace()).ToList();
 
-             var infs = vm.InFs.E6l();
 
-             var outfs = vm.OutFs.E6l();
 
-             var outfile = vm.OutFile;
 
-             string outdir = Path.GetDirectoryName(outfile);
 
-             DirectoryUtil.CreateIfNotExists(outdir);
 
-             int res = -1;
 
-             if (mergeItems.Count == 2)
 
-             {
 
-                 var item1 = mergeItems[0];
 
-                 var item2 = mergeItems[1];
 
-                 res = SignalEmulationApi.mergeSignals(infs, item1.FileName, item1.Ffc.E6l(), item2.FileName, item2.Ffc.E6l(), outfs, outfile);
 
-             }
 
-             else if (mergeItems.Count == 3)
 
-             {
 
-                 var item1 = mergeItems[0];
 
-                 var item2 = mergeItems[1];
 
-                 var item3 = mergeItems[2];
 
-                 res = SignalEmulationApi.mergeSignalsEx_M(infs, item1.FileName, item1.Ffc.E6l(), item2.FileName, item2.Ffc.E6l(), item3.FileName, item3.Ffc.E6l(), outfs, outfile);
 
-             }
 
-             else
 
-             {
 
-                 MsgHelper.ShowMsg("支持两个输入文件或三个输入文件");
 
-             }
 
-             if (res != 0)
 
-             {
 
-                 MsgHelper.ShowError($"合并失败,错误代码:{res}");
 
-             }
 
-             else
 
-             {
 
-                 bool openFolder = MsgHelper.ShowConfirm("合并成功,是否打开目录!");
 
-                 if (openFolder)
 
-                 {
 
-                     Process.Start("explorer", outdir);
 
-                 }
 
-             }
 
-         }
 
-         private bool ValidateInput()
 
-         {
 
-             dxError.ClearErrors();
 
-             if (vm.InFs == 0) dxError.SetError(InFsButtonEdit, "输入采样率不能为空!");
 
-             if (vm.OutFs == 0) dxError.SetError(OutFsButtonEdit, "输入采样率不能空!");
 
-             if (vm.OutFile.IsNullOrWhitespace()) dxError.SetError(OutFileButtonEdit, "输出文件不能空!");
 
-             if (!vm.MergeItems.Where(m => m.FileName.IsNotNullOrWhitespace()).Any()) dxError.SetError(grdMain, "必须包含输入文件信息!");
 
-             return dxError.HasErrors == false;
 
-         }
 
-     }
 
- }
 
 
  |