61 lines
3.1 KiB
C#
61 lines
3.1 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using System.Windows.Data;
|
|
using DTS.Common.Enums;
|
|
|
|
namespace DTS.Common.Converters
|
|
{
|
|
public class TestDataToRegionOfInterestMinimumConverter : IMultiValueConverter
|
|
{
|
|
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
//values: DataStart, DataEnd, PreTrigger, PostTrigger, RecordingMode
|
|
if (values.Length == 5)
|
|
{
|
|
if (values[2] is double preTrigger && values[3] is double postTrigger &&
|
|
values[4] is RecordingModes recordingMode)
|
|
{
|
|
switch (recordingMode)
|
|
{
|
|
case RecordingModes.CircularBuffer:
|
|
case RecordingModes.RAMActive:
|
|
case RecordingModes.MultipleEventRAMActive:
|
|
case RecordingModes.MultipleEventCircularBuffer:
|
|
case RecordingModes.CircularBufferPlusUART:
|
|
case RecordingModes.MultipleEventCircularBufferPlusUART:
|
|
case RecordingModes.CircularBufferAndStreamSubSample:
|
|
case RecordingModes.MultipleEventCircularBufferAndStream:
|
|
//minimum is -PreTrigger
|
|
return -1D * preTrigger;
|
|
case RecordingModes.Recorder:
|
|
case RecordingModes.RecorderPlusUART:
|
|
case RecordingModes.HybridRecorder:
|
|
case RecordingModes.HybridAndStream:
|
|
case RecordingModes.MultipleEventHybridAndStream:
|
|
case RecordingModes.MultipleEventHybridRecorder:
|
|
case RecordingModes.MultipleEventRecorder:
|
|
case RecordingModes.MultipleEventRecorderPlusUART:
|
|
case RecordingModes.ContinuousRecorder:
|
|
case RecordingModes.ContinuousRecorderPlusUART:
|
|
case RecordingModes.RecordOnBoot:
|
|
case RecordingModes.RecordOnBootPlusUART:
|
|
case RecordingModes.RecorderAndStreamSubSample:
|
|
case RecordingModes.MultipleEventRecorderAndStream:
|
|
case RecordingModes.Active:
|
|
case RecordingModes.MultipleEventActive:
|
|
// FB16465: minimum is DataStart. if it's currently unknown, return -PostTrigger
|
|
// FB17991: could also be set to Min instead of unknown, same difference
|
|
return values[0] is double recStart ? recStart > double.MinValue ? recStart : -1D * postTrigger : -1D * postTrigger;
|
|
}
|
|
}
|
|
}
|
|
return double.NegativeInfinity;
|
|
}
|
|
|
|
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|