Add buttons for controlling pumps
Test / Run tests (push) Successful in 34s

This commit is contained in:
2026-08-11 12:59:08 +02:00
parent 03c91fb55a
commit ece46846b4
4 changed files with 263 additions and 93 deletions
+4 -3
View File
@@ -30,7 +30,7 @@ namespace PamhagenSysCtrl.Helpers {
public bool AreValvesClosed(params int[] ns) => ns.All(IsValveClosed) && ns.All(WantValveClosed);
public int TroughSelector => Sensors.TroughSelector;
public bool IsMWSelected => Sensors.TroughSelector == 1;
public bool IsMW1Selected => Sensors.TroughSelector == 1;
public bool IsMW2Selected => Sensors.TroughSelector == 2;
public FillState FillLevelMW1 => Sensors.FillingLevelMW1;
public FillState FillLevelMW2 => Sensors.FillingLevelMW2;
@@ -54,6 +54,7 @@ namespace PamhagenSysCtrl.Helpers {
public bool WantMW2Selected => !Actuators.GetV(58);
public bool IsTroughAugerActive => Actuators.TroughAuger;
public bool TroughAugerHasClearance => IsReblerActive && !(IsMW1Selected && FillLevelMW1 == FillState.Full) && !(IsMW2Selected && FillLevelMW2 == FillState.Full);
public bool IsReblerActive => Actuators.Rebler;
public bool IsStirrerMW1Active => Actuators.StirrerMW1;
public bool IsStirrerMW2Active => Actuators.StirrerMW2;
@@ -88,7 +89,7 @@ namespace PamhagenSysCtrl.Helpers {
if (p.IsReblerActive && !p.IsAuger1Active) p.StartAuger1();
if (p.IsAuger1Active && !p.IsAuger2Active) p.StartAuger2();
if (p.IsAuger2Active && !p.IsAuger3Active) p.StartAuger3();
if (p.IsTroughAugerActive && (!p.IsReblerActive || (p.IsMWSelected && p.FillLevelMW1 == FillState.Full) || (p.IsMW2Selected && p.FillLevelMW2 == FillState.Full)))
if (p.IsTroughAugerActive && !p.TroughAugerHasClearance)
p.StopTroughAuger();
}
@@ -410,7 +411,7 @@ namespace PamhagenSysCtrl.Helpers {
}
public void StartTroughAuger() {
if (!ManualControlMode && (!IsReblerActive || (IsMWSelected && FillLevelMW1 == FillState.Full) || (IsMW2Selected && FillLevelMW2 == FillState.Full)))
if (!ManualControlMode && !TroughAugerHasClearance)
throw new NoClearanceException("Schnecke Auffangwanne hat keine Freigabe");
Actuators.TroughAuger = true;
ActuatorsChanged = true;