From 54f0329172de152cf95644f6d427971542e9f42c Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期一, 13 七月 2020 18:36:55 +0800 Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071 --- src/Bro.UI.Config/MenuForms/FrmOperation.cs | 11 +++-- src/Bro.UI.Config/MainFrm.cs | 76 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 5 deletions(-) diff --git a/src/Bro.UI.Config/MainFrm.cs b/src/Bro.UI.Config/MainFrm.cs index b2d717e..03faa5b 100644 --- a/src/Bro.UI.Config/MainFrm.cs +++ b/src/Bro.UI.Config/MainFrm.cs @@ -270,7 +270,80 @@ //{ // wait.SpinOnce(); //} + + LoadProcess(); + LoadLayoutFromXML(m_deserializeDeviceRunFrm); + + LoadProcess(false); + } + + private List<string> LoadProcessCode() + { + var systemProcessCodes = ProcessFactory.GetProcessCodes(); + var avaiableProcessCodes = SettingHelper.GetProcessCodes(); + + List<string> pCodes = new List<string>(); + + if (avaiableProcessCodes.Count > 0) + { + pCodes = avaiableProcessCodes.Intersect(systemProcessCodes).ToList(); + } + else + { + pCodes = systemProcessCodes; + } + + return pCodes; + } + + private List<string> LoadProductionCode() + { + return SettingHelper.GetProductionCodes(); + } + + private void LoadProcess(bool isInitialProcess = true) + { + if (isInitialProcess) + { + _process = ProcessFactory.CreateStationProcess(LoadProcessCode()[0], LoadProductionCode()[0], out string msg); + + if (!string.IsNullOrWhiteSpace(msg)) + { + _process = null; + //LogAsync(DateTime.Now, "Process鍒涘缓澶辫触", $"{msg}"); + throw new ProcessException($"Process鍒涘缓澶辫触,{msg}", null, ExceptionLevel.Fatal); + } + + + _process.InitialProcess(""); + } + _process.OnLog -= OnProcessLogOutput; + _process.OnLog += OnProcessLogOutput; + + _process.OnAlarmUpdate -= Process_OnAlarmUpdate; + _process.OnAlarmUpdate += Process_OnAlarmUpdate; + + //CloseAllDeviceFrm(); + LoadDevices(); + + try + { + foreach (var dock in dockPanelMain.Contents) + { + MenuFrmBase m = dock as MenuFrmBase; + + m.DownloadProcess(_process); + } + } + catch (Exception ex) + { + } + } + + private void OnProcessLogOutput(DateTime dt, string prefix, string msg) + { + DockFrm_OnLogMsgOutput(new LogMsg(dt, prefix, msg)); } private void CloseAllDocuments() @@ -429,6 +502,9 @@ if (u == null) return; + if (_process.DeviceCollection.Any(d => d.Id == u.Device.Id)) + return; + u.DockPanel = null; u.Close(); }); diff --git a/src/Bro.UI.Config/MenuForms/FrmOperation.cs b/src/Bro.UI.Config/MenuForms/FrmOperation.cs index e1c128c..455f1aa 100644 --- a/src/Bro.UI.Config/MenuForms/FrmOperation.cs +++ b/src/Bro.UI.Config/MenuForms/FrmOperation.cs @@ -133,11 +133,11 @@ private void FrmOperation_Load(object sender, System.EventArgs e) { - if ((!plProcess.Visible) && (!plProduct.Visible) && _isFirstLoad) - { - LoadProcess(); - _isFirstLoad = false; - } + //if ((!plProcess.Visible) && (!plProduct.Visible) && _isFirstLoad) + //{ + // LoadProcess(); + // _isFirstLoad = false; + //} btnStart.Enabled = true; } @@ -205,6 +205,7 @@ } //Process.OnProcessStateChanged += Process_OnProcessStateChanged; + Process.OnLog -= Process_OnLog; Process.OnLog += Process_OnLog; _currentProcssCode = _processCode; -- Gitblit v1.8.0