using Cognex.VisionPro.ToolBlock;
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 TeamAAS_VP.Enums;
namespace TeamAAS_VP.Models
{
///
/// 流程模型
///
[JsonObject(MemberSerialization.OptOut)]
public class ProcedureModel : BindableBase
{
public Guid Id { get; set; }
///
/// 流程名称
///
public string Name { get; set; }
public string CameraName { get; set; }
///
/// 视觉图像处理模式
///
public VisionModel VisionModel { get; set; }
///
/// 触发相机命令
///
public string TriggerCommand { get; set; }
///
/// 机器人
///
public Guid RobotId { get; set; }
///
/// Feeder
///
public Guid FeederId { get; set; }
///
/// Camera
///
public Guid CameraId { get; set; }
///
/// 校准
///
public Guid CalibrationId { get; set; }
private ObservableCollection _ProcedureOutputs;
///
/// 视觉流程输出集合
///
public ObservableCollection ProcedureOutputs
{
get { return _ProcedureOutputs; }
set { SetProperty(ref _ProcedureOutputs,value); }
}
private ObservableCollection _ProcedureOutputsOpcAdrs;
///
/// OPc回复输出集合
///
public ObservableCollection ProcedureOutputsOpcAdrs
{
get { return _ProcedureOutputsOpcAdrs; }
set { SetProperty(ref _ProcedureOutputsOpcAdrs, value); }
}
private FeederWorks _FeederWorks;
///
/// Feeder振动集合
///
public FeederWorks FeederWorks
{
get { return _FeederWorks; }
set { SetProperty(ref _FeederWorks,value); }
}
private FeederStockWorks _FeederStockWorks;
///
/// Feeder料仓振动集合
///
public FeederStockWorks FeederStockWorks
{
get { return _FeederStockWorks; }
set { SetProperty(ref _FeederStockWorks, value); }
}
private double _MinArea;
///
/// Blob最小面积
///
public double MinArea
{
get { return _MinArea; }
set { SetProperty(ref _MinArea, value); }
}
private int _LightValue;
///
/// 亮度
///
public int LightValue
{
get { return _LightValue; }
set { SetProperty(ref _LightValue, 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 CogToolBlock _ToolBlock;
///
/// 工具组
///
[JsonIgnore]
public CogToolBlock ToolBlock
{
get { return _ToolBlock; }
set { SetProperty(ref _ToolBlock,value); }
}
private ObservableCollection _ToolInfo = new ObservableCollection();
///
/// 工具末端的补偿
///
public ObservableCollection ToolInfo
{
get { return _ToolInfo; }
set { SetProperty(ref _ToolInfo, value); }
}
private int _WaitPhoto;
///
/// 延时拍照时长(ms)
///
public int WaitPhoto
{
get { return _WaitPhoto; }
set { SetProperty(ref _WaitPhoto, value); }
}
private int _WaitFeederStop;
///
/// 等待震动盘静止时长(ms)
///
public int WaitFeederStop
{
get { return _WaitFeederStop; }
set { SetProperty(ref _WaitFeederStop, value); }
}
private int _WaitSuction;
///
/// 吸真空延时(ms)
///
public int WaitSuction
{
get { return _WaitSuction; }
set { SetProperty(ref _WaitSuction, value); }
}
private VibrationModel _VibrationModel;
///
/// 振动模式
///
public VibrationModel VibrationModel
{
get { return _VibrationModel; }
set { SetProperty(ref _VibrationModel, value); }
}
private int _WaitBlow;
///
/// 破真空延时(ms)
///
public int WaitBlow
{
get { return _WaitBlow; }
set { SetProperty(ref _WaitBlow, value); }
}
private int _FeederFailLimit;
///
/// 拍照失败Feeder振动最大次数
///
public int FeederFailLimit
{
get { return _FeederFailLimit; }
set { SetProperty(ref _FeederFailLimit, value); }
}
private int _OutputPointCountMax=100;
///
/// 每次发送给机器人的点数最大值
///
public int OutputPointCountMax
{
get { return _OutputPointCountMax; }
set { SetProperty(ref _OutputPointCountMax, value); }
}
private bool _IsSaveImage;
///
/// 保存图像
///
public bool IsSaveImage
{
get { return _IsSaveImage; }
set { SetProperty(ref _IsSaveImage, value); }
}
private ProcedureSaveImageModel _SaveImageModel;
///
/// 存图模式
///
public ProcedureSaveImageModel SaveImageModel
{
get { return _SaveImageModel; }
set { SetProperty(ref _SaveImageModel, value); }
}
private ProcedureSaveImagePathModel _SaveImagePathModel;
///
/// 存图路径模式
///
public ProcedureSaveImagePathModel SaveImagePathModel
{
get { return _SaveImagePathModel; }
set { SetProperty(ref _SaveImagePathModel, value); }
}
private string _SavePath;
///
/// 存图路径
///
public string SavePath
{
get { return _SavePath; }
set { SetProperty(ref _SavePath, value); }
}
private bool _IsCompress;
///
/// 是否压缩图片
///
public bool IsCompress
{
get { return _IsCompress; }
set { SetProperty(ref _IsCompress, value); }
}
private FeederFrequencyModel _FeederFindFrequency;
///
/// Feeder自动寻频配置
///
public FeederFrequencyModel FeederFindFrequency
{
get { return _FeederFindFrequency; }
set { SetProperty(ref _FeederFindFrequency, value); }
}
public ProcedureModel Clone()
{
return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(this)); ;
}
}
}