libtcspc C++ API
Streaming TCSPC and time tag data processing
Loading...
Searching...
No Matches
Timing generators

Description

Timing generators for use with tcspc::generate().

Timing generators must define the following member functions:

  • void trigger(TriggerEvent const &event), which starts a new iteration of timing generation, based on the abstime and (optionally) other fields of the trigger event,
  • auto peek() const -> std::optional<abstime_type>, which returns the abstime of the next event to be generated, if any, and
  • void pop(), which removes the next abstime,

where abstime_type is the type of the abstime fields of the tcspc::generate() processor's TriggerEvent and OutputEvent type parameters (which must match).

trigger() may be a template or overload set; it must accept the tcspc::generate()'s TriggerEvent type.

peek() must continue to return the same value if called multiple times with no call to trigger() or pop() in between.

The end of a generated sequence of timings from a given trigger is indicated by peek() returning std::nullopt.

It is guaranteed that pop() is only called when peek() returns an abstime. The timing generator must not produce any timings before the first time it is triggered: peek() must return std::nullopt when trigger() has not yet been called.

Topics

 Dithered timing generators
 Timing generators using a floating-point model with dithering.

Classes

class  tcspc::dynamic_linear_timing_generator< DataTypes >
 Timing generator that generates an equally spaced series of timings, configured by the trigger event. More...
class  tcspc::dynamic_one_shot_timing_generator< DataTypes >
 Timing generator that generates a single, delayed timing, configured by the trigger event. More...
class  tcspc::linear_timing_generator< DataTypes >
 Timing generator that generates an equally spaced series of timings. More...
class  tcspc::null_timing_generator< DataTypes >
 Timing generator that generates no timings. More...
class  tcspc::one_shot_timing_generator< DataTypes >
 Timing generator that generates a single, delayed timing. More...