/// <summary> /// Sends an asynchronous request to read the attributes of an item. /// </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="item">The item to read (must include the server handle).</param> /// <param name="attributeIDs">The attributes to read.</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 attribute ids.</returns> public ResultCollection ReadAttributes( Time startTime, Time endTime, ItemIdentifier item, int[] attributeIDs, object requestHandle, ReadAttributesEventHandler callback, out IRequest request) { if (m_server == null) { throw new NotConnectedException(); } ResultCollection results = ((IServer)m_server).ReadAttributes( startTime, endTime, item, attributeIDs, requestHandle, callback, out request); return(results); }
/// <summary> /// Invokes callback for a read attributes request. /// </summary> private bool InvokeCallback(ReadAttributesEventHandler callback, object results) { // check for valid result type. if (!typeof(ItemAttributeCollection).IsInstanceOfType(results)) { return(false); } ItemAttributeCollection values = (ItemAttributeCollection)results; // update item handles and actual times. UpdateResults(new ItemAttributeCollection[] { values }); try { callback(this, values); } catch { // ignore exceptions in the callbacks. } // request always completes return(true); }
private bool InvokeCallback(ReadAttributesEventHandler callback, object results) { if (!typeof(ItemAttributeCollection).IsInstanceOfType(results)) { return(false); } ItemAttributeCollection attributes = (ItemAttributeCollection)results; this.UpdateResults(new ItemAttributeCollection[] { attributes }); try { callback(this, attributes); } catch { } return(true); }
/// <summary> /// Starts an asynchronous read attributes at specific times request for an item. /// </summary> public ResultCollection ReadAttributes( ItemIdentifier item, int[] attributeIDs, object requestHandle, ReadAttributesEventHandler callback, out IRequest request) { ResultCollection results = m_server.ReadAttributes( StartTime, EndTime, item, attributeIDs, requestHandle, callback, out request); return(results); }
public ResultCollection ReadAttributes(ItemIdentifier item, int[] attributeIDs, object requestHandle, ReadAttributesEventHandler callback, out IRequest request) { return(this.m_server.ReadAttributes(this.StartTime, this.EndTime, item, attributeIDs, requestHandle, callback, out request)); }