common/CordonelPreadjustmentUi/Watcher/TempWatcher.cs
2026-04-23 17:50:07 +02:00

72 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xylem.Common.Hardware.WaterMeter.Genesis.DataPackages.MeasurementRecords;
namespace CordonelPreadjustmentUi.Watcher
{
public class TempWatcher : IWatcher, IWatcherNeedCalibrationData
{
private List<CalibrationRecord> cRecords;
private decimal? minTemp;
private decimal? maxTemp;
private decimal? currentTemp;
public event EventHandler OnWatcherFailed;
public Task<bool> RunWatch()
{
var t = new Task<bool>(() =>
{
var failed = false;
//if (cRecords != null && cRecords.Any())
//{
// var recordsSinceLastRun = cRecords.Where(d => d.DecodedTime <= DateTimeOffset.UtcNow.AddSeconds(WatcherInvervalS)).ToList();
// var checkTempMeter = (decimal)recordsSinceLastRun.Average(a => a.TemperatureDegC);
// currentTemp = checkTempMeter;
// if (!minTemp.HasValue || currentTemp < minTemp.Value)
// {
// minTemp = currentTemp;
// }
// if (!maxTemp.HasValue || currentTemp > maxTemp.Value)
// {
// maxTemp = currentTemp;
// }
// SetTemperature(currentTemp.Value, false);
// if (minTemp)
// {
// }
//}
if (failed)
{
OnWatcherFailed.Invoke(this, EventArgs.Empty);
}
return failed;
});
return t;
}
public void SetData(List<CalibrationRecord> l)
{
cRecords = l.ToList();
throw new NotImplementedException();
}
}
}