领胜LDS 键盘AOI检测项目
patrick.xu
2021-09-15 8bd46da0c9fbfe39a65d75b1d85692d8783f5905
src/Bro.M071.Process/M071Models.cs
@@ -24,20 +24,33 @@
        [TypeConverter(typeof(KeyNameDictConverter))]
        public string Key { get; set; }
        [Category("默认配置")]
        [Description("是否默认尺寸配置")]
        public bool IsDefault { get; set; } = false;
        //[Category("位置配置")]
        //[Description("单键在键盘平面图上的位置显示")]
        //public RectangleF KeyRect { get; set; } = new RectangleF(0, 0, 0, 0);
        [Category("位置配置")]
        [Description("单键在键盘平面图上的位置显示")]
        public Rectangle KeyRect { get; set; } = new Rectangle();
        [Description("单键左上角坐标")]
        [TypeConverter(typeof(ComplexObjectConvert))]
        [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
        public CustomizedPoint KeyPosition { get; set; } = new CustomizedPoint();
        [Category("位置配置")]
        [Description("单键尺寸")]
        public SizeF KeySize { get; set; } = new SizeF();
        [Category("位置配置")]
        [Description("单键之后间隙位置")]
        public Rectangle IntervalRect { get; set; } = new Rectangle();
        public SizeF IntervalSize { get; set; } = new SizeF();
        public string GetDisplayText()
        {
            return $"{Key}:{KeyRect.X},{KeyRect.Y},{KeyRect.Width},{KeyRect.Height}";
            return $"{(IsDefault ? "Default" : Key)}:{KeyPosition.X},{KeyPosition.Y},{KeySize.Width},{KeySize.Height}";
        }
    }
    public class KeyAlgorithem : IComplexDisplay
    {
@@ -70,6 +83,15 @@
        [Description("检测算法路径")]
        [Editor(typeof(FileDialogEditor), typeof(UITypeEditor))]
        public string AlgorithemPath { get; set; }
        [Category("上传NG代码")]
        [Description("上传NG代码")]
        public string NGCode { get; set; }
        [Category("显示配置")]
        [Description("显示区域大小")]
        [DisplayName("标签大小")]
        public Size DisplayRect { get; set; }
    }
    public class KeyResult : IComplexDisplay
@@ -191,6 +213,13 @@
        public string KeyResultId { get; set; }
        #endregion
        [Category("补偿配置")]
        [DisplayName("单键补偿")]
        [Description("单键补偿")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(ComplexCollectionEditor<KeyCompensation>), typeof(UITypeEditor))]
        public List<KeyCompensation> KeyCompensationCollection { get; set; } = new List<KeyCompensation>();
        #region 检测相关字段
        public Dictionary<string, double> KeyValues = null;
        //public SnapshotPoint SnapshotPoint = null;
@@ -238,6 +267,24 @@
        }
    }
    public class KeyCompensation : IComplexDisplay
    {
        [Category("单键补偿")]
        [DisplayName("单键结果")]
        [Description("针对单键的某一项结果做补偿,一般为Z1,Z2,Z3,Z4,B1,B2")]
        public string KeyResult { get; set; }
        [Category("单键补偿")]
        [DisplayName("补偿值")]
        [Description("单键结果补偿值")]
        public float Compensation { get; set; }
        public string GetDisplayText()
        {
            return $"{KeyResult} {Compensation}";
        }
    }
    public class ProductionMeasurement : INotifyPropertyChanged, IDisposable
    {
        public string Barcode;
@@ -258,7 +305,7 @@
            Measurements?.ForEach(m => m?.Dispose());
            Measurements = null;
            ElementList = null;
            Barcode = null;
            //Barcode = null;
            GC.Collect();
        }
@@ -349,6 +396,11 @@
            mUnit.Id = this.Id;
            mUnit.Name = this.Name;
            if (string.IsNullOrWhiteSpace(mUnit.Name))
            {
                mUnit.Name = string.Join("-", KeyUnitCollection.Select(u => u.GetDisplayText()));
            }
            mUnit.IsEnabled = this.IsEnabled;
            mUnit.MeasureType = this.MeasureType;
@@ -485,6 +537,23 @@
        }
    }
    public class KeyCodeMap : IComplexDisplay
    {
        [Category("键名映射配置")]
        [Description("键名")]
        [TypeConverter(typeof(KeyNameDictConverter))]
        public string Key { get; set; }
        [Category("键名映射配置")]
        [Description("上传对应键代码Code")]
        public string KeyCode { get; set; }
        public string GetDisplayText()
        {
            return $"{Key}--{KeyCode}";
        }
    }
    //public class NoticedDictionary<T1, T2> : Dictionary<T1, T2>, INotifyPropertyChanged
    //{
    //    public event PropertyChangedEventHandler PropertyChanged;