Class Namespace

  • All Implemented Interfaces:
    org.eclipse.milo.opcua.sdk.server.api.AddressSpace, org.eclipse.milo.opcua.sdk.server.api.AddressSpaceFragment, org.eclipse.milo.opcua.sdk.server.api.Namespace, org.eclipse.milo.opcua.sdk.server.api.services.AttributeHistoryServices, org.eclipse.milo.opcua.sdk.server.api.services.AttributeServices, org.eclipse.milo.opcua.sdk.server.api.services.MethodServices, org.eclipse.milo.opcua.sdk.server.api.services.MonitoredItemServices, org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices, org.eclipse.milo.opcua.sdk.server.api.services.ViewServices, org.eclipse.milo.opcua.sdk.server.Lifecycle

    public class Namespace
    extends org.eclipse.milo.opcua.sdk.server.api.ManagedNamespaceWithLifecycle
    Implements an OPC namespace for testing. This class is based on the Milo examples.
    Author:
    Holger Eichelberger, SSE
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  Namespace.ReconfigureMethod
      A method to stop processing (of a virtual machine).
      class  Namespace.StartProcessingMethod
      A method to stop processing (of a virtual machine).
      class  Namespace.StopProcessingMethod
      A method to stop processing (of a virtual machine).
      • Nested classes/interfaces inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.AttributeHistoryServices

        org.eclipse.milo.opcua.sdk.server.api.services.AttributeHistoryServices.HistoryReadContext, org.eclipse.milo.opcua.sdk.server.api.services.AttributeHistoryServices.HistoryUpdateContext
      • Nested classes/interfaces inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.AttributeServices

        org.eclipse.milo.opcua.sdk.server.api.services.AttributeServices.ReadContext, org.eclipse.milo.opcua.sdk.server.api.services.AttributeServices.WriteContext
      • Nested classes/interfaces inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.MethodServices

        org.eclipse.milo.opcua.sdk.server.api.services.MethodServices.CallContext
      • Nested classes/interfaces inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices

        org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices.AddNodesContext, org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices.AddReferencesContext, org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices.DeleteNodesContext, org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices.DeleteReferencesContext
      • Nested classes/interfaces inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.ViewServices

        org.eclipse.milo.opcua.sdk.server.api.services.ViewServices.BrowseContext, org.eclipse.milo.opcua.sdk.server.api.services.ViewServices.RegisterNodesContext, org.eclipse.milo.opcua.sdk.server.api.services.ViewServices.UnregisterNodesContext
    • Constructor Summary

      Constructors 
      Constructor Description
      Namespace​(org.eclipse.milo.opcua.sdk.server.OpcUaServer server)
      Creates a test namespace.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void addCustomStructTypeVariable​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent, java.lang.String name, org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId type, org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId encoding, java.lang.Object value)
      Adds a variable of a custom type.
      private void addMethod​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent, java.lang.String name, java.lang.String description, MethodCreator<?> creator)
      Adds a method declaration to parent.
      private void createAndAddNodes()
      Creates the nodes for in the namespace.
      private org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode createFolder​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent, java.lang.String name)
      Creates a folder node.
      private org.eclipse.milo.opcua.sdk.server.nodes.UaVariableNode createVariable​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent, java.lang.String name, org.eclipse.milo.opcua.stack.core.types.builtin.NodeId type, org.eclipse.milo.opcua.stack.core.types.builtin.Variant value, com.google.common.collect.ImmutableSet<org.eclipse.milo.opcua.sdk.core.AccessLevel> access)
      Creates a variable.
      void onDataItemsCreated​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.DataItem> dataItems)  
      void onDataItemsDeleted​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.DataItem> dataItems)  
      void onDataItemsModified​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.DataItem> dataItems)  
      void onMonitoringModeChanged​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.MonitoredItem> monitoredItems)  
      private void startBogusEventNotifier()
      Starts an event notifier.
      • Methods inherited from class org.eclipse.milo.opcua.sdk.server.api.ManagedNamespaceWithLifecycle

        getLifecycleManager, registerAddressSpace, registerNodeManager, shutdown, startup, unregisterAddressSpace, unregisterNodeManager
      • Methods inherited from class org.eclipse.milo.opcua.sdk.server.api.ManagedNamespace

        getFilter, getNamespaceIndex, getNamespaceUri, newNodeId, newNodeId, newNodeId, newNodeId, newNodeId, newQualifiedName
      • Methods inherited from class org.eclipse.milo.opcua.sdk.server.api.ManagedAddressSpace

        browse, call, createNodeFactory, getInvocationHandler, getNodeContext, getNodeFactory, getNodeManager, getReferences, getServer, read, registerNodes, unregisterNodes, write
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.AttributeHistoryServices

        historyRead, historyUpdate
      • Methods inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.AttributeServices

        read, write
      • Methods inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.MethodServices

        call
      • Methods inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.MonitoredItemServices

        onCreateDataItem, onCreateEventItem, onEventItemsCreated, onEventItemsDeleted, onEventItemsModified, onModifyDataItem, onModifyEventItem
      • Methods inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.NodeManagementServices

        addNodes, addReferences, deleteNodes, deleteReferences
      • Methods inherited from interface org.eclipse.milo.opcua.sdk.server.api.services.ViewServices

        browse, browse, getReferences, getViewCount, registerNodes, unregisterNodes
    • Field Detail

      • QNAME_TOP_FOLDER

        public static final java.lang.String QNAME_TOP_FOLDER
      • QNAME_VAR_LOT_SIZE

        public static final java.lang.String QNAME_VAR_LOT_SIZE
      • QNAME_VAR_POWER_CONSUMPTION

        public static final java.lang.String QNAME_VAR_POWER_CONSUMPTION
      • QNAME_VAR_STRUCT

        public static final java.lang.String QNAME_VAR_STRUCT
      • QNAME_EVENT_NODE

        public static final java.lang.String QNAME_EVENT_NODE
      • QNAME_METHOD_START

        public static final java.lang.String QNAME_METHOD_START
      • QNAME_METHOD_END

        public static final java.lang.String QNAME_METHOD_END
      • NAME_VAR_LOT_SIZE

        private static final java.lang.String NAME_VAR_LOT_SIZE
        See Also:
        Constant Field Values
      • NAME_VAR_POWER_CONSUMPTION

        private static final java.lang.String NAME_VAR_POWER_CONSUMPTION
        See Also:
        Constant Field Values
      • NAME_METHOD_START

        private static final java.lang.String NAME_METHOD_START
        See Also:
        Constant Field Values
      • LOT_SIZE

        private static final org.eclipse.milo.opcua.stack.core.types.structured.Argument LOT_SIZE
        Defines the lot size argument of the Namespace.ReconfigureMethod.
      • logger

        private final org.slf4j.Logger logger
      • subscriptionModel

        private final org.eclipse.milo.opcua.sdk.server.util.SubscriptionModel subscriptionModel
      • eventThread

        private volatile java.lang.Thread eventThread
      • keepPostingEvents

        private volatile boolean keepPostingEvents
      • lotSize

        private org.eclipse.milo.opcua.sdk.server.nodes.UaVariableNode lotSize
      • powConsumption

        private org.eclipse.milo.opcua.sdk.server.nodes.UaVariableNode powConsumption
    • Constructor Detail

      • Namespace

        public Namespace​(org.eclipse.milo.opcua.sdk.server.OpcUaServer server)
        Creates a test namespace.
        Parameters:
        server - the server to create the namespace for
    • Method Detail

      • createAndAddNodes

        private void createAndAddNodes()
        Creates the nodes for in the namespace.
      • createFolder

        private org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode createFolder​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent,
                                                                                  java.lang.String name)
        Creates a folder node.
        Parameters:
        parent - the parent folder (may be null for top-level parent)
        name - the name of the node (we will just use that also as nodeId, qualified name and localized name)
        Returns:
        the created folder node
      • createVariable

        private org.eclipse.milo.opcua.sdk.server.nodes.UaVariableNode createVariable​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent,
                                                                                      java.lang.String name,
                                                                                      org.eclipse.milo.opcua.stack.core.types.builtin.NodeId type,
                                                                                      org.eclipse.milo.opcua.stack.core.types.builtin.Variant value,
                                                                                      com.google.common.collect.ImmutableSet<org.eclipse.milo.opcua.sdk.core.AccessLevel> access)
        Creates a variable.
        Parameters:
        parent - the parent folder containing the new variable
        name - the name of the variable (we will just use that also as nodeId, qualified name and localized name)
        type - the type of the variable
        value - the initial value
        access - the access level
        Returns:
        the created variable node
      • addMethod

        private void addMethod​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent,
                               java.lang.String name,
                               java.lang.String description,
                               MethodCreator<?> creator)
        Adds a method declaration to parent.
        Parameters:
        parent - the parent node
        name - the name of the method
        description - a textual description of the method
        creator - the method creator functor
      • addCustomStructTypeVariable

        private void addCustomStructTypeVariable​(org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode parent,
                                                 java.lang.String name,
                                                 org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId type,
                                                 org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId encoding,
                                                 java.lang.Object value)
                                          throws java.lang.Exception
        Adds a variable of a custom type.
        Parameters:
        parent - the parent folder containing the new variable
        name - the name of the variable (we will just use that also as nodeId, qualified name and localized name)
        type - the type of the variable
        encoding - the encoding type of the variable
        value - the initial value
        Throws:
        java.lang.Exception - in case of a problem (called methods also just throw an Exception)
      • startBogusEventNotifier

        private void startBogusEventNotifier()
        Starts an event notifier.
      • onDataItemsCreated

        public void onDataItemsCreated​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.DataItem> dataItems)
      • onDataItemsModified

        public void onDataItemsModified​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.DataItem> dataItems)
      • onDataItemsDeleted

        public void onDataItemsDeleted​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.DataItem> dataItems)
      • onMonitoringModeChanged

        public void onMonitoringModeChanged​(java.util.List<org.eclipse.milo.opcua.sdk.server.api.MonitoredItem> monitoredItems)