/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using Aurora.Api; using VisionCommon; namespace VisionUI.Aligner { class AlignRecipeSettingViewModel : Aurora.View.NotifyPropertyChangedBase, IUpdateRecipe { private Logger _Logger; private SubSysInfo _SubSysInfo; private AlignInfo _AlignInfo; private AlignRecipe _AlignRecipe; #region Binding Properties private AlignLimit _AlignLimit; /// 얼라인 리밋 public AlignLimit AlignLimit { get => _AlignLimit; set => SetProperty(ref _AlignLimit, value); } private AlignOffset _AlignOffset; /// 얼라인 오프셋 public AlignOffset AlignOffset { get => _AlignOffset; set => SetProperty(ref _AlignOffset, value); } private AlignRetry _AlignRetry; /// 얼라인 재시도 public AlignRetry AlignRetry { get => _AlignRetry; set => SetProperty(ref _AlignRetry, value); } private AlignTgtDist _AlignTgtDist; /// 얼라인 타겟 Distance public AlignTgtDist AlignTgtDist { get => _AlignTgtDist; set => SetProperty(ref _AlignTgtDist, value); } private ProcParams _ProcParams; /// 얼라인 프록 파라미터 public ProcParams ProcParams { get => _ProcParams; set => SetProperty(ref _ProcParams, value); } private InspParams _InspParams; /// 인스펙션 파라미터 public InspParams InspParams { get => _InspParams; set => SetProperty(ref _InspParams, value); } #endregion /// /// 생성자 /// /// 얼라인 정보 public AlignRecipeSettingViewModel(AlignInfo alignInfo) { _Logger = new Logger($"AlignRecipeSettingViewModel[{alignInfo.AlignName}]"); _SubSysInfo = alignInfo.ToSubSysInfo(); _AlignInfo = alignInfo; _AlignRecipe = VisionRecipeManager.GetAlignRecipe(_AlignInfo); UpdateRecipeFromFile(); } public void RefreshVisionRecipes() { _AlignRecipe = VisionRecipeManager.GetAlignRecipe(_AlignInfo); } public void UpdateRecipeFromFile() { AlignRecipe alignRecipe = VisionRecipeManager.GetAlignRecipe(_AlignInfo).Clone(); AlignRetry = alignRecipe.AlignRetry; AlignOffset = alignRecipe.AlignOffset; AlignLimit = alignRecipe.AlignLimit; AlignTgtDist = alignRecipe.AlignTgtDist; ProcParams = alignRecipe.ProcParams; InspParams = alignRecipe.InspParams; } public void UpdateRecipeFromUI() { AlignRecipe alignRecipe = VisionRecipeManager.GetAlignRecipe(_AlignInfo); alignRecipe.AlignRetry = AlignRetry; alignRecipe.AlignOffset = AlignOffset; alignRecipe.AlignLimit = AlignLimit; alignRecipe.AlignTgtDist = AlignTgtDist; alignRecipe.ProcParams = ProcParams; alignRecipe.InspParams = InspParams; } } }