Commit Graph

16 Commits

Author SHA1 Message Date
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
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
pgdalmeida 6fa43f1e08
Slow down, then pause, the scan when the tower computer runs hot or cannot keep up 2026-10-08 17:21:58 +02:00
pgdalmeida cfd8ba9978
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
pgdalmeida 895c2f22fd
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
pgdalmeida 1a572cb074
Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +02:00
pgdalmeida 8eda0b4a36
Added IMU pitch to CamEvent; Changed IMU reading to before jxl encoding to avoid lag 2026-09-09 13:04:25 +02:00
pgdalmeida a5ad814260
Camera settings now come from VimbaX profile XMLs; explicit per-camera config 2026-09-04 14:12:05 +02:00
pgdalmeida f1342965de
Camera is now configured by per-mode files; quality gate removed 2026-08-26 15:52:47 +02:00
pgdalmeida 02d3f573cf
Image rotation is now configurable via Camera.rotation_deg 2026-08-26 14:14:49 +02:00
pgdalmeida 376e79536c
camera logic improved 2026-08-07 15:04:47 +02:00
pgdalmeida c41cb6fc6a
Added camera control 2026-07-13 19:15:38 +02:00
pgdalmeida d4d1993a25
added extra encoder tracking information 2026-06-29 23:35:45 +02:00
pgdalmeida 09b032b998
added terminal user interface (TUI) 2026-06-23 13:21:34 +02:00
pgdalmeida 14707c62ae
Migrate host to the current firmware serial protocol (counts/MOVE/ST) 2026-06-22 23:44:13 +02:00
pgdalmeida 11a2384c53
Modularize into interfaces with real + mock implementations 2026-06-22 12:51:57 +02:00