From 642cd31f0d1586a2a5ca6f9a3b3364725f4f1ecd Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期六, 04 七月 2020 13:44:24 +0800 Subject: [PATCH] 暂存 --- src/Bro.Process/ProcessControl.cs | 68 ++++++++++++++++++++++++--------- 1 files changed, 49 insertions(+), 19 deletions(-) diff --git a/src/Bro.Process/ProcessControl.cs b/src/Bro.Process/ProcessControl.cs index 1c146c5..29d3170 100644 --- a/src/Bro.Process/ProcessControl.cs +++ b/src/Bro.Process/ProcessControl.cs @@ -32,8 +32,8 @@ #region AutoFac娉ㄥ唽 GlobalVar.Builder.RegisterInstance(this).As<IProcess>().ExternallyOwned(); GlobalVar.Builder.RegisterInstance(IConfig).As<IProcessConfig>().ExternallyOwned(); - GlobalVar.Builder.RegisterInstance(DeviceCollection); - GlobalVar.Builder.RegisterInstance(ProcessMethodCollection); + GlobalVar.Builder.RegisterInstance(DeviceCollection).ExternallyOwned(); + GlobalVar.Builder.RegisterInstance(ProcessMethodCollection).ExternallyOwned(); //if (isBuild) //{ @@ -342,6 +342,31 @@ } } + public void CreateNewConfig(IProcessConfig config, string newProductionCode) + { + try + { + if (config == null) + throw new ProcessException("淇濆瓨鐨勯厤缃俊鎭笉鑳戒负绌�"); + ProductionCode = newProductionCode; + //鐢熸垚config.json + string newConfig = JsonConvert.SerializeObject(config, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }); + using (StreamWriter writer = new StreamWriter(_configPath, false, System.Text.Encoding.UTF8)) + { + writer.Write(newConfig); + writer.Flush(); + writer.Close(); + } + + //娣诲姞鍒癝etting.json + SettingHelper.AddNewProductionCode(ProductionCode); + } + catch (Exception ex) + { + throw new ProcessException(ex.Message, null); + } + } + private void SaveBackupConfig() { string backPath = Path.GetDirectoryName(_configPath); @@ -398,7 +423,7 @@ #endregion #region Halcon绠楀瓙璁剧疆 - private void InitialHalconTool() + protected virtual void InitialHalconTool() { foreach (HDevEngineTool tool in _halconToolDict.Values) { @@ -413,20 +438,25 @@ { toolPath.GetHalconToolPathList().ForEach(path => { - if (!string.IsNullOrWhiteSpace(path)) - { - string directoryPath = Path.GetDirectoryName(path); - string fileName = Path.GetFileNameWithoutExtension(path); - - HDevEngineTool tool = new HDevEngineTool(directoryPath); - tool.LoadProcedure(fileName); - - //浣跨敤鈥渱鈥濅綔涓洪棿闅旂 - _halconToolDict[monitorSet.Id + "|" + path] = tool; - } + LoadHalconTool(path, monitorSet.Id); }); } }); + } + + protected void LoadHalconTool(string algorithemPath, string prefix) + { + if (!string.IsNullOrWhiteSpace(algorithemPath)) + { + string directoryPath = Path.GetDirectoryName(algorithemPath); + string fileName = Path.GetFileNameWithoutExtension(algorithemPath); + + HDevEngineTool tool = new HDevEngineTool(directoryPath); + tool.LoadProcedure(fileName); + + //浣跨敤鈥渱鈥濅綔涓洪棿闅旂 + _halconToolDict[prefix + "|" + algorithemPath] = tool; + } } /// <summary> @@ -479,7 +509,7 @@ #endregion #region IMonitor鐩戝惉 - protected virtual void OnMonitorInvoke(DateTime dt, string deviceId, IDevice sourceDevice, MonitorSet monitorSet) + protected virtual void OnMonitorInvoke(DateTime dt, string deviceId, IDevice sourceDevice, IMonitorSet monitorSet) { string methodCode = monitorSet.MethodCode; @@ -576,7 +606,7 @@ #region 鍥惧儚澶勭悊 protected HImage CollectHImage(CameraBase camera, IOperationConfig opConfig, out string imgSetId, [CallerMemberName]string methodCode = "") { - ImageSet set = null; + IImageSet set = null; if (IConfig.IsImageOffline) { @@ -623,7 +653,7 @@ TimeRecordCSV(DateTime.Now, camera.Name, methodCode + "閲囧浘", (int)sw.ElapsedMilliseconds); } - imgSetId = set.Id; + imgSetId = set?.Id; return set.HImage; } @@ -637,9 +667,9 @@ #endregion #region 鎶ヨ鍜孌ownTime - ObservableCollection<WarningSet> _warningRemains = new ObservableCollection<WarningSet>(); + ObservableCollection<IWarningSet> _warningRemains = new ObservableCollection<IWarningSet>(); - protected virtual void OnMonitorAlarm(DateTime dt, IDevice device, WarningSet warning) + protected virtual void OnMonitorAlarm(DateTime dt, IDevice device, IWarningSet warning) { if (warning.CurrentStatus) { -- Gitblit v1.8.0