74 lines
2.9 KiB
C#
74 lines
2.9 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace VisionCommon {
|
|
public class ItemManagerBase {
|
|
private static readonly object _Lock = new object();
|
|
private static Dictionary<SubSysInfo, Dictionary<object, string>> _TimeStamps = new Dictionary<SubSysInfo, Dictionary<object, string>>();
|
|
private static Dictionary<AlignInfo, Dictionary<object, string>> _AlignTimeStamps = new Dictionary<AlignInfo, Dictionary<object, string>>();
|
|
|
|
/// <summary>
|
|
/// 특정 서브시스템에 대한 동기화된 공정 결과 시간을 저장
|
|
/// </summary>
|
|
/// <param name="subSysInfo">서브시스템 정보</param>
|
|
/// <param name="procResult">공정 결과</param>
|
|
/// <returns></returns>
|
|
public static string GetTimeStamp(SubSysInfo subSysInfo, object procResult) {
|
|
lock (_Lock) {
|
|
if (!_TimeStamps.ContainsKey(subSysInfo)) {
|
|
_TimeStamps.Add(subSysInfo, new Dictionary<object, string>());
|
|
}
|
|
|
|
if (!_TimeStamps[subSysInfo].ContainsKey(procResult)) {
|
|
_TimeStamps[subSysInfo][procResult] = DateTime.Now.ToString("HH:mm:ss:ff");
|
|
}
|
|
|
|
return _TimeStamps[subSysInfo][procResult];
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 특정 서브시스템에 대한 공정 결과 시간 초기화
|
|
/// </summary>
|
|
/// <param name="subSysInfo">서브시스템 정보</param>
|
|
public static void Clear(SubSysInfo subSysInfo) {
|
|
if (_TimeStamps.ContainsKey(subSysInfo)) {
|
|
_TimeStamps[subSysInfo].Clear();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 특정 얼라인에 대한 동기화된 공정 결과 시간을 저장
|
|
/// </summary>
|
|
/// <param name="alignInfo">얼라인 정보</param>
|
|
/// <param name="procResult">공정 결과</param>
|
|
/// <returns></returns>
|
|
public static string GetTimeStamp(AlignInfo alignInfo, object procResult) {
|
|
lock (_Lock) {
|
|
if (!_AlignTimeStamps.ContainsKey(alignInfo)) {
|
|
_AlignTimeStamps.Add(alignInfo, new Dictionary<object, string>());
|
|
}
|
|
|
|
if (!_AlignTimeStamps[alignInfo].ContainsKey(procResult)) {
|
|
_AlignTimeStamps[alignInfo][procResult] = DateTime.Now.ToString("HH:mm:ss:ff");
|
|
}
|
|
|
|
return _AlignTimeStamps[alignInfo][procResult];
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 특정 얼라인에 대한 공정 결과 시간 초기화
|
|
/// </summary>
|
|
/// <param name="alignInfo">얼라인 정보</param>
|
|
public static void Clear(AlignInfo alignInfo) {
|
|
if (_AlignTimeStamps.ContainsKey(alignInfo)) {
|
|
_AlignTimeStamps[alignInfo].Clear();
|
|
}
|
|
}
|
|
}
|
|
} |