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); } } } }