using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using MaterialDesignThemes.Wpf;
using MathNet.Numerics.LinearAlgebra;
using Prism.Commands;
using Prism.Events;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using Team.FFFeederService;
using Team.FFFeederService.Interfaces;
using TeamAAS_VP.Controls;
using TeamAAS_VP.Core;
using TeamAAS_VP.Enums;
using TeamAAS_VP.Interfaces;
using TeamAAS_VP.Models;
using TeamAAS_VP.Models.Product;
using TeamAAS_VP.Models.Robot;
using TeamAAS_VP;
using TeamAAS_VP.Resources.Languages;
namespace TeamAAS_VP.ViewModels.Product
{
public class TestProductPageViewModel : BindableBase
{
#region 字段
IRegionManager _regionManager;
IEventAggregator _eventAggregator;
IContainerProvider _container;
IFeederService _feederService;
ICameraService _cameraService;
IRobotService _robotService;
IConfigService _configService;
ICalibrationService _calibrationService;
#endregion
#region 属性
private Management _management;
public Management management
{
get { return _management; }
set { SetProperty(ref _management,value); }
}
private ProductModel _SelectProduct;
///
/// 选中的产品
///
public ProductModel SelectProduct
{
get { return _SelectProduct; }
set { SetProperty(ref _SelectProduct, value); }
}
//------------------------------------------------------------------------------------------------------------Feeder 取料--------------------------------------------------------------------
private ProcedureModel _SelectProcedure;
///
/// 选中的流程
///
public ProcedureModel SelectProcedure
{
get { return _SelectProcedure; }
set
{
SetProperty(ref _SelectProcedure, value);
if (value != null)
{
Robot = _robotService.GetRobot(value.RobotId);
Camera=_cameraService.GetCamera(value.CameraId);
Feeder= _feederService.GetFeeder(value.FeederId);
}
}
}
private ObservableCollection _ProcedureModels;
///
/// 流程集合
///
public ObservableCollection ProcedureModels
{
get { return _ProcedureModels; }
set { SetProperty(ref _ProcedureModels, value); }
}
private RPoint _SelectPoint;
public RPoint SelectPoint
{
get { return _SelectPoint; }
set { SetProperty(ref _SelectPoint, value); }
}
private IRobot _Robot;
public IRobot Robot
{
get { return _Robot; }
set { SetProperty(ref _Robot, value); }
}
private ICamera _Camera;
public ICamera Camera
{
get { return _Camera; }
set { SetProperty(ref _Camera, value); }
}
public IVoiceCoilMotorFeeder Feeder { get; set; }
private int _Inhal = -1;
public int Inhal
{
get { return _Inhal; }
set { SetProperty(ref _Inhal, value); }
}
private int _Blow = -1;
public int Blow
{
get { return _Blow; }
set { SetProperty(ref _Blow, value); }
}
private ICogImage _Image;
public ICogImage Image
{
get { return _Image; }
set { SetProperty(ref _Image, value); }
}
private Cognex.VisionPro.CogGraphicCollection _Graphic;
public Cognex.VisionPro.CogGraphicCollection Graphic
{
get { return _Graphic; }
set { SetProperty(ref _Graphic, value); }
}
//------------------------------------------------------------------------------------------------------------下相机定位--------------------------------------------------------------------
private ProcedureModel _SelectProcedure1;
///
/// 选中的流程
///
public ProcedureModel SelectProcedure1
{
get { return _SelectProcedure1; }
set
{
SetProperty(ref _SelectProcedure1, value);
if (value != null)
{
Robot1 = _robotService.GetRobot(value.RobotId);
Camera1 = _cameraService.GetCamera(value.CameraId);
Feeder1 = _feederService.GetFeeder(value.FeederId);
}
}
}
private ObservableCollection _ProcedureModels1;
///
/// 流程集合
///
public ObservableCollection ProcedureModels1
{
get { return _ProcedureModels1; }
set { SetProperty(ref _ProcedureModels1, value); }
}
private RPoint _SelectPoint1;
public RPoint SelectPoint1
{
get { return _SelectPoint1; }
set { SetProperty(ref _SelectPoint1, value); }
}
private bool _IsCreateTool=true;
public bool IsCreateTool
{
get { return _IsCreateTool; }
set { SetProperty(ref _IsCreateTool, value); }
}
public IRobot Robot1 { get; set; }
public ICamera Camera1 { get; set; }
public IVoiceCoilMotorFeeder Feeder1 { get; set; }
private int _Inhal1 = -1;
public int Inhal1
{
get { return _Inhal1; }
set { SetProperty(ref _Inhal1, value); }
}
private int _Blow1 = -1;
public int Blow1
{
get { return _Blow1; }
set { SetProperty(ref _Blow1, value); }
}
private ICogImage _Image1;
public ICogImage Image1
{
get { return _Image1; }
set { SetProperty(ref _Image1, value); }
}
private Cognex.VisionPro.CogGraphicCollection _Graphic1;
public Cognex.VisionPro.CogGraphicCollection Graphic1
{
get { return _Graphic1; }
set { SetProperty(ref _Graphic1, value); }
}
private bool _IsRunning = true;
public bool IsRunning
{
get { return _IsRunning; }
set { SetProperty(ref _IsRunning, value); }
}
#endregion
#region 命令
private DelegateCommand _LoadedCommand;
public DelegateCommand LoadedCommand =>
_LoadedCommand ?? (_LoadedCommand = new DelegateCommand(ExecuteLoadedCommand));
private DelegateCommand _AutoPickCommand;
public DelegateCommand AutoPickCommand =>
_AutoPickCommand ?? (_AutoPickCommand = new DelegateCommand(ExecuteAutoPickCommand).ObservesCanExecute(() => IsRunning));
private DelegateCommand _AutoPhotoCommand;
public DelegateCommand AutoPhotoCommand =>
_AutoPhotoCommand ?? (_AutoPhotoCommand = new DelegateCommand(ExecuteAutoPhotoCommand).ObservesCanExecute(() => IsRunning));
private DelegateCommand