diff --git a/src/calng/PickyBoi.py b/src/calng/PickyBoi.py index e66ceb4621a90d894fc3cb6d127ef9764f883499..4cbf20194b55bf2a7053beece3dc334203b43fbf 100644 --- a/src/calng/PickyBoi.py +++ b/src/calng/PickyBoi.py @@ -63,6 +63,14 @@ class PickyBoi(PythonDevice): .key("input") .commit(), + + BOOL_ELEMENT(expected) + .key("breakStreamAfterEnd") + .description("If active, end the output stream after the range of selected train IDs has been forwarded.") + .assignmentOptional() + .defaultValue(False) + .commit(), + UINT64_ELEMENT(expected) .key("nextTrainToCatch") .assignmentOptional() @@ -299,6 +307,9 @@ class PickyBoi(PythonDevice): self.updateState(State.MONITORING) else: # past capture range + # if breakStreamAfterEnd is set, end the stream + if self.get("breakStreamAfterEnd"): + self.signalEndOfStream("output") if self._remaining_trains: # note: wouuld also get triggered by receiving the same train twice self.log.ERROR(f"Missed some train(s): {self._remaining_trains}")