private void UpdateOPCTable() { try { this.dataGridViewOPC.DataSource = null; this.OPCTable.Rows.Clear(); for (int maini = 0; maini < this.OPCServerList.Count; maini++) { OPCServer osg = this.OPCServerList[maini]; for (int i = 0; i < osg.OPCItemlist.Count; i++) { Opc.Da.BrowseElement hd = osg.OPCItemlist[i]; System.Type type = null; string access = string.Empty; for (int j = 0; j < hd.Properties.Length; j++) { if (hd.Properties[j].Description.Equals("Item Value", StringComparison.CurrentCultureIgnoreCase)) { type = hd.Properties[j].DataType; } else if (hd.Properties[j].Description.Equals("Item Access Rights", StringComparison.CurrentCultureIgnoreCase)) { access = hd.Properties[j].Value.ToString(); } } OPCTable.Rows.Add(new object[] { type, hd.ItemName, access }); } } this.dataGridViewOPC.DataSource = OPCTable; for (int i = 0; i < this.dataGridViewOPC.Columns.Count; i++) { this.dataGridViewOPC.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; if (i == this.dataGridViewOPC.Columns.Count - 1) { this.dataGridViewOPC.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } ; } } catch { } }
private static void ImportTag ( AddressSpaceDataBase.TagsTableRow parentItem, string targetNamespace, UniqueName uniqueName, XmlQualifiedName parentObject, List <NodeDesign> nodes, List <InstanceDesign> parentChildren ) { Opc.Da.BrowseElement pbe = parentItem.GetBrowseElement(); if (pbe.IsItem) { VariableDesign var = new VariableDesign() { SymbolicName = new XmlQualifiedName(uniqueName.GetUniqueName(pbe.Name), targetNamespace), DisplayName = new LocalizedText() { Value = pbe.Name }, DataType = GetBaseDataType(), TypeDefinition = GetBaseDataVariableType(), Description = new LocalizedText() { Value = pbe.ItemName }, AccessLevel = AccessLevel.ReadWrite, AccessLevelSpecified = true, ValueRank = ValueRank.Scalar, ValueRankSpecified = true, WriteAccess = 0 }; parentChildren.Add(var); SortedDictionary <int, Opc.Da.ItemProperty> prprts = new SortedDictionary <int, Opc.Da.ItemProperty>(); foreach (Opc.Da.ItemProperty item in pbe.Properties) { prprts.Add(item.ID.Code, item); } if (prprts.ContainsKey(Opc.Da.Property.DATATYPE.Code)) { GetDATATYPE(var, prprts[Opc.Da.Property.DATATYPE.Code]); } GetEUTYPE(var, prprts); if (prprts.ContainsKey(Opc.Da.Property.ACCESSRIGHTS.Code)) { GetACCESSRIGHTS(var, prprts[Opc.Da.Property.ACCESSRIGHTS.Code]); } } else { ObjectDesign sf = CreateFolder(new XmlQualifiedName(uniqueName.GetUniqueName(pbe.Name), targetNamespace), pbe.ItemName, pbe.Name); nodes.Add(sf); List <InstanceDesign> myChildren = new List <InstanceDesign>(); foreach (AddressSpaceDataBase.TagsTableRow item in parentItem.GetTagsTableRows()) { ImportTag(item, targetNamespace, uniqueName, sf.SymbolicName, nodes, myChildren); } sf.Children = new ListOfChildren() { Items = myChildren.ToArray() }; sf.References = new Reference[] { new Reference() { IsInverse = true, ReferenceType = CreateXmlQualifiedName(Opc.Ua.BrowseNames.Organizes), TargetId = parentObject } }; } }