Judge the keep rule against the camera's own target, and aim Mantas at 35 %
configureSettle() read the camera's auto-exposure target, tolerance and limits before the camera was opened, so it got none of them and judged every frame against its 50 +- 5 % default until the first profile switch - on every tower. It now runs again once the camera is open. On the Alviums this brings their own IntensityControllerTolerance and, at night, the at-limit verdict from their chunk data into play. The gige recipe aims at 35 % instead of 50: at 50 the sky over the horizon burnt out at noon on rietschen, where smoke would rise. The old program ran these cameras at 23-25. Tests 542/542 (mock). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c62d8270b3
commit
7332c47d6d
|
|
@ -734,11 +734,12 @@ itself when a camera has `ExposureTimeAbs` and no `ExposureTime`: frame trigger
|
|||
off (the legacy cameras booted with `TriggerMode = On`, `Line1`), `BayerRG8` on
|
||||
the colour camera and `Mono8` on a mono one, 60 MB/s each, the frame rate at
|
||||
the camera's maximum (rietschen's RGB camera came set to 0.955 fps), and
|
||||
auto-exposure on the frame mean (`ExposureAutoAlg = Mean`) at 50 % +- 5 %, down
|
||||
to 20 us by day. That last one matters: the keep rule waits for the frame mean
|
||||
to reach 50 % +- 5 %. At the cameras' old target of 25 every waypoint ran into
|
||||
`frame_timeout_ms`, and so it did with the RGB camera's `FitRange` and 10 %
|
||||
tolerance, which fit the histogram wherever its mean lands.
|
||||
auto-exposure on the frame mean (`ExposureAutoAlg = Mean`) at 35 % +- 5 %, down
|
||||
to 20 us by day. The keep rule waits for the frame mean to reach the camera's
|
||||
own target and tolerance, read once the camera is open. With the RGB camera's
|
||||
`FitRange`, which fits the histogram wherever its mean lands, no waypoint
|
||||
settled. 35 rather than the Alvium's 50: at 50 the sky over the horizon burnt
|
||||
out at noon, where smoke would rise; the old program ran these cameras at 23-25.
|
||||
|
||||
Give `--camera` the id: with several cameras the first one the SDK lists is
|
||||
not the colour one, and the order changes from run to run. `install.sh
|
||||
|
|
|
|||
|
|
@ -151,15 +151,15 @@ _GIGE_COMMON = [
|
|||
("ExposureTimeAbs", 1000.0),
|
||||
("AcquisitionFrameRateAbs", 1000.0), # clamped to the camera's maximum
|
||||
("ChunkModeActive", False),
|
||||
# The keep rule waits for the frame mean to reach the camera's target. The
|
||||
# host starts on its default band of 50 % - rietschen's cameras were set to
|
||||
# 25, and every waypoint then ran into frame_timeout_ms (7.5 s, 2026-10-20).
|
||||
# The camera has to aim at the mean, and stop adjusting only inside the same
|
||||
# +-5 %: the RGB camera came with FitRange (which fits the histogram, wherever
|
||||
# the mean lands) and a 10 % tolerance, and no waypoint settled (2026-10-21).
|
||||
# The keep rule waits for the frame mean to reach the camera's target, +- its
|
||||
# tolerance, which it reads from the camera. The camera has to aim at the
|
||||
# mean: the RGB camera came with FitRange (which fits the histogram, wherever
|
||||
# the mean lands) and no waypoint settled (2026-10-21). 35 % rather than the
|
||||
# Alvium's 50: at 50 the sky over the horizon burnt out at noon, where smoke
|
||||
# would rise; the old program ran these cameras at 23-25.
|
||||
("ExposureAutoAlg", "Mean"),
|
||||
("ExposureAutoAdjustTol", 5),
|
||||
("ExposureAutoTarget", 50),
|
||||
("ExposureAutoTarget", 35),
|
||||
("ExposureAuto", "Continuous"),
|
||||
("GainAuto", "Continuous"),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -3627,6 +3627,12 @@ struct Application::Impl {
|
|||
return 3; // distinct from the config (1) and lock (2) exits
|
||||
}
|
||||
|
||||
// Again, now the camera is open: the keep rule reads the camera's own
|
||||
// auto-exposure target, tolerance and limits, and before open() it got
|
||||
// none of them and judged every frame against its 50 +- 5 % default -
|
||||
// until the first profile switch. Rietschen's cameras aim at 35 %.
|
||||
configureSettle();
|
||||
|
||||
pipeline->start();
|
||||
channel->publishStatus(static_cast<int>(Mode::Manual)); // until [Startup] mode says otherwise
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue