Add sensor delay for opening and closing valves
Test / Run tests (push) Successful in 43s

This commit is contained in:
2026-10-16 10:26:17 +02:00
parent d8c2292b24
commit d0c328d97e
10 changed files with 52 additions and 31 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
namespace PamhagenSysCtrl.Helpers.Pipeline {
public record struct Path(
INode Start,
IEnumerable<(IEdge Edge, INode Node)> Hops
(IEdge Edge, INode Node)[] Hops
) {
public readonly int Bends => Hops.Sum(h => (h.Node is not Valve && h.Node is not PipeJoin ? 1 : 0) + (h.Edge.Start.CenterX != h.Edge.End.CenterX && h.Edge.Start.CenterY != h.Edge.End.CenterY ? 1 : 0));
public readonly double Length => Hops.Sum(h => Math.Abs(h.Edge.Start.CenterX - h.Edge.End.CenterX) + Math.Abs(h.Edge.Start.CenterY - h.Edge.End.CenterY));
@@ -26,7 +26,7 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
public readonly IEnumerable<ControlledValve> BorderValves => InnerAndBorderValves.Except(InnerValves);
public readonly bool HasActivePump => Nodes.Any(n => n is Pump p && p.IsActive);
public readonly bool IsReady => InnerValves.All(v => v.IsOpen && v.WantOpen && v.IsLocked) && BorderValves.All(v => !v.IsOpen && !v.WantOpen && v.IsLocked);
public readonly bool IsReady => InnerValves.All(v => v.IsOpen && v.WantOpen && v.IsLocked) && BorderValves.All(v => v.IsClosed && !v.WantOpen && v.IsLocked);
public readonly void LockValves() {
foreach (var v in InnerAndBorderValves) {