Collects UDP actuator packets, folding the 3x retransmit of one batch into a single burst.
More...
Collects UDP actuator packets, folding the 3x retransmit of one batch into a single burst.
Actuator delay scheduling vs the 1 Hz republish.
The delicate part of per-actuator delays is not the timer, it is the interaction with ActuatorCommander's continuous loop, which re-sends every actuator's position once a second so a rebooted board recovers. Two ways that fights a delayed command, both of which this pins:
- The republish must NOT send the delayed actuator's settled position while its delay is pending — otherwise any delay longer than the republish period is unobservable, because the final value has already gone out. (Boards latch their last command, so the actuator is simply omitted and holds its pre-transition position.)
- The republish must NOT cancel the pending schedule. Cancellation is keyed to real state transitions only; an earlier version bumped the generation on every apply and the delayed stage never fired.
Drives the real ActuatorCommander over loopback UDP and asserts on what the "boards" receive.
Definition at line 43 of file BoardListener.hpp.