2026-01-26 14:51:28 +09:00

96 lines
3.0 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using System;
namespace VisionCommon {
public class AlignInfo {
public AlignInfo() {
_subSysInfo = new SubSysInfo(new UnitInfo(eUnitId.None,""), eSubSysId.None,"");
}
private SubSysInfo _subSysInfo;
public eUnitId UnitId {
get { return _subSysInfo.UnitId; }
set { _subSysInfo.UnitId = value; }
}
public string UnitName {
get { return _subSysInfo.UnitName; }
set { _subSysInfo.UnitName = value; }
}
public eSubSysId SubSysId {
get { return _subSysInfo.SubSysId; }
set { _subSysInfo.SubSysId = value; }
}
public string SubSysName {
get { return _subSysInfo.SubSysName; }
set { _subSysInfo.SubSysName = value; }
}
public eAlignId AlignId { get; set; } = eAlignId.None;
public string AlignName { get; set; } = string.Empty;
public AlignInfo(
eUnitId unitId, string unitName,
eSubSysId subSysId, string subSysName,
eAlignId alignId, string alignName)
: this(new SubSysInfo(new UnitInfo(unitId, unitName), subSysId, subSysName),
alignId, alignName) {
}
public AlignInfo(SubSysInfo subSysInfo, eAlignId alignId, string alignName) {
_subSysInfo = subSysInfo.Clone();
AlignId = alignId;
AlignName = alignName;
}
public new AlignInfo Clone() {
return new AlignInfo(
new SubSysInfo(new UnitInfo(UnitId, UnitName), SubSysId, SubSysName),
AlignId, AlignName);
}
public string GetKey() {
return CreateKey(UnitId, SubSysId, AlignId);
}
public static string CreateKey(eUnitId unitId, eSubSysId subSysId, eAlignId alignId) {
return $"{(int)unitId}_{(int)subSysId}_{(int)alignId}";
}
public override string ToString() {
return $"{(int)UnitId}-{UnitName}_{(int)SubSysId}-{SubSysName}_{(int)AlignId}-{AlignName}";
}
public override bool Equals(object obj) {
return Equals(obj as AlignInfo);
}
public bool Equals(AlignInfo alignInfo) {
if (alignInfo is null) {
return false;
}
if (Object.ReferenceEquals(this, alignInfo)) {
return true;
}
return this.UnitId == alignInfo.UnitId
&& this.SubSysId == alignInfo.SubSysId
&& this.AlignId == alignInfo.AlignId;
}
public override int GetHashCode() {
return _subSysInfo.GetHashCode() ^ AlignId.GetHashCode();
}
public UnitInfo ToUnitInfo() {
return _subSysInfo.ToUnitInfo();
}
public SubSysInfo ToSubSysInfo() {
return _subSysInfo.Clone();
}
}
}