From 825a6c87bd9a4c4d9d114ab017b58255698437d7 Mon Sep 17 00:00:00 2001 From: atef Date: Mon, 27 Nov 2023 09:28:32 +0100 Subject: [PATCH] Add the new force calibration charge in the controller --- csharp/App/SaliMax/src/Ess/Controller.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/csharp/App/SaliMax/src/Ess/Controller.cs b/csharp/App/SaliMax/src/Ess/Controller.cs index 15adb1590..fb80e0230 100644 --- a/csharp/App/SaliMax/src/Ess/Controller.cs +++ b/csharp/App/SaliMax/src/Ess/Controller.cs @@ -1,3 +1,4 @@ +using InnovEnergy.App.SaliMax.SystemConfig; using InnovEnergy.Lib.Devices.Battery48TL; using InnovEnergy.Lib.Devices.Battery48TL.DataTypes; using InnovEnergy.Lib.Devices.Trumpf.TruConvertAc.DataTypes; @@ -187,18 +188,24 @@ public static class Controller } private static Boolean MustDoCalibrationCharge(this StatusRecord statusRecord) - { + { var calibrationChargeForced = statusRecord.Config.ForceCalibrationCharge; - var batteryCalibrationChargeRequested = statusRecord.Battery?.CalibrationChargeRequested?? false ; - var mustDoCalibrationCharge = batteryCalibrationChargeRequested || calibrationChargeForced; + var mustDoCalibrationCharge = batteryCalibrationChargeRequested || calibrationChargeForced == CalibrationChargeType.Yes || calibrationChargeForced == CalibrationChargeType.UntilEoc ; + if (statusRecord.Battery is not null) + { + if (calibrationChargeForced == CalibrationChargeType.UntilEoc && statusRecord.Battery.Eoc ) + { + statusRecord.Config.ForceCalibrationCharge = CalibrationChargeType.No; + } + } return mustDoCalibrationCharge; } - public static Double ControlGridPower(this StatusRecord status, Double targetPower) + private static Double ControlGridPower(this StatusRecord status, Double targetPower) { return ControlPower (