示例#1
0
        private void FixSignalBuffers()
        {
            SignalBuffer signalBuffer;

            foreach (MeasurementKey key in SignalBuffers.Keys)
            {
                if (!m_retentionTimes.ContainsKey(key))
                {
                    SignalBuffers.TryRemove(key, out signalBuffer);
                }
            }

            foreach (MeasurementKey key in m_retentionTimes.Keys)
            {
                SignalBuffers.GetOrAdd(key, k => new SignalBuffer(k));
            }
        }
示例#2
0
        /// <summary>
        /// Maps the given collection of measurements to the algorithm's
        /// input type and calls the user-defined algorithm.
        /// </summary>
        /// <param name="timestamp">The timestamp of the frame of measurements being processed.</param>
        /// <param name="measurements">The collection of measurement received from the server.</param>
        void IMapper.Map(Ticks timestamp, IDictionary <MeasurementKey, IMeasurement> measurements)
        {
            SignalBuffer signalBuffer;

            CurrentFrameTime = timestamp;
            m_currentFrame   = measurements;

            Map(measurements);

            foreach (KeyValuePair <MeasurementKey, TimeSpan> kvp in m_retentionTimes)
            {
                Ticks retentionTime = ((DateTime)timestamp) - kvp.Value;

                if (SignalBuffers.TryGetValue(kvp.Key, out signalBuffer))
                {
                    signalBuffer.RetentionTime = retentionTime;
                }
            }
        }