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 8850337250
Support the older GigE cameras (Manta) on rietschen
Rietschen has three Manta G-1236 on one GbE port, whose firmware predates the
names the program uses. A feature missing by its SFNC name is now looked up by
the older one (ExposureTimeAbs, AcquisitionFrameRateAbs, ExposureAutoTarget,
ExposureAutoAdjustTol), so test camera, the telemetry and the keep rule's
reads work. export_camera_profile.py picks a gige recipe for such a camera:
frame trigger off, BayerRG8 or Mono8, 60 MB/s, auto-exposure target 50 %.
At the cameras' old target of 25 every waypoint ran into frame_timeout_ms.

The camera probe now lists every camera. With several, the hardware.ini kit
writes CHOOSE_ONE, install-tower asks which is the colour one, and the profile
export is given that id - the first one the SDK lists was the NIR camera.
install-tower names the unit that holds the motor port instead of assuming
start_gimbal.service.

Tested on rietschen's NIR camera with the motor mocked, beside the running old
program: test camera PASS, a snapshot as a 3008x4112 grey JXL, a scan keeping
a picture every 5 s. Tests 542/542 (mock build). The colour camera is not yet
tested; the old program has it open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:13:04 +02:00
pgdalmeida 70a30132bf
Merge counting the picture interval from the last picture and waiting for a slow camera's next frame 2026-10-05 13:02:13 +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 62131d8083
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
pgdalmeida fb0f5117df
Count the picture interval from the last picture, and let a settle wait of 0 wait for the exposure to settle 2026-10-02 18:28:40 +02:00
pgdalmeida 4488a2181d
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
pgdalmeida d8d2fee8af
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
pgdalmeida 5a0515ab13
Test that the camera delivers frames and follows its settings to black and white 2026-09-24 15:47:58 +02:00
pgdalmeida 1a572cb074
Changed heading logic; added snapshot feature 2026-09-11 17:42:01 +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 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 90f689c829
Add per-category verbatim wire tracing 2026-06-22 22:30:26 +02:00
pgdalmeida 11a2384c53
Modularize into interfaces with real + mock implementations 2026-06-22 12:51:57 +02:00