Example #1
0
        /// <summary>
        /// Invokes callback for a read request.
        /// </summary>
        private bool InvokeCallback(TsCHdaReadValuesCompleteEventHandler callback, object results)
        {
            // check for valid result type.
            if (!typeof(TsCHdaItemValueCollection[]).IsInstanceOfType(results))
            {
                return(false);
            }

            TsCHdaItemValueCollection[] values = (TsCHdaItemValueCollection[])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 (TsCHdaItemValueCollection value in values)
            {
                if (value.Result == OpcResult.Hda.S_MOREDATA)
                {
                    return(false);
                }
            }

            // request is complete.
            return(true);
        }
 /// <summary>
 /// Starts an asynchronous read values at specific times request for all items in the trend.
 /// </summary>
 public OpcItemResult[] ReadAtTime(
     object requestHandle,
     TsCHdaReadValuesCompleteEventHandler callback,
     out IOpcRequest request)
 {
     return(ReadAtTime(GetItems(), requestHandle, callback, out request));
 }
Example #3
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 item name).</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>
        internal OpcItemResult[] ReadModified(
            TsCHdaTime startTime,
            TsCHdaTime endTime,
            int maxValues,
            OpcItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            if (_server == null)
            {
                throw new NotConnectedException();
            }

            OpcItemResult[] results = ((ITsCHdaServer)_server).ReadModified(
                startTime,
                endTime,
                maxValues,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
        /// <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 item name).</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>
        internal OpcItemResult[] ReadModified(
            TsCHdaTime startTime,
            TsCHdaTime endTime,
            int maxValues,
            OpcItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            LicenseHandler.ValidateFeatures(LicenseHandler.ProductFeature.HistoricalAccess);
            if (Server == null)
            {
                throw new NotConnectedException();
            }

            OpcItemResult[] results = ((ITsCHdaServer)Server).ReadModified(
                startTime,
                endTime,
                maxValues,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
        /// <summary>
        /// Starts an asynchronous read values at specific times request for a set of items.
        /// </summary>
        public OpcItemResult[] ReadAtTime(
            TsCHdaItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            DateTime[] timestamps = new DateTime[Timestamps.Count];

            for (int ii = 0; ii < Timestamps.Count; ii++)
            {
                timestamps[ii] = Timestamps[ii];
            }

            return(_server.ReadAtTime(timestamps, items, requestHandle, callback, out request));
        }
Example #6
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 item name).</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>
 internal OpcItemResult[] ReadRaw(
     TsCHdaTime startTime,
     TsCHdaTime endTime,
     int maxValues,
     bool includeBounds,
     OpcItem[] items,
     object requestHandle,
     TsCHdaReadValuesCompleteEventHandler callback,
     out IOpcRequest request)
 {
     if (_server == null)
     {
         throw new NotConnectedException();
     }
     return(((ITsCHdaServer)_server).ReadRaw(startTime, endTime, maxValues, includeBounds, items, requestHandle, callback, out request));
 }
        /// <summary>
        /// Starts an asynchronous read modified request for a set of items.
        /// </summary>
        public OpcItemResult[] ReadModified(
            TsCHdaItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            OpcItemResult[] results = _server.ReadModified(
                StartTime,
                EndTime,
                MaxValues,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }
        /// <summary>
        /// Starts an asynchronous read request for a set of items.
        /// </summary>
        public OpcItemResult[] Read(
            TsCHdaItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            // read raw data.
            if (Aggregate == TsCHdaAggregateID.NoAggregate)
            {
                return(ReadRaw(items, requestHandle, callback, out request));
            }

            // read processed data.
            else
            {
                return(ReadProcessed(items, requestHandle, callback, out request));
            }
        }
        /// <summary>
        /// Starts an asynchronous read processed request for a set of items.
        /// </summary>
        public OpcItemResult[] ReadProcessed(
            TsCHdaItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            TsCHdaItem[] localItems = ApplyDefaultAggregate(items);

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

            return(results);
        }
Example #10
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 item name).</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>
        internal OpcItemResult[] ReadAtTime(
            DateTime[] timestamps,
            OpcItem[] items,
            object requestHandle,
            TsCHdaReadValuesCompleteEventHandler callback,
            out IOpcRequest request)
        {
            if (_server == null)
            {
                throw new NotConnectedException();
            }

            OpcItemResult[] results = ((ITsCHdaServer)_server).ReadAtTime(
                timestamps,
                items,
                requestHandle,
                callback,
                out request);

            return(results);
        }