92 lines
2.8 KiB
C#
92 lines
2.8 KiB
C#
using System;
|
|
|
|
namespace VisionCommon {
|
|
/// <summary>
|
|
/// 하드웨어 카메라마다 여러 개의 FovInfo를 가질 수 있다.
|
|
/// </summary>
|
|
public class FovInfo {
|
|
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 eFovId FovId { get; set; } = eFovId.None;
|
|
public string FovName { get; set; } = string.Empty;
|
|
|
|
public FovInfo(
|
|
eUnitId unitId, string unitName,
|
|
eSubSysId subSysId, string subSysName,
|
|
eFovId fovId, string fovName = "")
|
|
: this(new SubSysInfo(new UnitInfo(unitId, unitName), subSysId, subSysName),
|
|
fovId, fovName) {
|
|
}
|
|
|
|
public FovInfo(SubSysInfo subSysInfo, eFovId fovId, string fovName = "") {
|
|
_subSysInfo = subSysInfo.Clone();
|
|
FovId = fovId;
|
|
FovName = fovName;
|
|
}
|
|
|
|
public new FovInfo Clone() {
|
|
return new FovInfo(
|
|
new SubSysInfo(new UnitInfo(UnitId, UnitName), SubSysId, SubSysName),
|
|
FovId, FovName);
|
|
}
|
|
|
|
public string GetKey() {
|
|
return CreateKey(UnitId, SubSysId, FovId);
|
|
}
|
|
|
|
public static string CreateKey(eUnitId unitId, eSubSysId subSysId, eFovId fovId) {
|
|
return $"{(int)unitId}_{(int)subSysId}_{(int)fovId}";
|
|
}
|
|
|
|
public override string ToString() {
|
|
return $"{(int)UnitId}-{UnitName}_{(int)SubSysId}-{SubSysName}_{(int)FovId}-{FovName}";
|
|
}
|
|
|
|
public override bool Equals(object obj) {
|
|
return Equals(obj as FovInfo);
|
|
}
|
|
|
|
public bool Equals(FovInfo fovInfo) {
|
|
if (fovInfo is null) {
|
|
return false;
|
|
}
|
|
|
|
if (Object.ReferenceEquals(this, fovInfo)) {
|
|
return true;
|
|
}
|
|
|
|
return this.UnitId == fovInfo.UnitId
|
|
&& this.SubSysId == fovInfo.SubSysId
|
|
&& this.FovId == fovInfo.FovId;
|
|
}
|
|
|
|
public override int GetHashCode() {
|
|
return _subSysInfo.GetHashCode() ^ FovId.GetHashCode();
|
|
}
|
|
|
|
public UnitInfo ToUnitInfo() {
|
|
return _subSysInfo.ToUnitInfo();
|
|
}
|
|
|
|
public SubSysInfo ToSubSysInfo() {
|
|
return _subSysInfo.Clone();
|
|
}
|
|
}
|
|
}
|