using DTS.Common.Enums; namespace DTS.Common.Constant.DASSpecific { public class SLICE6 { public const uint MaxAAFilterRateHz = 20000; public const int MIN_PROTOCOL_VER = 1; public const int DIAGNOS_SHUNT_DAC = 2; public const int START_REC_DELAY_IN_SECONDS = 3; public const int IN_SLICE_TILT_SENSOR_ADC_PRE = 4; public const int STACK_SENSORS = 5; public const int START_REALTIME_STREAM = 11; public const int UDP_REALTIME_STREAM = 14; // Profiles as detailed in 29378 public const int CLOCKSYNCPROFILE = 21; // minimum protocol version for PTP Domain ID per 30472 public const int PTP_DOMAIN_ID_VER = 21; public static bool IsRecordingModeSupported(RecordingModes mode, int protocolVersion) { switch (mode) { case RecordingModes.CircularBuffer: case RecordingModes.Recorder: case RecordingModes.MultipleEventCircularBuffer: case RecordingModes.MultipleEventRecorder: case RecordingModes.HybridRecorder: case RecordingModes.MultipleEventHybridRecorder: case RecordingModes.ContinuousRecorder: case RecordingModes.MultipleEventRAMActive: case RecordingModes.RAMActive: return true; //RecordingModes.S6A_DeviceStreamingOnly: //note: per Loc, S6 only supports udp streams in realtime, *not* as a streaming test mode (i.e. boot-and-stream) //result = protocolVersion >= UDP_REALTIME_STREAM; //break; default: return false; } } public static bool IsStreamingProfileSupported(UDPStreamProfile profile, int protocolVersion) { switch (profile) { //note: per Loc, S6 only supports these in realtime, *not* as a streaming test mode (i.e. boot-and-stream) case UDPStreamProfile.RTCStreaming: case UDPStreamProfile.DTS_UDP: return true; default: return false; } } public static bool IsClockSyncProfileSupported(ClockSyncProfile profile, int protocolVersion) { switch(profile) { case ClockSyncProfile.None: return true; case ClockSyncProfile.Manual: return protocolVersion < CLOCKSYNCPROFILE; case ClockSyncProfile.Slave_E2E: return protocolVersion >= CLOCKSYNCPROFILE; default: return false; } } } }