fixed issue on udpstreamer trigger logic
This commit is contained in:
@@ -58,11 +58,15 @@
|
||||
* CONSUMING signal, where UDPSourceSession.cpp:538 and :516 key it on the
|
||||
* time-signal index, so signals sharing a time signal share an offset there and
|
||||
* not here — immaterial, since the mapping they compute is the same. And a
|
||||
* FIRST_SAMPLE/LAST_SAMPLE signal whose time signal is absent falls through to
|
||||
* rule 4 rather than using its declared rate; that is a malformed CONFIG, and
|
||||
* spanning arrivals is the more honest answer than trusting a rate whose anchor
|
||||
* never arrived. Neither this list nor the three above is closed: any other
|
||||
* difference you find is unexamined, not sanctioned.
|
||||
* FIRST_SAMPLE/LAST_SAMPLE signal of DECLARED ARRAY shape whose time signal is
|
||||
* absent falls through to rule 4 rather than using its declared rate; that is a
|
||||
* malformed CONFIG, and spanning arrivals is the more honest answer than
|
||||
* trusting a rate whose anchor never arrived. Note the shape qualifier: an
|
||||
* accumulated SCALAR is declared with one element, so a frame that carries no
|
||||
* time signal for it routes to rule 3, which does use the declared rate — the
|
||||
* normal case, since Accumulate flushes per signal on a timer. Neither this list
|
||||
* nor the three above is closed: any other difference you find is unexamined,
|
||||
* not sanctioned.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@@ -100,7 +104,16 @@ private:
|
||||
std::vector<double>& tsOut);
|
||||
|
||||
struct SigState {
|
||||
/** Rules 1 and 2: maps the TIME SIGNAL's epoch onto the wall clock. */
|
||||
ClockOffset offset;
|
||||
/** Rule 3's hrt branch, which maps a different epoch — accProdSec counts
|
||||
* from this signal's first usable packet, not from whatever zero the
|
||||
* time signal uses. One signal can reach both: a declared scalar with
|
||||
* FIRST_SAMPLE takes rule 2 in frames where its time signal carries an
|
||||
* element and rule 3 in frames where it does not, which Accumulate's
|
||||
* per-signal timer flushing makes ordinary. Sharing one ClockOffset
|
||||
* across the two forces a re-latch on every alternation. */
|
||||
ClockOffset accOffset;
|
||||
double lastPacketWall = 0.0;
|
||||
bool lastPacketValid = false;
|
||||
/** Raw ticks, not seconds — see the comment in the samplingRate == 0
|
||||
|
||||
Reference in New Issue
Block a user