Files
DP44/DataPRO/SLICECommands/RealtimeCommands/IGetRealtimeSamples.cs
2026-04-17 14:55:32 -04:00

44 lines
1.7 KiB
C#

namespace DTS.DASLib.Command.SLICE.RealtimeCommands
{
/// <summary>
/// this interface describes objects that are able to get realtime samples from
/// SLICE devices, the implementation differs based on whether it's using streaming
/// or is a SLICE6 device, etc, but all still operate through the same interface
/// </summary>
public interface IGetRealtimeSamples
{
/// <summary>
/// returns the sample number for the first sample, with all samples after that being consecutive
/// </summary>
ulong SampleNumber { get; }
ulong TimeStamp { get; }
ulong SequenceNumber { get; }
/// <summary>
/// returns all samples for the given channel
/// </summary>
/// <param name="zeroBasedChannel"></param>
/// <returns></returns>
short[] GetChannelData(int zeroBasedChannel);
/// <summary>
/// right now this holds the total channel count for the unit
/// </summary>
ushort Channels { get; set; }
/// <summary>
/// the count of samples per channel that were returned
/// if return value is 10 and there's 10 channels, there's 100 samples, or 10 samples per 10 channels
/// </summary>
int SamplesReturned { get; }
/// <summary>
/// whether to log the command or not
/// (not applicable on streaming mode as no command is executed)
/// default is normally false otherwise the log will be spammy
/// </summary>
bool LogCommands { get; set; }
/// <summary>
/// this is the execute that retrieves samples
/// </summary>
void SyncExecute();
}
}