From df455987cd863eb5531c34533d63ed8f4f15230c Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期四, 02 七月 2020 20:54:58 +0800 Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071 --- src/Bro.Common.Device/DeviceBase/MotionCardBase.cs | 101 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 92 insertions(+), 9 deletions(-) diff --git a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs index 44eee94..dce4dcd 100644 --- a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs +++ b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs @@ -25,6 +25,24 @@ public abstract ResponseMessage MoveToPoint(IOperationConfig opConfig); public abstract void ResetAlarm(); public abstract ResponseMessage Run(IOperationConfig config); + + public void ExcuteMonitorInvok(DateTime dateTime, string invokeDevice, IDevice device, IMonitorSet monitorSet) + { + OnMonitorInvoke?.BeginInvoke(dateTime, invokeDevice, device, monitorSet, null, null); + } + + public void ExcuteMonitorAlarm(DateTime dateTime, IDevice device, IWarningSet warningSet) + { + OnMonitorAlarm?.BeginInvoke(dateTime, device, warningSet, null, null); + } + + public virtual MotionCardInitialConfigBase IConfig + { + get + { + return InitialConfig as MotionCardInitialConfigBase; + } + } } public class MotionCardInitialConfigBase : InitialConfigBase, IMonitorConfig @@ -111,17 +129,20 @@ public class MotionCardOperationConfigBase : OperationConfigBase, IComplexDisplay { [Category("IO鎿嶄綔閰嶇疆")] + [DisplayName("IO棰勬鏌ュ畾涔夐泦鍚�")] [Description("IO棰勬鏌ュ畾涔夐泦鍚�")] [TypeConverter(typeof(CollectionCountConvert))] - [Editor(typeof(IORefrenceItemCollectionEditor),typeof(UITypeEditor))] + [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))] public List<IORefrenceItem> PreCheckIOCollection { get; set; } = new List<IORefrenceItem>(); [Category("IO鎿嶄綔閰嶇疆")] + [DisplayName("IO杈撳嚭瀹氫箟闆嗗悎")] [Description("IO杈撳嚭瀹氫箟闆嗗悎")] [TypeConverter(typeof(CollectionCountConvert))] public List<IORefrenceItem> IOOutputCollection { get; set; } = new List<IORefrenceItem>(); [Category("IO鎿嶄綔閰嶇疆")] + [DisplayName("IO纭瀹氫箟闆嗗悎")] [Description("IO纭瀹氫箟闆嗗悎")] [TypeConverter(typeof(CollectionCountConvert))] public List<IORefrenceItem> IOConfirmCollection { get; set; } = new List<IORefrenceItem>(); @@ -135,7 +156,46 @@ public string GetDisplayText() { - throw new NotImplementedException(); + string preCheck = ""; + PreCheckIOCollection.ForEach(i => + { + preCheck += i.GetDisplayText() + " "; + }); + if (preCheck != "") + { + preCheck = " 棰勬锛�" + preCheck; + } + + string output = ""; + IOOutputCollection.ForEach(i => + { + output += i.GetDisplayText() + " "; + }); + if (output != "") + { + output = " 杈撳嚭锛�" + output; + } + string confirm = ""; + IOConfirmCollection.ForEach(i => + { + confirm += i.GetDisplayText() + " "; + }); + if (confirm != "") + { + confirm = " 纭锛�" + confirm; + } + + string moving = ""; + MovingOps.ForEach(i => + { + moving += i.GetDisplayText() + " "; + }); + if (moving != "") + { + moving = " 杩愬姩锛�" + moving; + } + + return (preCheck + output + confirm + moving).Trim(); } } @@ -159,10 +219,31 @@ return form; } - //protected override object CreateInstance(Type itemType) - //{ - // return base.CreateInstance(itemType); - //} + protected override object CreateInstance(Type itemType) + { + if (itemType == typeof(IORefrenceItem)) + { + IORefrenceItem item = new IORefrenceItem(); + if ((this.Context.Instance is IOperationConfig opConfig) && !string.IsNullOrWhiteSpace(opConfig.DeviceId)) + { + using (var scope = GlobalVar.Container.BeginLifetimeScope()) + { + List<IDevice> deviceList = scope.Resolve<List<IDevice>>(); + + var device = deviceList.FirstOrDefault(u => u.Id == opConfig.DeviceId); + + if (device != null && (device is MotionCardBase motionCard)) + { + item.IOItemSource = (motionCard.InitialConfig as MotionCardInitialConfigBase).IODefinitionCollection; + } + } + } + + return item; + } + + return base.CreateInstance(itemType); + } //protected override object[] GetItems(object editValue) //{ @@ -196,9 +277,12 @@ if (device is MotionCardBase motionCard) { - if (value is IORefrenceItem item) + if (value is List<IORefrenceItem> items) { - item.IOItemSource = (motionCard.InitialConfig as MotionCardInitialConfigBase).IODefinitionCollection; + items.ForEach(item => + { + item.IOItemSource = (motionCard.InitialConfig as MotionCardInitialConfigBase).IODefinitionCollection; + }); } } } @@ -244,6 +328,5 @@ // base.DestroyInstance(instance);//閲嶈锛佽嚜鍔ㄥ垹闄ょ粍浠剁殑璁捐鏃朵唬鐮侊紒 //} } - } -- Gitblit v1.8.0