领胜LDS 键盘AOI检测项目
xcd
2020-07-06 a6f2ba736d1ac63d8fe33c71dfc3a578b1702b95
src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
@@ -49,7 +49,7 @@
        public List<IOItem> MonitorValues { get; set; } = new List<IOItem>();
        public abstract void WriteOutput(short cardNum, short index, IOValue value);
        public abstract void WriteOutput(short index, IOValue value);
    }
    public class MotionCardInitialConfigBase : InitialConfigBase, IMonitorConfig
@@ -147,7 +147,8 @@
        }
    }
    public class MotionCardOperationSet : IComplexDisplay
    [Device("MotionOperationSet", "运动操作配置基类", EnumHelper.DeviceAttributeType.OperationConfig)]
    public class MotionCardOperationSet :  IComplexDisplay
    {
        [Category("IO操作配置")]
        [DisplayName("IO预检查定义集合")]
@@ -177,16 +178,19 @@
        [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>();
        [Category("板卡运动配置")]
        [Description("超时设置,单位:ms")]
        [DisplayName("运动超时")]
        public int MovingTimeout { get; set; } = 0;
        [TypeConverter(typeof(ComplexObjectConvert))]
        [Editor(typeof(PropertyObjectEditor),typeof(UITypeEditor))]
        public MotionOperationCollection MotionOperationCollection { get; set; } = new MotionOperationCollection();
        public string GetDisplayText()
        {
@@ -220,19 +224,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
    //{