| | |
| | | //}); |
| | | |
| | | m_deserializeMenuFrm = new DeserializeDockContent(GetMenuFromPersistString); |
| | | LoadLayoutFromXML(m_deserializeMenuFrm); |
| | | |
| | | m_deserializeDeviceRunFrm = new DeserializeDockContent(GetAllFormPersistString); |
| | | _allMenuLoadDoneHandle.Set(); |
| | | |
| | | //LoadLayoutFromXML(m_deserializeMenuFrm); |
| | | //_allMenuLoadDoneHandle.Set(); |
| | | |
| | | Text = SettingHelper.GetProgramDescription(); |
| | | string iconPath = SettingHelper.GetProgramIcon(); |
| | |
| | | CloseAllDeviceFrm(); |
| | | LoadDevices(); |
| | | |
| | | foreach (var dock in dockPanelMain.Contents) |
| | | try |
| | | { |
| | | MenuFrmBase m = dock as MenuFrmBase; |
| | | |
| | | if (m != null && m.Id != frmId) |
| | | foreach (var dock in dockPanelMain.Contents) |
| | | { |
| | | m.DownloadProcess(process); |
| | | MenuFrmBase m = dock as MenuFrmBase; |
| | | |
| | | if (m != null && m.Id != frmId) |
| | | { |
| | | m.DownloadProcess(process); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | }); |
| | | } |
| | |
| | | |
| | | private void MainFrm_Load(object sender, EventArgs e) |
| | | { |
| | | LoadLayoutFromXML(m_deserializeMenuFrm); |
| | | _allMenuLoadDoneHandle.Set(); |
| | | |
| | | AdvancedPwdFrm.OnLoginOK = OnLoginOK; |
| | | |
| | | SpinWait wait = new SpinWait(); |
| | | while (_process == null) |
| | | { |
| | | wait.SpinOnce(); |
| | | } |
| | | //SpinWait wait = new SpinWait(); |
| | | //while (_process == null) |
| | | //{ |
| | | // 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); |
| | | |
| | | if (dock is MenuFrmBase menuFrm) |
| | | { |
| | | menuFrm.DownloadProcess(_process); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | |
| | | private void OnProcessLogOutput(DateTime dt, string prefix, string msg) |
| | | { |
| | | DockFrm_OnLogMsgOutput(new LogMsg(dt, prefix, msg)); |
| | | } |
| | | |
| | | private void CloseAllDocuments() |
| | |
| | | |
| | | private void MainFrm_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | | try |
| | | { |
| | | _process?.Close(); |
| | | } |
| | | catch { } |
| | | CloseAllDocuments(); |
| | | } |
| | | |
| | |
| | | |
| | | private void OnLoginOK(bool isLogin) |
| | | { |
| | | IsLogin = true; |
| | | IsLogin = isLogin; |
| | | } |
| | | #endregion |
| | | |
| | |
| | | }).ToList().ForEach(u => |
| | | { |
| | | if (u == null) |
| | | return; |
| | | |
| | | if (_process.DeviceCollection.Any(d => d.Id == u.Device.Id)) |
| | | return; |
| | | |
| | | u.DockPanel = null; |
| | |
| | | |
| | | dockFrm.Text = desc[2]; |
| | | |
| | | if (_process != null) |
| | | { |
| | | dockFrm.DownloadProcess(_process); |
| | | } |
| | | //if (_process != null) |
| | | //{ |
| | | // dockFrm.DownloadProcess(_process); |
| | | //} |
| | | |
| | | dockFrm.SetLoginStatus(IsLogin); |
| | | |
| | |
| | | |
| | | dockFrm.Text = desc[2]; |
| | | |
| | | if (_process != null) |
| | | { |
| | | dockFrm.DownloadProcess(_process); |
| | | } |
| | | //if (_process != null) |
| | | //{ |
| | | // dockFrm.DownloadProcess(_process); |
| | | //} |
| | | |
| | | dockFrm.SetLoginStatus(IsLogin); |
| | | |