fwt_software/tests
Peter Bochmann 474e3cac8a
Fix what the thermal camera's first run on tower 111 showed
- The thermal frame was numbered camera 0 - label RGB, and the colour file of
  the same time overwritten - because Vimba counts no camera before open().
  The composite now takes each source's configured camera count, and two
  enabled cameras may no longer share a label.
- The SDK switches LC_NUMERIC to de_DE when loaded, which made "hotx":0,4336.
  Its calls now run under a guard that restores the locale, and the JSON's
  numbers no longer go through printf.
- The camera's frame counter is always 0: new frames are told by their time,
  so the stream no longer stops after the first one.
- The LUT is empty for the first frame: it is asked again on later ones.
- The SDK is libirbgrab_x86_64-linux.so in the ld cache.
- The null channel traces the CamEvent payload it would have sent.

Tested on tower 111 with the TarisIR mini, the motors mocked: cap_net_raw is
enough, RGB/TIR pairs with one timestamp, the TIR file decodes to the counts
its CamEvent describes, profile switches 0-1-0. 536/536 in the 22.04 container.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:01:33 +02:00
..
data 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
CMakeLists.txt Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
doctest_main.cpp Add unit tests, deployment scripts, and refreshed docs 2026-06-22 13:07:03 +02:00
jxl_test_decode.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
test_axisspeed.cpp Declare axis speed in degrees per second, not VMAX 2026-09-18 15:44:19 +02:00
test_calibration.cpp added gimbal calibration command, added TUI prompts 2026-06-29 06:27:36 +02:00
test_cameraprofile.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
test_camerasettingsxml.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
test_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
test_channelhistory.cpp Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +02:00
test_command.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
test_composite.cpp Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +02:00
test_config.cpp Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +02:00
test_diagparser.cpp added gimbal calibration command, added TUI prompts 2026-06-29 06:27:36 +02:00
test_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
test_filelogsink.cpp Keep a log file, so a tower's record outlives the tmux session 2026-09-22 18:15:09 +02:00
test_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
test_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
test_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
test_hardwarepresence.cpp Refuse to start when the rig is missing hardware it declares 2026-09-18 14:50:50 +02:00
test_hash.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
test_headingfit.cpp Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
test_helptext.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
test_hostmetrics.cpp Introduced harware in-situ testing 2026-07-01 10:02:34 +02:00
test_imagepipeline.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
test_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
test_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
test_jpegxl.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
test_logger.cpp Keep a log file, so a tower's record outlives the tmux session 2026-09-22 18:15:09 +02:00
test_mcuenv.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
test_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
test_operatingmode.cpp Add a command to keep taking pictures where the gimbal points, drop unused camera commands, and fit the help on one page 2026-09-29 15:48:07 +02:00
test_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
test_pitchsetup.cpp Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
test_rawimage.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
test_remotecommands.cpp Give the tower three modes, auto, pan and manual, switched by command 2026-09-25 17:50:48 +02:00
test_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
test_scheduler.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
test_scroll.cpp Added scrolling in TUI 2026-08-21 15:25:45 +02:00
test_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
test_sht41.cpp refactor and bug fixes 2026-08-05 17:00:42 +02:00
test_singleinstance.cpp Added terminal attachment/detachment 2026-08-07 17:35:32 +02:00
test_tariscamerasource.cpp Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +02:00
test_telemetry.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
test_testreport.cpp Introduced harware in-situ testing 2026-07-01 10:02:34 +02:00
test_testrunner.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
test_thermalguard.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
test_thermalstats.cpp Take a thermal picture beside the colour one at every waypoint 2026-10-14 20:37:25 +02:00
test_tmccurrent.cpp Convert motor current from milliamps to TMC register values 2026-09-17 17:58:45 +02:00
test_uisnapshot.cpp Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00