private OpcDaItemResult[] CreateItemResults(IList <OpcDaItemDefinition> itemDefinitions, OPCITEMDEF[] pItemArray, OPCITEMRESULT[] opcDaItemResults, HRESULT[] ppErrors, bool setGroup) { var results = new OpcDaItemResult[pItemArray.Length]; for (int index = 0; index < opcDaItemResults.Length; index++) { OPCITEMRESULT opcItemResult = opcDaItemResults[index]; OpcDaItemDefinition opcItemDefinition = itemDefinitions[index]; HRESULT error = ppErrors[index]; if (error.Succeeded) { var item = new OpcDaItem(opcItemDefinition, opcItemResult, setGroup ? this : null) { UserData = opcItemDefinition.UserData }; results[index] = new OpcDaItemResult(item, error); } else { results[index] = new OpcDaItemResult(null, error); } } return(results); }
internal OpcDaItem(OpcDaItemDefinition itemDefinition, OPCITEMRESULT itemResult, OpcDaGroup @group) { Group = @group; ClientHandle = 0; ServerHandle = itemResult.hServer; ItemId = itemDefinition.ItemId; RequestedDataType = itemDefinition.RequestedDataType; CanonicalDataType = TypeConverter.FromVarEnum((VarEnum)itemResult.vtCanonicalDataType); Blob = itemResult.pBlob; AccessPath = itemDefinition.AccessPath; IsActive = itemDefinition.IsActive; AccessRights = (OpcDaAccessRights)itemResult.dwAccessRights; }
internal OpcDaItem(OpcDaItemDefinition itemDefinition, OPCITEMRESULT itemResult, OpcDaGroup @group) { Group = @group; ClientHandle = 0; ServerHandle = itemResult.hServer; ItemId = itemDefinition.ItemId; RequestedDataType = itemDefinition.RequestedDataType; CanonicalDataType = TypeConverter.FromVarEnum((VarEnum) itemResult.vtCanonicalDataType); Blob = itemResult.pBlob; AccessPath = itemDefinition.AccessPath; IsActive = itemDefinition.IsActive; AccessRights = (OpcDaAccessRights) itemResult.dwAccessRights; }
private static OpcDaGroup CreateGroupWithItems(OpcDaServer server) { // Create a group with items. OpcDaGroup group = server.AddGroup("MyGroup"); group.IsActive = true; var definition1 = new OpcDaItemDefinition { ItemId = "Bucket Brigade.Int4", IsActive = true }; var definition2 = new OpcDaItemDefinition { ItemId = "Random.Int2", IsActive = true }; OpcDaItemDefinition[] definitions = {definition1, definition2}; OpcDaItemResult[] results = group.AddItems(definitions); // Handle adding results. foreach (OpcDaItemResult result in results) { if (result.Error.Failed) Console.WriteLine("Error adding items: {0}", result.Error); } return group; }