kingno
2 天以前 a9e1d576c88a828baa766b5c38cce7bad0f3f25c
src/Bro.M141.Process/M141Config.cs
@@ -6,6 +6,7 @@
using Bro.Common.Model;
using Bro.M135.Common;
using Bro.Process;
using MathNet.Numerics.Distributions;
using Newtonsoft.Json;
using System.ComponentModel;
using System.Drawing.Design;
@@ -13,17 +14,22 @@
using System.Drawing.Printing;
using System.Reflection;
using System.Windows.Forms.Design;
using Windows.Services.Maps;
using static Bro.Common.Helper.EnumHelper;
namespace Bro.M141.Process
{
    public class M141Config : ProcessConfigBase
    {
        [Category("打印机配置")]
        [Description("打印机配置集合")]
        [DisplayName("打印机配置集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(ComplexCollectionEditor<Printer>), typeof(UITypeEditor))]
        public List<Printer> Printers { get; set; } = new List<Printer>();
        [Category("产品显示界面配置")]
@@ -67,6 +73,37 @@
        [DisplayName("异常指示标准")]
        [TypeConverter(typeof(SpecCodeSelectorConverter))]
        public string CheckErrorSpecCode { get; set; } = "";
        [Category("特定缺陷配置")]
        [Description("S3和S5共同判断缺陷")]
        [DisplayName("缺陷名称")]
        [TypeConverter(typeof(GlobalDefectNameConverter))]
        public string defectname { get; set; } = "";
        private class GlobalDefectNameConverter : StringConverter
        {
            public override bool GetStandardValuesExclusive(ITypeDescriptorContext? context)
            {
                return false;
            }
            public override bool GetStandardValuesSupported(ITypeDescriptorContext? context)
            {
                return true;
            }
            public override StandardValuesCollection? GetStandardValues(ITypeDescriptorContext? context)
            {
                using (var scope = GlobalVar.Container.BeginLifetimeScope())
                {
                    var config = scope.Resolve<IProcessConfig>();
                    return new StandardValuesCollection((config as IDefectSwitcher).DefectSwitchCollection.Select(u => u.DefectName).ToList());
                }
            }
        }
        [Category("位置度设置")]
@@ -130,6 +167,15 @@
        [DisplayName("当前栏具码")]
        public string basketcode { get; set; } = "NoRead";
        [Category("栏具条码配置")]
        [Description("当前工单号")]
        [DisplayName("当前工单号")]
        public string zwoid { get; set; } = "";
        [Category("栏具条码配置")]
        [Description("本站是否读取栏具码")]
        [DisplayName("本站是否读取栏具码")]
@@ -148,6 +194,86 @@
        [Description("心跳地址")]
        [DisplayName("心跳地址")]
        public int heartadd { get; set; } = 1505;
        [Category("MES配置")]
        [Description("是否上传MES")]
        [DisplayName("是否上传MES")]
        public bool ISupMES { get; set; } = false;
        [Category("MES配置")]
        [Description("接口选择,0篮具接口,1数据上传接口,-1所有接口")]
        [DisplayName("接口选择")]
        public int MESchannel { get; set; } = 0;
        [Category("MES配置")]
        [Description("账号")]
        [DisplayName("账号")]
        public string zuser { get; set; } = "aoiUser";
        [Category("MES配置")]
        [Description("密码")]
        [DisplayName("密码")]
        public string zpassword { get; set; } = "Chia@aoi";
        [Category("MES配置")]
        [Description("IP")]
        [DisplayName("Ip")]
        public string zIP { get; set; } = "10.2.20.114";
        [Category("MES配置")]
        [Description("端口号")]
        [DisplayName("端口号")]
        public int zport { get; set; } = 15672;
        //[Category("MES配置")]
        //[Description("备用栏具码")]
        //[DisplayName("备用栏具码")]
        //public string basketcode2 { get; set; } = "NoRead";
        [Category("MES配置")]
        [Description("numpro")]
        [DisplayName("numpro")]
        [JsonIgnore]
        public int numpro { get; set; } = 0;
        [Category("MES配置")]
        [Description("mesnum1")]
        [DisplayName("mesnum1")]
        [JsonIgnore]
        public int mesnum1 { get; set; } = 0;
        [Category("MES配置")]
        [Description("mesnum2")]
        [DisplayName("mesnum2")]
        [JsonIgnore]
        public int mesnum2 { get; set; } = 0;
        [Category("MES配置")]
        [Description("mesnum3")]
        [DisplayName("mesnum3")]
        [JsonIgnore]
        public int mesnum3 { get; set; } = 0;
        [Category("MES配置")]
        [Description("mesnum4")]
        [DisplayName("mesnum4")]
        [JsonIgnore]
        public int mesnum4 { get; set; } = 0;
        [Category("MES配置")]
        [Description("plc序号和篮具码集合")]
        [DisplayName("plc序号和篮具码集合")]
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(ComplexCollectionEditor<PlcAndBasketcode>), typeof(UITypeEditor))]
        public List<PlcAndBasketcode> PlcAndBasketcodes { get; set; } = new List<PlcAndBasketcode>();
    }
@@ -279,7 +405,7 @@
            {
                var temchar = data.Split(',');
                ret.alarmname = temchar[0];
                ret.address =Convert.ToInt32(temchar[1]);
                ret.address = Convert.ToInt32(temchar[1]);
                ret.address2 = Convert.ToInt32(temchar[2]);
            }
            catch (Exception ex)
@@ -339,7 +465,19 @@
    }
    public class PlcAndBasketcode
    {
        [Category("配置")]
        [Description("序号")]
        [DisplayName("序号")]
        public int id { get; set; } = 0;
        [Category("配置")]
        [Description("条码")]
        [DisplayName("条码")]
        public string code { get; set; }
    }
@@ -363,6 +501,11 @@
        [DisplayName("图像索引")]
        [Description("应对单次检测项需要多次拍照时,记录图片的索引号,从0开始")]
        public int ImageIndex { get; set; } = 0;
        [Category("启用配置")]
        [DisplayName("固定检测项")]
        [Description("true:该检测项是固定检测项目,必须执行 false:该检测是可变检测项目,流程中决定是否检测,默认不检测")]
        public bool IsFixed { get; set; } = true;
        [Category("取像设置")]
        [DisplayName("相机选择")]
@@ -422,7 +565,10 @@
        [DisplayName("OK图片保存开关")]
        public bool OKImageSwitch { get; set; } = false;
        [Category("图片保存设置")]
        [Description("该站检测图片保存时,保存的图片顺序后缀")]
        [DisplayName("图片保存顺序后缀")]
        public string ImageSaveSeq { get; set; } = "1";
        public string GetDisplayText()
        {
@@ -907,6 +1053,31 @@
    }
    [Device("OfflineDemo", "离线测试", DeviceAttributeType.OperationConfig)]
    public class OfflineDemoOperationConfig : OperationConfigBase
    {
        [Category("图片目录")]
        [Description("图片目录")]
        [DisplayName("图片目录")]
        [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
        public string ImageFolder { get; set; }
        [Category("检测功能")]
        [Description("图片在批量测试过程中最终图片结果会存储较慢需要设置延时确保图片不被资源自动释放")]
        [DisplayName("图片存图延时")]
        public int SaveImageTime { get; set; } = 0;
        [Category("检测功能")]
        [Description("true:启动OK测试 false:启动NG测试")]
        [DisplayName("是否测试OK图片")]
        public bool IsOK { get; set; } = true;
    }
    public class RealTimeAdjustDataDetail : IComplexDisplay
    {
        [Category("点位设置")]