コード例 #1
0
        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 { }
        }
コード例 #2
0
 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
           } };
     }
 }