source: normalise UDPS signal dimensions in to_info; comment tidy

This commit is contained in:
Martino Ferrari committed 2026-10-31 20:02:55 +01:00
1 parent 504bc193ea
commit 4ae91bd58b
3 files changed
+19 -10

No files matched your search

+6 -6
View File
@@ -366,8 +366,8 @@ std::uint32_t Acquisition::build_stamps(const Frame& frame, int time_signal,
if (time_source_ != 2 && time_signal >= 0 &&
time_signal < static_cast<int>(frame.num_signals)) {
const SignalInfo& ts = frame.signals[time_signal];
// How the client indexes a signal's values depends on its shape
// (`udps_frame_value`): a scalar carries one value per batched cycle, so the
// How a frame indexes a signal's values depends on its shape
// (`Frame::value`): a scalar carries one value per batched cycle, so the
// stamp of sample k is (sample=k, elem=0); a multi-element signal carries one
// *sample* of `elements` values per packet, so the stamp of sample k is
// (sample=0, elem=k). Passing the scalar form for both is why FULL_ARRAY time
@@ -966,7 +966,7 @@ void Acquisition::on_data(const Frame& frame) {
const double raw =
ch.elements > 1
? frame.value(static_cast<std::uint32_t>(ch.signal), 0,
std::min<std::uint32_t>(k, ch.elements - 1))
std::min<std::uint32_t>(k, ch.elements - 1))
: frame.value(static_cast<std::uint32_t>(ch.signal), k, 0);
// Every sample is read and accumulated even when only one in `period` is stored:
// that is the whole point of the filter. Skipping the read -- which is what the
@@ -1202,10 +1202,10 @@ void Acquisition::backfill_from(const Frame& frame, const Partition& part,
const double raw =
channels[i].elements > 1
? frame.value(static_cast<std::uint32_t>(channels[i].signal), 0,
std::min<std::uint32_t>(static_cast<std::uint32_t>(k),
channels[i].elements - 1))
std::min<std::uint32_t>(static_cast<std::uint32_t>(k),
channels[i].elements - 1))
: frame.value(static_cast<std::uint32_t>(channels[i].signal),
static_cast<std::uint32_t>(k), 0);
static_cast<std::uint32_t>(k), 0);
acc += raw * channels[i].gain + channels[i].offset;
}
const f32 value = static_cast<f32>(acc / double(period));