ConcentratorBase Class

Measurement concentrator base class.

Definition

Namespace: Gemstone.Timeseries
Assembly: Gemstone.Timeseries (in Gemstone.Timeseries.dll) Version: 1.0.128 -- Release Build+e2476c52e94864f123f37e60764c948e49eb89eb
public abstract class ConcentratorBase : IDisposable
Inheritance
Object    ConcentratorBase
Derived
Implements
IDisposable

Remarks

This class synchronizes (i.e., sorts by timestamp) real-time measurements.

Note that your lag time should be defined as it relates to the rate at which data is coming into the concentrator. Make sure you allow enough time for transmission of data over the network allowing any needed time for possible network congestion. Lead time should be defined as your confidence in the accuracy of your local clock (e.g., if you set lead time to 2, this means you trust that your local clock is within plus or minus 2 seconds of real-time.)

This concentrator is designed to sort measurements being transmitted in real-time for data being sent at rates of at least 1 sample per second. Slower rates (e.g., once every few seconds) are not supported since sorting data at these speeds would be trivial. There is no defined maximum number of supported samples per second - but keep in mind that CPU utilization will increase as the measurement volume and frame rate increase.

Constructors

ConcentratorBase Creates a new ConcentratorBase.
ConcentratorBase(Int32, Double, Double) Creates a new ConcentratorBase from specified parameters.

Properties

AllowPreemptivePublishing Gets or sets flag that allows system to preemptively publish frames assuming all ExpectedMeasurements have arrived.
AllowSortsByArrival Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps to be sorted by arrival time.
AveragePublicationTimePerFrame Gets the average required frame publication time, in seconds.
DiscardedMeasurements Gets the total number of measurements that have been discarded because of old timestamps (i.e., measurements that were outside the time deviation tolerance from base time, past or future).
DownsampledMeasurements Gets the total number of down-sampled measurements processed by the concentrator.
DownsamplingMethod Gets or sets the DownsamplingMethod to be used by the concentrator.
Enabled Gets or sets the current enabled state of concentrator.
ExpectedMeasurements Gets or sets the expected number of measurements to be assigned to a single frame.
FramesAheadOfSchedule Gets the total number of frames ahead of schedule processed by the concentrator.
FramesPerSecond Gets or sets the number of frames per second.
IgnoreBadTimestamps Gets or sets flag that determines if bad timestamps (as determined by measurement's timestamp quality) should be ignored when sorting measurements.
LagTicks Gets defined past time deviation tolerance, in ticks.
LagTime Gets or sets the allowed past time deviation tolerance, in seconds (can be sub-second).
LastDiscardedMeasurement Gets a reference the last IMeasurement that was discarded by the concentrator.
LastDiscardedMeasurementLatency Gets the calculated latency of the last IMeasurement that was discarded by the concentrator.
LastFrame Gets reference to the last published IFrame.
LatestMeasurements Gets reference to the collection of absolute latest received measurement values.
LeadTime Gets or sets the allowed future time deviation tolerance, in seconds (can be sub-second).
Log Log messages generated by an adapter.
MaximumPublicationTimeout Gets or sets the maximum frame publication timeout in milliseconds, set to Infinite(-1) to wait indefinitely.
MeasurementsSortedByArrival Gets the total number of measurements that were sorted by arrival because the measurement reported a bad timestamp quality.
MissedSortsByTimeout Gets the total number of missed sorts by timeout processed by the concentrator.
PerformTimestampReasonabilityCheck Gets or sets flag that determines if timestamp reasonability checks should be performed on incoming measurements (i.e., measurement timestamps are compared to system clock for reasonability using LeadTime tolerance).
ProcessByReceivedTimestamp Gets or sets flag that determines if concentrator should sort measurements by received time.
ProcessedMeasurements Gets the total number of measurements successfully sorted.
ProcessingInterval Gets or sets the desired processing interval, in milliseconds, for the adapter.
PublishedFrames Gets the total number of published frames.
PublishedMeasurements Gets the total number of published measurements.
QueueState Gets detailed state of concentrator frame queue.
RealTime Gets the most accurate time value that is available. If UseLocalClockAsRealTime = true, then this function will return UtcNow. Otherwise, this function will return the timestamp of the most recent measurement, or UtcNow if no measurement timestamps are within time deviation tolerances as specified by the LeadTime value.
ReceivedMeasurements Gets the total number of measurements ever requested for sorting.
RoundToNearestTimestamp Gets or sets a value to indicate whether the concentrator should round to the nearest frame timestamp rather than rounding down to the nearest timestamps.
RunTime Gets the total amount of time, in seconds, that the concentrator has been active.
StartTime Gets the UTC time the concentrator was started.
Status Gets current detailed state and status of concentrator for display purposes.
StopTime Gets the UTC time the concentrator was stopped.
TicksPerFrame Gets the number of ticks per frame.
TimeResolution Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.
TotalPublicationTime Gets the total number of seconds frames have spent in the publication process since concentrator started.
TrackLatestMeasurements Gets or sets flag to start tracking the absolute latest received measurement values.
UseLocalClockAsRealTime Gets or sets flag that determines whether or not to use the local clock time as real-time.
UsePrecisionTimer Gets or sets flag that determines if precision timer should be used for frame publication.
WaitHandleExpirations Gets the total number of wait handle expirations encountered due to delayed precision timer releases.

Methods

AssignMeasurementToFrame Assigns IMeasurement to its associated IFrame.
CreateNewFrame Creates a new IFrame for the given timestamp.
Dispose Releases all the resources used by the ConcentratorBase object.
Dispose(Boolean) Releases the unmanaged resources used by the ConcentratorBase object and optionally releases the managed resources.
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Finalize Releases the unmanaged resources before the ConcentratorBase object is reclaimed by GC.
(Overrides ObjectFinalize)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
MillisecondsFromRealTime Returns the deviation, in milliseconds, that the given number of ticks is from real-time (i.e., RealTime).
OnDiscardingMeasurements Raises the DiscardingMeasurements event.
OnProcessException Raises the ProcessException event.
OnUnpublishedSamples Raises the UnpublishedSamples event.
PublishFrame Publish IFrame of time-aligned collection of IMeasurement values that arrived within the concentrator's defined LagTime.
ResetStatistics Resets the statistics of the concentrator.
SecondsFromRealTime Returns the deviation, in seconds, that the given number of ticks is from real-time (i.e., RealTime).
SortMeasurement Sorts the IMeasurement placing the data point in its proper IFrame.
SortMeasurements Sorts each IMeasurement placing each data point in its proper IFrame.
Start Starts the concentrator, if it is not already running.
Stop Stops the concentrator.
ToStringReturns a string that represents the current object.
(Inherited from Object)

Events

DiscardingMeasurements This event is raised if there are any measurements being discarded during the sorting process.
Disposed This event is raised when ConcentratorBase is disposed.
ProcessException This event is raised if there is an exception encountered while attempting to process a frame in the sample queue.
UnpublishedSamples This event is raised every 5 seconds allowing consumer to track current number of unpublished seconds of data in the queue.

See Also