public void Add(IMonitorData data, DateTime? currentTime) { foreach (var ds in dataSetsDict.Values) { ds.Add(data, currentTime); } }
public IEnumerable <IShape> Convert(IMonitorData monitorData) { var shapes = new List <IShape>(); //foreach(RectangleDatas rectDatas in monitorData.Rectangles) //{ // myShapes.Add(CreateMyRectangle(rectDatas)); //} shapes.AddRange(monitorData.Rectangles.Select(x => CreateRectangle(x))); shapes.AddRange(monitorData.Capsules.Select(x => CreateCapsule(x))); shapes.AddRange(monitorData.Circles.Select(x => CreateCircle(x))); shapes.AddRange(monitorData.LineSegments.Select(x => CreateLineSegmets(x))); //foreach (TargetDatas targetDatas in monitorData.Targets) //{ // IEnumerable<Circle> targetCircles = CreateMyTarget(targetDatas); // foreach(Circle circle in targetCircles) // { // myShapes.Add(circle); // } //} shapes.AddRange(monitorData.Targets.SelectMany(x => CreateTarget(x))); return(shapes); }
public void MeanAdd(IMonitorData data) { if (data.Timestamp < Timestamp) throw new ArgumentException("Timestamp of data to mean must greather than existing"); MeanTimespan = data.Timestamp - Timestamp; Value = (Value * MeanValueCount + data.Value) / (MeanValueCount + 1); ++MeanValueCount; }
public IMonitorData Fetch() { IMonitorData md = MockFetch(moving); moving++; return(md); }
public void DrawShapesOnCanvas(Canvas myCanvas) { myCanvas.Children.Clear(); IMonitorData monitorData = _monitorDataProvider.Fetch(); IEnumerable <IShape> myShapes = _converterStrategy.Convert(monitorData); foreach (IShape myShape in myShapes) { myShape.DrawOnCanvas(myCanvas); } }
/// <summary> /// Add the given data and store in the dataset computing the mean value if needed. /// </summary> public void Add(IMonitorData data, DateTime? currentTime) { if (!TimespanTotal.HasValue || points.Count == 0) // add points without mean average for default set or if empty set { points.Add(data.Clone()); } else { var last = points.GetItem(points.Count - 1); var ct = currentTime.HasValue ? currentTime.Value : DateTime.Now; // checks if last point timespan not yet overcome if (last.Timestamp + TimespanInterval.Value > ct) { last.MeanAdd(data); } else // aggregate data { points.Add(data.Clone()); } } }