using MathNet.Numerics.LinearAlgebra;
using Prism.Commands;
using Prism.Events;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Security.Cryptography;
using System.Threading.Tasks;
using System.Windows;
using Team.FFFeederService.Interfaces;
using TeamAAS_VP.Events;
using TeamAAS_VP.Core;
using TeamAAS_VP.Interfaces;
using TeamAAS_VP.Models;
using TeamAAS_VP;
using MaterialDesignThemes.Wpf;
using TeamAAS_VP.Controls;
using System.Web.UI.WebControls;
using TouchSocket.Core;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using System.Drawing;
using TeamAAS_VP.Resources.Languages;
namespace TeamAAS_VP.ViewModels.Product
{
public class CalculateOffsetUViewModel : BindableBase, IDialogAware
{
IRegionManager _regionManager;
IRegionNavigationService _regionNavigationService;
IContainerProvider _container;
IDialogService _dialogService;
IEventAggregator _eventAggregator;
#region 属性
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 ProductModel _SelectProduct;
///
/// 选中的产品
///
public ProductModel SelectProduct
{
get { return _SelectProduct; }
set { SetProperty(ref _SelectProduct, value); }
}
private ProcedureModel _SelectProcedure;
///
/// 选中的流程
///
public ProcedureModel SelectProcedure
{
get { return _SelectProcedure; }
set { SetProperty(ref _SelectProcedure, value); }
}
private Management _management;
public Management management
{
get { return _management; }
set { SetProperty(ref _management, value); }
}
private IRobot _Robot;
public IRobot Robot
{
get { return _Robot; }
set { SetProperty(ref _Robot, value); }
}
public string Title => "自动计算取料角度和工具坐标";
private ToolInfo _ToolInfo;
public ToolInfo ToolInfo
{
get { return _ToolInfo; }
set { SetProperty(ref _ToolInfo,value); }
}
public IVoiceCoilMotorFeeder Feeder { get; set; }
private bool _IsRunning = true;
public bool IsRunning
{
get { return _IsRunning; }
set { SetProperty(ref _IsRunning, value); }
}
private ICamera _Camera;
public ICamera Camera
{
get { return _Camera; }
set { SetProperty(ref _Camera, value); }
}
#endregion
#region 命令
private DelegateCommand _ConfirmCommand;
public DelegateCommand ConfirmCommand =>
_ConfirmCommand ?? (_ConfirmCommand = new DelegateCommand(ExecuteConfirmCommand).ObservesCanExecute(()=> IsRunning));
private DelegateCommand _CancelCommand;
public DelegateCommand CancelCommand =>
_CancelCommand ?? (_CancelCommand = new DelegateCommand(ExecuteCancelCommand).ObservesCanExecute(() => IsRunning));
private DelegateCommand _TechPlacePosCommand;
public DelegateCommand TechPlacePosCommand =>
_TechPlacePosCommand ?? (_TechPlacePosCommand = new DelegateCommand(ExecuteTechPlacePosCommand).ObservesCanExecute(() => IsRunning));
private DelegateCommand _TechPickPosCommand;
public DelegateCommand TechPickPosCommand =>
_TechPickPosCommand ?? (_TechPickPosCommand = new DelegateCommand(ExecuteTechPickPosCommand).ObservesCanExecute(() => IsRunning));
private DelegateCommand _StartCalibCommand;
public DelegateCommand StartCalibCommand =>
_StartCalibCommand ?? (_StartCalibCommand = new DelegateCommand(ExecuteStartCalibCommand).ObservesCanExecute(() => IsRunning));
private DelegateCommand