72 lines
1.9 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|