pyuaf.client.requests

class AsyncCreateMonitoredDataRequest

class pyuaf.client.requests.AsyncCreateMonitoredDataRequest(targets=0, **kwargs)

An AsyncCreateMonitoredDataRequest is an asynchronous request to create one or more monitored data items.

This class has the exact same methods and attributes as a CreateMonitoredDataRequest, so see the documentation of the latter.

class AsyncCreateMonitoredEventsRequest

class pyuaf.client.requests.AsyncCreateMonitoredEventsRequest(targets=0, **kwargs)

An AsyncCreateMonitoredEventsRequest is an asynchronous request to create one or more monitored event items.

This class has the exact same methods and attributes as a CreateMonitoredEventsRequest, so see the documentation of the latter.

class AsyncMethodCallRequest

class pyuaf.client.requests.AsyncMethodCallRequest(targets=0, **kwargs)

An AsyncMethodCallRequest is an asynchronous request to call one or more methods.

This class has the exact same methods and attributes as a MethodCallRequest, so see the documentation of the latter.

class AsyncReadRequest

class pyuaf.client.requests.AsyncReadRequest(targets=0, **kwargs)

An AsyncReadRequest is an asynchronous request to read an attribute of one or more nodes.

This class has the exact same methods and attributes as a ReadRequest, so see the documentation of the latter.

class AsyncWriteRequest

class pyuaf.client.requests.AsyncWriteRequest(targets=0, **kwargs)

An AsyncWriteRequest is an asynchronous request to write an attribute of one or more nodes.

This class has the exact same methods and attributes as a WriteRequest, so see the documentation of the latter.

class BrowseNextRequest

class pyuaf.client.requests.BrowseNextRequest(targets=0, **kwargs)

A BrowseNextRequest is a synchronous request to continue a previous browsing of one or more nodes.

You only need to use this BrowseNext request if you have put maxAutoBrowseNext to 0 in the previous Browse request (or if the automatic BrowseNext calls still resulted in continuationPoints). For your convenience, it’s much easier to simply use the BrowseRequest, and let the UAF do the BrowseNext calls automatically for you!

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new BrowseNextRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__(*args)

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a BrowseNextRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is BrowseNextSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class BrowseNextRequestTarget

class pyuaf.client.requests.BrowseNextRequestTarget(*args)

A BrowseNextRequestTarget is the part of a BrowseNextRequest that specifies the target that we were browsing and the corresponding continuation point.

You only need to use the BrowseNext request if you have put maxAutoBrowseNext to 0 in the previous Browse request (or if the automatic BrowseNext calls still resulted in continuationPoints). For your convenience, it’s much easier to simply use the BrowseRequest, and let the UAF do the BrowseNext calls automatically for you!

  • Methods:

    __init__(*args)

    Create a new BrowseNextRequestTarget object.

    You can specify a BrowseNextRequestTarget either by providing nothing, or by providing an address (of type Address) and a continuation point (of type bytearray).

    __str__(*args)

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node that was already being browsed, as an Address. So you can copy the address of the original BrowseRequest to here, so that the UAF can use this address to find out to which server the BrowseNext call should be sent.

    continuationPoint

    The continuation point, as received by the previous Browse or BrowseNext call. This attribute is of the Python built-in type bytearray.

class BrowseNextRequestTargetVector

class pyuaf.client.requests.BrowseNextRequestTargetVector

An BrowseNextRequestTargetVector is a container that holds elements of type pyuaf.client.requests.BrowseNextRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of BrowseNextRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import BrowseRequest, BrowseNextRequestTarget, BrowseNextRequestTargetVector
>>> from pyuaf.client.results  import BrowseResult
>>> from pyuaf.util            import Address, ExpandedNodeId, NodeId

>>> # we simulate the request and result of a previous Browse call with two targets
>>> # (i.e. two nodes that were being browsed simultaneously)
>>> originalRequest = BrowseRequest(2)
>>> originalResult = BrowseResult()
>>> originalResult.targets.resize(2)

