APIs

Show:

AddressSpace is a collection of UA nodes.

var addressSpace = new AddressSpace();

Constructor

AddressSpace

(
  • conditionTypeId
  • options
  • data
)
UAConditionBase

Parameters:

  • conditionTypeId Object
  • options Object
  • data Object

Returns:

Methods

_coerce_parent convert a 'string' , NodeId or Object into a valid and existing object

(
  • addressSpace
  • value
  • coerceFunc
)
private

Parameters:

  • addressSpace AddressSpace
  • value Object
  • coerceFunc Function

_coerceNode

(
  • node
)
private

Parameters:

  • node Object

Returns:

:

_createNode

(
  • options
)
BaseNode private

Parameters:

  • options Object
    • nodeId NodeId
    • nodeClass NodeClass
    • browseName String | QualifiedName

      the node browseName the browseName can be either a string : "Hello" a string with a namespace : "1:Hello" a QualifiedName : new QualifiedName({name:"Hello", namespaceIndex:1});

Returns:

_isFolder

(
  • addressSpace
  • folder
)
Boolean private

return true if nodeId is a Folder

Parameters:

  • addressSpace Object
  • folder Object

Returns:

Boolean:

_process_modelling_rule

(
  • references
  • modellingRule
)
private

Parameters:

  • references Array

    the array of references

  • modellingRule Reference

    the modellling Rule reference.

add_alias

(
  • alias_name
  • nodeId
)

Parameters:

  • alias_name String

    the alias name

  • nodeId NodeId

add_dataItem_stuff

(
  • variable
  • options
)
private

Parameters:

  • variable Object
  • options Object
    • definition

      [Optional]

    • valuePrecision

      [Optional]

    • modellingRule

      [Optional]

addAnalogDataItem AnalogDataItem DataItems that represent continuously-variable physical quantities ( e.g., length, temperature) , in contrast to the digital representation of data in discrete items NOTE Typical examples are the values provided by temperature sensors or pressure sensors. OPC UA defines a specific UAVariableType to identify an AnalogItem. Properties describe the possible ranges of AnalogItems.

(
  • options
)
UAVariable

Parameters:

  • options Object
    • browseName String
    • definition String
    • [valuePrecision=null] Double | Null optional
    • instrumentRange
      • low Double
      • high Double
    • engineeringUnitsRange.low Double
    • engineeringUnitsRange.high Double
    • engineeringUnits String
    • dataType NodeId

      // todo :check

    • [accessLevel= "CurrentRead | CurrentWrite"] AccessLevelFlag optional
    • [userAccessLevel= "CurrentRead | CurrentWrite"] AccessLevelFlag optional
    • value
    • [modellingRule] optional

Returns:

Example:

:

