using MathNet.Numerics.LinearAlgebra; using Newtonsoft.Json; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media.Media3D; using TeamAAS_VP.Enums; namespace TeamAAS_VP.Models { [JsonObject(MemberSerialization.OptOut)] public class CalibrationInfo : BindableBase { private bool _IsCreate; /// /// 正在创建 /// [JsonIgnore] public bool IsCreate { get { return _IsCreate; } set { SetProperty(ref _IsCreate, value); } } private Guid _Id; public Guid Id { get { return _Id; } set { SetProperty(ref _Id, value); } } private string _Name; /// /// 校准的名称 /// public string Name { get { return _Name; } set { SetProperty(ref _Name, value); } } private DateTime _DateTime; public DateTime DateTime { get { return _DateTime; } set { SetProperty(ref _DateTime,value); } } private string _CameraName; /// /// 相机名称 /// public string CameraName { get { return _CameraName; } set { SetProperty(ref _CameraName,value); } } private Guid _CameraID; /// /// 相机ID /// public Guid CameraID { get { return _CameraID; } set { SetProperty(ref _CameraID, value); } } private Guid _RobotId; /// /// 机器人 /// public Guid RobotId { get { return _RobotId; } set { SetProperty(ref _RobotId,value); } } private Guid _FeederId; /// /// Feeder /// public Guid FeederId { get { return _FeederId; } set { SetProperty(ref _FeederId, value); } } private CameraMount _CameraMount; /// /// 相机安装方式 /// public CameraMount CameraMount { get { return _CameraMount; } set { SetProperty(ref _CameraMount, value); } } private PickInfo _Pick; /// /// 取料方式 /// public PickInfo Pick { get { return _Pick; } set { SetProperty(ref _Pick, value); } } private int _Brightness; /// /// 光源亮度 /// public int Brightness { get { return _Brightness; } set { SetProperty(ref _Brightness, value); } } private float _ExposureTime; /// /// 相机曝光时间 /// public float ExposureTime { get { return _ExposureTime; } set { SetProperty(ref _ExposureTime, value); } } private float _Gain; /// /// 相机增益 /// public float Gain { get { return _Gain; } set { SetProperty(ref _Gain, value); } } private CalibTechP0Mode _CalibTechP0Mode; /// /// 移动相机中心作为P0还是手动示教P0 /// public CalibTechP0Mode CalibTechP0Mode { get { return _CalibTechP0Mode; } set { SetProperty(ref _CalibTechP0Mode, value); } } private RPoint _CenterPoint; /// /// 中心点 /// public RPoint CenterPoint { get { return _CenterPoint; } set { SetProperty(ref _CenterPoint,value); } } private RPoint _HomePoint; /// /// 待机点 /// public RPoint HomePoint { get { return _HomePoint; } set { SetProperty(ref _HomePoint, value); } } private double _Width; /// /// 机器人移动的范围X /// public double Width { get { return _Width; } set { SetProperty(ref _Width,value); } } private double _Height; /// /// 机器人移动的范围Y /// public double Height { get { return _Height; } set { SetProperty(ref _Height, value); } } private double _Angle=180; /// /// 机器人移动的范围U /// public double Angle { get { return _Angle; } set { SetProperty(ref _Angle, value); } } private RobotTool _Tool; /// /// 工具坐标 /// public RobotTool Tool { get { return _Tool; } set { SetProperty(ref _Tool,value); } } private RobotArm _Arm; /// /// Arm /// public RobotArm Arm { get { return _Arm; } set { SetProperty(ref _Arm, value); } } private int _Speed; public int Speed { get { return _Speed; } set { SetProperty(ref _Speed,value); } } private int _Accel; public int Accel { get { return _Accel; } set { SetProperty(ref _Accel, value); } } private int _WaitPhoto; public int WaitPhoto { get { return _WaitPhoto; } set { SetProperty(ref _WaitPhoto, value); } } private int _WaitSuction; /// /// 吸真空延时 /// public int WaitSuction { get { return _WaitSuction; } set { SetProperty(ref _WaitSuction, value); } } private int _WaitBlow; /// /// 破真空延时 /// public int WaitBlow { get { return _WaitBlow; } set { SetProperty(ref _WaitBlow, value); } } private bool _Power; public bool Power { get { return _Power; } set { SetProperty(ref _Power, value); } } private RPoint _MarkPoint; /// /// 特征点的坐标 /// public RPoint MarkPoint { get { return _MarkPoint; } set { SetProperty(ref _MarkPoint, value); } } private ObservableCollection _CalibPoints; /// /// 9点校准点 /// public ObservableCollection CalibPoints { get { return _CalibPoints; } set { SetProperty(ref _CalibPoints,value); } } private double[,] _RobotCameraRotationMatrix; /// /// 机器人与相机之间的旋转矩阵 /// public double[,] RobotCameraRotationMatrix { get { return _RobotCameraRotationMatrix; } set { SetProperty(ref _RobotCameraRotationMatrix,value); } } private double _PixelScaleX; /// /// 图像X方向像素与毫米缩放系数,mm/pixel /// public double PixelScaleX { get { return _PixelScaleX; } set { SetProperty(ref _PixelScaleX, value); } } private double _PixelScaleY; /// /// 图像Y方向像素与毫米缩放系数,mm/pixel /// public double PixelScaleY { get { return _PixelScaleX; } set { SetProperty(ref _PixelScaleX, value); } } private double[,] _AffineTransformationMaterial; /// /// 仿射变换2*3矩阵 /// public double[,] AffineTransformationMaterial { get { return _AffineTransformationMaterial; } set { SetProperty(ref _AffineTransformationMaterial, value); } } private CalibrationResult _CalibrationResult; /// /// 校准结果 /// public CalibrationResult CalibrationResult { get { return _CalibrationResult; } set { SetProperty(ref _CalibrationResult,value); } } private CalibrationTestResult _CalibrationTestResult; public CalibrationTestResult CalibrationTestResult { get { return _CalibrationTestResult; } set { SetProperty(ref _CalibrationTestResult,value); } } /// /// 流程 /// [JsonIgnore] public Cognex.VisionPro.ToolBlock.CogToolBlock ToolBlock { get; set; } public CalibrationInfo Clone() { try { return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(this)); } catch (Exception) { return this; } } } }