61 lines
3.0 KiB
Plaintext
61 lines
3.0 KiB
Plaintext
|
|
using System;
|
||
|
|
using System.Globalization;
|
||
|
|
using System.Windows.Data;
|
||
|
|
using DTS.Common.Enums;
|
||
|
|
|
||
|
|
namespace DTS.Common.Converters
|
||
|
|
{
|
||
|
|
public class TestDataToRegionOfInterestMaximumConverter : 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 && values[3] is double postTrigger &&
|
||
|
|
values[4] is RecordingModes recordingMode)
|
||
|
|
{
|
||
|
|
switch (recordingMode)
|
||
|
|
{
|
||
|
|
case RecordingModes.CircularBuffer:
|
||
|
|
case RecordingModes.RAMActive:
|
||
|
|
case RecordingModes.MultipleEventRAMActive:
|
||
|
|
case RecordingModes.CircularBufferAndStreamSubSample:
|
||
|
|
case RecordingModes.CircularBufferPlusUART:
|
||
|
|
case RecordingModes.MultipleEventCircularBuffer:
|
||
|
|
case RecordingModes.MultipleEventCircularBufferPlusUART:
|
||
|
|
//maximum is PostTrigger
|
||
|
|
return postTrigger;
|
||
|
|
case RecordingModes.Recorder:
|
||
|
|
case RecordingModes.RecorderPlusUART:
|
||
|
|
case RecordingModes.MultipleEventRecorder:
|
||
|
|
case RecordingModes.MultipleEventRecorderPlusUART:
|
||
|
|
case RecordingModes.HybridRecorder:
|
||
|
|
case RecordingModes.HybridAndStream:
|
||
|
|
case RecordingModes.MultipleEventHybridAndStream:
|
||
|
|
case RecordingModes.MultipleEventHybridRecorder:
|
||
|
|
case RecordingModes.ContinuousRecorder:
|
||
|
|
case RecordingModes.ContinuousRecorderPlusUART:
|
||
|
|
case RecordingModes.RecordOnBoot:
|
||
|
|
case RecordingModes.RecordOnBootPlusUART:
|
||
|
|
case RecordingModes.RecorderAndStreamSubSample:
|
||
|
|
case RecordingModes.MultipleEventRecorderAndStream:
|
||
|
|
// FB16465: maximum is DataEnd. if it's currently unknown, return PostTrigger
|
||
|
|
// FB17991: could also be set to Max instead of unknown, same difference
|
||
|
|
case RecordingModes.Active:
|
||
|
|
case RecordingModes.MultipleEventActive:
|
||
|
|
// FB18333: max holds for Active too.
|
||
|
|
return values[1] is double end ? end < double.MaxValue ? end : postTrigger : postTrigger;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return double.PositiveInfinity;
|
||
|
|
}
|
||
|
|
|
||
|
|
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||
|
|
{
|
||
|
|
throw new NotImplementedException();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|