96 lines
3.0 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|