/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using Aurora; using Aurora.Api; using VisionCommon; using System; namespace VisionSequence.Pattern { /// /// FOV별 Grab, Find 메뉴얼 시퀀스들을 사전에 등록하여 사용한다. /// public class ManualGrabFindSeqManager { private static Logger _Logger = new Logger(typeof(ManualGrabFindSeqManager).ToString()); /// /// FOV별 Grab, Find 메뉴얼 시퀀스들을 등록한다. /// /// Aurora 환경 변수 /// Aurora의 SequenceRegister public static void RegisterSeq(IAuroraEnvironment auroraEnv, SequenceRegister register) { try { RegisterManualFindSeq(register); RegisterManualGrabFindProcSeq(register); } catch (Exception e) { _Logger.FuncE(e.Message); } } private static void RegisterManualFindSeq(SequenceRegister register) { register(VisionKeys.ManualFindSeqKey, new FindSeq().Builder(VisionKeys.ManualFindSeqKey)); } private static void RegisterManualGrabFindProcSeq(SequenceRegister register) { foreach (var fovInfo in VisionRecipeManager.GetFovInfos()) { var seqName = GetSeqName(fovInfo); register(seqName, new GrabFindProcSeq().Builder(seqName)); } } /// /// 얼라인 시퀀스를 얻어온다. /// /// FOV 키 정보 /// 시퀀스 public static ISequence GetSeq(FovInfo fovInfo) { var seqName = GetSeqName(fovInfo); return VisionEnv.AuroraEnv.SequenceEntry[seqName]; } /// /// 시퀀스 이름을 얻어온다. /// /// FOV 키 정보 /// 시퀀스 이름 public static string GetSeqName(FovInfo fovInfo) { return VisionKeys.ManualGrabFindProcSeqKey + "_" + fovInfo.GetKey(); } } }