157 lines
6.1 KiB
C#
157 lines
6.1 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using Aurora.Api;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Windows.Controls;
|
|
using VisionCommon;
|
|
using VisionCommonUI;
|
|
using VisionCommonUI.Resources;
|
|
|
|
#if USE_COGNEX
|
|
using CogUI;
|
|
#else
|
|
using MilUI;
|
|
#endif
|
|
|
|
namespace VisionUI {
|
|
/// <summary>
|
|
/// Interaction logic for MultiOcrSettingView.xaml
|
|
/// </summary>
|
|
public partial class MultiOcrSettingView : UserControl, IDisposable {
|
|
private Logger _Logger = new Logger(typeof(MultiOcrSettingView).Name);
|
|
|
|
private PatternAgentBase _patternAgent;
|
|
private PatternInfo _patternInfo;
|
|
private CameraDisplay _cameraDisplay;
|
|
private FovInfo _fovInfo;
|
|
|
|
public MultiOcrSettingView(
|
|
PatternAgentBase patternAgent, PatternInfo patternInfo, ICameraDisplay cameraDisplay, FovInfo fovInfo) {
|
|
|
|
_patternAgent = patternAgent;
|
|
_patternInfo = patternInfo;
|
|
_cameraDisplay = (CameraDisplay)cameraDisplay;
|
|
_fovInfo = fovInfo;
|
|
|
|
InitializeComponent();
|
|
#if !USE_COGNEX
|
|
|
|
CreateView();
|
|
#endif
|
|
}
|
|
#if !USE_COGNEX
|
|
private List<MultiOcrParamSettingView> _MultiOcrParamSettingViews = new List<MultiOcrParamSettingView>();
|
|
|
|
private void CreateView() {
|
|
gridMultiOcrParamSettingViews.Children.Clear();
|
|
_MultiOcrParamSettingViews.Clear();
|
|
|
|
var sp = new StackPanel() {
|
|
Orientation = Orientation.Vertical,
|
|
Margin = new System.Windows.Thickness(5)
|
|
};
|
|
|
|
// 인덱스 0 : 멀티 패턴 Master, 인덱스 1~8 : 멀티 패턴 Slave
|
|
for (int roiIdx = 1; roiIdx <= (int)eRoiIdx.Roi8; roiIdx++) {
|
|
PatternInfo subPatternInfo;
|
|
var subPatternIndex = PatternAgentBase.GetSubPatternIndex(_patternInfo, roiIdx);
|
|
if (_patternAgent.IsPatternExist(subPatternIndex)) {
|
|
subPatternInfo = _patternAgent.GetPatternInfo(subPatternIndex);
|
|
}
|
|
else {
|
|
subPatternInfo = _patternInfo.Clone() as PatternInfo;
|
|
subPatternInfo.SetPatternSubId(roiIdx);
|
|
subPatternInfo.Description = string.Format($"OCR{roiIdx}");
|
|
subPatternInfo.PatternType = ePatternType.Ocr;
|
|
}
|
|
|
|
var multiOcrParamSettingView = new MultiOcrParamSettingView(_patternAgent, subPatternInfo, _cameraDisplay, _fovInfo);
|
|
multiOcrParamSettingView.DataContext = new MultiOcrParamSettingViewModel(_patternAgent, subPatternInfo, _cameraDisplay, _fovInfo, (eRoiIdx)roiIdx);
|
|
|
|
_MultiOcrParamSettingViews.Add(multiOcrParamSettingView);
|
|
sp.Children.Add(multiOcrParamSettingView);
|
|
}
|
|
|
|
gridMultiOcrParamSettingViews.Children.Add(sp);
|
|
}
|
|
|
|
private void CheckBox_Checked(object sender, System.Windows.RoutedEventArgs e) {
|
|
foreach (var multiOcrParamSettingView in _MultiOcrParamSettingViews) {
|
|
if (multiOcrParamSettingView.IsChecked() == false) {
|
|
(multiOcrParamSettingView.DataContext as MultiOcrParamSettingViewModel).SetEnabled(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void CheckBox_Unchecked(object sender, System.Windows.RoutedEventArgs e) {
|
|
foreach (var multiOcrParamSettingView in _MultiOcrParamSettingViews) {
|
|
if (multiOcrParamSettingView.IsChecked() == true) {
|
|
(multiOcrParamSettingView.DataContext as MultiOcrParamSettingViewModel).SetEnabled(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Button_Click_Reload(object sender, System.Windows.RoutedEventArgs e) {
|
|
ClearGraphics();
|
|
|
|
foreach (var multiOcrParamSettingView in _MultiOcrParamSettingViews) {
|
|
(multiOcrParamSettingView.DataContext as MultiOcrParamSettingViewModel).Clear();
|
|
}
|
|
}
|
|
|
|
private void Button_Click_Find(object sender, System.Windows.RoutedEventArgs e) {
|
|
if (!_patternInfo.IsActivated) {
|
|
MessageBoxUtil.ShowMessageBoxError(StrTokens.MSG_E_PatternNotActivated);
|
|
return;
|
|
}
|
|
if (_cameraDisplay != null) {
|
|
var image = _cameraDisplay.GetImage();
|
|
if (image == null) {
|
|
MessageBoxUtil.ShowMessageBoxError(StrTokens.MSG_E_ImageNotReady);
|
|
return;
|
|
}
|
|
}
|
|
|
|
_cameraDisplay.ClearMeasureGraphics();
|
|
|
|
foreach (var multiOcrParamSettingView in _MultiOcrParamSettingViews) {
|
|
(multiOcrParamSettingView.DataContext as MultiOcrParamSettingViewModel).Find();
|
|
}
|
|
}
|
|
|
|
private void Button_Click_Save(object sender, System.Windows.RoutedEventArgs e) {
|
|
foreach (var multiOcrParamSettingView in _MultiOcrParamSettingViews) {
|
|
(multiOcrParamSettingView.DataContext as MultiOcrParamSettingViewModel).Save();
|
|
}
|
|
(DataContext as MultiOcrSettingViewModel).Save();
|
|
MessageBoxUtil.ShowMessageBoxOk(StrTokens.MSG_O_SaveCompleted);
|
|
}
|
|
|
|
private void ClearGraphics() {
|
|
_cameraDisplay.ClearFindGraphics();
|
|
_cameraDisplay.ClearMeasureGraphics();
|
|
}
|
|
#else
|
|
|
|
private void Button_Click_Find(object sender, System.Windows.RoutedEventArgs e) { }
|
|
private void Button_Click_Save(object sender, System.Windows.RoutedEventArgs e) { }
|
|
private void Button_Click_Reload(object sender, System.Windows.RoutedEventArgs e) { }
|
|
private void CheckBox_Unchecked(object sender, System.Windows.RoutedEventArgs e) { }
|
|
private void CheckBox_Checked(object sender, System.Windows.RoutedEventArgs e) { }
|
|
|
|
|
|
#endif
|
|
public void Dispose() {
|
|
#if !USE_COGNEX
|
|
|
|
foreach (var multiOcrParamSettingView in _MultiOcrParamSettingViews) {
|
|
multiOcrParamSettingView.Dispose();
|
|
}
|
|
gridMultiOcrParamSettingViews.Children.Clear();
|
|
#endif
|
|
}
|
|
}
|
|
} |