asyncua.ua package#
Subpackages#
- asyncua.ua.uaerrors package
UaError
UaInvalidParameterError
UaStatusCodeError
UaStatusCodeErrors
UaStringParsingError
UaStructParsingError
Bad
BadAggregateConfigurationRejected
BadAggregateInvalidInputs
BadAggregateListMismatch
BadAggregateNotSupported
BadAlreadyExists
BadApplicationSignatureInvalid
BadArgumentsMissing
BadAttributeIdInvalid
BadBoundNotFound
BadBoundNotSupported
BadBrowseDirectionInvalid
BadBrowseNameDuplicated
BadBrowseNameInvalid
BadCertificateChainIncomplete
BadCertificateHostNameInvalid
BadCertificateInvalid
BadCertificateIssuerRevocationUnknown
BadCertificateIssuerRevoked
BadCertificateIssuerTimeInvalid
BadCertificateIssuerUseNotAllowed
BadCertificatePolicyCheckFailed
BadCertificateRevocationUnknown
BadCertificateRevoked
BadCertificateTimeInvalid
BadCertificateUntrusted
BadCertificateUriInvalid
BadCertificateUseNotAllowed
BadCommunicationError
BadConditionAlreadyDisabled
BadConditionAlreadyEnabled
BadConditionAlreadyShelved
BadConditionBranchAlreadyAcked
BadConditionBranchAlreadyConfirmed
BadConditionDisabled
BadConditionNotShelved
BadConfigurationError
BadConnectionClosed
BadConnectionRejected
BadContentFilterInvalid
BadContinuationPointInvalid
BadDataEncodingInvalid
BadDataEncodingUnsupported
BadDataLost
BadDataSetIdInvalid
BadDataTypeIdUnknown
BadDataUnavailable
BadDeadbandFilterInvalid
BadDecodingError
BadDependentValueChanged
BadDeviceFailure
BadDialogNotActive
BadDialogResponseInvalid
BadDisconnect
BadDiscoveryUrlMissing
BadDominantValueChanged
BadDuplicateReferenceNotAllowed
BadEdited_OutOfRange
BadEdited_OutOfRange_DominantValueChanged
BadEdited_OutOfRange_DominantValueChanged_DependentValueChanged
BadEncodingError
BadEncodingLimitsExceeded
BadEndOfStream
BadEntryExists
BadEventFilterInvalid
BadEventIdUnknown
BadEventNotAcknowledgeable
BadExpectedStreamToBlock
BadFilterElementInvalid
BadFilterLiteralInvalid
BadFilterNotAllowed
BadFilterOperandCountMismatch
BadFilterOperandInvalid
BadFilterOperatorInvalid
BadFilterOperatorUnsupported
BadHistoryOperationInvalid
BadHistoryOperationUnsupported
BadIdentityChangeNotSupported
BadIdentityTokenInvalid
BadIdentityTokenRejected
BadIndexRangeInvalid
BadIndexRangeNoData
BadInitialValue_OutOfRange
BadInsufficientClientProfile
BadInternalError
BadInvalidArgument
BadInvalidSelfReference
BadInvalidState
BadInvalidTimestamp
BadInvalidTimestampArgument
BadLicenseExpired
BadLicenseLimitsExceeded
BadLicenseNotAvailable
BadMaxAgeInvalid
BadMaxConnectionsReached
BadMessageNotAvailable
BadMethodInvalid
BadMonitoredItemFilterInvalid
BadMonitoredItemFilterUnsupported
BadMonitoredItemIdInvalid
BadMonitoringModeInvalid
BadNoCommunication
BadNoContinuationPoints
BadNoData
BadNoDataAvailable
BadNoDeleteRights
BadNoEntryExists
BadNoMatch
BadNoSubscription
BadNoValidCertificates
BadNodeAttributesInvalid
BadNodeClassInvalid
BadNodeIdExists
BadNodeIdInvalid
BadNodeIdRejected
BadNodeIdUnknown
BadNodeNotInView
BadNonceInvalid
BadNotConnected
BadNotExecutable
BadNotFound
BadNotImplemented
BadNotReadable
BadNotSupported
BadNotTypeDefinition
BadNotWritable
BadNothingToDo
BadNumericOverflow
BadObjectDeleted
BadOperationAbandoned
BadOutOfMemory
BadOutOfRange
BadOutOfRange_DominantValueChanged
BadOutOfRange_DominantValueChanged_DependentValueChanged
BadOutOfService
BadParentNodeIdInvalid
BadProtocolVersionUnsupported
BadQueryTooComplex
BadReferenceLocalOnly
BadReferenceNotAllowed
BadReferenceTypeIdInvalid
BadRefreshInProgress
BadRequestCancelledByClient
BadRequestCancelledByRequest
BadRequestHeaderInvalid
BadRequestInterrupted
BadRequestNotAllowed
BadRequestNotComplete
BadRequestTimeout
BadRequestTooLarge
BadRequestTypeInvalid
BadResourceUnavailable
BadResponseTooLarge
BadSecureChannelClosed
BadSecureChannelIdInvalid
BadSecureChannelTokenUnknown
BadSecurityChecksFailed
BadSecurityModeInsufficient
BadSecurityModeRejected
BadSecurityPolicyRejected
BadSempahoreFileMissing
BadSensorFailure
BadSequenceNumberInvalid
BadSequenceNumberUnknown
BadServerHalted
BadServerIndexInvalid
BadServerNameMissing
BadServerNotConnected
BadServerUriInvalid
BadServiceUnsupported
BadSessionClosed
BadSessionIdInvalid
BadSessionNotActivated
BadShelvingTimeOutOfRange
BadShutdown
BadSourceNodeIdInvalid
BadStateNotActive
BadStructureMissing
BadSubscriptionIdInvalid
BadSyntaxError
BadTargetNodeIdInvalid
BadTcpEndpointUrlInvalid
BadTcpInternalError
BadTcpMessageTooLarge
BadTcpMessageTypeInvalid
BadTcpNotEnoughResources
BadTcpSecureChannelUnknown
BadTcpServerTooBusy
BadTicketInvalid
BadTicketRequired
BadTimeout
BadTimestampNotSupported
BadTimestampsToReturnInvalid
BadTooManyArguments
BadTooManyMatches
BadTooManyMonitoredItems
BadTooManyOperations
BadTooManyPublishRequests
BadTooManySessions
BadTooManySubscriptions
BadTypeDefinitionInvalid
BadTypeMismatch
BadUnexpectedError
BadUnknownResponse
BadUserAccessDenied
BadUserSignatureInvalid
BadViewIdUnknown
BadViewParameterMismatch
BadViewTimestampInvalid
BadViewVersionInvalid
BadWaitingForInitialData
BadWaitingForResponse
BadWouldBlock
BadWriteNotSupported
Submodules#
asyncua.ua.attribute_ids module#
- class asyncua.ua.attribute_ids.AttributeIds(value)#
Bases:
IntEnum
An enumeration.
- AccessLevel = 17#
- AccessLevelEx = 27#
- AccessRestrictions = 26#
- ArrayDimensions = 16#
- BrowseName = 3#
- ContainsNoLoops = 11#
- DataType = 14#
- DataTypeDefinition = 23#
- Description = 5#
- DisplayName = 4#
- EventNotifier = 12#
- Executable = 21#
- Historizing = 20#
- InverseName = 10#
- IsAbstract = 8#
- MinimumSamplingInterval = 19#
- NodeClass = 2#
- NodeId = 1#
- RolePermissions = 24#
- Symmetric = 9#
- UserAccessLevel = 18#
- UserExecutable = 22#
- UserRolePermissions = 25#
- UserWriteMask = 7#
- Value = 13#
- ValueRank = 15#
- WriteMask = 6#
asyncua.ua.object_ids module#
Note
This module is very large and currently excluded from the API documentation
asyncua.ua.status_codes module#
Note
This module is very large and currently excluded from the API documentation
asyncua.ua.ua_binary module#
Binary protocol specific functions and constants
- class asyncua.ua.ua_binary.Primitives#
Bases:
Primitives1
- ByteString = <asyncua.ua.ua_binary._Bytes object>#
- Bytes = <asyncua.ua.ua_binary._Bytes object>#
- CharArray = <asyncua.ua.ua_binary._String object>#
- DateTime = <asyncua.ua.ua_binary._DateTime object>#
- Guid = <asyncua.ua.ua_binary._Guid object>#
- Null = <asyncua.ua.ua_binary._Null object>#
- String = <asyncua.ua.ua_binary._String object>#
- class asyncua.ua.ua_binary.Primitives1#
Bases:
object
- Boolean = <asyncua.ua.ua_binary._Primitive1 object>#
- Byte = <asyncua.ua.ua_binary._Primitive1 object>#
- Char = <asyncua.ua.ua_binary._Primitive1 object>#
- Double = <asyncua.ua.ua_binary._Primitive1 object>#
- Float = <asyncua.ua.ua_binary._Primitive1 object>#
- Int16 = <asyncua.ua.ua_binary._Primitive1 object>#
- Int32 = <asyncua.ua.ua_binary._Primitive1 object>#
- Int64 = <asyncua.ua.ua_binary._Primitive1 object>#
- SByte = <asyncua.ua.ua_binary._Primitive1 object>#
- UInt16 = <asyncua.ua.ua_binary._Primitive1 object>#
- UInt32 = <asyncua.ua.ua_binary._Primitive1 object>#
- UInt64 = <asyncua.ua.ua_binary._Primitive1 object>#
- asyncua.ua.ua_binary.create_dataclass_serializer(dataclazz)#
Given a dataclass, return a function that serializes instances of this dataclass
- asyncua.ua.ua_binary.create_enum_deserializer(uatype)#
- asyncua.ua.ua_binary.create_enum_serializer(uatype)#
- asyncua.ua.ua_binary.create_list_serializer(uatype, recursive: bool = False) Callable[[Sequence[Any] | None], bytes] #
Given a type, return a function that takes a list of instances of that type and serializes it.
- asyncua.ua.ua_binary.create_type_serializer(uatype)#
Create a binary serialization function for the given UA type
- asyncua.ua.ua_binary.create_uatype_array_serializer(vtype)#
- asyncua.ua.ua_binary.create_uatype_serializer(vtype)#
- asyncua.ua.ua_binary.extensionobject_from_binary(data)#
Convert binary-coded ExtensionObject to a Python object. Returns an object, or None if TypeId is zero
- asyncua.ua.ua_binary.extensionobject_to_binary(obj)#
Convert Python object to binary-coded ExtensionObject. If obj is None, convert to empty ExtensionObject (TypeId=0, no Body). Returns a binary string
- asyncua.ua.ua_binary.from_binary(uatype, data)#
unpack data given an uatype as a string or a python dataclass using ua types
- asyncua.ua.ua_binary.header_from_binary(data)#
- asyncua.ua.ua_binary.header_to_binary(hdr)#
- asyncua.ua.ua_binary.list_to_binary(uatype, val)#
- asyncua.ua.ua_binary.nodeid_from_binary(data)#
- asyncua.ua.ua_binary.nodeid_to_binary(nodeid)#
- asyncua.ua.ua_binary.pack_uatype(vtype, value)#
- asyncua.ua.ua_binary.pack_uatype_array(vtype, array)#
- asyncua.ua.ua_binary.struct_from_binary(objtype: Type[T] | str, data: IO) T #
unpack an ua struct. Arguments are an objtype as Python dataclass or string
- asyncua.ua.ua_binary.struct_to_binary(obj)#
- asyncua.ua.ua_binary.to_binary(uatype, val)#
- asyncua.ua.ua_binary.uatcp_to_binary(message_type, message)#
Convert OPC UA TCP message (see OPC UA specs Part 6, 7.1) to binary. The only supported types are Hello, Acknowledge and ErrorMessage
- asyncua.ua.ua_binary.unpack_uatype(vtype, data)#
- asyncua.ua.ua_binary.unpack_uatype_array(vtype, data)#
- asyncua.ua.ua_binary.variant_from_binary(data)#
- asyncua.ua.ua_binary.variant_to_binary(var)#
asyncua.ua.uaprotocol_auto module#
Note
This module is very large and currently excluded from the API documentation
asyncua.ua.uaprotocol_hand module#
- class asyncua.ua.uaprotocol_hand.Acknowledge(ProtocolVersion: asyncua.ua.uatypes.UInt32 = 0, ReceiveBufferSize: asyncua.ua.uatypes.UInt32 = 65536, SendBufferSize: asyncua.ua.uatypes.UInt32 = 65536, MaxMessageSize: asyncua.ua.uatypes.UInt32 = 0, MaxChunkCount: asyncua.ua.uatypes.UInt32 = 0)#
Bases:
object
- class asyncua.ua.uaprotocol_hand.Argument(Name: asyncua.ua.uatypes.String = None, DataType: asyncua.ua.uatypes.NodeId = <factory>, ValueRank: asyncua.ua.uatypes.Int32 = -1, ArrayDimensions: List[asyncua.ua.uatypes.UInt32] = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>)#
Bases:
Argument
- class asyncua.ua.uaprotocol_hand.AsymmetricAlgorithmHeader(SecurityPolicyURI: asyncua.ua.uatypes.String = 'http://opcfoundation.org/UA/SecurityPolicy#None', SenderCertificate: asyncua.ua.uatypes.ByteString = None, ReceiverCertificateThumbPrint: asyncua.ua.uatypes.ByteString = None)#
Bases:
object
- ReceiverCertificateThumbPrint: ByteString = None#
- SenderCertificate: ByteString = None#
- class asyncua.ua.uaprotocol_hand.ChunkType(Invalid: bytes = b'0', Single: bytes = b'F', Intermediate: bytes = b'C', Abort: bytes = b'A')#
Bases:
object
- class asyncua.ua.uaprotocol_hand.CryptographyNone#
Bases:
object
Base class for symmetric/asymmetric cryptography
- decrypt(data)#
- encrypt(data)#
- encrypted_block_size()#
Size of encrypted text block for block cipher.
- min_padding_size()#
- padding(size)#
Create padding for a block of given size. plain_size = size + len(padding) + signature_size() plain_size = N * plain_block_size()
- plain_block_size()#
Size of plain text block for block cipher.
- remove_padding(data)#
- signature(data)#
- signature_size()#
- verify(data, signature)#
Verify signature and raise exception if signature is invalid
- vsignature_size()#
- class asyncua.ua.uaprotocol_hand.DataTypeAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, IsAbstract: asyncua.ua.uatypes.Boolean = True, DataTypeDefinition: asyncua.ua.uatypes.ExtensionObject = <factory>)#
Bases:
DataTypeAttributes
- DataTypeDefinition: ExtensionObject#
- class asyncua.ua.uaprotocol_hand.ErrorMessage(Error: asyncua.ua.uatypes.StatusCode = StatusCode(value=0), Reason: asyncua.ua.uatypes.String = '')#
Bases:
object
- Error: StatusCode = StatusCode(value=0)#
- class asyncua.ua.uaprotocol_hand.Header(MessageType: None = None, ChunkType: None = None, ChannelId: int = 0)#
Bases:
object
- add_size(size)#
- body_size = 0#
- header_size = 8#
- static max_size()#
- packet_size = 0#
- class asyncua.ua.uaprotocol_hand.Hello(ProtocolVersion: asyncua.ua.uatypes.UInt32 = 0, ReceiveBufferSize: asyncua.ua.uatypes.UInt32 = 2147483647, SendBufferSize: asyncua.ua.uatypes.UInt32 = 2147483647, MaxMessageSize: asyncua.ua.uatypes.UInt32 = 2147483647, MaxChunkCount: asyncua.ua.uatypes.UInt32 = 2147483647, EndpointUrl: asyncua.ua.uatypes.String = '')#
Bases:
object
- class asyncua.ua.uaprotocol_hand.Message(chunks)#
Bases:
object
- SecurityHeader()#
- SequenceHeader()#
- body()#
- request_id()#
- class asyncua.ua.uaprotocol_hand.MessageType(Invalid: bytes = b'INV', Hello: bytes = b'HEL', Acknowledge: bytes = b'ACK', Error: bytes = b'ERR', SecureOpen: bytes = b'OPN', SecureClose: bytes = b'CLO', SecureMessage: bytes = b'MSG')#
Bases:
object
- class asyncua.ua.uaprotocol_hand.MethodAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, Executable: asyncua.ua.uatypes.Boolean = True, UserExecutable: asyncua.ua.uatypes.Boolean = True)#
Bases:
MethodAttributes
- class asyncua.ua.uaprotocol_hand.ObjectAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, EventNotifier: asyncua.ua.uatypes.Byte = 0)#
Bases:
ObjectAttributes
- class asyncua.ua.uaprotocol_hand.ObjectTypeAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, IsAbstract: asyncua.ua.uatypes.Boolean = True)#
Bases:
ObjectTypeAttributes
- class asyncua.ua.uaprotocol_hand.ReferenceTypeAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, IsAbstract: asyncua.ua.uatypes.Boolean = True, Symmetric: asyncua.ua.uatypes.Boolean = True, InverseName: asyncua.ua.uatypes.LocalizedText = <factory>)#
Bases:
ReferenceTypeAttributes
- class asyncua.ua.uaprotocol_hand.SecurityPolicy(permissions=None)#
Bases:
object
Base class for security policy
- URI = 'http://opcfoundation.org/UA/SecurityPolicy#None'#
- make_local_symmetric_key(secret, seed)#
- make_remote_symmetric_key(secret, seed, lifetime)#
- class asyncua.ua.uaprotocol_hand.SecurityPolicyFactory(cls=<class 'asyncua.ua.uaprotocol_hand.SecurityPolicy'>, mode=MessageSecurityMode.None_, certificate=None, private_key=None, permission_ruleset=None)#
Bases:
object
Helper class for creating server-side SecurityPolicy. Server has one certificate and private key, but needs a separate SecurityPolicy for every client and client’s certificate
- create(peer_certificate)#
- matches(uri, mode=None)#
- class asyncua.ua.uaprotocol_hand.SequenceHeader(SequenceNumber: asyncua.ua.uatypes.UInt32 = None, RequestId: asyncua.ua.uatypes.UInt32 = None)#
Bases:
object
- static max_size()#
- class asyncua.ua.uaprotocol_hand.SymmetricAlgorithmHeader(TokenId: asyncua.ua.uatypes.UInt32 = 0)#
Bases:
object
- static max_size()#
- class asyncua.ua.uaprotocol_hand.VariableAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 4002419, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, Value: asyncua.ua.uatypes.Variant = <factory>, DataType: asyncua.ua.uatypes.NodeId = <factory>, ValueRank: asyncua.ua.uatypes.Int32 = 0, ArrayDimensions: List[asyncua.ua.uatypes.UInt32] = None, AccessLevel: asyncua.ua.uatypes.Byte = 1, UserAccessLevel: asyncua.ua.uatypes.Byte = 1, MinimumSamplingInterval: asyncua.ua.uatypes.Double = 0, Historizing: asyncua.ua.uatypes.Boolean = True)#
Bases:
VariableAttributes
- class asyncua.ua.uaprotocol_hand.VariableTypeAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, Value: asyncua.ua.uatypes.Variant = <factory>, DataType: asyncua.ua.uatypes.NodeId = <factory>, ValueRank: asyncua.ua.uatypes.Int32 = 0, ArrayDimensions: List[asyncua.ua.uatypes.UInt32] = <factory>, IsAbstract: asyncua.ua.uatypes.Boolean = True)#
Bases:
VariableTypeAttributes
- class asyncua.ua.uaprotocol_hand.ViewAttributes(SpecifiedAttributes: asyncua.ua.uatypes.UInt32 = 0, DisplayName: asyncua.ua.uatypes.LocalizedText = <factory>, Description: asyncua.ua.uatypes.LocalizedText = <factory>, WriteMask: asyncua.ua.uatypes.UInt32 = 0, UserWriteMask: asyncua.ua.uatypes.UInt32 = 0, ContainsNoLoops: asyncua.ua.uatypes.Boolean = True, EventNotifier: asyncua.ua.uatypes.Byte = 0)#
Bases:
ViewAttributes
asyncua.ua.uatypes module#
implement ua datatypes
- class asyncua.ua.uatypes.AccessLevel(value)#
Bases:
_MaskEnum
Bit index to indicate what the access level is.
Spec Part 3, appears multiple times, e.g. paragraph 5.6.2 Variable NodeClass
- CurrentRead = 0#
- CurrentWrite = 1#
- HistoryRead = 2#
- HistoryWrite = 3#
- SemanticChange = 4#
- StatusWrite = 5#
- TimestampWrite = 6#
- class asyncua.ua.uatypes.ByteStringNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None)#
Bases:
NodeId
- class asyncua.ua.uatypes.DataValue(Value: ~asyncua.ua.uatypes.Variant | None = None, StatusCode_: ~asyncua.ua.uatypes.StatusCode | None = <factory>, SourceTimestamp: ~asyncua.ua.uatypes.DateTime | None = None, ServerTimestamp: ~asyncua.ua.uatypes.DateTime | None = None, SourcePicoseconds: ~asyncua.ua.uatypes.UInt16 | None = None, ServerPicoseconds: ~asyncua.ua.uatypes.UInt16 | None = None)#
Bases:
object
A value with an associated timestamp, and quality. Automatically generated from xml , copied and modified here to fix errors in xml spec
- Variables:
Value (Variant) –
StatusCode (StatusCode) –
SourceTimestamp (datetime) –
SourcePicoSeconds (int) –
ServerTimestamp (datetime) –
ServerPicoseconds (int) –
- property StatusCode#
- StatusCode_: StatusCode | None#
- data_type = NodeId(Identifier=25, NamespaceIndex=0, NodeIdType=<NodeIdType.TwoByte: 0>)#
- class asyncua.ua.uatypes.DiagnosticInfo(SymbolicId: Int32 | None = None, NamespaceURI: Int32 | None = None, Locale: Int32 | None = None, LocalizedText: Int32 | None = None, AdditionalInfo: String | None = None, InnerStatusCode: StatusCode | None = None, InnerDiagnosticInfo: ExtensionObject | None = None)#
Bases:
object
A recursive structure containing diagnostic information associated with a status code.
- Variables:
Encoding (Byte) –
SymbolicId (Int32) –
NamespaceURI (Int32) –
Locale (Int32) –
LocalizedText (Int32) –
AdditionalInfo (String) –
InnerStatusCode (StatusCode) –
InnerDiagnosticInfo (DiagnosticInfo) –
- InnerDiagnosticInfo: ExtensionObject | None = None#
- InnerStatusCode: StatusCode | None = None#
- data_type = NodeId(Identifier=25, NamespaceIndex=0, NodeIdType=<NodeIdType.TwoByte: 0>)#
- class asyncua.ua.uatypes.EventNotifier(value)#
Bases:
_MaskEnum
Bit index to indicate how a node can be used for events.
Spec Part 3, appears multiple times, e.g. Paragraph 5.4 View NodeClass
- HistoryRead = 2#
- HistoryWrite = 3#
- SubscribeToEvents = 0#
- class asyncua.ua.uatypes.ExpandedNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None, NamespaceUri: asyncua.ua.uatypes.String | None = None, ServerIndex: asyncua.ua.uatypes.Int32 = 0)#
Bases:
NodeId
- to_string()#
- class asyncua.ua.uatypes.ExtensionObject(TypeId: ~asyncua.ua.uatypes.NodeId = NodeId(Identifier=0, NamespaceIndex=0, NodeIdType=<NodeIdType.TwoByte: 0>), Body: ~asyncua.ua.uatypes.ByteString | None = None)#
Bases:
object
Any UA object packed as an ExtensionObject
- Body: ByteString | None = None#
- class asyncua.ua.uatypes.FourByteNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None)#
Bases:
NodeId
- class asyncua.ua.uatypes.Guid(hex=None, bytes=None, bytes_le=None, fields=None, int=None, version=None, *, is_safe=SafeUUID.unknown)#
Bases:
UUID
- int#
- is_safe#
- class asyncua.ua.uatypes.GuidNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None)#
Bases:
NodeId
- class asyncua.ua.uatypes.LocalizedText(Text=None, Locale=None)#
Bases:
object
A string qualified with a namespace index.
- static from_string(string)#
- to_string()#
- class asyncua.ua.uatypes.NodeId(Identifier: Int32 | String | Guid | ByteString = 0, NamespaceIndex: Int16 = 0, NodeIdType: NodeIdType | None = None)#
Bases:
object
NodeId Object
- Args:
identifier: The identifier might be an int, a string, bytes or a Guid namespaceidx(int): The index of the namespace nodeidtype(NodeIdType): The type of the nodeid if it cannot be guessed, or you want something special like twobyte nodeid or fourbytenodeid
- Identifier: Int32 | String | Guid | ByteString = 0#
- NodeIdType: NodeIdType = None#
- check_identifier_type_compatibility()#
Check whether the given identifier can be interpreted as the given node identifier type.
- static from_string(string)#
- has_null_identifier()#
- is_null()#
- to_binary()#
- to_string()#
- class asyncua.ua.uatypes.NodeIdType(value)#
Bases:
IntEnum
An enumeration.
- ByteString = 5#
- FourByte = 1#
- Guid = 4#
- Numeric = 2#
- String = 3#
- TwoByte = 0#
- class asyncua.ua.uatypes.NumericNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None)#
Bases:
NodeId
- class asyncua.ua.uatypes.QualifiedName(Name=None, NamespaceIndex=0)#
Bases:
object
A string qualified with a namespace index.
- static from_string(string, default_idx=0)#
- to_string()#
- class asyncua.ua.uatypes.RelativePath(Elements: ~typing.List[~asyncua.ua.uatypes.RelativePathElement] = <factory>)#
Bases:
object
https://reference.opcfoundation.org/v105/Core/docs/Part4/7.31
- Variables:
Elements (RelativePathElement) –
- Elements: List[RelativePathElement]#
- data_type = NodeId(Identifier=540, NamespaceIndex=0, NodeIdType=<NodeIdType.FourByte: 1>)#
- class asyncua.ua.uatypes.RelativePathElement(ReferenceTypeId: ~asyncua.ua.uatypes.NodeId = <factory>, IsInverse: ~asyncua.ua.uatypes.Boolean = True, IncludeSubtypes: ~asyncua.ua.uatypes.Boolean = True, TargetName: ~asyncua.ua.uatypes.QualifiedName = <factory>)#
Bases:
object
https://reference.opcfoundation.org/v105/Core/docs/Part4/7.31
- Variables:
ReferenceTypeId (NodeId) –
IsInverse (Boolean) –
IncludeSubtypes (Boolean) –
TargetName (QualifiedName) –
- TargetName: QualifiedName#
- data_type = NodeId(Identifier=537, NamespaceIndex=0, NodeIdType=<NodeIdType.FourByte: 1>)#
- class asyncua.ua.uatypes.SecurityPolicyType(value)#
Bases:
Enum
The supported types of SecurityPolicy.
“None” “Basic128Rsa15_Sign” “Basic128Rsa15_SignAndEncrypt” “Basic256_Sign” “Basic256_SignAndEncrypt” “Basic256Sha256_Sign” “Basic256Sha256_SignAndEncrypt” “Aes128_Sha256_RsaOaep_Sign” “Aes128_Sha256_RsaOaep_SignAndEncrypt” “Aes256_Sha256_RsaPss_Sign” “Aes256_Sha256_RsaPss_SignAndEncrypt”
- Aes128Sha256RsaOaep_Sign = 7#
- Aes128Sha256RsaOaep_SignAndEncrypt = 8#
- Aes256Sha256RsaPss_Sign = 9#
- Aes256Sha256RsaPss_SignAndEncrypt = 10#
- Basic128Rsa15_Sign = 1#
- Basic128Rsa15_SignAndEncrypt = 2#
- Basic256Sha256_Sign = 5#
- Basic256Sha256_SignAndEncrypt = 6#
- Basic256_Sign = 3#
- Basic256_SignAndEncrypt = 4#
- NoSecurity = 0#
- class asyncua.ua.uatypes.StatusCode(value: UInt32 = 0)#
Bases:
object
- Variables:
value (int) –
name (string) –
doc (string) –
- check()#
Raises an exception if the status code is anything else than 0 (good).
- property doc#
- is_bad()#
https://reference.opcfoundation.org/v104/Core/docs/Part4/7.34.1/ 11 Reserved for future use. All Clients should treat a StatusCode with this severity as “Bad”.
return True if status is Bad (10) or (11).
- is_good()#
return True if status is Good (00).
- is_uncertain()#
return True if status is Uncertain (01).
- property name#
- class asyncua.ua.uatypes.StringNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None)#
Bases:
NodeId
- class asyncua.ua.uatypes.TwoByteNodeId(Identifier: asyncua.ua.uatypes.Int32 | asyncua.ua.uatypes.String | asyncua.ua.uatypes.Guid | asyncua.ua.uatypes.ByteString = 0, NamespaceIndex: asyncua.ua.uatypes.Int16 = 0, NodeIdType: asyncua.ua.uatypes.NodeIdType = None)#
Bases:
NodeId
- class asyncua.ua.uatypes.ValueRank(value)#
Bases:
IntEnum
Defines dimensions of a variable. This enum does not support all cases since ValueRank support any n>0 but since it is an IntEnum it can be replaced by a normal int
- Any = -2#
- FourDimensions = 4#
- OneDimension = 1#
- OneOrMoreDimensions = 0#
- Scalar = -1#
- ScalarOrOneDimension = -3#
- ThreeDimensions = 3#
- TwoDimensions = 2#
- class asyncua.ua.uatypes.Variant(Value: Any | None = None, VariantType: VariantType | None = None, Dimensions: List[Int32] | None = None, is_array: bool | None = None)#
Bases:
object
Create an OPC-UA Variant object. if no argument a Null Variant is created. if not variant type is given, attempts to guess type from python type if a variant is given as value, the new objects becomes a copy of the argument
- Variables:
Value (Any supported type) –
VariantType (VariantType) –
Dimension –
is_array (If the variant is an array. Always True if Dimension is specified) –
- VariantType: VariantType = None#
- class asyncua.ua.uatypes.VariantType(value)#
Bases:
Enum
The possible types of a variant.
- Variables:
Null –
Boolean –
SByte –
Byte –
Int16 –
UInt16 –
Int32 –
UInt32 –
Int64 –
UInt64 –
Float –
Double –
String –
DateTime –
Guid –
ByteString –
XmlElement –
NodeId –
ExpandedNodeId –
StatusCode –
QualifiedName –
LocalizedText –
ExtensionObject –
DataValue –
Variant –
DiagnosticInfo –
- Boolean = 1#
- Byte = 3#
- ByteString = 15#
- DataValue = 23#
- DateTime = 13#
- DiagnosticInfo = 25#
- Double = 11#
- ExpandedNodeId = 18#
- ExtensionObject = 22#
- Float = 10#
- Guid = 14#
- Int16 = 4#
- Int32 = 6#
- Int64 = 8#
- LocalizedText = 21#
- NodeId = 17#
- Null = 0#
- QualifiedName = 20#
- SByte = 2#
- StatusCode = 19#
- String = 12#
- UInt16 = 5#
- UInt32 = 7#
- UInt64 = 9#
- Variant = 24#
- XmlElement = 16#
- class asyncua.ua.uatypes.VariantTypeCustom(val)#
Bases:
object
Looks like sometime we get variant with other values than those defined in VariantType. FIXME: We should not need this class, as far as I understand the spec variants can only be of VariantType
- class asyncua.ua.uatypes.WriteMask(value)#
Bases:
_MaskEnum
Bit index to indicate which attribute of a node is writable
Spec Part 3, Paragraph 5.2.7 WriteMask
- AccessLevel = 0#
- ArrayDimensions = 1#
- BrowseName = 2#
- ContainsNoLoops = 3#
- DataType = 4#
- Description = 5#
- DisplayName = 6#
- EventNotifier = 7#
- Executable = 8#
- Historizing = 9#
- InverseName = 10#
- IsAbstract = 11#
- MinimumSamplingInterval = 12#
- NodeClass = 13#
- NodeId = 14#
- Symmetric = 15#
- UserAccessLevel = 16#
- UserExecutable = 17#
- UserWriteMask = 18#
- ValueForVariableType = 21#
- ValueRank = 19#
- WriteMask = 20#
- asyncua.ua.uatypes.datatype_to_varianttype(int_type)#
Takes a NodeId or int and return a VariantType This is only supported if int_type < 63 due to VariantType encoding At low level we do not have access to address space thus decoding is limited a better version of this method can be find in ua_utils.py
- asyncua.ua.uatypes.flatten(mylist)#
- asyncua.ua.uatypes.flatten_and_get_shape(mylist)#
- asyncua.ua.uatypes.get_default_value(vtype)#
Given a variant type return default value for this type
- asyncua.ua.uatypes.get_extensionobject_class_type(typeid)#
Returns the registered class type for typid of an extension object
- asyncua.ua.uatypes.get_shape(mylist)#
- asyncua.ua.uatypes.get_win_epoch()#
- asyncua.ua.uatypes.register_basetype(name, nodeid, class_type)#
Register a new alias of basetypes for automatic decoding and make them available in ua module
- asyncua.ua.uatypes.register_enum(name, nodeid, class_type)#
Register a new enum for automatic decoding and make them available in ua module
- asyncua.ua.uatypes.register_extension_object(name, encoding_nodeid, class_type, datatype_nodeid=None)#
Register a new extension object for automatic decoding and make them available in ua module
- asyncua.ua.uatypes.type_allow_subclass(uatype)#
- asyncua.ua.uatypes.type_from_allow_subtype(uatype)#
- asyncua.ua.uatypes.type_from_list(uatype)#
- asyncua.ua.uatypes.type_from_optional(uatype)#
- asyncua.ua.uatypes.type_is_list(uatype)#
- asyncua.ua.uatypes.type_is_union(uatype)#
- asyncua.ua.uatypes.type_string_from_type(uatype)#
- asyncua.ua.uatypes.types_from_union(uatype, origin=None)#
- asyncua.ua.uatypes.types_or_list_from_union(uatype)#
- asyncua.ua.uatypes.win_epoch_to_datetime(epch)#