>>> # construct a vector without elements:
>>> vec = BrowseNextRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(BrowseNextRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address = originalRequest.targets[0].address
>>> vec[0].continuationPoint = originalResult.targets[0].continuationPoint

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = BrowseNextRequestTargetVector(
...             [ BrowseNextRequestTarget(Address(NodeId("myId0", "myNs"), "myServerUri"), bytearray("abcd")),
...               BrowseNextRequestTarget(Address(NodeId("myId1", "myNs"), "myServerUri"), bytearray()) ] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = BrowseNextRequestTargetVector(3)
>>> yetAnotherVec[0].address = Address(ExpandedNodeId("SomeId0", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].address = Address(ExpandedNodeId("SomeId1", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].address = Address(ExpandedNodeId("SomeId2", "SomeNs", "SomeServerUri"))

class BrowseRequest

class pyuaf.client.requests.BrowseRequest(targets=0, **kwargs)

A BrowseRequest is a synchronous request to browse the references of one or more nodes.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new BrowseRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a BrowseRequestTargetVector.

    BrowseNextRequest.clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is BrowseSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class BrowseRequestTarget

class pyuaf.client.requests.BrowseRequestTarget(*args)

A BrowseRequestTarget is the part of a BrowseRequest that specifies the target to be browsed.

  • Methods:

    __init__(args*)

    Create a new BrowseRequestTarget object.

    You can specify a BrowseRequestTarget in two ways:

    >>> import pyuaf
    >>> from pyuaf.util                 import Address, ExpandedNodeId
    >>> from pyuaf.client.requests      import BrowseRequestTarget
    
    >>> addressOfNodeToBeBrowsed = Address(ExpandedNodeId("someId", "someNs", "someServerUri"))
    
    >>> # there are 2 ways to define a target:
    >>> target0 = BrowseRequestTarget()
    >>> target1 = BrowseRequestTarget(addressOfNodeToBeBrowsed)
    
    >>> # in case of the first target, you still need to specify an Address:
    >>> target0.address = addressOfNodeToBeBrowsed
    
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node to be browsed, as an Address.

    browseDirection

    Direction to follow when browsing the nodes, as an int defined in the browsedirections module. Forward by default.

    referenceTypeId

    The ExpandedNodeId of the type of references (i.e. the ReferenceType) to follow (or its subtypes if the includeSubtypes flag is True). The type of this attribute is an ExpandedNodeId. By default, the nodeId is not initialized with contents (i.e. nodeId.isNull() returns True), so that all references will be followed.

    includeSubtypes

    A bool indicating that, if the referenceTypeId points to a valid node, also the subtypes of the referenceTypeId should be followed.

    nodeClassMask

    A 32-bit int representing a mask that specifies the node classes that should be returned. The mask has the following bits assigned:

    • 0: Object
    • 1: Variable
    • 2: Method
    • 3: ObjectType
    • 4: VariableType
    • 5: ReferenceType
    • 6: DataType
    • 7: View

    Leave the mask 0 (=default!) to return all node classes.

    resultMask

    A 32-bit int representing a mask that specifies the fields in the reference description to be returned. The mask has the following bits assigned:

    • 0: ReferenceType
    • 1: IsForward
    • 2: NodeClass
    • 3: BrowseName
    • 4: DisplayName
    • 5: TypeDefinition

    By default, this mask is 63 (so 0b111111).

class BrowseRequestTargetVector

class pyuaf.client.requests.BrowseRequestTargetVector

An BrowseRequestTargetVector is a container that holds elements of type pyuaf.client.requests.BrowseRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of BrowseRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import BrowseRequestTarget, BrowseRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId, NodeId

>>> # construct a vector without elements:
>>> vec = BrowseRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(BrowseRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address = Address(NodeId("SomeId", "SomeNs"), "SomeServerUri")

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = BrowseRequestTargetVector(
...             [ BrowseRequestTarget(Address(NodeId("myId0", "myNs"), "myServerUri")),
...               BrowseRequestTarget(Address(NodeId("myId1", "myNs"), "myServerUri")) ] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = BrowseRequestTargetVector(3)
>>> yetAnotherVec[0].address = Address(ExpandedNodeId("SomeId0", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].address = Address(ExpandedNodeId("SomeId1", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].address = Address(ExpandedNodeId("SomeId2", "SomeNs", "SomeServerUri"))

class CreateMonitoredDataRequest

class pyuaf.client.requests.CreateMonitoredDataRequest(targets=0, **kwargs)

A CreateMonitoredDataRequest is a synchronous request to create one or more monitored data items.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new CreateMonitoredDataRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a CreateMonitoredDataRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is CreateMonitoredEventsSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

    clientSubscriptionHandleGiven

    True if the clientSubscriptionHandle attribute will be used, False if not. Type is bool.

    clientSubscriptionHandle

    If clientSubscriptionHandleGiven is True, then this clientSubscriptionHandle should point to an existing subscription, which will be used to process the request.

    subscriptionSettingsGiven

    True if the subscriptionSettings attribute will be used, False if not. Type is bool.

    subscriptionSettings

    If subscriptionSettingsGiven is True (and clientSubscriptionHandleGiven is False) then this subscriptionSettings will be used to create or reuse a subscription. Type is SubscriptionSettings.

class CreateMonitoredDataRequestTarget

class pyuaf.client.requests.CreateMonitoredDataRequestTarget(*args)

A CreateMonitoredDataRequestTarget is the part of a CreateMonitoredDataRequest that specifies the target to be monitored.

  • Methods:

    __init__(args*)

    Create a new CreateMonitoredDataRequestTarget object.

    The default
    • attributeId is Value
    • monitoringMode is Reporting
    • samplingIntervalSec is 0.0
    • queueSize is 1
    • discardOldest is True.
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node of which the attribute will be monitored, as a Address.

    attributeId

    The attribute id to be monitored, as an int defined in attributeids.

    indexRange

    The index range (as a str), in case you want to partially monitor an array.

    monitoringMode

    The monitoring mode, as an int defined in monitoringmodes.

    samplingIntervalSec

    The rate, in seconds (as a float), at which the monitored item should be sampled by the server. 0.0 means as fast as possible.

    queueSize

    The size of the queue at the server side, as an int.

    discardOldest

    bool: Discard the oldest item in the queue, or not.

    dataChangeFilter

    The data change filter settings, as a DataChangeFilter.

class CreateMonitoredDataRequestTargetVector

class pyuaf.client.requests.CreateMonitoredDataRequestTargetVector

An CreateMonitoredDataRequestTargetVector is a container that holds elements of type pyuaf.client.requests.CreateMonitoredDataRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of CreateMonitoredDataRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import CreateMonitoredDataRequestTarget, CreateMonitoredDataRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId

>>> # construct a vector without elements:
>>> vec = CreateMonitoredDataRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(CreateMonitoredDataRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address   = Address(ExpandedNodeId("SomeId", "SomeNs", "SomeServerUri"))
>>> vec[0].queueSize = 5

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = CreateMonitoredDataRequestTargetVector( [CreateMonitoredDataRequestTarget(), CreateMonitoredDataRequestTarget()] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = CreateMonitoredDataRequestTargetVector(3)
>>> yetAnotherVec[0].queueSize = 10
>>> yetAnotherVec[1].queueSize = 10
>>> yetAnotherVec[2].queueSize = 10

class CreateMonitoredEventsRequest

class pyuaf.client.requests.CreateMonitoredEventsRequest(targets=0, **kwargs)

A CreateMonitoredEventsRequest is a synchronous request to create one or more monitored event items.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new CreateMonitoredEventsRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a CreateMonitoredEventsRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is CreateMonitoredEventsSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

    clientSubscriptionHandleGiven

    True if the clientSubscriptionHandle attribute will be used, False if not. Type is bool.

    clientSubscriptionHandle

    If clientSubscriptionHandleGiven is True, then this clientSubscriptionHandle should point to an existing subscription, which will be used to process the request.

    subscriptionSettingsGiven

    True if the subscriptionSettings attribute will be used, False if not. Type is bool.

    subscriptionSettings

    If subscriptionSettingsGiven is True (and clientSubscriptionHandleGiven is False) then this subscriptionSettings will be used to create or reuse a subscription. Type is SubscriptionSettings.

class CreateMonitoredEventsRequestTarget

class pyuaf.client.requests.CreateMonitoredEventsRequestTarget(*args)

A CreateMonitoredEventsRequestTarget is the part of a CreateMonitoredEventsRequest that specifies the target to be monitored.

  • Methods:

    __init__(args*)

    Create a new CreateMonitoredEventsRequestTarget object.

    The default
    • monitoringMode is Reporting
    • samplingIntervalSec is 0.0
    • queueSize is 1
    • discardOldest is True.
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node of which the attribute will be monitored, as a Address.

    monitoringMode

    The monitoring mode, as an int defined in monitoringmodes.

    samplingIntervalSec

    The rate, in seconds (as a float), at which the monitored item should be sampled by the server. 0.0 means as fast as possible.

    queueSize

    The size of the queue at the server side, as an int.

    discardOldest

    bool: Discard the oldest item in the queue, or not.

    eventFilter

    The event filter settings, as an EventFilter.

class CreateMonitoredEventsRequestTargetVector

class pyuaf.client.requests.CreateMonitoredEventsRequestTargetVector

An CreateMonitoredEventsRequestTargetVector is a container that holds elements of type pyuaf.client.requests.CreateMonitoredEventsRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of CreateMonitoredEventsRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import CreateMonitoredEventsRequestTarget, CreateMonitoredEventsRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId

>>> # construct a vector without elements:
>>> vec = CreateMonitoredEventsRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(CreateMonitoredEventsRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address   = Address(ExpandedNodeId("SomeId", "SomeNs", "SomeServerUri"))
>>> vec[0].queueSize = 5

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = CreateMonitoredEventsRequestTargetVector( [CreateMonitoredEventsRequestTarget(), CreateMonitoredEventsRequestTarget()] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = CreateMonitoredEventsRequestTargetVector(3)
>>> yetAnotherVec[0].queueSize = 10
>>> yetAnotherVec[1].queueSize = 10
>>> yetAnotherVec[2].queueSize = 10

class HistoryReadRawModifiedRequest

class pyuaf.client.requests.HistoryReadRawModifiedRequest(targets=0, **kwargs)

A HistoryReadRawModifiedRequest is a synchronous request to read historical data within a given time interval.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new HistoryReadRawModifiedRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a HistoryReadRawModifiedRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is HistoryReadRawModifiedSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is BrowseSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class HistoryReadRawModifiedRequestTarget

class pyuaf.client.requests.HistoryReadRawModifiedRequestTarget(*args)

A HistoryReadRawModifiedRequestTarget is the part of a HistoryReadRawModifiedRequest that specifies the node that provides the historical information, the continuation point in case you want to manually continue a history reading, etc.

  • Methods:

    __init__(args*)

    Create a new HistoryReadRawModifiedRequestTarget object.

    You can specify a HistoryReadRawModifiedRequestTarget in three ways:

    >>> import pyuaf
    >>> from pyuaf.util                 import Address, ExpandedNodeId
    >>> from pyuaf.client.requests      import HistoryReadRawModifiedRequestTarget
    
    >>> addressOfNodeToBeRead = Address(ExpandedNodeId("someId", "someNs", "someServerUri"))
    >>> somePreviousContinuationPoint = bytearray() # normally you would copy the bytearray
    >>>                                             # from a previous HistoryReadRawModifiedResult
    
    >>> # there are 3 ways to define a target:
    >>> target0 = HistoryReadRawModifiedRequestTarget()
    >>> target1 = HistoryReadRawModifiedRequestTarget(addressOfNodeToBeRead)
    >>> target2 = HistoryReadRawModifiedRequestTarget(addressOfNodeToBeRead, somePreviousContinuationPoint)
    
    >>> # in case of the first target, you still need to specify an Address:
    >>> target0.address = addressOfNodeToBeBrowsed
    
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node from which the historical data should be retrieved, as an Address.

    continuationPoint

    The continuation point of a previous HistoryRead service call, as a built-in Python bytearray. The UAF can automatically handle continuation points, for more info take a look at the documentation of pyuaf.client.settings.HistoryReadRawModifiedSettings.maxAutoReadMore. If you decide to use the continuation points manually, you can still do so of course by copying the continuation point of a previous result (pyuaf.client.results.HistoryReadRawModifiedResultTarget.continuationPoint) to here.

    indexRange

    The index range in case the node is an array, as a str.

    dataEncoding

    The data encoding, as a QualifiedName. Leave NULL (i.e. don’t touch) if you want to use the default encoding.

class HistoryReadRawModifiedRequestTargetVector

class pyuaf.client.requests.HistoryReadRawModifiedRequestTargetVector

An HistoryReadRawModifiedRequestTargetVector is a container that holds elements of type pyuaf.client.requests.HistoryReadRawModifiedRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of HistoryReadRawModifiedRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import HistoryReadRawModifiedRequestTarget, HistoryReadRawModifiedRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId, NodeId

>>> # construct a vector without elements:
>>> vec = HistoryReadRawModifiedRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(HistoryReadRawModifiedRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address = Address(NodeId("SomeId", "SomeNs"), "SomeServerUri")

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = HistoryReadRawModifiedRequestTargetVector(
...             [ HistoryReadRawModifiedRequestTarget(Address(NodeId("myId0", "myNs"), "myServerUri")),
...               HistoryReadRawModifiedRequestTarget(Address(NodeId("myId1", "myNs"), "myServerUri")) ] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = HistoryReadRawModifiedRequestTargetVector(3)
>>> yetAnotherVec[0].address = Address(ExpandedNodeId("SomeId0", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].address = Address(ExpandedNodeId("SomeId1", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].address = Address(ExpandedNodeId("SomeId2", "SomeNs", "SomeServerUri"))

class MethodCallRequest

class pyuaf.client.requests.MethodCallRequest(targets=0, **kwargs)

A MethodCallRequest is a synchronous request to call one or more methods.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new MethodCallRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a MethodCallRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is MethodCallSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class MethodCallRequestTarget

class pyuaf.client.requests.MethodCallRequestTarget(*args)

A MethodCallRequestTarget is the part of a MethodCallRequest that specifies the target to be called.

  • Methods:

    __init__(args*)

    Create a new MethodCallRequestTarget object.

    You can specify a MethodCallRequestTarget in two ways:

    >>> import pyuaf
    >>> from pyuaf.util             import Address, ExpandedNodeId, VariantVector
    >>> from pyuaf.util.primitives  import UInt32, Double
    >>> from pyuaf.client.requests  import MethodCallRequestTarget
    
    >>> objectAddress  = Address(ExpandedNodeId("someId", "someNs", "someServerUri"))
    >>> methodAddress  = Address(ExpandedNodeId("someOtherId", "someNs", "someServerUri"))
    >>> inputArguments = VariantVector()
    >>> inputArguments.append(UInt32(123))
    >>> inputArguments.append("some string")
    >>> inputArguments.append(Double(-3.14))
    
    >>> # there are 2 ways to define a target:
    >>> target0 = MethodCallRequestTarget()
    >>> target1 = MethodCallRequestTarget(objectAddress, methodAddress, inputArguments)
    
    >>> # in case of the first target, you still need to specify the addresses and arguments:
    >>> target0.objectAddress  = objectAddress
    >>> target0.methodAddress  = methodAddress
    >>> target0.inputArguments = inputArguments
    
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    objectAddress

    The address of the context node of the method call, as a Address.

    methodAddress

    The address of the node representing the method, as a Address.

    inputArguments

    The input arguments of the method call, as a VariantVector.

class MethodCallRequestTargetVector

class pyuaf.client.requests.MethodCallRequestTargetVector

An MethodCallRequestTargetVector is a container that holds elements of type pyuaf.client.requests.MethodCallRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of MethodCallRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import MethodCallRequestTarget, MethodCallRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId

>>> # construct a vector without elements:
>>> vec = MethodCallRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(MethodCallRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].objectAddress = Address(ExpandedNodeId("SomeId"     , "SomeNs", "SomeServerUri"))
>>> vec[0].methodAddress = Address(ExpandedNodeId("SomeOtherId", "SomeNs", "SomeServerUri"))

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = MethodCallRequestTargetVector( [MethodCallRequestTarget(), MethodCallRequestTarget()] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = MethodCallRequestTargetVector(3)
>>> yetAnotherVec[0].objectAddress = Address(ExpandedNodeId("SomeId"     , "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[0].methodAddress = Address(ExpandedNodeId("SomeOtherId", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].objectAddress = Address(ExpandedNodeId("SomeId"     , "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].methodAddress = Address(ExpandedNodeId("SomeOtherId", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].objectAddress = Address(ExpandedNodeId("SomeId"     , "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].methodAddress = Address(ExpandedNodeId("SomeOtherId", "SomeNs", "SomeServerUri"))

class ReadRequest

class pyuaf.client.requests.ReadRequest(targets=0, **kwargs)

A ReadRequest is a synchronous request to read an attribute of one or more nodes.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new ReadRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a ReadRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is ReadSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class ReadRequestTarget

class pyuaf.client.requests.ReadRequestTarget(*args)

A ReadRequestTarget is the part of a ReadRequest that specifies the target to be read.

  • Methods:

    __init__(args*)

    Create a new ReadRequestTarget object.

    The default attributeId is Value.

    You can specify a ReadRequestTarget in three ways:

    >>> import pyuaf
    >>> from pyuaf.util                 import Address, ExpandedNodeId
    >>> from pyuaf.util.attributeids    import DisplayName
    >>> from pyuaf.client.requests      import ReadRequestTarget
    
    >>> addressOfNodeToBeRead = Address(ExpandedNodeId("someId", "someNs", "someServerUri"))
    
    >>> # there are 3 ways to define a target:
    >>> target0 = ReadRequestTarget()
    >>> target1 = ReadRequestTarget(addressOfNodeToBeRead)              # attribute id = Value
    >>> target2 = ReadRequestTarget(addressOfNodeToBeRead, DisplayName) # attribute id = DisplayName
    
    >>> # in case of the first target, you still need to specify an Address:
    >>> target0.address = addressOfNodeToBeRead
    
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node of which the attribute will be read, as a Address.

    attributeId

    The id of the attribute to be read, as an int defined in attributeids.

    indexRange

    The index range (as a str), in case you want to partially read an array.

class ReadRequestTargetVector

class pyuaf.client.requests.ReadRequestTargetVector

An ReadRequestTargetVector is a container that holds elements of type pyuaf.client.requests.ReadRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of ReadRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import ReadRequestTarget, ReadRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId

>>> # construct a vector without elements:
>>> vec = ReadRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(ReadRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address = Address(ExpandedNodeId("SomeId", "SomeNs", "SomeServerUri"))

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = ReadRequestTargetVector( [ReadRequestTarget(), ReadRequestTarget()] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = ReadRequestTargetVector(3)
>>> yetAnotherVec[0].address = Address(ExpandedNodeId("SomeId0", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].address = Address(ExpandedNodeId("SomeId1", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].address = Address(ExpandedNodeId("SomeId2", "SomeNs", "SomeServerUri"))

class TranslateBrowsePathsToNodeIdsRequest

class pyuaf.client.requests.TranslateBrowsePathsToNodeIdsRequest(targets=0, **kwargs)

A TranslateBrowsePathsToNodeIdsRequest is a synchronous request to translate one or more browse paths to NodeIds.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new TranslateBrowsePathsToNodeIdsRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a TranslateBrowsePathsToNodeIdsRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is TranslateBrowsePathsToNodeIdsSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class TranslateBrowsePathsToNodeIdsRequestTarget

class pyuaf.client.requests.TranslateBrowsePathsToNodeIdsRequestTarget(*args)

A TranslateBrowsePathsToNodeIdsRequestTarget is the part of a TranslateBrowsePathsToNodeIdsRequest that specifies the target to be translated.

  • Methods:

    __init__(args*)

    Create a new TranslateBrowsePathsToNodeIdsRequestTarget object.

    You can specify a TranslateBrowsePathsToNodeIdsRequestTarget in two ways:

    >>> import pyuaf
    >>> from pyuaf.util             import BrowsePath
    >>> from pyuaf.client.requests  import TranslateBrowsePathsToNodeIdsRequestTarget
    
    >>> browsePathToBeTranslated = BrowsePath()
    
    >>> # there are 2 ways to define a target:
    >>> target0 = TranslateBrowsePathsToNodeIdsRequestTarget()
    >>> target1 = TranslateBrowsePathsToNodeIdsRequestTarget(browsePathToBeTranslated)
    
    >>> # in case of the first target, you still need to specify a node and some data:
    >>> target0.browsePath = browsePathToBeTranslated
    
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    browsePath

    The browse path to be translated, as a BrowsePath.

class TranslateBrowsePathsToNodeIdsRequestTargetVector

class pyuaf.client.requests.TranslateBrowsePathsToNodeIdsRequestTargetVector

An TranslateBrowsePathsToNodeIdsRequestTargetVector is a container that holds elements of type pyuaf.client.requests.TranslateBrowsePathsToNodeIdsRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of TranslateBrowsePathsToNodeIdsRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import TranslateBrowsePathsToNodeIdsRequestTarget, \
...                                   TranslateBrowsePathsToNodeIdsRequestTargetVector
>>> from pyuaf.util            import BrowsePath, ExpandedNodeId, RelativePathElement, QualifiedName

>>> # construct a vector without elements:
>>> vec = TranslateBrowsePathsToNodeIdsRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> # define a starting ExpandedNodeId for the browse path
>>> startOfBrowsePath = ExpandedNodeId("SomeId", "SomeNs", "SomeServerUri")

>>> vec.append(TranslateBrowsePathsToNodeIdsRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].browsePath = BrowsePath(startOfBrowsePath, [RelativePathElement(QualifiedName("SomeName", "SomeNs"))] )

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = TranslateBrowsePathsToNodeIdsRequestTargetVector(
...               [TranslateBrowsePathsToNodeIdsRequestTarget(),
...                TranslateBrowsePathsToNodeIdsRequestTarget()] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = TranslateBrowsePathsToNodeIdsRequestTargetVector(3)
>>> yetAnotherVec[0].browsePath = BrowsePath(startOfBrowsePath, [RelativePathElement(QualifiedName("SomeName0", "SomeNs"))] )
>>> yetAnotherVec[1].browsePath = BrowsePath(startOfBrowsePath, [RelativePathElement(QualifiedName("SomeName1", "SomeNs"))] )
>>> yetAnotherVec[2].browsePath = BrowsePath(startOfBrowsePath, [RelativePathElement(QualifiedName("SomeName2", "SomeNs"))] )

class WriteRequest

class pyuaf.client.requests.WriteRequest(targets=0, **kwargs)

A WriteRequest is a synchronous request to write an attribute of one or more nodes.

  • Methods:

    __init__(targets=0, **kwargs)

    Create a new WriteRequest object.

    Parameters:targets

    The targets of the request, either as:

    __str__()

    Get a formatted string representation of the request.

  • Attributes

    targets

    The targets, as a WriteRequestTargetVector.

    clientConnectionIdGiven

    True if the clientConnectionId attribute will be used, False if not. Type is bool.

    clientConnectionId

    If clientConnectionIdGiven is True, then this clientConnectionId should point to an existing session, which will be used to process the request.

    sessionSettingsGiven

    True if the sessionSettings attribute will be used, False if not. Type is bool.

    sessionSettings

    If sessionSettingsGiven is True (and clientConnectionIdGiven is False) then this sessionSettings will be used to create or reuse a session. Type is SessionSettings.

    serviceSettingsGiven

    True if the serviceSettings attribute will be used, False if not. Type is bool.

    serviceSettings

    If serviceSettingsGiven is True then this serviceSettings will be used to process the request. Type is WriteSettings.

    translateSettingsGiven

    True if the translateSettings attribute will be used, False if not. Type is bool.

    translateSettings

    If translateSettingsGiven is True then this translateSettings will be used to translate any browsepaths. Type is TranslateBrowsePathsToNodeIdsSettings.

class WriteRequestTarget

class pyuaf.client.requests.WriteRequestTarget(*args)

A WriteRequestTarget is the part of a WriteRequest that specifies the target to be written.

  • Methods:

    __init__(args*)

    Create a new WriteRequestTarget object.

    The default attributeId is Value.

    You can specify a WriteRequestTarget in three ways:

    >>> import pyuaf
    >>> from pyuaf.util                 import Address, ExpandedNodeId, LocalizedText
    >>> from pyuaf.util.attributeids    import DisplayName
    >>> from pyuaf.util.primitives      import UInt32
    >>> from pyuaf.client.requests      import WriteRequestTarget
    
    >>> addressOfNodeToBeWritten  = Address(ExpandedNodeId("someId", "someNs", "someServerUri"))
    
    >>> # there are 3 ways to define a target:
    >>> target0 = WriteRequestTarget()
    >>> target1 = WriteRequestTarget(addressOfNodeToBeWritten, UInt32(332))                                     # attribute id = Value
    >>> target2 = WriteRequestTarget(addressOfNodeToBeWritten, LocalizedText("en", "Some name"), DisplayName)   # attribute id = DisplayName
    
    >>> # in case of the first target, you still need to specify an address and some data:
    >>> target0.address = addressOfNodeToBeWritten
    >>> target0.data    = UInt32(332)
    
    __str__()

    Get a formatted string representation of the target.

  • Attributes

    address

    The address of the node of which the attribute will be written, as a Address.

    attributeId

    The attribute id to be written, as an int defined in attributeids.

    indexRange

    The index range (as a str), in case you want to partially write an array.

  • Attributes inherited from pyuaf.util.DataValue

    opcUaStatusCode

    The OPC UA statuscode of the data, as an int defined in opcuastatuscodes.

    data

    The data to be written, as one of the data types described in A note on dynamic data types.

    sourceTimestamp

    The source time stamp of the data, as a DateTime instance.

    serverTimestamp

    The server time stamp of the data, as a DateTime instance.

    sourcePicoseconds

    The number of 10 picosecond intervals that need to be added to the source timestamp (to get a higher time resolution), as an int.

    serverPicoseconds

    The number of 10 picosecond intervals that need to be added to the server timestamp (to get a higher time resolution), as an int.

class WriteRequestTargetVector

class pyuaf.client.requests.WriteRequestTargetVector(*args)

An WriteRequestTargetVector is a container that holds elements of type pyuaf.client.requests.WriteRequestTarget. It is an artifact automatically generated from the C++ UAF code, and has the same functionality as a list of WriteRequestTarget.

Usage example:

>>> import pyuaf
>>> from pyuaf.client.requests import WriteRequestTarget, WriteRequestTargetVector
>>> from pyuaf.util            import Address, ExpandedNodeId
>>> from pyuaf.util.primitives import UInt32, Float

>>> # construct a vector without elements:
>>> vec = WriteRequestTargetVector()
>>> noOfElements = len(vec) # will be 0

>>> vec.append(WriteRequestTarget())
>>> noOfElements = len(vec) # will be 1
>>> vec[0].address = Address(ExpandedNodeId("SomeId", "SomeNs", "SomeServerUri"))
>>> vec[0].data    = UInt32(1234)

>>> vec.resize(4)
>>> noOfElements = len(vec) # will be 4

>>> # you may construct a vector from a regular Python list:
>>> otherVec = WriteRequestTargetVector( [WriteRequestTarget(), WriteRequestTarget()] )

>>> # or you may specify a number of targets directly
>>> yetAnotherVec = WriteRequestTargetVector(3)
>>> yetAnotherVec[0].address = Address(ExpandedNodeId("SomeId0", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[0].data    = UInt32(1234)
>>> yetAnotherVec[1].address = Address(ExpandedNodeId("SomeId1", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[1].data    = Float(0.1234)
>>> yetAnotherVec[2].address = Address(ExpandedNodeId("SomeId2", "SomeNs", "SomeServerUri"))
>>> yetAnotherVec[2].data    = "test"