fwt_software/include/fgc
Peter Bochmann 44b8a2e84a
Read the Manta's 12 bits: BayerRG12Packed, packed the GigE Vision 1.x way
Rietschen's RGB camera switched to 12 bits offers BayerRG12Packed, not
BayerRG12p, and the program took it for an unknown format: from 2026-10-26
11:33 every picture was saved as "legacy", undebayered raw bytes. The two
are not the same format under two names. Both put two pixels in three
bytes, but the GigE Vision 1.x packing carries the first pixel's high bits
in the first byte, where GenICam's 12p carries its low ones; read as 12p
every other pixel is scrambled.

BayerRG12Packed is now a layout of its own, unpacked and sampled for
brightness its own way and de-Bayered like 12p. Checked against the
hardware on rietschen's NIR camera (Mono12Packed, the same packing): the
12-bit frame unpacked this way differs from an 8-bit frame of the same view
by 2.8 on average, unpacked as 12p by 29. The gige recipe prefers
BayerRG12Packed, so a re-export keeps the 12 bits. Tests 544/544 (mock).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 11:46:32 +01:00
..
mock Fix what the thermal camera's first run on tower 111 showed 2026-10-14 21:01:33 +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 Give the thermal picture the time its own frame arrived 2026-10-15 19:42:32 +02:00
Config.h Run the thermal camera's NUC while the gimbal moves 2026-10-15 19:02:20 +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 Run the thermal camera's NUC while the gimbal moves 2026-10-15 19:02:20 +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 Log why a picture got no thermal frame 2026-10-15 17:59:49 +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 Read the Manta's 12 bits: BayerRG12Packed, packed the GigE Vision 1.x way 2026-10-26 11:46:32 +01: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 Run the thermal camera's NUC while the gimbal moves 2026-10-15 19:02:20 +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