Options
All
  • Public
  • Public/Protected
  • All
Menu

Class OpcuaIoSourceController

Connect to OPC UA server and map OPC UA variables to IO sources.

Each value of a monitored OPC UA variable is emitted as an IO value of an associated IO source. Mappings are configured on a controller option named opcuaIoSourceOptions which must implement the OpcuaIoSourceOptions interface.

By default, monitored OPC UA data values are passed unchanged as IO values. You can implement a specific data value coercion by defining a coerceValue function in the associated OpcuaDataSource.

remarks

This controller only runs in a Node.js runtime, not in a browser.

Hierarchy

  • IoSourceController
    • OpcuaIoSourceController

Implements

  • IController

Index

Constructors

constructor

  • new OpcuaIoSourceController(_container: Container, _options: ControllerOptions, _controllerName: string): OpcuaIoSourceController
  • internal

    For internal use in framework only.

    Never instantiate Controller objects in your application; they are created automatically by dependency injection.

    Parameters

    • _container: Container
    • _options: ControllerOptions
    • _controllerName: string

    Returns OpcuaIoSourceController

Accessors

communicationManager

  • get communicationManager(): CommunicationManager

container

  • get container(): Container
  • Gets the container object of this controller.

    Returns Container

options

  • get options(): Readonly<ControllerOptions>
  • Gets the controller's options as specified in the configuration options.

    Returns Readonly<ControllerOptions>

registeredName

  • get registeredName(): string
  • 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.

    Returns string

runtime

  • get runtime(): Runtime
  • Gets the container's Runtime object.

    Returns Runtime

Methods

Protected extendLogObject

  • extendLogObject(log: Log): void
  • 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.

    Parameters

    • log: Log

      log object to be extended before being advertised

    Returns void

isAssociated

  • isAssociated<T>(source: IoSource): boolean
  • Determines whether the given IO source is currently associated.

    Type parameters

    • T

    Parameters

    • source: IoSource

    Returns boolean

logDebug

  • logDebug(message: string, ...tags: string[]): void
  • Advertise a Log object for debugging purposes.

    Parameters

    • message: string

      a debug message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logError

  • logError(error: any, message: string, ...tags: string[]): void
  • Advertise a Log object for an error.

    Parameters

    • error: any

      an error (object)

    • message: string

      additional error message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logErrorWithStacktrace

  • logErrorWithStacktrace(error: any, message: string, ...tags: string[]): void
  • Advertise a Log object for an error with stacktrace information.

    Parameters

    • error: any

      an error (object)

    • message: string

      additional error message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logFatal

  • logFatal(error: any, message: string, ...tags: string[]): void
  • Advertise a Log object for a fatal error.

    Parameters

    • error: any

      an error (object)

    • message: string

      additional error message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logInfo

  • logInfo(message: string, ...tags: string[]): void
  • Advertise an informational Log object.

    Parameters

    • message: string

      an informational message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logWarning

  • logWarning(message: string, ...tags: string[]): void
  • Advertise a Log object for a warning.

    Parameters

    • message: string

      a warning message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

observeAssociation

  • observeAssociation<T>(source: IoSource): Observable<boolean>
  • Listen to associations or disassociations for the given IO source. 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.

    Type parameters

    • T

    Parameters

    • source: IoSource

      an IO source object

    Returns Observable<boolean>

observeUpdateRate

  • observeUpdateRate<T>(source: IoSource): Observable<number>
  • Listen to update rate changes for the given IO source. The returned observable emits distinct rate values until changed. When the last association becomes disassociated, undefined is emitted. When subscribed, the current update rate is emitted immediately.

    Type parameters

    • T

    Parameters

    • source: IoSource

      an IO source object

    Returns Observable<number>

onCommunicationManagerStarting

  • onCommunicationManagerStarting(): void

onCommunicationManagerStopping

  • onCommunicationManagerStopping(): void

onDispose

  • onDispose(): void

onInit

  • onInit(): void

publish

  • publish<T>(source: IoSource, value: T): void
  • Schedule the given IO value for publishing on the given IO source. Values to be pulished may be throttled or sampled according to the backpressure strategy and the recommended update rate of the IO source.

    If the given IO source is not associated currently, no publishing takes place. The given IO value is discarded.

    Type parameters

    • T

    Parameters

    • source: IoSource

      an IO source object

    • value: T

      an IO value of the given type

    Returns void

Protected traceOpcuaError

  • traceOpcuaError(error: any): void
  • 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.

    Parameters

    • error: any

      an OPC UA error

    Returns void

Generated using TypeDoc