2026-06-05 13:44:39 +09:00

114 lines
3.9 KiB
C#

using System;
using System.IO;
namespace VisionCommon {
public class FovPatternIndex : PatternIndex, ICloneable {
public eUnitId UnitId { get; set; } = 0;
public eSubSysId SubSysId { get; set; } = 0;
public eFovId FovId { get; set; } = eFovId.Fov1;
public string FovName { get; set; } = string.Empty;
public FovPatternIndex(
SubSysInfo subSysInfo, eFovId fovId, int patternId, int patternSubId = 0)
: this(subSysInfo.UnitId, subSysInfo.SubSysId, fovId, patternId, patternSubId) {
}
public FovPatternIndex(
eUnitId unitid, eSubSysId subSysId, eFovId fovId, int patternId, int patternSubId = 0)
: this(unitid, subSysId, string.Empty, fovId, patternId, patternSubId) {
}
public FovPatternIndex(
SubSysInfo subSysInfo, eFovId fovId, string fovName, int patternId, int patternSubId = 0)
: this(subSysInfo.UnitId, subSysInfo.SubSysId, fovName, fovId, patternId, patternSubId) {
}
public FovPatternIndex(FovInfo fovInfo, string fovName, int patternId, int patternSubId = 0)
: this(fovInfo.UnitId, fovInfo.SubSysId, fovName, fovInfo.FovId, patternId, patternSubId) {
}
public FovPatternIndex(
eUnitId unitid, eSubSysId subSysId, string fovName, eFovId fovId, int patternId, int patternSubId = 0) {
UnitId = unitid;
SubSysId = subSysId;
FovName = fovName;
FovId = fovId;
PatternId = patternId;
PatternSubId = patternSubId;
}
public override string GetFullId() {
return ToString();
}
public override string ToString() {
return $"{(int)UnitId}_{(int)SubSysId}_{(int)FovId}_{PatternId}_{PatternSubId}";
}
public string GetPrefix() {
return GetPrefix(UnitId, SubSysId, FovId);
}
public static string GetPrefix(
eUnitId unitId, eSubSysId subSysId, eFovId fovId) {
return $"{(int)unitId}_{(int)subSysId}_{(int)fovId}_";
}
public string GetPatternIdPrefix() {
return GetPatternIdPrefix(UnitId, SubSysId, FovId, PatternId);
}
public static string GetPatternIdPrefix(
eUnitId unitId, eSubSysId subSysId, eFovId fovId, int patternId) {
return $"{(int)unitId}_{(int)subSysId}_{(int)fovId}_{patternId}_";
}
public override string GetSubPatternDirectoryPath() {
return Path.Combine(
((int)UnitId).ToString(),
((int)SubSysId).ToString(),
((int)FovId).ToString(),
PatternId.ToString(),
PatternSubId.ToString());
}
public string GetPatternDirectoryPath() {
return Path.Combine(
((int)UnitId).ToString(),
((int)SubSysId).ToString(),
((int)FovId).ToString(),
PatternId.ToString());
}
public override object Clone() {
return new FovPatternIndex(
UnitId, SubSysId, FovName, FovId, PatternId, PatternSubId);
}
public override bool Equals(object obj) {
if (this.GetType() != obj.GetType()) {
return false;
}
return Equals(obj as FovPatternIndex);
}
public bool Equals(FovPatternIndex patternIndex) {
if (patternIndex is null) {
return false;
}
if (Object.ReferenceEquals(this, patternIndex)) {
return true;
}
return this.ToString() == patternIndex.ToString();
}
public override int GetHashCode() {
return UnitId.GetHashCode() ^ SubSysId.GetHashCode() ^
FovId.GetHashCode() ^ PatternId.GetHashCode() ^ PatternSubId.GetHashCode();
}
}
}