AddressSpace Class
AddressSpace
is a collection of UA nodes.
var addressSpace = new AddressSpace();
Constructor
AddressSpace
-
conditionTypeId
-
options
-
data
Parameters:
-
conditionTypeId
Object -
options
Object -
data
Object
Returns:
Item Index
Methods
- _addVariable
- _coerce_parent convert a 'string' , NodeId or Object into a valid and existing object
- _coerceNode
- _createNode
- _isFolder
- _process_modelling_rule
- add_alias
- add_dataItem_stuff
- 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.
- addDataItem
- addEnumerationType
- addFolder
- addMethod
- addMultiStateDiscrete
- addMultiStateValueDiscrete
- addObjectType
- addReferenceType
- addTransition
- addTwoStateDiscrete
- addVariable
- addVariableType
- addYArrayItem
- browsePath
- browseSingleNode
- constructExtensionObject
- createNode
- deleteNode
- dispose
- extractRootViews
- findCorrespondingBasicDataType
- findDataType
- findNode
- findObjectType
- findReferenceType
- findReferenceTypeFromInverseName
- findTransitionNode
- findVariableType
- getCurrentState
- getStateByName
- getStates
- historyRead
- inverseReferenceType
- isNodeIdString
- isValidTransition
- make_back_references
- normalizeReferenceType
- registerShutdownTask
- resolveNodeId
- setState
Properties
Methods
_addVariable
()
private
_coerce_parent
convert a 'string' , NodeId or Object into a valid and existing object
-
addressSpace
-
value
-
coerceFunc
Parameters:
-
addressSpace
AddressSpace -
value
Object -
coerceFunc
Function
_coerceNode
-
node
Parameters:
-
node
Object
Returns:
_createNode
-
options
Parameters:
-
options
Object-
nodeId
NodeId -
nodeClass
NodeClass -
browseName
String | QualifiedNamethe 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
return true if nodeId is a Folder
Parameters:
-
addressSpace
Object -
folder
Object
Returns:
_process_modelling_rule
-
references
-
modellingRule
Parameters:
-
references
Arraythe array of references
-
modellingRule
Referencethe modellling Rule reference.
add_dataItem_stuff
-
variable
-
options
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
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
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
Parameters:
-
parentFolder
Object -
options
String | Object-
browseName
Stringthe name of the folder
-
[nodeId]
NodeId optional. An optional nodeId for this object
-
Returns:
addMethod
-
parentObject
-
options
Parameters:
-
parentObject
Object -
options
Object-
[nodeId=null]
NodeId optionalthe object nodeid.
-
[browseName=""]
String optionalthe object browse name.
-
[description=""]
String optionalthe object description.
-
inputArguments
Array -
outputArguments
Array
-
Returns:
addMultiStateDiscrete
-
options
Parameters:
-
options
Object-
browseName
String -
[nodeId]
NodeId optional -
[value= 0]
UInt32 optional -
enumStrings
Stringan array containing the String associated with each enumeration value, starting from 0 onward
-
Returns:
addMultiStateValueDiscrete
-
options
-
[options.value
Parameters:
-
options
Object-
browseName
String -
[nodeId]
NodeId optional -
enumValues
EnumValueType[] | Key,Value}
-
-
[options.value
UInt32= 0 }
Returns:
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
Stringthe object type name
-
[subtypeOf="BaseObjectType"]
String | NodeId | BaseNode optionalthe base class
-
[nodeId]
String | NodeId optionalan 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
Parameters:
-
component
UAObject -
fromState
StateType | InitialStateType -
toState
StateType | InitialStateType -
transitionNumber
Number
Returns:
TransitionType
addTwoStateDiscrete
-
options
-
[options.value
-
[options.trueState
-
[options.falseState
Parameters:
-
options
Object-
browseName
String -
[nodeId]
NodeId optional
-
-
[options.value
Boolean}
-
[options.trueState
String= "ON" }
-
[options.falseState
String= "OFF" }
Returns:
addVariable
-
options
add a variable as a component of the parent node
Parameters:
-
options
Object-
browseName
Stringthe variable name
-
dataType
Stringthe variable datatype ( "Double", "UInt8" etc...)
-
[typeDefinition="BaseDataVariableType"]
optional -
[modellingRule=null]
optionalthe Modelling rule : "Optional" , "Mandatory"
-
[valueRank= -1]
Int optionalthe valueRank
-
[arrayDimensions]
Null | ArrayInt optional}
-
Returns:
addVariableType
-
options
add a new Variable type to the address space
Parameters:
-
options
Object-
browseName
Stringthe object type name
-
[subtypeOf="BaseVariableType"]
String | NodeId | BaseNode optionalthe base class
-
[nodeId]
String | NodeId optionalan optional nodeId for this objectType, if not provided a new nodeId will be created
-
[isAbstract= false]
Boolean optional -
[eventNotifier= 0]
Integer optional -
dataType
String | NodeIdthe 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
browse some path.
Parameters:
-
browsePath
BrowsePath
Returns:
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]
Parameters:
-
nodeId
NodeId | String: the nodeid of the element to browse
-
browseDescription
Object-
browseDirection
BrowseDirection:
-
referenceTypeId
String | NodeId
-
-
[session]
ServerSession optional
Returns:
constructExtensionObject
-
dataType
-
[options =null]
Parameters:
-
dataType
UADataType -
[options =null]
Object optional
Returns:
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 optionalinstall nodeVersion
-
deleteNode
-
nodeOrNodeId
remove the specified Node from the address space
Parameters:
-
nodeOrNodeId
Object
dispose
()
cleanup all resources maintained by this addressSpace.
extractRootViews
-
node
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:
-
node
BaseNode
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]
Find the DataType node from a NodeId or a browseName
Parameters:
-
dataType
String | NodeId -
[namespace=0]
Number optionalan optional namespace index
Returns:
Example:
var dataDouble = addressSpace.findDataType("Double");
var dataDouble = addressSpace.findDataType(resolveNodeId("ns=0;i=3"));
findNode
-
nodeId
find an node by node Id
Parameters:
-
nodeId
NodeId | Stringa nodeId or a string coerce-able to nodeID, representing the object to find.
Returns:
findObjectType
-
objectType
-
[namespace=0]
Parameters:
-
objectType
String | NodeId -
[namespace=0]
Number optionalan optional namespace index
Returns:
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]
Parameters:
-
refType
String | NodeId -
[namespace=0]
Number optionalan optional namespace index
Returns:
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
find a ReferenceType by its inverse name.
Parameters:
-
inverseName
Stringthe inverse name of the ReferenceType to find
Returns:
findVariableType
-
variableType
-
[namespace=0]
Parameters:
-
variableType
String | NodeId -
[namespace=0]
Number optionalan optional namespace index
Returns:
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:
getStates
()
Returns:
historyRead
-
context
-
historyReadDetails
-
indexRange
-
dataEncoding
-
continuationPoint
-
callback
Parameters:
-
context
SessionContext -
historyReadDetails
HistoryReadDetails -
indexRange
NumericRange | | null -
dataEncoding
String -
continuationPoint
ByteString -
callback
Function-
err
-
result
HistoryReadResult
-
inverseReferenceType
-
referenceType
returns the inverse name of the referenceType.
Parameters:
-
referenceType
String: the reference type name
Returns:
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
Parameters:
-
toStateNode
Object
Returns:
normalizeReferenceType
-
params.referenceType
-
params.isForward
Parameters:
-
params.referenceType
String | NodeId -
params.isForward
Booleandefault value: true;
Returns:
a new reference object with the normalized name { referenceType:
registerShutdownTask
()
register a function that will be called when the server will perform its shut down.