dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::isoc::correlation Struct Reference

the bus frame clock's correlation with the timestamp clock, the same in every environment: which frame the tick serves, where the wire is now, when a frame starts More...

#include <dx_usb_isoc.h>

Public Member Functions

int64_t due (uint64_t frame, int64_t period) const
 the timestamp of a bus frame's start by the plain correlation: the tick's wait target - locked to the phase it would chase its own slop
template<typename source_t>
void lock (source_t &source, int64_t period)
 the phase exactly: spins to a frame edge, at most a frame - a frozen counter (the bus asleep before the session's first charge) leaves it unset
uint64_t now (int64_t now, int64_t period) const
 the wire now: the frame under way at now, by the correlation
template<typename source_t>
void sync (source_t &source, int64_t period, unsigned int ticks)
 the tick's sync: correlates, keeps the phase, picks the objective; ticks the slots of a round
int64_t timestamp (uint64_t frame, int64_t period) const
 the timestamp of a bus frame's start: by the phase, or by the plain correlation until lock() found one

Public Attributes

int64_t anchor {}
 the phase: the timestamp of frame 0 - unset until lock() saw a frame edge
struct { 
   uint64_t   frame 
   int64_t   timestamp 
 the timestamp clock at the frame readout More...
correlated
uint64_t objective {}

Detailed Description

the bus frame clock's correlation with the timestamp clock, the same in every environment: which frame the tick serves, where the wire is now, when a frame starts

The group's tick syncs once per tick: it reads the bus frame counter with its timestamp (correlated), locks the frame clock's phase (anchor: the least timestamp- frame a readout showed, since a readout falls anywhere within its frame - spun to a frame edge once, crept a µs per tick after, following the bus clock's drift) and picks the frame it serves (objective: one per frame - a tick behind by less than a round gets every missed frame in turn, one behind by a round or ahead is resynced). The environment's source supplies os_result readout(uint64_t& frame, int64_t& timestamp) and int64_t now(), the timestamp clock; the bus frame's period comes with every call, in the timestamp clock's units, the round's slots with the sync.

Member Function Documentation

◆ due()

int64_t dx::usb::isoc::correlation::due ( uint64_t frame,
int64_t period ) const
inline

the timestamp of a bus frame's start by the plain correlation: the tick's wait target - locked to the phase it would chase its own slop

Here is the caller graph for this function:

◆ lock()

template<typename source_t>
void dx::usb::isoc::correlation::lock ( source_t & source,
int64_t period )
inline

the phase exactly: spins to a frame edge, at most a frame - a frozen counter (the bus asleep before the session's first charge) leaves it unset

Here is the caller graph for this function:

◆ now()

uint64_t dx::usb::isoc::correlation::now ( int64_t now,
int64_t period ) const
inline

the wire now: the frame under way at now, by the correlation

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sync()

template<typename source_t>
void dx::usb::isoc::correlation::sync ( source_t & source,
int64_t period,
unsigned int ticks )
inline

the tick's sync: correlates, keeps the phase, picks the objective; ticks the slots of a round

Here is the call graph for this function:

◆ timestamp()

int64_t dx::usb::isoc::correlation::timestamp ( uint64_t frame,
int64_t period ) const
inline

the timestamp of a bus frame's start: by the phase, or by the plain correlation until lock() found one

Here is the call graph for this function:

Member Data Documentation

◆ anchor

int64_t dx::usb::isoc::correlation::anchor {}

the phase: the timestamp of frame 0 - unset until lock() saw a frame edge

◆ [struct]

struct { ... } dx::usb::isoc::correlation::correlated

◆ frame

uint64_t dx::usb::isoc::correlation::frame

◆ objective

uint64_t dx::usb::isoc::correlation::objective {}

the frame the tick serves

◆ timestamp

int64_t dx::usb::isoc::correlation::timestamp

the timestamp clock at the frame readout


The documentation for this struct was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.