public ImageViewModel( GrabService grabService, ZoomService zoomService, InspectService inspectService, StateStore stateStore, CoreConfig coreConfig, CancellationToken token) { StateStore = stateStore; _coreConfig = coreConfig; SubResults = new ObservableCollection <SubResultWrapper>(); BindingOperations.EnableCollectionSynchronization(SubResults, new object()); grabService.ImageGrabbed += ImageGrabbed; ZoomService = zoomService; ZoomFitCommand = new DelegateCommand(ZoomFit); ZoomInCommand = new DelegateCommand(ZoomIn); ZoomOutCommand = new DelegateCommand(ZoomOut); inspectService.Inspected += Inspected; _pipeLine = new SinglePipeLine <GrabInfo>(info => DrawImage(info), -1, true); _pipeLine.Run(token); }
public ImageCountViewModel(InspectService inspectService) { inspectService.Inspected += Inspected; ClearCommand = new DelegateCommand(() => { Total = OK = NG = Skip = Timeout = 0; }); }
public SettingCommunicationViewModel(InspectService inspectService, CoreConfig coreConfig) { CoreConfig = coreConfig; _resultTimeout = CoreConfig.ResultTimeout; TestCommand = new DelegateCommand(() => { inspectService.Inspect(null, "test", new CancellationToken()); }); }
private void btnSave_Click(object sender, EventArgs e) { InspectVo inspectVo = new InspectVo { Process_Code = cbProcessCd.Text, Item_Code = cbItemCd.Text, Inspect_Code = txtInsepctCode.Text, Inspect_Name = txtInspectName.Text, Spec_Desc = txtDataDESC.Text, USL = Convert.ToDecimal(txtUSL.Text), SL = Convert.ToDecimal(txtSL.Text), LSL = Convert.ToDecimal(txtLSL.Text), Inspect_Group = cbSampleSize.Text, Inspect_Unit = txtUnit.Text, Use_YN = rbY.Checked ? "Y" : "N", Remark = txtNote.Text }; InspectService service = new InspectService(); service.InsertInspectMaster(inspectVo); CommonClass.InitControl(panel1); frm.btnS.PerformClick(); }
private void LoadList() { ProcessService proService = new ProcessService(); processCombo = (from item in proService.GetAllProcess() select new ComboItem { comboText = item.Process_Code, comboValue = item.Process_Name }).ToList(); ItemService itemService = new ItemService(); itemList = itemService.GetAllItemInfo(); ItemCombo = (from item in itemList select new ComboItem { comboText = item.Item_Code, comboValue = item.Item_Name }).ToList(); dgvSelect.DataSource = ItemCombo; InspectService inspectService = new InspectService(); inspectMaster = inspectService.GetAllInspect(); }
public CommunicationViewModel( GrabService grabService, LightControlService lightControlService, HostCommService hostCommService, InspectService inspectService, StateStore stateStore, CoreConfig coreConfig, CancellationToken token) { _stateStore = stateStore; Task.Run(async() => { while (token.IsCancellationRequested == false) { _stateStore.HostInfo = GetConnectionInfo(hostCommService.IsConnected()); _stateStore.InspectorInfo = GetConnectionInfo(inspectService.IsConnected()); _stateStore.CameraInfo = GetConnectionInfo(grabService.IsConnected()); _stateStore.LightInfo = GetConnectionInfo(lightControlService.IsConnected()); await Task.Delay(coreConfig.CommCheckDelay).ConfigureAwait(false); } }); }
public ControlViewModel( GrabService grabService, LightControlService lightControlService, InspectService inspectService, StateStore stateStore, CoreConfig coreConfig) { _stateStore = stateStore; GrabCommand = new DelegateCommand(async() => { lightControlService.SetValue(coreConfig.LightValues); lightControlService.LightOn(); var grabInfo = await grabService.Grab(); lightControlService.LightOff(); //if (grabInfo != null && coreConfig.UseInspector && stateStore.IsManualEnabled) // inspectService.Inspect(grabInfo.Value); //if (lightControlService.SetValue(coreConfig.LightValues) && lightControlService.LightOn()) //{ // var grabInfo = await grabService.Grab(); // lightControlService.LightOff(); // if (grabInfo != null && coreConfig.UseInspector && stateStore.IsManualEnabled) // inspectService.Inspect(grabInfo.Value); //} }); LiveCommand = new DelegateCommand(() => { lightControlService.SetValue(coreConfig.LightValues); lightControlService.LightOn(); grabService.StartGrab(); //if (lightControlService.SetValue(coreConfig.LightValues) && lightControlService.LightOn()) //if (inspectService.Inspected != null) //{ // List<SubResult> subResults = new List<SubResult>(); // subResults.Add(new SubResult(@"Pass, C:\Projects\KT_Interface_20210602\KT_Interface_20210602\KT_Interface\bin\Debug\Temp\1234_20210408120030.Bmp")); // subResults.Add(new SubResult(@"Fail, C:\Projects\KT_Interface_20210602\KT_Interface_20210602\KT_Interface\bin\Debug\Temp\2345_20210408124853.Bmp")); // inspectService.Inspected(new InspectResult(EJudgement.Pass, subResults)); //} StateStore.IsLiveMode = true; }); StopCommand = new DelegateCommand(() => { grabService.Stop(); lightControlService.LightOff(); StateStore.IsLiveMode = false; }); ExitCommand = new DelegateCommand(() => { Application.Current.Shutdown(); }); }
public InspectModule(InspectService inspect) => _inspect = inspect;
public void Init() { DefectInfos = new BindableCollection <DefectInfoViewModel>(); DefectInfosCollectionView = DefectInfos.GetDefaultCollectionView(); MeasurementInfos = new BindableCollection <MeasurementInfoViewModel>(); MeasurementInfosCollectionView = MeasurementInfos.GetDefaultCollectionView(); // Init SurfaceMonitors SurfaceMonitors = new List <SurfaceMonitorViewModel>(); int surfaceCount = 0; surfaceCount = 2; for (int i = 0; i < surfaceCount; i++) { var sm = new SurfaceMonitorViewModel { Index = i, SurfaceTypeIndex = i, DisplayDefectInfo = true, DisplayAllDefectInfos = false, DisplayMeasurementInfo = true, DisplayAllMeasurementInfos = false, }; SurfaceMonitors.Add(sm); } // SelectSurfaceMonitorCommand = new DelegateCommand <SurfaceMonitorViewModel>( o => { if (SelectedSurfaceMonitor == o) { return; } HideAll(); SelectedSurfaceMonitor = o; SelectedSurfaceMonitor.IsSelected = true; // Show DefectInfosCollectionView if (_displayAllDefectsOnImages) { SurfaceMonitors.ForEach(x => x.DisplayAllDefectInfos = false); SelectedSurfaceMonitor.DisplayAllDefectInfos = true; } DefectInfosCollectionView.Filter = x => { var di = (DefectInfoViewModel)x; return(di.SurfaceTypeIndex == SelectedSurfaceMonitor.SurfaceTypeIndex); }; DefectInfosCollectionView.Refresh(); // Show MeasurementInfosCollectionView if (_displayAllMeasurementInfosOnImages) { SurfaceMonitors.ForEach(x => x.DisplayAllMeasurementInfos = false); SelectedSurfaceMonitor.DisplayAllMeasurementInfos = true; } MeasurementInfosCollectionView.Filter = x => { var di = (MeasurementInfoViewModel)x; return(di.SurfaceTypeIndex == SelectedSurfaceMonitor.SurfaceTypeIndex); }; MeasurementInfosCollectionView.Refresh(); UpdateCommandStates(); }); SaveImageToFileCommand = new DelegateCommand( () => { InspectionViewModelService.OpenSaveImageToFileDialog(SelectedSurfaceMonitor.BitmapSource, "SurfaceType_" + SelectedSurfaceMonitor.SurfaceTypeIndex); }, () => SelectedSurfaceMonitor != null); ShowAllMeasurementsCommand = new DelegateCommand( OnShowAllMeasurementsCommand); ShowGroupMeasurementsCommand = new DelegateCommand( OnShowGroupMeasurementsCommand); InspectImageFileCommand = new DelegateCommand(async() => { int surfaceTypeIndex = SelectedSurfaceMonitor.SurfaceTypeIndex; var dialog = new OpenFileDialog() { Title = "Load image to surface " + surfaceTypeIndex, Filter = // "BMP files (*.bmp)|*.bmp|" + // "TIFF files (*.tif)|*.tif|" + // "JPG files (*.jpg)|*.jpg|" + "All files (*.*)|*.*", }; var result = dialog.ShowDialog(); if (!result.HasValue || !result.Value) { return; } DefectInfos.Clear(); MeasurementInfos.Clear(); var fileName = dialog.FileName; await InspectService.InspectImageFileAsync(surfaceTypeIndex, fileName); }, () => SelectedSurfaceMonitor != null); StartCommand = new DelegateCommand( () => { InspectService.Start(); }); StopCommand = new DelegateCommand( () => { InspectService.Reset(); }); ZoomInCommand = new DelegateCommand( () => { if (SelectedSurfaceMonitor != null) { SelectedSurfaceMonitor.ZoomIn(); } _isZoomFitDisplayAreaEnabled = false; _isZoomActualEnabled = false; }, () => SelectedSurfaceMonitor != null); ZoomOutCommand = new DelegateCommand( () => { if (SelectedSurfaceMonitor != null) { SelectedSurfaceMonitor.ZoomOut(); } _isZoomFitDisplayAreaEnabled = false; _isZoomActualEnabled = false; }, () => SelectedSurfaceMonitor != null); ZoomFitCommand = new DelegateCommand( () => { _isZoomFitDisplayAreaEnabled = !_isZoomFitDisplayAreaEnabled; if (_isZoomFitDisplayAreaEnabled) { if (SelectedSurfaceMonitor != null) { SelectedSurfaceMonitor.ZoomFitDisplayArea(); } } else { if (SelectedSurfaceMonitor != null) { SelectedSurfaceMonitor.ZoomFit(); } } _isZoomActualEnabled = false; }, () => SelectedSurfaceMonitor != null); ZoomActualCommand = new DelegateCommand( () => { _isZoomActualEnabled = !_isZoomActualEnabled; if (_isZoomActualEnabled) { if (SelectedSurfaceMonitor != null) { SelectedSurfaceMonitor.ZoomActual(); } } else { if (SelectedSurfaceMonitor != null) { SelectedSurfaceMonitor.ZoomFit(); } } _isZoomFitDisplayAreaEnabled = false; }, () => SelectedSurfaceMonitor != null); // publish CommunicationInitializedEvent PrismEventAggregator .GetEvent <SplashFinishedEvent>() .Publish(new SplashFinishedEvent()); InspectService.AcquisitionStartedEvent .ObserveOnDispatcher() .Subscribe(surfaceIndex => { var surfaceMonitor = SurfaceMonitors[surfaceIndex]; surfaceMonitor.BitmapSource = null; surfaceMonitor.DefectInfos = null; surfaceMonitor.MeasurementInfos = null; surfaceMonitor.InspectState = InspectState.Grabbing; Debug.WriteLine("InspectState.Grabbing"); // surfaceMonitor.MeasurementInfos.Clear(); // surfaceMonitor.DefectInfos.Clear(); UpdateCommandStates(); }); InspectService.AcquisitionCompletedEvent .ObserveOnDispatcher() .Subscribe(imageInfo => { var surfaceMonitor = SurfaceMonitors[imageInfo.SurfaceTypeIndex]; surfaceMonitor.BitmapSource = null; surfaceMonitor.DefectInfos = null; surfaceMonitor.MeasurementInfos = null; surfaceMonitor.InspectState = InspectState.Grabbed; Debug.WriteLine("InspectState.Grabbed"); UpdateCommandStates(); }); InspectService.CalibrationStartedEvent .ObserveOnDispatcher() .Subscribe(async surfaceIndex => { var surfaceMonitor = SurfaceMonitors[surfaceIndex]; surfaceMonitor.BitmapSource = null; surfaceMonitor.DefectInfos = null; surfaceMonitor.MeasurementInfos = null; surfaceMonitor.InspectState = InspectState.Calibrating; Debug.WriteLine("InspectState.Calibrating"); UpdateCommandStates(); }); InspectService.CalibrationCompletedEvent .ObserveOnDispatcher() .Subscribe(async imageInfo => { var surfaceMonitor = SurfaceMonitors[imageInfo.SurfaceTypeIndex]; surfaceMonitor.InspectState = InspectState.Calibrated; Debug.WriteLine("InspectState.Calibrated"); var bs = await imageInfo.ToBitmapSourceAsync(); surfaceMonitor.BitmapSource = bs; UpdateCommandStates(); }); InspectService.InspectionStartedEvent .ObserveOnDispatcher() .Subscribe(x => { var surfaceMonitor = SurfaceMonitors[x]; surfaceMonitor.InspectState = InspectState.Inspecting; Debug.WriteLine("InspectState.Inspecting"); UpdateCommandStates(); }); InspectService.InspectionCompletedEvent .ObserveOnDispatcher() .Subscribe(inspectInfo => { DefectInfos.Clear(); MeasurementInfos.Clear(); var surfaceMonitor = SurfaceMonitors[inspectInfo.SurfaceTypeIndex]; surfaceMonitor.InspectState = inspectInfo.InspectInfo.DefectInfos.Count == 0 ? InspectState.InspectedWithAccepted : InspectState.InspectedWithRejected; var iiVm = inspectInfo.InspectInfo.ToViewModel(); surfaceMonitor.DefectInfos = iiVm.DefectInfos.OrderBy(x => x.GroupName).ToList(); surfaceMonitor.MeasurementInfos = iiVm.MeasurementInfos.OrderBy(x => x.GroupName).ToList(); DefectInfos.AddRange(iiVm.DefectInfos); MeasurementInfos.AddRange(iiVm.MeasurementInfos); UpdateCommandStates(); }); SwitchDisplayAllDefectInfosCommand = new DelegateCommand( () => { HideAll(); DefectInfosCollectionView.Filter = null; DefectInfosCollectionView.Refresh(); if (_displayAllDefectsOnImages) { SurfaceMonitors.ForEach(x => x.DisplayAllDefectInfos = true); } UpdateCommandStates(); }); SwitchDisplayAllDefectInfosOnImagesCommand = new DelegateCommand( () => { _displayAllDefectsOnImages = !_displayAllDefectsOnImages; if (!_displayAllDefectsOnImages) { SurfaceMonitors.ForEach(x => x.DisplayAllDefectInfos = false); return; } if (SelectedSurfaceMonitor == null) { SurfaceMonitors.ForEach(x => x.DisplayAllDefectInfos = true); } else { SelectedSurfaceMonitor.DisplayAllDefectInfos = true; } UpdateCommandStates(); }); SwitchDisplayAllMeasurementInfosCommand = new DelegateCommand( () => { HideAll(); MeasurementInfosCollectionView.Filter = null; MeasurementInfosCollectionView.Refresh(); if (_displayAllMeasurementInfosOnImages) { SurfaceMonitors.ForEach(x => x.DisplayAllMeasurementInfos = true); } UpdateCommandStates(); }); SwitchDisplayAllMeasurementInfosOnImagesCommand = new DelegateCommand( () => { _displayAllMeasurementInfosOnImages = !_displayAllMeasurementInfosOnImages; if (!_displayAllMeasurementInfosOnImages) { SurfaceMonitors.ForEach(x => x.DisplayAllMeasurementInfos = false); return; } if (SelectedSurfaceMonitor == null) { SurfaceMonitors.ForEach(x => x.DisplayAllMeasurementInfos = true); } else { SelectedSurfaceMonitor.DisplayAllMeasurementInfos = true; } UpdateCommandStates(); }); }
public ShellViewModel(InspectService inspectService, StateStore stateStore) { _stateStore = stateStore; inspectService.Inspected += Inspected; }