using HC_APTBS.Models; using SkiaSharp; namespace HC_APTBS.ViewModels { /// /// Container ViewModel holding two real-time flowmeter charts: /// one for Q-Delivery and one for Q-Over. /// public sealed class FlowmeterChartViewModel { /// Chart for the Q-Delivery flowmeter (amber line). public SingleFlowChartViewModel Delivery { get; } = new("Q-Delivery", new SKColor(0xFF, 0xAE, 0x00)); /// Chart for the Q-Over flowmeter (blue line). public SingleFlowChartViewModel Over { get; } = new("Q-Over", new SKColor(0x40, 0x80, 0xFF)); /// /// Appends a sample pair to both charts. /// Must be called on the UI thread. /// public void AddSamples(double qDelivery, double qOver) { Delivery.AddValue(qDelivery); Over.AddValue(qOver); } /// /// Sets the tolerance band on the appropriate chart. /// /// Parameter name (use ). /// Center value. /// Half-width. public void SetTolerance(string paramName, double target, double tolerance) { if (paramName == BenchParameterNames.QDelivery) Delivery.SetTolerance(target, tolerance); else if (paramName == BenchParameterNames.QOver) Over.SetTolerance(target, tolerance); } /// Clears both charts. public void Clear() { Delivery.Clear(); Over.Clear(); } } }