ADocumentation Index
Fetch the complete documentation index at: https://docs.altnautica.com/llms.txt
Use this file to discover all available pages before exploring further.
CameraDriver pumps frames from a physical or networked imaging
device into the agent’s frame bus. Visible, thermal, depth, and
multi-spectral devices all share this interface.
The first-party reference is the FLIR Lepton USB UVC plugin at
altnautica/ADOSExtensions/extensions/thermal-camera-flir-lepton-usb.
The interface
Candidates
CameraCandidate carries the four fields the host needs to render
a “select a device” UI:
device_id should be stable across reboots when the bus can
produce a stable identifier (USB serial, CSI lane, RTSP URL).
Where stability is impossible (raw v4l2 indexing) the driver
should still produce a deterministic id within a single boot.
Capabilities
Returned once per session, afteropen. The host uses these to
size buffers, set the GCS preview, and gate features:
radiometric=True tells the host every pixel encodes a temperature
and FrameBuffer.radiometric_k will carry the per-pixel K matrix.
Frame buffers
data is a memoryview so downstream consumers can avoid copying
when feasible. Drivers may attach driver-specific fields under
metadata.
Manifest permissions
sensor.camera.register the host rejects
peripheral_manager.register_camera_driver(self) and the plugin
is moved to the failed state.
Registering
discover() immediately and then on every USB
hotplug and on operator-triggered rescan.
Testing without hardware
Build aMockUvcBackend (or MockSerialBackend, etc.) that
produces synthetic frames and inject it into the driver via the
constructor. The reference plugin ships exactly this fixture under
tests/. The PluginHarness from
@altnautica/plugin-sdk/harness is
the GCS-side equivalent.
See also
- Driver layer for the cross-kind contract.
- Vendor binaries when libuvc or a
vendor
.sois required. - Hardware testing for the bench-rig patterns.