using Bro.Common.Base;
|
using Bro.Common.Helper;
|
using Bro.Common.UI;
|
using Newtonsoft.Json;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Drawing.Design;
|
|
namespace Bro.Common.Calibration
|
{
|
[Device("CalibrationStatic9Point", "静态9点标定", EnumHelper.DeviceAttributeType.OperationConfig)]
|
public class CalibrationStatic9PointConfigCollection : OperationConfigBase
|
{
|
[Category("标定配置")]
|
[Description("标定配置集合")]
|
[TypeConverter(typeof(CollectionCountConvert))]
|
[Editor(typeof(ComplexCollectionEditor<CalibrationStatic9PointConfig>), typeof(UITypeEditor))]
|
public List<CalibrationStatic9PointConfig> Configs { get; set; } = new List<CalibrationStatic9PointConfig>();
|
}
|
|
public class CalibrationStatic9PointConfig : OperationConfigBase, IComplexDisplay
|
{
|
[Category("相机配置")]
|
[Description("是否相机实时取图")]
|
public bool IsUseRealTimeImage { get; set; } = true;
|
|
[Category("相机配置")]
|
[Description("相机操作配置")]
|
[TypeConverter(typeof(ComplexObjectConvert))]
|
[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
|
public CameraOprerationConfigBase CameraOpConfig { get; set; } = new CameraOprerationConfigBase();
|
|
[Category("标定配置")]
|
[Description("XY坐标是否颠倒")]
|
public bool IsInvert { get; set; } = false;
|
|
[Category("标定配置")]
|
[Description("标定X方向间隔")]
|
public int IntervalX { get; set; }
|
|
[Category("标定配置")]
|
[Description("标定Y方向间隔")]
|
public int IntervalY { get; set; }
|
|
[Category("标定配置")]
|
[Description("可忽略的像素差值,取像点的坐标差值必须大于该值才被采用")]
|
public int IgnorePixel { get; set; } = 20;
|
|
[Category("ROI配置")]
|
[Description("标定点的ROI范围集合")]
|
[TypeConverter(typeof(CollectionCountConvert))]
|
[Editor(typeof(ComplexCollectionEditor<ROI_Circle>), typeof(UITypeEditor))]
|
public List<ROI_Circle> ROIList { get; set; } = new List<ROI_Circle>();
|
|
[Category("ROI配置")]
|
[Description("ROI默认半径")]
|
public float ROI_Radius { get; set; } = 50.0f;
|
|
[Category("ROI配置")]
|
[Description("是否启动ROI过滤")]
|
public bool IsEnableROIFilter { get; set; } = true;
|
|
[Category("UI显示配置")]
|
[Description("是否显示备注说明")]
|
public bool IsShowRemark { get; set; } = true;
|
|
public string GetDisplayText()
|
{
|
return JsonConvert.SerializeObject(this);
|
}
|
}
|
|
public class PLCSetting : IComplexDisplay
|
{
|
[Category("地址设置")]
|
[Description("X坐标PLC读取地址,例如5012")]
|
public int XAddress { get; set; }
|
|
[Category("地址设置")]
|
[Description("Y坐标PLC读取地址,例如5012")]
|
public int YAddress { get; set; }
|
|
[Category("地址设置")]
|
[Description("是否实时读取PLC地址")]
|
public bool IsRealTimeDataFromPLC { get; set; } = true;
|
|
[Category("运动设置")]
|
[Description("运动坐标X")]
|
public int LocationX { get; set; }
|
|
[Category("运动设置")]
|
[Description("运动坐标Y")]
|
public int LocationY { get; set; }
|
|
public string GetDisplayText()
|
{
|
return string.Format("X:{0};Y:{1}", LocationX, LocationY);
|
}
|
}
|
}
|