LGES-2170-ACW_CCW-Welder/AuroraVision/VisionUI/Inspector/AttachInsp/AttachInspRecipeSettingViewModel.cs
2026-01-26 18:56:53 +09:00

64 lines
2.7 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using Aurora.View;
using System.Windows.Input;
using VisionCommon;
using VisionCommonUI.Resources;
namespace VisionUI.Inspector {
/// <summary>
/// 어태치 검사 레시피 세팅 뷰 모델
/// </summary>
public class AttachInspRecipeSettingViewModel : NotifyPropertyChangedBase, IUpdateRecipe {
private SubSysInfo _SubSysInfo;
private SubSysRecipe _SubSysRecipe;
#region Binding Properties
private AttachInspRecipe _AttachInspRecipe;
/// <summary>어태치 검사 레시피</summary>
public AttachInspRecipe AttachInspRecipe {
get => _AttachInspRecipe; set { SetProperty(ref _AttachInspRecipe, value); }
}
#endregion
/// <summary>
/// 생성자
/// </summary>
/// <param name="subSysInfo">서브시스템 정보</param>
public AttachInspRecipeSettingViewModel(SubSysInfo subSysInfo) {
_SubSysInfo = subSysInfo;
_SubSysRecipe = VisionRecipeManager.GetSubSysRecipe(subSysInfo);
AttachInspRecipe = VisionRecipeManager.GetAttachInspRecipe(_SubSysInfo);
}
public void RefreshVisionRecipes() {
AttachInspRecipe = VisionRecipeManager.GetAttachInspRecipe(_SubSysInfo);
_SubSysRecipe = VisionRecipeManager.GetSubSysRecipe(_SubSysInfo);
}
public void UpdateRecipeFromFile() {
var attachInspRecipe = VisionRecipeManager.GetAttachInspRecipe(_SubSysInfo);
AttachInspRecipe = attachInspRecipe.Clone();
}
public void UpdateRecipeFromUI() {
var attachInspRecipe = VisionRecipeManager.GetAttachInspRecipe(_SubSysInfo);
var clonedAttachInspRecipe = AttachInspRecipe.Clone();
// IList 파라미터 사용시, CoordUnitAttachInspParamsConverter에서 ConvertBack이 동작하지 않으므로, 여기서 처리
if (VisionSettingManager.VisionSetting.CoordUnit == eCoordUnit.UM) {
foreach (var attachInspParam in clonedAttachInspRecipe.AttachInspParams) {
attachInspParam.SpecW = MathUtil.ConvertUnitMicroToMilli(attachInspParam.SpecW);
attachInspParam.ErrRangeW = MathUtil.ConvertUnitMicroToMilli(attachInspParam.ErrRangeW);
attachInspParam.SpecH = MathUtil.ConvertUnitMicroToMilli(attachInspParam.SpecH);
attachInspParam.ErrRangeH = MathUtil.ConvertUnitMicroToMilli(attachInspParam.ErrRangeH);
}
clonedAttachInspRecipe.CopyTo(attachInspRecipe);
}
else {
AttachInspRecipe.CopyTo(attachInspRecipe);
}
}
}
}