Use ManualControlMode to disable automatic behaviour
Test / Run tests (push) Successful in 13s

This commit is contained in:
2026-08-07 16:03:56 +02:00
parent 0ceab368ce
commit 28aaa6b1f3
+15 -14
View File
@@ -83,17 +83,19 @@ namespace PamhagenSysCtrl.Helpers {
protected static void OnUpdate(object? sender, PlantEventArgs evt) { protected static void OnUpdate(object? sender, PlantEventArgs evt) {
if (sender is not PamhagenPlant p) return; if (sender is not PamhagenPlant p) return;
if (!p.ManualControlMode) {
if (p.IsPresseQuerSchneckeActive && !p.IsAuger2Active) p.StartAuger2(); if (p.IsPresseQuerSchneckeActive && !p.IsAuger2Active) p.StartAuger2();
if (p.IsReblerActive && !p.IsAuger1Active) p.StartAuger1(); if (p.IsReblerActive && !p.IsAuger1Active) p.StartAuger1();
if (p.IsAuger1Active && !p.IsAuger2Active) p.StartAuger2(); if (p.IsAuger1Active && !p.IsAuger2Active) p.StartAuger2();
if (p.IsAuger2Active && !p.IsAuger3Active) p.StartAuger3(); 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.IsReblerActive || (p.IsMWSelected && p.FillLevelMW1 == FillState.Full) || (p.IsMW2Selected && p.FillLevelMW2 == FillState.Full)))
p.StopTroughAuger(); p.StopTroughAuger();
}
if (p.IsMP1Active && !p.MP1HasClearance) p.StopMP1(); if (p.IsMP1Active && !p.MP1HasClearance) p.StopMP1();
if (p.IsMP2Active && !p.MP2HasClearance) p.StopMP2(); if (p.IsMP2Active && !p.MP2HasClearance) p.StopMP2();
if (!p.ManualControlMode) {
if (p.MP1 == MotorState.Forward && p.FillLevelMW1 >= FillState.Half && !p.IsStirrerMW1Active) { if (p.MP1 == MotorState.Forward && p.FillLevelMW1 >= FillState.Half && !p.IsStirrerMW1Active) {
p.StartStirrerMW1(); p.StartStirrerMW1();
} else if (p.IsStirrerMW1Active && (!p.IsMP1Active || p.FillLevelMW1 < FillState.Half)) { } else if (p.IsStirrerMW1Active && (!p.IsMP1Active || p.FillLevelMW1 < FillState.Half)) {
@@ -104,6 +106,7 @@ namespace PamhagenSysCtrl.Helpers {
} else if (p.IsStirrerMW2Active && (!p.IsMP2Active || p.FillLevelMW2 < FillState.Half)) { } else if (p.IsStirrerMW2Active && (!p.IsMP2Active || p.FillLevelMW2 < FillState.Half)) {
p.StopStirrerMW2(); p.StopStirrerMW2();
} }
}
if (p.IsP12Active && !p.P12HasClearance) p.StopP12(); if (p.IsP12Active && !p.P12HasClearance) p.StopP12();
if (p.IsP3Active && !p.P3HasClearance) p.StopP3(); if (p.IsP3Active && !p.P3HasClearance) p.StopP3();
@@ -398,18 +401,16 @@ namespace PamhagenSysCtrl.Helpers {
public void SelectMW1() { public void SelectMW1() {
Actuators.SetV(58, true); Actuators.SetV(58, true);
//if (IsReblerActive) Actuators.StirrerMW1 = true;
ActuatorsChanged = true; ActuatorsChanged = true;
} }
public void SelectMW2() { public void SelectMW2() {
Actuators.SetV(58, false); Actuators.SetV(58, false);
//if (IsReblerActive) Actuators.StirrerMW2 = true;
ActuatorsChanged = true; ActuatorsChanged = true;
} }
public void StartTroughAuger() { public void StartTroughAuger() {
if (!IsReblerActive || (IsMWSelected && FillLevelMW1 == FillState.Full) || (IsMW2Selected && FillLevelMW2 == FillState.Full)) if (!ManualControlMode && (!IsReblerActive || (IsMWSelected && FillLevelMW1 == FillState.Full) || (IsMW2Selected && FillLevelMW2 == FillState.Full)))
throw new NoClearanceException("Schnecke Auffangwanne hat keine Freigabe"); throw new NoClearanceException("Schnecke Auffangwanne hat keine Freigabe");
Actuators.TroughAuger = true; Actuators.TroughAuger = true;
ActuatorsChanged = true; ActuatorsChanged = true;
@@ -422,12 +423,12 @@ namespace PamhagenSysCtrl.Helpers {
public void StartRebler() { public void StartRebler() {
Actuators.Rebler = true; Actuators.Rebler = true;
StartAuger1(); if (!ManualControlMode) StartAuger1();
ActuatorsChanged = true; ActuatorsChanged = true;
} }
public void StopRebler() { public void StopRebler() {
StopTroughAuger(); if (!ManualControlMode) StopTroughAuger();
Actuators.Rebler = false; Actuators.Rebler = false;
ActuatorsChanged = true; ActuatorsChanged = true;
} }
@@ -454,25 +455,25 @@ namespace PamhagenSysCtrl.Helpers {
public void StartAuger1() { public void StartAuger1() {
Actuators.Auger1 = true; Actuators.Auger1 = true;
StartAuger2(); if (!ManualControlMode) StartAuger2();
ActuatorsChanged = true; ActuatorsChanged = true;
} }
public void StopAuger1() { public void StopAuger1() {
if (IsReblerActive) throw new NoClearanceException("Rebler aktiv"); if (!ManualControlMode && IsReblerActive) throw new NoClearanceException("Rebler aktiv");
Actuators.Auger1 = false; Actuators.Auger1 = false;
ActuatorsChanged = true; ActuatorsChanged = true;
} }
public void StartAuger2() { public void StartAuger2() {
Actuators.Auger2 = true; Actuators.Auger2 = true;
StartAuger3(); if (!ManualControlMode) StartAuger3();
ActuatorsChanged = true; ActuatorsChanged = true;
} }
public void StopAuger2() { public void StopAuger2() {
if (IsPresseQuerSchneckeActive) throw new NoClearanceException("Presse-Querschnecke aktiv"); if (!ManualControlMode && IsPresseQuerSchneckeActive) throw new NoClearanceException("Presse-Querschnecke aktiv");
if (IsAuger1Active) throw new NoClearanceException("Förderschnecke 1 aktiv"); if (!ManualControlMode && IsAuger1Active) throw new NoClearanceException("Förderschnecke 1 aktiv");
Actuators.Auger2 = false; Actuators.Auger2 = false;
ActuatorsChanged = true; ActuatorsChanged = true;
} }
@@ -483,7 +484,7 @@ namespace PamhagenSysCtrl.Helpers {
} }
public void StopAuger3() { public void StopAuger3() {
if (IsAuger2Active) throw new NoClearanceException("Förderschnecke 2 aktiv"); if (!ManualControlMode && IsAuger2Active) throw new NoClearanceException("Förderschnecke 2 aktiv");
Actuators.Auger3 = false; Actuators.Auger3 = false;
ActuatorsChanged = true; ActuatorsChanged = true;
} }
@@ -515,7 +516,7 @@ namespace PamhagenSysCtrl.Helpers {
public void StopMP1() { public void StopMP1() {
Actuators.MP1 = MotorState.Halt; Actuators.MP1 = MotorState.Halt;
StopStirrerMW1(); if (!ManualControlMode) StopStirrerMW1();
ActuatorsChanged = true; ActuatorsChanged = true;
} }
@@ -536,7 +537,7 @@ namespace PamhagenSysCtrl.Helpers {
public void StopMP2() { public void StopMP2() {
Actuators.MP2 = MotorState.Halt; Actuators.MP2 = MotorState.Halt;
StopStirrerMW1(); if (!ManualControlMode) StopStirrerMW1();
ActuatorsChanged = true; ActuatorsChanged = true;
} }