67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
using System;
|
|
|
|
namespace VisionCommon {
|
|
public class SubSysInfo {
|
|
private UnitInfo _unitInfo;
|
|
public eUnitId UnitId {
|
|
get { return _unitInfo.UnitId; }
|
|
set { _unitInfo.UnitId = value; }
|
|
}
|
|
public string UnitName {
|
|
get { return _unitInfo.UnitName; }
|
|
set { _unitInfo.UnitName = value; }
|
|
}
|
|
public eSubSysId SubSysId { get; set; } = eSubSysId.None;
|
|
public string SubSysName { get; set; } = string.Empty;
|
|
|
|
public SubSysInfo(UnitInfo unitInfo, eSubSysId subSysid, string subSysName) {
|
|
_unitInfo = unitInfo.Clone();
|
|
SubSysId = subSysid;
|
|
SubSysName = subSysName;
|
|
}
|
|
|
|
public new SubSysInfo Clone() {
|
|
return new SubSysInfo(
|
|
new UnitInfo(UnitId, UnitName),
|
|
SubSysId, SubSysName);
|
|
}
|
|
|
|
public string GetKey() {
|
|
return CreateKey(UnitId, SubSysId);
|
|
}
|
|
|
|
public static string CreateKey(eUnitId unitId, eSubSysId subSysId) {
|
|
return $"{(int)unitId}_{(int)subSysId}";
|
|
}
|
|
|
|
public override string ToString() {
|
|
return $"{(int)UnitId}-{UnitName}_{(int)SubSysId}-{SubSysName}";
|
|
}
|
|
|
|
public override bool Equals(object obj) {
|
|
return Equals(obj as SubSysInfo);
|
|
}
|
|
|
|
public bool Equals(SubSysInfo subSysInfo) {
|
|
if (subSysInfo is null) {
|
|
return false;
|
|
}
|
|
|
|
if (Object.ReferenceEquals(this, subSysInfo)) {
|
|
return true;
|
|
}
|
|
|
|
return this.UnitId == subSysInfo.UnitId
|
|
&& this.SubSysId == subSysInfo.SubSysId;
|
|
}
|
|
|
|
public override int GetHashCode() {
|
|
return _unitInfo.GetHashCode() ^ SubSysId.GetHashCode();
|
|
}
|
|
|
|
public UnitInfo ToUnitInfo() {
|
|
return _unitInfo.Clone();
|
|
}
|
|
}
|
|
}
|