Пример #1
0
        /// <summary>
        /// Sends an asynchronous request to read item values that have been deleted or replaced.
        /// </summary>
        /// <param name="startTime">The beginning of the history period to read.</param>
        /// <param name="endTime">The end of the history period to be read.</param>
        /// <param name="maxValues">The number of values to be read for each item.</param>
        /// <param name="items">The set of items to read (must include the server handle).</param>
        /// <param name="requestHandle">An identifier for the request assigned by the caller.</param>
        /// <param name="callback">A delegate used to receive notifications when the request completes.</param>
        /// <param name="request">An object that contains the state of the request (used to cancel the request).</param>
        /// <returns>A set of results containing any errors encountered when the server validated the items.</returns>
        public IdentifiedResult[] ReadModified(
            Time startTime,
            Time endTime,
            int maxValues,
            ItemIdentifier[]       items,
            object requestHandle,
            ReadValuesEventHandler callback,
            out IRequest request)
        {
            if (m_server == null)
            {
                throw new NotConnectedException();
            }

            IdentifiedResult[] results = ((IServer)m_server).ReadModified(
                startTime,
                endTime,
                maxValues,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
Пример #2
0
        /// <summary>
        /// Sends an asynchronous request to read processed data from the historian database for a set of items.
        /// </summary>
        /// <param name="startTime">The beginning of the history period to read.</param>
        /// <param name="endTime">The end of the history period to be read.</param>
        /// <param name="resampleInterval">The interval between returned values.</param>
        /// <param name="items">The set of items to read (must include the server handle).</param>
        /// <param name="requestHandle">An identifier for the request assigned by the caller.</param>
        /// <param name="callback">A delegate used to receive notifications when the request completes.</param>
        /// <param name="request">An object that contains the state of the request (used to cancel the request).</param>
        /// <returns>A set of results containing any errors encountered when the server validated the items.</returns>
        public IdentifiedResult[] ReadProcessed(
            Time startTime,
            Time endTime,
            decimal resampleInterval,
            Item[]                   items,
            object requestHandle,
            ReadValuesEventHandler callback,
            out IRequest request)
        {
            if (m_server == null)
            {
                throw new NotConnectedException();
            }

            IdentifiedResult[] results = ((IServer)m_server).ReadProcessed(
                startTime,
                endTime,
                resampleInterval,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
Пример #3
0
        /// <summary>
        /// Invokes callback for a read request.
        /// </summary>
        private bool InvokeCallback(ReadValuesEventHandler callback, object results)
        {
            // check for valid result type.
            if (!typeof(ItemValueCollection[]).IsInstanceOfType(results))
            {
                return(false);
            }

            ItemValueCollection[] values = (ItemValueCollection[])results;

            // update item handles and actual times.
            UpdateResults(values);

            try
            {
                callback(this, values);
            }
            catch
            {
                // ignore exceptions in the callbacks.
            }

            // check if all data has been sent.
            foreach (ItemValueCollection value in values)
            {
                if (value.ResultID == ResultID.Hda.S_MOREDATA)
                {
                    return(false);
                }
            }

            // request is complete.
            return(true);
        }
Пример #4
0
 /// <summary>
 /// Starts an asynchronous read values at specific times request for all items in the trend.
 /// </summary>
 public IdentifiedResult[] ReadAtTime(
     object requestHandle,
     ReadValuesEventHandler callback,
     out IRequest request)
 {
     return(ReadAtTime(GetItems(), requestHandle, callback, out request));
 }
Пример #5
0
 public IdentifiedResult[] Read(Item[] items, object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     if (this.AggregateID == 0)
     {
         return(this.ReadRaw(items, requestHandle, callback, out request));
     }
     return(this.ReadProcessed(items, requestHandle, callback, out request));
 }
Пример #6
0
 public IdentifiedResult[] ReadAtTime(Item[] items, object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     DateTime[] timestamps = new DateTime[this.Timestamps.Count];
     for (int i = 0; i < this.Timestamps.Count; i++)
     {
         timestamps[i] = this.Timestamps[i];
     }
     return(this.m_server.ReadAtTime(timestamps, items, requestHandle, callback, out request));
 }
Пример #7
0
 /// <summary>
 /// Sends an asynchronous request to read raw data from the historian database for a set of items.
 /// </summary>
 /// <param name="startTime">The beginning of the history period to read.</param>
 /// <param name="endTime">The end of the history period to be read.</param>
 /// <param name="maxValues">The number of values to be read for each item.</param>
 /// <param name="includeBounds">Whether the bounding item values should be returned.</param>
 /// <param name="items">The set of items to read (must include the server handle).</param>
 /// <param name="requestHandle">An identifier for the request assigned by the caller.</param>
 /// <param name="callback">A delegate used to receive notifications when the request completes.</param>
 /// <param name="request">An object that contains the state of the request (used to cancel the request).</param>
 /// <returns>A set of results containing any errors encountered when the server validated the items.</returns>
 public IdentifiedResult[] ReadRaw(
     Time startTime,
     Time endTime,
     int maxValues,
     bool includeBounds,
     ItemIdentifier[]       items,
     object requestHandle,
     ReadValuesEventHandler callback,
     out IRequest request)
 {
     if (m_server == null)
     {
         throw new NotConnectedException();
     }
     return(((IServer)m_server).ReadRaw(startTime, endTime, maxValues, includeBounds, items, requestHandle, callback, out request));
 }
Пример #8
0
        /// <summary>
        /// Starts an asynchronous read modified request for a set of items.
        /// </summary>
        public IdentifiedResult[] ReadModified(
            Item[]                 items,
            object requestHandle,
            ReadValuesEventHandler callback,
            out IRequest request)
        {
            IdentifiedResult[] results = m_server.ReadModified(
                StartTime,
                EndTime,
                MaxValues,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
Пример #9
0
        /// <summary>
        /// Starts an asynchronous read request for a set of items.
        /// </summary>
        public IdentifiedResult[] Read(
            Item[]                 items,
            object requestHandle,
            ReadValuesEventHandler callback,
            out IRequest request)
        {
            // read raw data.
            if (AggregateID == Opc.Hda.AggregateID.NOAGGREGATE)
            {
                return(ReadRaw(items, requestHandle, callback, out request));
            }

            // read processed data.
            else
            {
                return(ReadProcessed(items, requestHandle, callback, out request));
            }
        }
Пример #10
0
        /// <summary>
        /// Starts an asynchronous read processed request for a set of items.
        /// </summary>
        public IdentifiedResult[] ReadProcessed(
            Item[]                 items,
            object requestHandle,
            ReadValuesEventHandler callback,
            out IRequest request)
        {
            Item[] localItems = ApplyDefaultAggregate(items);

            IdentifiedResult[] results = m_server.ReadProcessed(
                StartTime,
                EndTime,
                ResampleInterval,
                localItems,
                requestHandle,
                callback,
                out request);

            return(results);
        }
Пример #11
0
        /// <summary>
        /// Sends an asynchronous request to read item values at specific times.
        /// </summary>
        /// <param name="timestamps">The set of timestamps to use when reading items values.</param>
        /// <param name="items">The set of items to read (must include the server handle).</param>
        /// <param name="requestHandle">An identifier for the request assigned by the caller.</param>
        /// <param name="callback">A delegate used to receive notifications when the request completes.</param>
        /// <param name="request">An object that contains the state of the request (used to cancel the request).</param>
        /// <returns>A set of results containing any errors encountered when the server validated the items.</returns>
        public IdentifiedResult[] ReadAtTime(
            DateTime[]             timestamps,
            ItemIdentifier[]       items,
            object requestHandle,
            ReadValuesEventHandler callback,
            out IRequest request)
        {
            if (m_server == null)
            {
                throw new NotConnectedException();
            }

            IdentifiedResult[] results = ((IServer)m_server).ReadAtTime(
                timestamps,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
Пример #12
0
 private bool InvokeCallback(ReadValuesEventHandler callback, object results)
 {
     if (!typeof(ItemValueCollection[]).IsInstanceOfType(results))
     {
         return(false);
     }
     ItemValueCollection[] valuesArray = (ItemValueCollection[])results;
     this.UpdateResults(valuesArray);
     try
     {
         callback(this, valuesArray);
     }
     catch
     {
     }
     foreach (ItemValueCollection values in valuesArray)
     {
         if (values.ResultID == ResultID.Hda.S_MOREDATA)
         {
             return(false);
         }
     }
     return(true);
 }
Пример #13
0
 public IdentifiedResult[] ReadRaw(ItemIdentifier[] items, object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     return(this.m_server.ReadRaw(this.StartTime, this.EndTime, this.MaxValues, this.IncludeBounds, items, requestHandle, callback, out request));
 }
Пример #14
0
 public IdentifiedResult[] ReadRaw(object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     return(this.Read(this.GetItems(), requestHandle, callback, out request));
 }
Пример #15
0
 public IdentifiedResult[] ReadProcessed(Item[] items, object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     Item[] itemArray = this.ApplyDefaultAggregate(items);
     return(this.m_server.ReadProcessed(this.StartTime, this.EndTime, this.ResampleInterval, itemArray, requestHandle, callback, out request));
 }
Пример #16
0
 public IdentifiedResult[] ReadModified(Item[] items, object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     return(this.m_server.ReadModified(this.StartTime, this.EndTime, this.MaxValues, items, requestHandle, callback, out request));
 }
Пример #17
0
 public IdentifiedResult[] ReadAtTime(DateTime[] timestamps, ItemIdentifier[] items, object requestHandle, ReadValuesEventHandler callback, out IRequest request)
 {
     if (base.m_server == null)
     {
         throw new NotConnectedException();
     }
     return(((Opc.Hda.IServer)base.m_server).ReadAtTime(timestamps, items, requestHandle, callback, out request));
 }