using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Prism.Mvvm;
using System.Threading.Tasks;
using Prism.Regions;
using LampInspectionMachine.Core;
using Cognex.VisionPro.ToolBlock;
using Prism.Events;
using Prism.Ioc;
using Cognex.VisionPro;
using System.Windows.Forms.Integration;
using System.Windows;
using Cognex.VisionPro.ToolGroup;
using OpenCvSharp.Flann;
using Prism.Commands;
using System.IO;
namespace LampInspectionMachine.ViewModels
{
public class VisionProViewModel : BindableBase, IConfirmNavigationRequest
{
private CogToolBlock _TcogToolBlock;
private Management management;
private DelegateCommand _SoftTriggerCommand;
///
/// 开始采集
///
public DelegateCommand SoftTriggerCommand =>
_SoftTriggerCommand ?? ( _SoftTriggerCommand = new DelegateCommand(RunCurrVisionCogToolBlock) );
private DelegateCommand _SaveVPPCommand;
///
/// 开始采集
///
public DelegateCommand SaveVPPCommand =>
_SaveVPPCommand ?? (_SaveVPPCommand = new DelegateCommand(SaveCurrVisionCogToolBlock));
public VisionProViewModel(IContainerProvider container, IRegionManager regionManager, IEventAggregator eventAggregato)
{
management= container.Resolve();
}
public CogToolBlock TcogToolBlock { get => _TcogToolBlock; set { SetProperty(ref _TcogToolBlock, value); } }
public void ConfirmNavigationRequest(NavigationContext navigationContext, Action continuationCallback)
{
continuationCallback(true);
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
management.OnSaveSwitchToolBlock(management.CurrIndex);
}
public void OnNavigatedTo(NavigationContext navigationContext)
{
if ( navigationContext.Parameters.ContainsKey("Index") )
{
management.OnSwitchToolBlock(Convert.ToInt32(navigationContext.Parameters.GetValue("Index")));
}
}
public void RunCurrVisionCogToolBlock()
{
management.SoftTrigger();
}
public void SaveCurrVisionCogToolBlock()
{
try
{
FileInfo fileInfo = new FileInfo(Environment.CurrentDirectory + $"\\Vpp\\{management.CurrCamConfig.VppFileName}");
fileInfo.CopyTo(Environment.CurrentDirectory + $"\\Vpp备份\\{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")+ management.CurrCamConfig.VppFileName}", false);
CogSerializer.SaveObjectToFile(management.Currvision.CogToolBlock, Environment.CurrentDirectory + $"\\Vpp\\{management.CurrCamConfig.VppFileName}");
MessageBox.Show("保存完成");
}
catch (Exception ex)
{
MessageBox.Show("保存失败"+ex.Message);
}
}
}
}