/// <summary> /// Asynchronously refreshes all active group items (whether they have changed or not). Inactive items are not included /// in the callback. /// </summary> /// <param name="dataSource">The data source either cache or device.</param> /// <param name="token">The task cancellation token.</param> /// <returns> /// The values of the group items. /// </returns> public Task <OpcDaItemValue[]> RefreshAsync(OpcDaDataSource dataSource, CancellationToken token) { CheckSupported(OpcDaGroupFeatures.RefreshAsync); var request = new RefreshAsyncRequest(As <OpcAsyncIO2>()); _asyncRequestManager.AddRequest(request); return(request.Start(dataSource, token)); }
/// <summary> /// Reads the specified group items. /// </summary> /// <param name="items">The group items.</param> /// <param name="dataSource">The data source.</param> /// <returns> /// The values of the group items. /// </returns> public OpcDaItemValue[] Read(IList <OpcDaItem> items, OpcDaDataSource dataSource = OpcDaDataSource.Cache) { CheckItems(items); CheckSupported(OpcDaGroupFeatures.Read); int[] serverHandles = ArrayHelpers.GetServerHandles(items); HRESULT[] ppErrors; OPCITEMSTATE[] ppItemValues = As <OpcSyncIO>().Read((OPCDATASOURCE)dataSource, serverHandles, out ppErrors); OpcDaItemValue[] result = OpcDaItemValue.Create(this, ppItemValues, ppErrors); OnValuesChanged(new OpcDaItemValuesChangedEventArgs(result)); return(result); }
public Task<OpcDaItemValue[]> Start(OpcDaDataSource dataSource, CancellationToken token) { try { int cancelId = _asyncIO2.Refresh2((OPCDATASOURCE) dataSource, TransactionId); CancellationId = cancelId; RequestHelpers.SetCancellationHandler(token, Cancel); return Task; } catch (Exception ex) { _requestManager.CompleteRequest(TransactionId); _tcs.SetException(ex); return Task; } }
public Task <OpcDaItemValue[]> Start(OpcDaDataSource dataSource, CancellationToken token) { try { int cancelId = _asyncIO2.Refresh2((OPCDATASOURCE)dataSource, TransactionId); CancellationId = cancelId; RequestHelpers.SetCancellationHandler(token, Cancel); return(Task); } catch (Exception ex) { _requestManager.CompleteRequest(TransactionId); _tcs.SetException(ex); return(Task); } }
/// <summary> /// Asynchronously refreshes all active group items (whether they have changed or not). Inactive items are not included /// in the callback. /// </summary> /// <param name="dataSource">The data source either cache or device.</param> /// <returns> /// The values of the group items. /// </returns> public Task <OpcDaItemValue[]> RefreshAsync(OpcDaDataSource dataSource = OpcDaDataSource.Cache) { return(RefreshAsync(dataSource, new CancellationToken())); }