Opc.Ua.Sample.MonitoredItemQueue.QueueValue C# (CSharp) Method

QueueValue() public method

Adds the value to the queue.
public QueueValue ( DataValue value, ServiceResult error ) : void
value DataValue The value to queue.
error ServiceResult The error to queue.
return void
        public void QueueValue(DataValue value, ServiceResult error)
        {
            long now = DateTime.UtcNow.Ticks;

            if (m_start >= 0)
            {
                // check if too soon for another sample.
                if (now < m_nextSampleTime)
                {
                    int last = m_end-1;

                    if (last < 0)
                    {
                        last = m_values.Length-1;
                    }

                    // replace last value and error.
                    m_values[last] = value;

                    if (m_errors != null)
                    {
                        m_errors[last] = error;
                    }

                    return;
                }
            }

            // update next sample time.
            if (m_nextSampleTime > 0)
            {
                long delta = now - m_nextSampleTime;

                if (m_samplingInterval > 0 && delta >= 0)
                {
                    m_nextSampleTime += ((delta/m_samplingInterval)+1)*m_samplingInterval;                 
                }
            }
            else
            {
                m_nextSampleTime = now + m_samplingInterval;
            }

            // queue next value.
            Enqueue(value, error);
        }