领胜LDS 键盘AOI检测项目
wells.liu
2020-07-13 54f0329172de152cf95644f6d427971542e9f42c
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();
                });