Concentrator
|
This property is normally only used when you need the concentrator to send data at faster than real-time speeds, e.g., faster than the defined FramesPerSecond. A use case would be pushing historical data through the concentrator where you want to sort and publish data as quickly as possible.
With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, e.g., a timer interval, over which to process data. A value of -1 means to use the default processing interval, i.e., use the FramesPerSecond, while a value of 0 means to process data as fast as possible.
From a real-time perspective the ConcentratorBase defines its general processing interval based on the defined FramesPerSecond property. The frames per second property, however, is more than a basic processing interval since it is used to define the intervals in one second that will become the time sorting destination "buckets" used by the concentrator irrespective of the data rate of the incoming data. As an example, if the frames per second of the concentrator is set to 30 and the source data rate is 60fps, then data will be down-sampled to 30 frames of sorted incoming data but the assigned processing interval will be used to publish the frames at the specified rate.
The implemented functionality of the process interval property will be to respond to values in the following way:
Value | Response |
---|---|
< 0 | In this case the default processing interval has been requested, as a result the ProcessByReceivedTimestamp will be set to false and the concentrator processing interval will be defined based on the currently defined FramesPerSecond property, e.g., if the frames per second is 30 the processing interval will be 33.33ms. |
0 | In this case the processing interval has been defined to process data as fast as possible, as a result the ProcessByReceivedTimestamp property will be set to true and UsePrecisionTimer property will be set to false. With a processing interval of zero data is expected to flow into the concentrator as quick as it can be provided. The FramesPerSecond property will still be used to sort data by time into appropriate frames, but the concentrator will use the reception time of the measurements against the defined lag-time to make sure needed data has arrived before publication and frames will be published at the same rate of data arrival. |
> 0 | In this case a specific processing interval has been defined for processing data, as a result both the ProcessByReceivedTimestamp and UsePrecisionTimer properties will be set to true. With a specifically defined processing interval, data is expected to flow into the concentrator at a similar rate. The FramesPerSecond property will still be used to sort data by time into appropriate frames, but the concentrator will use the reception time of the measurements against the defined lag-time to make sure needed data has arrived before publication and frames will be published on the specified interval. If multiple frames are ready for publication when the processing interval executes, then all the ready frames will be published sequentially as quickly as possible. |