Concentrator
|
public abstract class ConcentratorBase : IDisposable
The ConcentratorBase type exposes the following members.
Name | Description | |
---|---|---|
ConcentratorBase | Creates a new ConcentratorBase. | |
ConcentratorBase(Int32, Double, Double) | Creates a new ConcentratorBase from specified parameters. |
Name | Description | |
---|---|---|
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. |
Name | Description | |
---|---|---|
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. | |
Equals | Determines 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) | |
GetHashCode | Serves as the default hash function. (Inherited from Object) | |
GetType | Gets the Type of the current instance. (Inherited from Object) | |
MemberwiseClone | Creates 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(Exception) | Obsolete. Raises the ProcessException event. | |
OnProcessException(MessageLevel, Exception, String, MessageFlags) | 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. | |
ToString | Returns a string that represents the current object. (Inherited from Object) |
Name | Description | |
---|---|---|
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. |
Name | Description | |
---|---|---|
GetEnumValueOrDefault |
Gets the enumeration constant for value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions) | |
GetEnumValueOrDefaultT |
Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions) |
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.