ADTF  3.18.2
TimeStamp Synchronizer Plugin

Table of Contents

TimeStamp Synchronizer

Plugin Information
Plugin Filenamedemo_synchronizer_filter.adtfplugin
Plugin Descriptiondemo_synchronizer_filter.plugindescription
Plugin NameTimeStamp Synchronizer Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.18.2
Plugin File Version1.0
adtf3.18.2
adtf::ucom3.1.0
Component Information
NameTimeStamp Synchronizer
CIDdemo_timestamp_synchronizer.filter.adtf.cid
DescriptionUse this filter to sort incoming samples according to their timestamp.
TypeFilter
Properties
NameValueTypeDescriptionSubproperties
queue_transfer_end_timeout10000tInt64Reference timespan UNTIL which all Samples within the queue will be forwarded when the time difference between the first and last Sample will be below the property value.
queue_transfer_start_timeout20000tInt64Reference timespan AFTER which all Samples within the queue will be forwarded when the time difference between the first and last Sample exceeds the property value.
synchronous_queue_processingfalsetBoolif activated, this will force the queue to be forwarded synchronously when a Trigger is received on one of the Input Pins and the queue forwarding conditions are met.
Runner
NameActivation TypeData TriggeredData InputThread TriggeredThread CyclicTimer TriggeredTimer IntervalDescription
process_queue000000Runner to periodically trigger the function which checks the queue.
Dynamic Pins
Dynamic Input Pinstrue
Dynamic Output Pinstrue
Dynamic Input Binding Pinsfalse
Dynamic Output Binding Pinsfalse
Required Interfaces
IID
reference_clock.riddler.streaming.adtf.iid

Source Code
Remarks
  • The Filter supports dynamic input and output pins
  • It will forward data of an input Pin on an output Pin that has the same name prefix up to the last underscore (i.e. "data_in1" will be forwarded via "data_in1_out"), so you have to name those Pins accordingly
  • It sorts incoming Sample according to their tTimeStamp
  • When the time difference between the first and last sample in the queue exeeds "queue_transfer_start_timeout" then the filter will forward all items up to "queue_transfer_end_timeout"
  • This way you can set a sliding window where you are sure that no more data will be received that has a tTimeStamp within that range.
  • Setting start and end timeout to the same value will give you a continous output with the given delay
  • The Filter supports a "synchronous_queue_processing" Property that, if activated, forces the queue to be forwarded synchronously when a trigger is recieved on one of the input Pins and the queue forwarding conditions are met
  • You are advised to use a Timer Runner instead with the same interval as the queue transfer start minus the queue transfer end timeout (or what ever your application requires)