addressSpace.add_analog_dataItem({ componentOf: parentObject, browseName: "TemperatureSensor", definition: "(tempA -25) + tempB", valuePrecision: 0.5, //- instrumentRange: { low: 100 , high: 200}, // optional engineeringUnitsRange: { low: 100 , high: 200}, // mandatory engineeringUnits: standardUnits.degree_celsius,, // optional // access level accessLevel: 1 minimumSamplingInterval: 10, });

addDataItem

(
  • options
)
UAVariable

Parameters:

  • options Object
    • browseName String
    • definition String
    • [valuePrecision=null] Double | Null optional
    • dataType NodeId

      // todo :check

    • value
    • componentOf

Returns:

addEnumerationType

(
  • options
)

Parameters:

  • options Object
    • browseName String
    • enumeration Array
    • enumeration[].displayName String | LocalizedText
    • enumeration[].value Number
    • enumeration[].description String | LocalizedText | Null

addFolder

(
  • parentFolder
  • options
)
BaseNode

Parameters:

  • parentFolder Object
  • options String | Object
    • browseName String

      the name of the folder

    • [nodeId] NodeId optional

      . An optional nodeId for this object

Returns:

addMethod

(
  • parentObject
  • options
)
Object

Parameters:

  • parentObject Object
  • options Object
    • [nodeId=null] NodeId optional

      the object nodeid.

    • [browseName=""] String optional

      the object browse name.

    • [description=""] String optional

      the object description.

    • inputArguments Array
    • outputArguments Array

Returns:

Object:

addMultiStateDiscrete

(
  • options
)
Object | UAVariable

Parameters:

  • options Object
    • browseName String
    • [nodeId] NodeId optional
    • [value= 0] UInt32 optional
    • enumStrings String

      an array containing the String associated with each enumeration value, starting from 0 onward

Returns:

Object | UAVariable:

addMultiStateValueDiscrete

(
  • options
  • [options.value
)
Object | UAVariable

Parameters:

  • options Object
  • [options.value UInt32

    = 0 }

Returns:

Object | UAVariable:

Example:

 addressSpace.addMultiStateValueDiscrete({
                          componentOf:parentObj,
                          browseName: "myVar",
                          enumValues: {
                              "Red":    0xFF0000,
                              "Green":  0x00FF00,
                              "Blue":   0x0000FF
                          }
                      });
                      addMultiStateValueDiscrete(parentObj,{
                          browseName: "myVar",
                          enumValues: [
                              {
                                 value: 0xFF0000,
                                 displayName: "Red",
                                 description: " The color Red"
                              },
                              {
                                 value: 0x00FF000,
                                 displayName: "Green",
                                 description: " The color Green"
                              },
                              {
                                 value: 0x0000FF,
                                 displayName: "Blue",
                                 description: " The color Blue"
                              }
                         ]
                      });

addObjectType

(
  • options
)

add a new Object type to the address space

Parameters:

  • options Object
    • browseName String

      the object type name

    • [subtypeOf="BaseObjectType"] String | NodeId | BaseNode optional

      the base class

    • [nodeId] String | NodeId optional

      an optional nodeId for this objectType, if not provided a new nodeId will be created

    • [isAbstract= false] Boolean optional
    • [eventNotifier= 0] Integer optional
    • [postInstantiateFunc= null] Function optional

addReferenceType

(
  • options
)

Parameters:

  • options Object
    • isAbstract
    • browseName
    • inverseName

addTransition

(
  • component
  • fromState
  • toState
  • transitionNumber
)
UAObject

Parameters:

  • component UAObject
  • fromState StateType | InitialStateType
  • toState StateType | InitialStateType
  • transitionNumber Number

Returns:

UAObject:

TransitionType

addTwoStateDiscrete

(
  • options
  • [options.value
  • [options.trueState
  • [options.falseState
)
Object | UAVariable

Parameters:

  • options Object
    • browseName String
    • [nodeId] NodeId optional
  • [options.value Boolean

    }

  • [options.trueState String

    = "ON" }

  • [options.falseState String

    = "OFF" }

Returns:

Object | UAVariable:

addVariable

(
  • options
)
Object

add a variable as a component of the parent node

Parameters:

  • options Object
    • browseName String

      the variable name

    • dataType String

      the variable datatype ( "Double", "UInt8" etc...)

    • [typeDefinition="BaseDataVariableType"] optional
    • [modellingRule=null] optional

      the Modelling rule : "Optional" , "Mandatory"

    • [valueRank= -1] Int optional

      the valueRank

    • [arrayDimensions] Null | ArrayInt optional

      }

Returns:

Object:

addVariableType

(
  • options
)

add a new Variable type to the address space

Parameters:

  • options Object
    • browseName String

      the object type name

    • [subtypeOf="BaseVariableType"] String | NodeId | BaseNode optional

      the base class

    • [nodeId] String | NodeId optional

      an optional nodeId for this objectType, if not provided a new nodeId will be created

    • [isAbstract= false] Boolean optional
    • [eventNotifier= 0] Integer optional
    • dataType String | NodeId

      the variable DataType

    • [valueRank= -1] optional
    • [arrayDimensions= null] optional

      { Array>

addYArrayItem

(
  • options
)

Parameters:

  • options Object
    • componentOf NodeId
    • browseName String
    • title String
    • [instrumentRange] optional
      • [low] Double optional
      • [high] Double optional
    • engineeringUnitsRange.low Double
    • engineeringUnitsRange.high Double
    • engineeringUnits String
    • [nodeId] NodeId optional
    • accessLevel
    • userAccessLevel
    • title String
    • axisScaleType AxisScaleEnumeration
    • xAxisDefinition AxisInformation
      • engineeringUnits EURange
      • range
      • range.low
      • range.high
      • title LocalizedText
      • axisScaleType AxisScaleEnumeration
      • axisSteps Array
        =
    • value

browsePath

(
  • browsePath
)
BrowsePathResult

browse some path.

Parameters:

Returns:

BrowsePathResult:

This service can be used translates one or more browse paths into NodeIds. A browse path is constructed of a starting Node and a RelativePath. The specified starting Node identifies the Node from which the RelativePath is based. The RelativePath contains a sequence of ReferenceTypes and BrowseNames.

StatusCode
BadNodeIdUnknown
BadNodeIdInvalid
BadNothingToDo - the relative path contains an empty list )
BadBrowseNameInvalid - target name is missing in relative path
UncertainReferenceOutOfServer - The path element has targets which are in another server.
BadTooManyMatches
BadQueryTooComplex
BadNoMatch

browseSingleNode

(
  • nodeId
  • browseDescription
  • [session]
)
BrowseResult

Parameters:

Returns:

constructExtensionObject

(
  • dataType
  • [options =null]
)
Object

Parameters:

  • dataType UADataType
  • [options =null] Object optional

Returns:

Object:

Example:

        // example 1
                            var extObj = addressSpace.constructExtensionObject("BuildInfo",{ productName: "PRODUCTNAME"});
                    
                            // example 2
                            serverStatusDataType.should.be.instanceOf(UADataType);
                            serverStatusDataType.browseName.toString().should.eql("ServerStatusDataType");
                            var serverStatus  = addressSpace.constructExtensionObject(serverStatusDataType);
                            serverStatus.constructor.name.should.eql("ServerStatus");

createNode

(
  • options
)

Parameters:

  • options Object
    • nodeClass
    • [nodeVersion= "0"] String optional

      install nodeVersion

deleteNode

(
  • nodeOrNodeId
)

remove the specified Node from the address space

Parameters:

  • nodeOrNodeId Object

dispose

()

cleanup all resources maintained by this addressSpace.

extractRootViews

(
  • node
)
BaseNode[]

walk up the hierarchy of objects until a view is found objects may belong to multiples views. Note: this method doesn't return the main view => Server object.

Parameters:

Returns:

findCorrespondingBasicDataType

(
  • dataTypeNode
)

Parameters:

  • dataTypeNode Object

Example:

var dataType = addressSpace.findDataType("ns=0;i=12");
                    addressSpace.findCorrespondingBasicDataType(dataType).should.eql(DataType.String);
                    
                    var dataType = addressSpace.findDataType("ServerStatus"); // ServerStatus
                    addressSpace.findCorrespondingBasicDataType(dataType).should.eql(DataType.ExtensionObject);
                    

findDataType

(
  • dataType
  • [namespace=0]
)
DataType | Null

Find the DataType node from a NodeId or a browseName

Parameters:

  • dataType String | NodeId
  • [namespace=0] Number optional

    an optional namespace index

Returns:

DataType | Null:

Example:

 var dataDouble = addressSpace.findDataType("Double");
                    
                     var dataDouble = addressSpace.findDataType(resolveNodeId("ns=0;i=3"));

findNode

(
  • nodeId
)
BaseNode

find an node by node Id

Parameters:

  • nodeId NodeId | String

    a nodeId or a string coerce-able to nodeID, representing the object to find.

Returns:

findObjectType

(
  • objectType
  • [namespace=0]
)
UAObjectType | Null

Parameters:

  • objectType String | NodeId
  • [namespace=0] Number optional

    an optional namespace index

Returns:

UAObjectType | Null:

Example:

var objectType = addressSpace.findObjectType("ns=0;i=58");
                     objectType.browseName.toString().should.eql("BaseObjectType");
                    var objectType = addressSpace.findObjectType("BaseObjectType");
                     objectType.browseName.toString().should.eql("BaseObjectType");
                    var objectType = addressSpace.findObjectType(resolveNodeId("ns=0;i=58"));
                     objectType.browseName.toString().should.eql("BaseObjectType");

findReferenceType

(
  • refType
  • [namespace=0]
)
ReferenceType | Null

Parameters:

  • refType String | NodeId
  • [namespace=0] Number optional

    an optional namespace index

Returns:

ReferenceType | Null:

refType could be a string representing a nodeid : e.g. 'i=9004' or ns=1;i=6030 a string representing a browse name : e.g 'HasTypeDefinition' in this case it should be in the alias list

findReferenceTypeFromInverseName

(
  • inverseName
)
ReferenceType

find a ReferenceType by its inverse name.

Parameters:

  • inverseName String

    the inverse name of the ReferenceType to find

Returns:

findTransitionNode

(
  • fromStateNode
  • toStateNode
)
UAObject

Parameters:

Returns:

findVariableType

(
  • variableType
  • [namespace=0]
)
UAObjectType | Null

Parameters:

  • variableType String | NodeId
  • [namespace=0] Number optional

    an optional namespace index

Returns:

UAObjectType | Null:

Example:

var objectType = addressSpace.findVariableType("ns=0;i=62");
                    objectType.browseName.toString().should.eql("BaseVariableType");
                    
                    var objectType = addressSpace.findVariableType("BaseVariableType");
                    objectType.browseName.toString().should.eql("BaseVariableType");
                    
                    var objectType = addressSpace.findVariableType(resolveNodeId("ns=0;i=62"));
                    objectType.browseName.toString().should.eql("BaseVariableType");

getCurrentState

() String

Returns:

String:

getStateByName

(
  • name
)
Null | UAObject

Parameters:

  • name String

Returns:

Null | UAObject:

historyRead

(
  • context
  • historyReadDetails
  • indexRange
  • dataEncoding
  • continuationPoint
  • callback
)

Parameters:

  • context SessionContext
  • historyReadDetails HistoryReadDetails
  • indexRange NumericRange | | null
  • dataEncoding String
  • continuationPoint ByteString
  • callback Function

inverseReferenceType

(
  • referenceType
)
String

returns the inverse name of the referenceType.

Parameters:

  • referenceType String

    : the reference type name

Returns:

String:

the name of the inverse reference type.

Example:

addressSpace.inverseReferenceType("OrganizedBy").should.eql("Organizes");
                    addressSpace.inverseReferenceType("Organizes").should.eql("OrganizedBy");
                    

isNodeIdString

(
  • str
)

returns true if str matches a nodeID, e.g i=123 or ns=...

Parameters:

  • str Object

isValidTransition

(
  • toStateNode
)
Boolean

Parameters:

  • toStateNode Object

Returns:

Boolean:

make_back_references

(
  • addressSpace
)

Parameters:

normalizeReferenceType

(
  • params.referenceType
  • params.isForward
)
Object

Parameters:

  • params.referenceType String | NodeId
  • params.isForward Boolean

    default value: true;

Returns:

Object:

a new reference object with the normalized name { referenceType: , isForward: }

registerShutdownTask

()

register a function that will be called when the server will perform its shut down.

resolveNodeId

(
  • nodeId
)
NodeId

resolved a string or a nodeId to a nodeID

Parameters:

Returns:

setState

(
  • toStateNode
)

Parameters: