领胜LDS 键盘AOI检测项目
patrick.xu
2020-12-23 18475c9ceff517b7ba292b9f8b90933b0ce3fb78
src/Bro.M071.Process/M071Config.cs
@@ -1,5 +1,6 @@
using Bro.Common.Base;
using Bro.Common.Helper;
using Bro.Common.Interface;
using Bro.Common.Model;
using Bro.Process;
using System;
@@ -75,19 +76,29 @@
        [Editor(typeof(ComplexCollectionEditor<MeasurementUnit>), typeof(UITypeEditor))]
        public List<MeasurementUnit> MeasurementUnitCollection { get; set; } = new List<MeasurementUnit>();
        [Category("检测设置")]
        [Description("平面补偿值")]
        [DisplayName("4.平面补偿值")]
        public double PlanCompensation { get; set; }
        [Category("检测设置")]
        [Description("数据精度设置")]
        [DisplayName("5.数据精度位数")]
        public int Precision { get; set; } = 3;
        //[Category("检测设置")]
        //[DisplayName("结果数据保存路径")]
        //[Description("检测结果数据保存路径")]
        //[Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
        //public string ResultDataSaveFolder { get; set; } = "";
        [Category("图片保存配置")]
        [Category("单键图片保存配置")]
        [Description("单键图片保存配置")]
        [TypeConverter(typeof(ComplexObjectConvert))]
        [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
        public ImageSaveOption ImageSaveOption { get; set; } = new ImageSaveOption();
        [Category("图片保存配置")]
        [Category("单键图片保存配置")]
        [Description("单键图片保存目录路径")]
        [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
        public string ImageSaveFolder { get; set; } = "";
@@ -122,7 +133,103 @@
        [Category("MES设置")]
        [Description("true:数据上传至MES false:数据不上传")]
        [DisplayName("MES上传启用")]
        [ReadOnly(true)]
        public bool IsEnableMESUpload { get; set; } = false;
        [Category("MES设置")]
        [Description("true:检测用户登录 false:不强制用户登录")]
        [DisplayName("用户登录检测")]
        [Browsable(false)]
        public bool IsUserLoginCheck { get; set; } = false;
        [Category("MES设置")]
        [Description("MES上传路径")]
        [DisplayName("MES上传路径")]
        public string MESURL { get; set; } = "";
        [Category("MES设置")]
        [Description("站点编码")]
        [DisplayName("站点编码")]
        public string StationCode { get; set; } = "";
        [Category("MES设置")]
        [Description("Project编码")]
        [DisplayName("Project编码")]
        public string ProjectCode { get; set; } = "";
        [Category("MES设置")]
        [Description("线体编码")]
        [DisplayName("线体编码")]
        public string LineCode { get; set; } = "";
        [Category("MES设置")]
        [Description("验证当前允许新增次数[FALSE=不验证 TRUE=限制两次以下(包含两次)]")]
        [DisplayName("多次验证开关")]
        public bool IsDisableMultipleCheckTimes { get; set; }
        [Category("MES设置")]
        [Description("键名和上传代码映射关系")]
        [DisplayName("键名映射")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(ComplexCollectionEditor<KeyCodeMap>), typeof(UITypeEditor))]
        public List<KeyCodeMap> KeyCodeMappingCollection { get; set; } = new List<KeyCodeMap>();
        [Category("MES设置")]
        [Description("MES数据详细记录开关")]
        [DisplayName("MES日志开关")]
        public bool IsEnableMESLog { get; set; } = false;
        [Category("复位设置")]
        [Description("大复位需要信号持续时间,复位信号持续超出该时间执行大复位,单位:s")]
        [DisplayName("大复位持续信号长度")]
        public int FullResetRequiredDuration { get; set; } = 3;
    }
    [Device("Demostration", "Demo操作配置", EnumHelper.DeviceAttributeType.OperationConfig)]
    public class DemostrationOperationConfig : OperationConfigBase, IHalconToolPath
    {
        [Category("组合操作配置集合")]
        [Description("组合操作配置集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(ComplexCollectionEditor<OperationCombination>), typeof(UITypeEditor))]
        public List<OperationCombination> DemoOperations { get; set; } = new List<OperationCombination>();
        public List<string> GetHalconToolPathList()
        {
            return DemoOperations.SelectMany(d => d.GetHalconToolPathList()).ToList();
        }
    }
    public class OperationCombination : IComplexDisplay, IHalconToolPath
    {
        [Category("运动机构配置")]
        [Description("运动机构配置")]
        [TypeConverter(typeof(ComplexObjectConvert))]
        [Editor(typeof(IOperationConfigByDeviceEditor), typeof(UITypeEditor))]
        public DeviceOpBind MotionOp { get; set; } = new DeviceOpBind();
        [Category("相机和操作配置")]
        [Description("相机和操作配置")]
        [TypeConverter(typeof(ComplexObjectConvert))]
        [Editor(typeof(IOperationConfigByDeviceEditor), typeof(UITypeEditor))]
        public DeviceOpBind CameraOp { get; set; } = new DeviceOpBind();
        public string GetDisplayText()
        {
            return MotionOp.GetDisplayText() + "\t" + CameraOp.GetDisplayText();
        }
        public List<string> GetHalconToolPathList()
        {
            if (CameraOp.OpConfig is IHalconToolPath path)
            {
                return path.GetHalconToolPathList();
            }
            else
            {
                return new List<string>();
            }
        }
    }
}