62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using Aurora;
|
|
using Aurora.Api;
|
|
using VisionCommon;
|
|
using System;
|
|
|
|
namespace VisionSequence.Pattern {
|
|
/// <summary>
|
|
/// FOV별 Grab, Find 메뉴얼 시퀀스들을 사전에 등록하여 사용한다.
|
|
/// </summary>
|
|
public class ManualGrabFindSeqManager {
|
|
private static Logger _Logger = new Logger(typeof(ManualGrabFindSeqManager).ToString());
|
|
|
|
/// <summary>
|
|
/// FOV별 Grab, Find 메뉴얼 시퀀스들을 등록한다.
|
|
/// </summary>
|
|
/// <param name="auroraEnv">Aurora 환경 변수</param>
|
|
/// <param name="register">Aurora의 SequenceRegister</param>
|
|
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));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 얼라인 시퀀스를 얻어온다.
|
|
/// </summary>
|
|
/// <param name="fovInfo">FOV 키 정보</param>
|
|
/// <returns>시퀀스</returns>
|
|
public static ISequence GetSeq(FovInfo fovInfo) {
|
|
var seqName = GetSeqName(fovInfo);
|
|
return VisionEnv.AuroraEnv.SequenceEntry[seqName];
|
|
}
|
|
|
|
/// <summary>
|
|
/// 시퀀스 이름을 얻어온다.
|
|
/// </summary>
|
|
/// <param name="fovInfo">FOV 키 정보</param>
|
|
/// <returns>시퀀스 이름</returns>
|
|
public static string GetSeqName(FovInfo fovInfo) {
|
|
return VisionKeys.ManualGrabFindProcSeqKey + "_" + fovInfo.GetKey();
|
|
}
|
|
}
|
|
} |