fwt_software/include/fgc
Peter Bochmann 3d90af8490
Take a thermal picture beside the colour one at every waypoint
A TarisIR mini (driver = taris) is a second camera source behind a
CompositeCameraSource: the colour camera is asked first, then the thermal one
for its newest frame, and both frames carry the colour frame's timestamp.
Counts are saved 16-bit lossless under TIR/, and the CamEvent gains cal,
missed, tmax, tmed, hotx and hoty (docs/mqtt-api.md). The SDK is declared in
IrbgrabApi.h and loaded with dlopen, so no SDK file is in the repository; a
missing or unreachable camera stays offline (Health cams_offline) while the
scan goes on. scripts/fgc-setcap gives the binary cap_net_raw after a build.

Built and tested in an Ubuntu 22.04 container (mock, MQTT, Vimba+MQTT,
534/534), plus a mock run with RGB/TIR pairs. Not yet run against the camera.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 20:37:25 +02:00
..
mock Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
sensors Support the legacy towers' DHT11 and fan, and fix the installer's reflash and test steps 2026-09-28 14:43:05 +02:00
ui Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
Application.h Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
AxisSpeed.h Declare axis speed in degrees per second, not VMAX 2026-09-18 15:44:19 +02:00
Calibration.h Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
CameraProfile.h Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
CameraSettingsXml.h Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
CameraStall.h Wait for a slow camera's next frame instead of restarting the stream, and read integer camera features for the exposure check 2026-10-04 16:12:44 +02:00
CaptureScheduler.h Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
ChannelHistory.h Added an expanded connectivity view with MQTT message history 2026-09-02 12:39:21 +02:00
ChannelTopics.h Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
CommandParser.h Let a yaw-only tower aim with gimbal move, and stop it publishing a made-up pitch 2026-09-29 19:50:39 +02:00
CompositeCameraSource.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
Config.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
DiagParser.h added gimbal calibration command, added TUI prompts 2026-06-29 06:27:36 +02:00
DumpParser.h Let a tower set its encoder scale, and send no speed after a failed homing 2026-09-28 18:21:37 +02:00
FileLogSink.h Rework the dashboard keys: a/p/m for modes, n for connectivity, page keys to scroll, heading setup in the activity strip 2026-09-25 18:57:25 +02:00
FirmwareConfig.h Let a tower set its encoder scale, and send no speed after a failed homing 2026-09-28 18:21:37 +02:00
Geometry.h Let a yaw-only tower aim with gimbal move, and stop it publishing a made-up pitch 2026-09-29 19:50:39 +02:00
HardwareChecks.h Test the camera with forced dark and bright settings, and recover a camera that stops sending frames 2026-09-24 17:35:37 +02:00
HardwarePresence.h Refuse to start when the rig is missing hardware it declares 2026-09-18 14:50:50 +02:00
Hash.h Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
HeadingFit.h Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
HelpText.h added help info 2026-06-23 15:22:31 +02:00
HostMetrics.h Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
ICameraSource.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
IControlChannel.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
IEnvSensor.h added temperature and humidity sensor (SHT41) 2026-08-05 09:13:16 +02:00
IImuSource.h IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
IMotorController.h Let a yaw-only tower aim with gimbal move, and stop it publishing a made-up pitch 2026-09-29 19:50:39 +02:00
ImagePipeline.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
ImuMount.h IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
IniEdit.h Add a one-shot test command and a tool that edits the config files safely 2026-09-23 18:52:44 +02:00
IrbgrabApi.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
JpegXlEncoder.h Save raw 12-bit camera frames as 12-bit colour images, keep a waypoint's picture once the image has settled, and hold the scan when saving falls behind 2026-10-05 10:14:53 +02:00
Logger.h Take any console command over MQTT, and answer it 2026-09-25 16:43:45 +02:00
MountedImuSource.h IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
MqttControlChannel.h Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
MtiImuSource.h IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
MtiProtocol.h IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
OperatingMode.h Set in config.ini whether the tower homes and which mode it starts in, instead of the --init and --start flags 2026-09-30 16:42:48 +02:00
Paths.h Keep each tower's config, scan grid and camera profiles in ~/.config/fire_gimbal_control, out of a deploy's reach 2026-10-05 22:02:49 +02:00
PitchSetup.h Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
RawImage.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
RemoteCommands.h Take any console command over MQTT, and answer it 2026-09-25 16:43:45 +02:00
ScanGrid.h Let a yaw-only tower aim with gimbal move, and stop it publishing a made-up pitch 2026-09-29 19:50:39 +02:00
SerialMotorController.h Support the legacy towers' DHT11 and fan, and fix the installer's reflash and test steps 2026-09-28 14:43:05 +02:00
SettleRule.h Rewrite the 12-bit camera test report as a numbered paper with an abstract, figure and table captions, and units 2026-10-05 11:28:52 +02:00
SingleInstance.h Added terminal attachment/detachment 2026-08-07 17:35:32 +02:00
TarisCameraSource.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
TelemetryParser.h Support the legacy towers' DHT11 and fan, and fix the installer's reflash and test steps 2026-09-28 14:43:05 +02:00
TestReport.h Introduced harware in-situ testing 2026-07-01 10:02:34 +02:00
TestRunner.h Test the camera with forced dark and bright settings, and recover a camera that stops sending frames 2026-09-24 17:35:37 +02:00
ThermalGuard.h Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
ThermalStats.h Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
TmcCurrent.h Convert motor current from milliamps to TMC register values 2026-09-17 17:58:45 +02:00
VimbaCameraSource.h Save raw 12-bit camera frames as 12-bit colour images, keep a waypoint's picture once the image has settled, and hold the scan when saving falls behind 2026-10-05 10:14:53 +02:00