public IReadOnlyDictionary <string, double> Format(TimeSpan time) { return(new ReadOnlyDictionary <string, double>(new Dictionary <string, double> { { "value", Value }, { "min", Min.GetValueOrDefault() }, { "max", Max } })); }
void CheckMinAndMax() { if (Max.HasValue && !UnacknowledgedData.ContainsKey(Max.GetValueOrDefault())) { Max = null; } if (Min.HasValue && !UnacknowledgedData.ContainsKey(Min.GetValueOrDefault())) { Min = null; } }
public void Set(UnacknowledgedData data, int frameIndex) { UnacknowledgedData [frameIndex] = data; if (Max.HasValue) { Max = Math.Max(Max.GetValueOrDefault(), frameIndex); } else { Max = frameIndex; } if (Min.HasValue) { Min = Math.Min(Min.GetValueOrDefault(), frameIndex); } else { Min = frameIndex; } CheckMinAndMax(); }
public void AcknowledgeFrameAndOlder(int frameIndex) { if (HasError) { return; } if (!Min.HasValue) { return; } var min = Min.GetValueOrDefault(); for (var i = frameIndex; i >= min; i--) { UnacknowledgedData.Remove(i); } Min = frameIndex + 1; CheckMinAndMax(); }