fwt_software/src/core
Peter Bochmann ff89643a4f
Run the thermal camera's NUC while the gimbal moves
The camera recalibrated against its shutter every 30 s and sent no frame for
about 0.7 s meanwhile: a picture falling into that had no thermal image (0.8 %
on tower 111, the 30 s rhythm shown by the new gap logging). The program now
switches the camera's timer off and runs the NUC itself (NUC_Perform, which
returns when it is done) when a move starts and nuc_interval_s (30) has passed,
or after twice that with no move. The scheduler tells the cameras of every move
(ICameraSource::moving), and a picture waits up to 1 s for a camera between
frames (frameReady) rather than go without it. The camera's own timer goes
back on exit; nuc_interval_s = 0 leaves it alone.

Measured on tower 111 before writing it: NUC_Interval = 0 gave 70 s without a
gap; NUC_Perform ran three NUCs of 657-677 ms; NUC_INPROGRESS never changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 19:02:20 +02:00
..
Application.cpp Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +02:00
AxisSpeed.cpp Declare axis speed in degrees per second, not VMAX 2026-09-18 15:44:19 +02:00
Calibration.cpp added gimbal calibration command, added TUI prompts 2026-06-29 06:27:36 +02:00
CameraProfile.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
CameraSettingsXml.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
CameraStall.cpp 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.cpp Run the thermal camera's NUC while the gimbal moves 2026-10-15 19:02:20 +02:00
ChannelHistory.cpp Added an expanded connectivity view with MQTT message history 2026-09-02 12:39:21 +02:00
ChannelTopics.cpp Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +02:00
CommandParser.cpp 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
Config.cpp Run the thermal camera's NUC while the gimbal moves 2026-10-15 19:02:20 +02:00
DiagParser.cpp added gimbal calibration command, added TUI prompts 2026-06-29 06:27:36 +02:00
DumpParser.cpp Let a tower set its encoder scale, and send no speed after a failed homing 2026-09-28 18:21:37 +02:00
FileLogSink.cpp 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.cpp Let a tower set its encoder scale, and send no speed after a failed homing 2026-09-28 18:21:37 +02:00
Geometry.cpp 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.cpp 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.cpp Support the legacy towers' DHT11 and fan, and fix the installer's reflash and test steps 2026-09-28 14:43:05 +02:00
Hash.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
HeadingFit.cpp Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
HelpText.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
HostMetrics.cpp Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
ImuMount.cpp IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
IniEdit.cpp Add a one-shot test command and a tool that edits the config files safely 2026-09-23 18:52:44 +02:00
Logger.cpp Take any console command over MQTT, and answer it 2026-09-25 16:43:45 +02:00
MtiProtocol.cpp IMU readings fixed; IMU mounting is part of config.ini; device config verified at startup 2026-09-09 12:19:53 +02:00
OperatingMode.cpp Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
Paths.cpp 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.cpp Let a declared sensor enable itself, and retire the duplicate flag 2026-09-18 15:57:10 +02:00
RawImage.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
RemoteCommands.cpp Take any console command over MQTT, and answer it 2026-09-25 16:43:45 +02:00
ScanGrid.cpp 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
SettleRule.cpp 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
SingleInstance.cpp Added terminal attachment/detachment 2026-08-07 17:35:32 +02:00
TelemetryParser.cpp 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.cpp Introduced harware in-situ testing 2026-07-01 10:02:34 +02:00
TestRunner.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
ThermalGuard.cpp 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.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
TmcCurrent.cpp Convert motor current from milliamps to TMC register values 2026-09-17 17:58:45 +02:00