/// <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)); }
/// <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)); }
/// <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); }
/// <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); }