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();
}
}
}