102 lines
3.5 KiB
C#
102 lines
3.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|