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.
Loading...
Searching...
No Matches
control::ControlPorts Class Referenceabstract

Everything ControlLogic reads from or commands on the device, called from the loop task. More...

#include <control_logic.h>

Inheritance diagram for control::ControlPorts:
Controller

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.
 

Detailed Description

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.


The documentation for this class was generated from the following file: