From dac3e12cc046aabeefd828b3f03794fe2bc0ba06 Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期四, 09 七月 2020 09:54:26 +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, 88 insertions(+), 13 deletions(-) diff --git a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs index e42e318..a6d2849 100644 --- a/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs +++ b/src/Bro.Common.Device/DeviceBase/MotionCardBase.cs @@ -26,6 +26,50 @@ public abstract ResponseMessage MoveToPoint(IOperationConfig opConfig); public abstract void ResetAlarm(); public abstract ResponseMessage Run(IOperationConfig config); + /// <summary> + /// 娓呴櫎鐘舵�� + /// </summary> + /// <param name="startAxisIndex">璧峰杞村彿</param> + /// <param name="count">鏁伴噺</param> + /// <returns></returns> + public abstract bool ClearStatus(int startAxisIndex, int count); + + /// <summary> + /// 璇诲彇杞寸姸鎬� + /// </summary> + /// <param name="axisNum">杞村彿</param> + /// <returns></returns> + public abstract int GetAxisStatus(int axisNum); + + /// <summary> + /// 浣嶇疆娓呴浂 + /// </summary> + /// <param name="startAxisIndex">璧峰杞村彿</param> + /// <param name="count">鏁伴噺</param> + /// <returns></returns> + public abstract bool PositionReset(int startAxisIndex, int count); + + public abstract bool AllAxisOn(); + + public abstract bool AllAxisOff(); + + public abstract Task<bool> AxisOnAsync(int axisNum); + + public abstract Task<bool> AxisOffAsync(int axisNum); + + /// <summary> + /// 鍗曚釜杞� 杩愬姩(鐐瑰埌鐐� jog 鍥為浂...锛� + /// </summary> + /// <param name="optionPara">杩愬姩鍙傛暟瀵硅薄</param> + public abstract Task<bool> SingleAxisMoving(MovingOption optionPara); + + /// <summary> + /// 鏌愪釜杞磋繍鍔ㄥ仠姝� + /// </summary> + /// <param name="axisNum">杞村彿</param> + /// <param name="option">0琛ㄧず骞虫粦鍋滄锛�1琛ㄧず绱ф�ュ仠姝�</param> + /// <returns></returns> + public abstract Task<bool> MoveStop(int axisNum, int option); public virtual void ExcuteMonitorInvoke(DateTime dateTime, string invokeDevice, IDevice device, IMonitorSet monitorSet) { @@ -47,9 +91,17 @@ } } + /// <summary> + /// IO鐨勭洃鍚�� + /// </summary> public List<IOItem> MonitorValues { get; set; } = new List<IOItem>(); - public abstract void WriteOutput(short cardNum, short index, IOValue value); + /// <summary> + /// 杞寸殑杩愬姩鐘舵�佸�� + /// </summary> + public List<AxisMovingStatus> AxisMovingOptionValues { get; set; } = new List<AxisMovingStatus>(); + + public abstract void WriteOutput(short index, IOValue value); } public class MotionCardInitialConfigBase : InitialConfigBase, IMonitorConfig @@ -138,7 +190,7 @@ [Category("鏉垮崱鎿嶄綔")] [Description("鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎锛屼緷娆℃墽琛�")] [TypeConverter(typeof(CollectionCountConvert))] - [Editor(typeof(ComplexCollectionEditor<MotionCardOperationConfigBase>), typeof(UITypeEditor))] + [Editor(typeof(ComplexCollectionEditor<MotionCardOperationSet>), typeof(UITypeEditor))] public List<MotionCardOperationSet> OperationCollection { get; set; } = new List<MotionCardOperationSet>(); public string GetDisplayText() @@ -147,6 +199,7 @@ } } + [Device("MotionOperationSet", "杩愬姩鎿嶄綔閰嶇疆鍩虹被", EnumHelper.DeviceAttributeType.OperationConfig)] public class MotionCardOperationSet : IComplexDisplay { [Category("IO鎿嶄綔閰嶇疆")] @@ -155,6 +208,7 @@ [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))] public List<IORefrenceItem> PreCheckIOCollection { get; set; } = new List<IORefrenceItem>(); + [Category("IO鎿嶄綔閰嶇疆")] [Description("瓒呮椂璁剧疆锛屽崟浣嶏細ms")] [DisplayName("IO棰勬鏌ヨ秴鏃�")] @@ -176,12 +230,18 @@ [DisplayName("IO纭瓒呮椂")] public int IOConfirmTimeout { get; set; } = 0; + //[Category("鏉垮崱杩愬姩閰嶇疆")] + //[DisplayName("杩愬姩閰嶇疆闆嗗悎")] + //[Description("MovingOps锛氳繍鍔ㄩ厤缃泦鍚�")] + //[TypeConverter(typeof(CollectionCountConvert))] + //[Editor(typeof(ComplexCollectionEditor<MovingOption>), typeof(UITypeEditor))] + //public List<MovingOption> MovingOps { get; set; } = new List<MovingOption>(); [Category("鏉垮崱杩愬姩閰嶇疆")] [DisplayName("杩愬姩閰嶇疆闆嗗悎")] [Description("MovingOps锛氳繍鍔ㄩ厤缃泦鍚�")] - [TypeConverter(typeof(CollectionCountConvert))] - [Editor(typeof(ComplexCollectionEditor<MovingOption>), typeof(UITypeEditor))] - public List<MovingOption> MovingOps { get; set; } = new List<MovingOption>(); + [TypeConverter(typeof(ComplexObjectConvert))] + [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))] + public MotionOperationCollection MotionOperationCollection { get; set; } = new MotionOperationCollection(); public string GetDisplayText() @@ -216,19 +276,34 @@ } string moving = ""; - MovingOps.ForEach(i => - { - moving += i.GetDisplayText() + " "; - }); - if (moving != "") - { - moving = " 杩愬姩锛�" + moving; - } + //MovingOps.ForEach(i => + //{ + // moving += i.GetDisplayText() + " "; + //}); + //if (moving != "") + //{ + // moving = " 杩愬姩锛�" + moving; + //} return (preCheck + output + confirm + moving).Trim(); } } + public class MotionOperationCollection : OperationConfigBase, IComplexDisplay + { + [Category("杩愬姩閰嶇疆")] + [DisplayName("杩愬姩閰嶇疆闆嗗悎")] + [Description("MovingOps锛氳繍鍔ㄩ厤缃泦鍚�")] + [TypeConverter(typeof(CollectionCountConvert))] + [Editor(typeof(ComplexCollectionEditor<MovingOption>), typeof(UITypeEditor))] + public List<MovingOption> MovingOps { get; set; } = new List<MovingOption>(); + + public string GetDisplayText() + { + return $"{string.Join(" ", MovingOps.Select(u => u.GetDisplayText()))}"; + } + } + //[Device("MotionCardOperationConfigCollection", "鏉垮崱鎿嶄綔閰嶇疆鍩虹被闆嗗悎", EnumHelper.DeviceAttributeType.OperationConfig)] //public class MotionCardOperationConfigCollection : OperationConfigBase //{ -- Gitblit v1.8.0