领胜LDS 键盘AOI检测项目
wells.liu
2020-07-10 0ec7f2e32c8c7ef62ab71c0a2f5bd015aef7d7fe
src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
@@ -102,6 +102,18 @@
        public List<AxisMovingStatus> AxisMovingOptionValues { get; set; } = new List<AxisMovingStatus>();
        public abstract void WriteOutput(short index, IOValue value);
        #region ImmediatePause
        /// <summary>
        /// 启动立即暂停
        /// </summary>
        public abstract void SetImmediatePause();
        /// <summary>
        /// 恢复立即暂停
        /// </summary>
        public abstract void ResetImmediatePause();
        #endregion
    }
    public class MotionCardInitialConfigBase : InitialConfigBase, IMonitorConfig
@@ -237,35 +249,38 @@
    [Device("MotionOperationSet", "运动操作配置基类", EnumHelper.DeviceAttributeType.OperationConfig)]
    public class MotionCardOperationSet : IComplexDisplay
    {
        [Category("IO操作配置")]
        [DisplayName("IO预检查定义集合")]
        [Category("1.IO操作配置")]
        [DisplayName("1.IO预检查")]
        [Description("IO预检查定义集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
        public List<IORefrenceItem> PreCheckIOCollection { get; set; } = new List<IORefrenceItem>();
        [Category("IO操作配置")]
        [Category("1.IO操作配置")]
        [Description("超时设置,单位:ms")]
        [DisplayName("IO预检查超时")]
        [DisplayName("2.IO预检查超时")]
        public int PreCheckIOTimeout { get; set; } = 0;
        [Category("IO操作配置")]
        [DisplayName("IO输出定义集合")]
        [Category("1.IO操作配置")]
        [DisplayName("3.IO输出")]
        [Description("IO输出定义集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
        public List<IORefrenceItem> IOOutputCollection { get; set; } = new List<IORefrenceItem>();
        [Category("IO操作配置")]
        [DisplayName("IO确认定义集合")]
        [Category("1.IO操作配置")]
        [DisplayName("4.IO输出确认")]
        [Description("IO确认定义集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
        public List<IORefrenceItem> IOConfirmCollection { get; set; } = new List<IORefrenceItem>();
        [Category("IO操作配置")]
        [Category("1.IO操作配置")]
        [Description("超时设置,单位:ms")]
        [DisplayName("IO确认超时")]
        [DisplayName("5.IO输出确认超时")]
        public int IOConfirmTimeout { get; set; } = 0;
        [Category("板卡运动配置")]
        [Category("2.板卡运动配置")]
        [DisplayName("运动配置集合")]
        [Description("MovingOps:运动配置集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
@@ -378,13 +393,13 @@
            if (itemType == typeof(IORefrenceItem))
            {
                IORefrenceItem item = new IORefrenceItem();
                if ((this.Context.Instance is IOperationConfig opConfig) && !string.IsNullOrWhiteSpace(opConfig.DeviceId))
                if (this.Context.Instance is MotionCardOperationSet set)
                {
                    using (var scope = GlobalVar.Container.BeginLifetimeScope())
                    {
                        List<IDevice> deviceList = scope.Resolve<List<IDevice>>();
                        var device = deviceList.FirstOrDefault(u => u.Id == opConfig.DeviceId);
                        var device = deviceList.FirstOrDefault(u => u.Id == set.MotionCardId);
                        if (device != null && (device is MotionCardBase motionCard))
                        {
@@ -411,9 +426,9 @@
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (context.Instance is IOperationConfig opConfig)
            if (context.Instance is MotionCardOperationSet set)
            {
                if (string.IsNullOrWhiteSpace(opConfig.DeviceId))
                if (string.IsNullOrWhiteSpace(set.MotionCardId))
                {
                    return base.EditValue(context, provider, value);
                }
@@ -422,7 +437,7 @@
                {
                    List<IDevice> deviceList = scope.Resolve<List<IDevice>>();
                    var device = deviceList.FirstOrDefault(u => u.Id == opConfig.DeviceId);
                    var device = deviceList.FirstOrDefault(u => u.Id == set.MotionCardId);
                    if (device == null)
                    {