Files
DP44/DataPRO/Modules/PreviousDBVersions/Version57/DatabaseExport/ISO/TestObjectChannel.cs

102 lines
3.5 KiB
C#
Raw Normal View History

2026-04-17 14:55:32 -04:00
using System;
using System.Text;
namespace DatabaseExport
{
public class TestObjectChannel : TestObjectTemplateChannel, /*INotifyPropertyChanged,*/ IComparable<TestObjectChannel>
{
private const string CURRENT_SUFFIX = "_CU";
public const int CHANNEL_IDX_UNKNOWN = -1;
public enum SquibChannelTypes
{
None, //Non-squib channels
Voltage,
Current
}
// #endregion
public string GetGraphID()
{
return SquibChannelType == SquibChannelTypes.Current ? GetId() + CURRENT_SUFFIX : GetId();
}
public string GetId()
{
return GetIdWithSpecificChannelId(Channel.Id);
}
public string GetIdWithSpecificChannelId(long id)
{
return $"{TestObject.SerialNumber}_{Channel.MMEChannelType}_{id}";
}
public SquibChannelTypes SquibChannelType
{
get; set;
}
public int CompareTo(TestObjectChannel right)
{
if (null == right) { return 1; }
if (this == right) { return 0; }
var comp = DisplayOrder.CompareTo(right.DisplayOrder);
if (0 != comp) { return comp; }
comp = Name.CompareTo(right.Name);
if (0 != comp) { return comp; }
if (null != TestObject && null != right.TestObject)
{
comp = TestObject.SerialNumberOrOriginalSerialNumber.CompareTo(right.TestObject.SerialNumberOrOriginalSerialNumber);
if (0 != comp) { return comp; }
}
return 0;
}
public string SensorSerialNumber
{
get => GetProperty("SensorSerialNumber", "") as string;
set => SetProperty("SensorSerialNumber", value);
}
private const char ChannelSeparator = 'x';
public string HardwareId
{
get => GetProperty("HardwareId", "") as string;
set
{
if (null != value)
{
var tokens = value.Split('_');
if (3 == tokens.Length)
{
var sb = new StringBuilder();
sb.AppendFormat("{0}_{1}", tokens[0], tokens[1]);
var index = tokens[2].IndexOf(ChannelSeparator);
if (index >= 0) { sb.Append(tokens[2].Substring(index)); }
value = sb.ToString();
}
}
SetProperty("HardwareId", value);
}
}
private ISO.TestObject _testObject = null;
public ISO.TestObject TestObject => _testObject;
public TestObjectChannel(TestObjectTemplateChannel copy, ISO.TestObject testObject, ISO.TestObjectTemplate template)
: base(copy, template)
{
_testObject = testObject;
}
public string GetID()
{
return GetIDWithSpecificChannelId(Channel.Id);
}
public string GetIDWithSpecificChannelId(long id)
{
return string.Format("{0}_{1}_{2}", _testObject.SerialNumber, Channel.MMEChannelType, id);
}
private int _channelIDX = CHANNEL_IDX_UNKNOWN;
public int ChannelIDX
{
get => _channelIDX;
set => _channelIDX = value;
}
}
}