/// <summary> /// Adds the provided items to the subscription. /// </summary> /// <param name="items">The items <see cref="OpcDa::ItemResult"/>.</param> /// <returns> /// Array of <see cref="ItemResult"/> with results /// </returns> internal OpcDa::ItemResult[] AddItems(OpcDa::Item[] items) { if (Tag != null) { Tag.SetResultFilters((int)OpcDa.ResultFilter.All); //TODO clean up ResultFilter usage return(Tag.AddItems(items)); } else { OpcDa::ItemResult[] res = new OpcDa::ItemResult[items.Length]; for (int ix = 0; ix < items.Length; ix++) { res[ix] = new OpcDa::ItemResult(items[ix]) { ResultID = Opc.ResultID.S_OK } } ; return(res); } }
/// <summary> /// Returns the value of the specified field. /// </summary> private object GetFieldValue(OpcDa::ItemResult item, int fieldID) { object fieldValue = null; switch (fieldID) { case ITEM_NAME: { return(item.ItemName); } case ITEM_PATH: { return(item.ItemPath); } // case CLIENT_HANDLE: { return Opc.Convert.ToString(item.ClientHandle); } // case SERVER_HANDLE: { return Opc.Convert.ToString(item.ServerHandle); } case DEADBAND: { return((item.DeadbandSpecified) ? item.Deadband : fieldValue); } case SAMPLING_RATE: { return((item.SamplingRateSpecified) ? item.SamplingRate : fieldValue); } case ENABLE_BUFFERING: { return((item.EnableBufferingSpecified) ? item.EnableBuffering : fieldValue); } case ERROR: { return(GetErrorText(item.ResultID)); } } return(null); }