Gets the container's communication manager.
Gets the container object of this controller.
Gets the controller's options as specified in the configuration options.
Gets the registered name of this controller.
The registered name is either defined by the corresponding key in the
Components.controllers
object in the container configuration, or by
invoking Container.registerController
method with this name.
Gets the container's Runtime object.
Whenever one of the controller's log methods (e.g. logDebug
, logInfo
,
logWarning
, logError
, logFatal
) is called by application code, the
controller creates a Log object with appropriate property values and
passes it to this method before advertising it.
You can override this method to additionally set certain properties (such
as LogHost.hostname
or Log.logLabels
). Ensure that
super.extendLogObject
is called in your override. The base method does
nothing.
log object to be extended before being advertised
Gets the lastest IO value emitted to the given IO actor or undefined
if
none exists yet.
an IO actor object
the latest IO value for the given actor if one exists
Determines whether the given IO actor is currently associated.
Advertise a Log object for debugging purposes.
a debug message
any number of log tags
Advertise a Log object for an error.
an error (object)
additional error message
any number of log tags
Advertise a Log object for an error with stacktrace information.
an error (object)
additional error message
any number of log tags
Advertise a Log object for a fatal error.
an error (object)
additional error message
any number of log tags
Advertise an informational Log object.
an informational message
any number of log tags
Advertise a Log object for a warning.
a warning message
any number of log tags
Listen to associations or disassociations for the given IO actor. The returned observable emits distinct boolean values until changed, i.e true when the first association is made and false, when the last association becomes disassociated. When subscribed, the current association state is emitted immediately.
an IO actor object
Listen to IO values for the given IO actor. The returned observable always emits the last value received for the given IO actor. When subscribed, the current value (or undefined if none exists yet) is emitted immediately.
Due to this behavior the cached value of the observable will also be
emitted after reassociation. If this is not desired use
this.communicationManager.observeIoValue
instead. This method doesn't
cache any previously emitted value.
an IO actor object
an observable emitting IO values for the given actor
Overwrite this method to define how internal OPC UA errors within this controller should be traced.
By default, OPC UA errors are logged on the console.
Do not call this method in your application code, it is called by this controller internally.
an OPC UA error
Overwrite this method to perform side effects on writing a single data value or to perform conditional writes.
By default, the given data value is written to the given OPC UA data
source variable. If an error occurs it is emitted by the
traceOpcuaError
method.
an OPC UA data source for a variable to be written
the value to be written
Generated using TypeDoc
Connect to OPC UA server and map IO values received by IO actors to OPC UA variables.
Each IO value received by an IO actor is written as an OPC UA variable value. Mappings are configured on a controller option named
opcuaIoActorOptions
which must implement theOpcuaIoActorOptions
interface.By default, IO values are written unchanged as OPC UA variable values. You can implement a specific data value coercion by defining a
coerceValue
function in the associatedOpcuaDataSource
.To perform application-specific side effects on write operations or conditional writes, subclass this controller and overwrite the protected method
writeDataValue
.This controller only runs in a Node.js runtime, not in a browser.