Set the thermal camera's frame rate once it is grabbing

Set before the first startgrab after connecting, Framerate_Hz answers ok and
changes nothing: the camera went on sending its power-up 50 fps, 31 MB/s and
22 000 packets a second on tower 111, which kept all four cores clocked up for
pictures taken one every 5 s. Set after startgrab it holds (5 Hz: 2 100
packets a second).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Peter Bochmann 2026-10-15 20:10:08 +02:00
parent fc507f7407
commit 0076e623d0
Signed by: peter.bochmann
GPG Key ID: 94E8C523489B8AC1
1 changed files with 10 additions and 6 deletions

View File

@ -408,12 +408,6 @@ struct TarisCameraSource::Impl {
} }
} }
float rate = static_cast<float>(o.frame_rate_hz);
r = api->dev_setparam(dev, param::kFramerateHz, &rate, kTypeSingle);
if (!ok(r))
LOG_WARN << "thermal camera: cannot set " << o.frame_rate_hz
<< " Hz: " << describe(r) << "; it runs at its own rate";
// Polling, before and again after starting: the SDK resets it on startgrab. // Polling, before and again after starting: the SDK resets it on startgrab.
setInt32(param::kPollingEnable, 1); setInt32(param::kPollingEnable, 1);
r = api->dev_startgrab(dev, 0); r = api->dev_startgrab(dev, 0);
@ -424,6 +418,16 @@ struct TarisCameraSource::Impl {
} }
setInt32(param::kPollingEnable, 1); setInt32(param::kPollingEnable, 1);
// The frame rate only once grabbing: set before the first startgrab after
// connecting, the camera answers ok and keeps sending what it sent before
// - 50 fps from power-up, 31 MB/s and 22 000 packets a second for the SDK
// and the CPU to take in (measured on tower 111). Set now, it holds.
float rate = static_cast<float>(o.frame_rate_hz);
r = api->dev_setparam(dev, param::kFramerateHz, &rate, kTypeSingle);
if (!ok(r))
LOG_WARN << "thermal camera: cannot set " << o.frame_rate_hz
<< " Hz: " << describe(r) << "; it runs at its own rate";
std::string model; std::string model;
getString(param::kCameraName, model); getString(param::kCameraName, model);
{ {