|
Void Sentry
An AI-driven, real-time Sentry Turret platform leveraging asynchronous I/O and computer vision to deliver high-precision autonomous motion tracking on resource-constrained embedded hardware.
|
Everything ControlLogic reads from or commands on the device, called from the loop task. More...
#include <control_logic.h>
Public Member Functions | |
| virtual StickDeflection | read_stick () noexcept=0 |
| Current joystick deflection. Read only on a jog pass when the jog is not forced to stop. | |
| virtual remote::Jog | read_hud_jog () noexcept=0 |
| The HUD's jog with the clock read at this call, under the inbox lock (dead man; see Controller). | |
| virtual HudRequests | take_hud_requests () noexcept=0 |
| Takes (and clears) the HUD's pending mode, calibration and aim requests. | |
| virtual TrackSnapshot | read_track () noexcept=0 |
| Latest tracker output from the detection module. | |
| virtual aiming::Angles | turret_pose () noexcept=0 |
| Current turret pose (BaseTurret::position_deg). | |
| virtual float | turret_pan_speed () noexcept=0 |
| Current pan stepper speed, 0 at rest (BaseTurret::pan_speed). | |
| virtual void | turret_jog (float pan, float tilt) noexcept=0 |
| Manual velocity per axis, -1..1 (BaseTurret::jog). | |
| virtual void | turret_set_target (const aiming::Angles &target) noexcept=0 |
| Absolute move (BaseTurret::set_target_deg). | |
| virtual void | turret_home () noexcept=0 |
| Return home (BaseTurret::home). | |
| virtual void | reset_detection () noexcept=0 |
| Asks the detection task to drop its track and start fresh (BaseDetectionModule::reset). | |
| virtual bool | save_calibration (const aiming::AimMap &map) noexcept=0 |
| Persists a fresh calibration; false if the write failed. | |
| virtual void | log (const LogRecord &record) noexcept=0 |
| Emits one log line. | |
Everything ControlLogic reads from or commands on the device, called from the loop task.
The Controller implements it over the real hardware; tests use a recording fake. None of them throws (mailbox writes, lock-guarded copies, an NVS write), hence noexcept.