Files
DP44/DataPRO/IService/Classes/Channels/TimestampDASChannel.cs
2026-04-17 14:55:32 -04:00

74 lines
2.4 KiB
C#

using System;
using DTS.Common.Enums.DASFactory;
namespace DTS.DASLib.Service
{
/// <summary>
/// Class for channels encoding sample timestamps
/// </summary>
[Serializable]
public class TimestampDASChannel : InputDASChannel
{
/// <summary>
/// CTOR to populate a channel's owning module and channel WRT that module. Calls
/// base class CTOR.
/// </summary>
/// <param name="owner">Module that contains this channel.</param>
/// <param name="channelNumber">ChannelNumber of this channel WRT owning module.</param>
public TimestampDASChannel(DASModule owner, int channelNumber)
: base(owner, channelNumber)
{
}
public TimestampDASChannel()
{
}
/// <summary>
/// If the rtc channel exists, it is "Configured".
/// </summary>
public override bool IsConfigured()
{
return true;
}
public const string MARKER = "MARKER";
public const string SEC_H = "SECONDS_HIGH";
public const string SEC_L = "SECONDS_LOW";
public const string NANOS_H = "NANOSECONDS_HIGH";
public const string NANOS_L = "NANOSECONDS_LOW";
public const string RSVD = "RESERVED";
public override string ToString()
{
switch (OwningModule.ModuleType())
{
case DFConstantsAndEnums.ModuleType.EmbeddedClockSecondsAndMarker:
switch (ModuleChannelNumber)
{
case 0:
return MARKER;
case 1:
return SEC_H;
case 2:
return SEC_L;
}
break;
case DFConstantsAndEnums.ModuleType.EmbeddedClockNanosAndPad:
switch (ModuleChannelNumber)
{
case 0:
return NANOS_H;
case 1:
return NANOS_L;
case 2:
return RSVD;
}
break;
}
return ModuleChannelNumber.ToString();
}
}
}