Exemplo n.º 1
0
        private static void GetACCESSRIGHTS(VariableDesign var, Opc.Da.ItemProperty itemProperty)
        {
            if ((itemProperty == null) || (itemProperty.Value == null))
            {
                return;
            }
            var.AccessLevelSpecified = true;
            switch (((Opc.Da.accessRights)itemProperty.Value))
            {
            case Opc.Da.accessRights.readWritable:
                var.AccessLevel = AccessLevel.ReadWrite;
                break;

            case Opc.Da.accessRights.readable:
                var.AccessLevel = AccessLevel.Read;
                break;

            case Opc.Da.accessRights.writable:
                var.AccessLevel = AccessLevel.Write;
                break;

            default:
                var.AccessLevelSpecified = false;
                break;
            }
        }
Exemplo n.º 2
0
        private static void GetEUTYPE(VariableDesign var, SortedDictionary <int, Opc.Da.ItemProperty> prprts)
        {
            if (!prprts.ContainsKey(Opc.Da.Property.EUTYPE.Code))
            {
                return;
            }
            Opc.Da.ItemProperty eut = prprts[Opc.Da.Property.EUTYPE.Code];
            if (eut.Value == null)
            {
                return;
            }
            switch ((Opc.Da.euType)eut.Value)
            {
            case Opc.Da.euType.analog:
            {
                var.TypeDefinition = GetAnalogItemType();
                Opc.Da.ItemProperty higheu = null;
                Opc.Da.ItemProperty loweu  = null;
                if (prprts.ContainsKey(Opc.Da.Property.HIGHEU.Code))
                {
                    higheu = prprts[Opc.Da.Property.HIGHEU.Code];
                }
                if (prprts.ContainsKey(Opc.Da.Property.LOWEU.Code))
                {
                    loweu = prprts[Opc.Da.Property.LOWEU.Code];
                }
                if (higheu != null && loweu != null)
                {
                    PropertyDesign prop = new PropertyDesign()
                    {
                        SymbolicName = CreateXmlQualifiedName(BrowseNames.EURange),
                        DataType     = CreateXmlQualifiedName(BrowseNames.Range),
                        DefaultValue = CAS.UA.Common.Types.Range.CreateRange(higheu, loweu).XmlElement,
                        ValueRank    = ValueRank.Scalar,
                        AccessLevel  = AccessLevel.Read
                    };
                    var.Children = new ListOfChildren()
                    {
                        Items = new InstanceDesign[] { prop }
                    };
                }
                break;
            }

            case Opc.Da.euType.enumerated:
                var.TypeDefinition = GetMultiStateDiscreteType();
                break;

            case Opc.Da.euType.noEnum:
                var.TypeDefinition = GetTwoStateDiscreteType();
                break;

            default:
                break;
            }
        }
Exemplo n.º 3
0
 static internal Opc.Da.ItemProperty PropertyXMLSerializerFilter(Opc.Da.ItemProperty prop)
 {
     Opc.Da.ItemProperty retprop = (Opc.Da.ItemProperty)prop.Clone();
     if (prop.Value != null)
     {
         string valuetype = prop.Value.GetType().FullName;
         if (valuetype == "System.RuntimeType" || valuetype == "System.Type")
         {
             retprop.Value = ((System.Type)prop.Value).FullName;
         }
     }
     return(retprop);
 }
Exemplo n.º 4
0
        private static void GetDATATYPE(VariableDesign var, Opc.Da.ItemProperty prprty)
        {
            if (prprty == null || prprty.Value == null)
            {
                return;
            }
            Type   vt = (Type)prprty.Value;
            NodeId id = Opc.Ua.TypeInfo.GetDataTypeId(vt);

            if (id == null)
            {
                return;
            }
            Debug.Assert(id.IdType == IdType.Numeric);
            BuiltInType bit = TypeInfo.GetBuiltInType(id);

            switch (bit)
            {
            case BuiltInType.Boolean:
            case BuiltInType.Byte:
            case BuiltInType.ByteString:
            case BuiltInType.DataValue:
            case BuiltInType.DateTime:
            case BuiltInType.Double:
            case BuiltInType.Float:
            case BuiltInType.Int16:
            case BuiltInType.Int32:
            case BuiltInType.Int64:
            case BuiltInType.SByte:
            case BuiltInType.String:
            case BuiltInType.UInt16:
            case BuiltInType.UInt32:
            case BuiltInType.UInt64:
            {
                string sn = Enum.GetName(typeof(BuiltInType), TypeInfo.GetBuiltInType(id));
                var.DataType = CreateXmlQualifiedName(sn);
                break;
            }

            case BuiltInType.UInteger:
            case BuiltInType.Integer:
            case BuiltInType.LocalizedText:
            case BuiltInType.Enumeration:
            case BuiltInType.ExpandedNodeId:
            case BuiltInType.ExtensionObject:
            case BuiltInType.Guid:
            case BuiltInType.NodeId:
            case BuiltInType.Null:
            case BuiltInType.Number:
            case BuiltInType.QualifiedName:
            case BuiltInType.StatusCode:
            case BuiltInType.Variant:
            case BuiltInType.XmlElement:
            case BuiltInType.DiagnosticInfo:
            default:
                break;
            }
            if (vt.IsArray)
            {
                var.ValueRank = ValueRank.OneOrMoreDimensions;
            }
        }