QOpcUa Namespace | Qt OPC UA 6.4.1

- Qt 6.4
- Qt OPC UA
- QOpcUa Namespace
- Qt 6.4.1 Reference Documentation

# QOpcUa Namespace

The QOpcUa namespace contains miscellaneous identifiers used throughout the Qt OPC UA library. More...

Header: | #include <QOpcUa>

## Namespaces

namespace | NodeIds

## Types

flags | AccessLevel
enum class | AccessLevelBit { None, CurrentRead, CurrentWrite, HistoryRead, HistoryWrite, …, TimestampWrite }
enum class | AxisScale { Linear, Log, Ln }
enum class | ErrorCategory { NoError, NodeError, AttributeError, PermissionError, ArgumentError, …, UnspecifiedError }
flags | EventNotifier
enum class | EventNotifierBit { None, SubscribeToEvents, HistoryRead, HistoryWrite }
enum class | NodeAttribute { None, NodeId, NodeClass, BrowseName, DisplayName, …, UserExecutable }
flags | NodeAttributes
enum class | NodeClass { Undefined, Object, Variable, Method, ObjectType, …, View }
flags | NodeClasses
enum class | ReferenceTypeId { Unspecified, References, NonHierarchicalReferences, HierarchicalReferences, HasChild, …, AliasFor }
| TypedVariant
enum | Types { Boolean, Int32, UInt32, Double, Float, …, Undefined }
enum | UaStatusCode { Good, BadUnexpectedError, BadInternalError, BadOutOfMemory, BadResourceUnavailable, …, BadMaxConnectionsReached }
flags | WriteMask
enum class | WriteMaskBit { None, AccessLevel, ArrayDimensions, BrowseName, ContainsNoLoops, …, ValueForVariableType }

## Functions

QOpcUa::ErrorCategory | errorCategory(QOpcUa::UaStatusCode statusCode)
bool | isSecurePolicy(const QString &securityPolicy)
bool | isSuccessStatus(QOpcUa::UaStatusCode statusCode)
QOpcUa::Types | metaTypeToQOpcUaType(QMetaType::Type type)
QString | namespace0Id(QOpcUa::NodeIds::Namespace0 id)
QOpcUa::NodeIds::Namespace0 | namespace0IdFromNodeId(const QString &nodeId)
QString | namespace0IdName(QOpcUa::NodeIds::Namespace0 id)
bool | nodeIdEquals(const QString &first, const QString &second)
QString | nodeIdFromByteString(quint16 ns, const QByteArray &identifier)
QString | nodeIdFromGuid(quint16 ns, const QUuid &identifier)
QString | nodeIdFromInteger(quint16 ns, quint32 identifier)
QString | nodeIdFromReferenceType(QOpcUa::ReferenceTypeId referenceType)
QString | nodeIdFromString(quint16 ns, const QString &identifier)
bool | nodeIdStringSplit(const QString &nodeIdString, quint16 *nsIndex, QString *identifier, char *identifierType)
QString | statusToString(QOpcUa::UaStatusCode statusCode)

## Detailed Description

## Namespaces

### namespace QOpcUa::NodeIds

## Type Documentation

### enum class QOpcUa::AccessLevelBit
flags QOpcUa::AccessLevel

This enum contains all possible bits for the AccessLevel and UserAccessLevel node attributes defined in OPC-UA part 3, Table 8.

Constant | Value | Description
--- | --- | ---
`QOpcUa::AccessLevelBit::None` | `0` | No read access to the Value attribute is permitted.
`QOpcUa::AccessLevelBit::CurrentRead` | `(1 << 0)` | The current value can be read.
`QOpcUa::AccessLevelBit::CurrentWrite` | `(1 << 1)` | The current value can be written.
`QOpcUa::AccessLevelBit::HistoryRead` | `(1 << 2)` | The history of the value is readable.
`QOpcUa::AccessLevelBit::HistoryWrite` | `(1 << 3)` | The history of the value is writable.
`QOpcUa::AccessLevelBit::SemanticChange` | `(1 << 4)` | The property variable generates SemanticChangeEvents.
`QOpcUa::AccessLevelBit::StatusWrite` | `(1 << 5)` | The status code of the value is writable.
`QOpcUa::AccessLevelBit::TimestampWrite` | `(1 << 6)` | The SourceTimestamp is writable.

The AccessLevel type is a typedef for QFlags<AccessLevelBit>. It stores an OR combination of AccessLevelBit values.

### enum class QOpcUa::AxisScale

The AxisScale enum as defined by OPC-UA part 8, 5.6.7.

Constant | Value
--- | ---
`QOpcUa::AxisScale::Linear` | `0`
`QOpcUa::AxisScale::Log` | `1`
`QOpcUa::AxisScale::Ln` | `2`

### enum class QOpcUa::ErrorCategory

This enum contains simplified categories for OPC UA errors.

Constant | Value | Description
--- | --- | ---
`QOpcUa::ErrorCategory::NoError` | `0` | The operation has been successful.
`QOpcUa::ErrorCategory::NodeError` | `1` | There is a problem with the node, e. g. it does not exist.
`QOpcUa::ErrorCategory::AttributeError` | `2` | The attributes to operate on where invalid.
`QOpcUa::ErrorCategory::PermissionError` | `3` | The user did not have the permission to perform the operation.
`QOpcUa::ErrorCategory::ArgumentError` | `4` | The arguments supplied by the user were invalid or incomplete.
`QOpcUa::ErrorCategory::TypeError` | `5` | There has been a type mismatch for a write operation.
`QOpcUa::ErrorCategory::ConnectionError` | `6` | Communication with the server did not work as expected.
`QOpcUa::ErrorCategory::UnspecifiedError` | `7` | Any error that is not categorized. The detailed status code must be checked.

### enum class QOpcUa::EventNotifierBit
flags QOpcUa::EventNotifier

This enum contains all possible bits for the EventNotifier node attribute defined in OPC-UA part 3, Table 6.

Constant | Value | Description
--- | --- | ---
`QOpcUa::EventNotifierBit::None` | `0` | The node can't be used to interact with events.
`QOpcUa::EventNotifierBit::SubscribeToEvents` | `(1 << 0)` | A client can subscribe to events.
`QOpcUa::EventNotifierBit::HistoryRead` | `(1 << 2)` | A client can read the event history.
`QOpcUa::EventNotifierBit::HistoryWrite` | `(1 << 3)` | A client can write the event history.

The EventNotifier type is a typedef for QFlags<EventNotifierBit>. It stores an OR combination of EventNotifierBit values.

### enum class QOpcUa::NodeAttribute
flags QOpcUa::NodeAttributes

This enum contains the 22 node attributes defined in OPC-UA part 4, 5.

Constant | Value | Description
--- | --- | ---
`QOpcUa::NodeAttribute::None` | `0` | No node attribute.
`QOpcUa::NodeAttribute::NodeId` | `(1 << 0)` | Mandatory for all nodes. Contains the node's id in the OPC UA address space.
`QOpcUa::NodeAttribute::NodeClass` | `(1 << 1)` | Mandatory for all nodes. Contains the node id describing the node class of the node.
`QOpcUa::NodeAttribute::BrowseName` | `(1 << 2)` | Mandatory for all nodes. Contains a non-localized human readable name of the node.
`QOpcUa::NodeAttribute::DisplayName` | `(1 << 3)` | Mandatory for all nodes. Contains a localized human readable name for display purposes.
`QOpcUa::NodeAttribute::Description` | `(1 << 4)` | Contains a localized human readable description of the node.
`QOpcUa::NodeAttribute::WriteMask` | `(1 << 5)` | Contains a bit mask. Each bit corresponds to a writable attribute (OPC-UA part 3, Table 3).
`QOpcUa::NodeAttribute::UserWriteMask` | `(1 << 6)` | Same as WriteMask but for the current user.
`QOpcUa::NodeAttribute::IsAbstract` | `(1 << 7)` | True if the node is an abstract type which means that no nodes of this type shall exist.
`QOpcUa::NodeAttribute::Symmetric` | `(1 << 8)` | True if a reference's meaning is the same seen from both ends.
`QOpcUa::NodeAttribute::InverseName` | `(1 << 9)` | The localized inverse name of a reference (for example "HasSubtype" has the InverseName "SubtypeOf").
`QOpcUa::NodeAttribute::ContainsNoLoops` | `(1 << 10)` | True if there is no way to get back to a node following forward references in the current view.
`QOpcUa::NodeAttribute::EventNotifier` | `(1 << 11)` | Contains a bit mask used to indicate if subscribing to events and access to historic events is supported (OPC-UA part 3, Table 5).
`QOpcUa::NodeAttribute::Value` | `(1 << 12)` | The value of a Variable node.
`QOpcUa::NodeAttribute::DataType` | `(1 << 13)` | The NodeId of the Value attribute's data type (for example "ns=0;i=13" for DateTime, see https://opcfoundation.org/UA/schemas/1.03/NodeIds.csv).
`QOpcUa::NodeAttribute::ValueRank` | `(1 << 14)` | Contains information about the structure of the Value attribute (scalar/array) (OPC-UA part 3, Table 8).
`QOpcUa::NodeAttribute::ArrayDimensions` | `(1 << 15)` | An array containing the length for each dimension of a multi-dimensional array.
`QOpcUa::NodeAttribute::AccessLevel` | `(1 << 16)` | Contains a bit mask. Each bit corresponds to an access capability (OPC-UA part 3, Table 8).
`QOpcUa::NodeAttribute::UserAccessLevel` | `(1 << 17)` | Same as AccessLevel, but for the current user.
`QOpcUa::NodeAttribute::MinimumSamplingInterval` | `(1 << 18)` | Contains the shortest possible interval in which the server is able to sample the value.
`QOpcUa::NodeAttribute::Historizing` | `(1 << 19)` | True if historical data is collected.
`QOpcUa::NodeAttribute::Executable` | `(1 << 20)` | True if the node is currently executable. Only relevant for Method nodes.
`QOpcUa::NodeAttribute::UserExecutable` | `(1 << 21)` | Same as Executable, but for the current user.

The NodeAttributes type is a typedef for QFlags<NodeAttribute>. It stores an OR combination of NodeAttribute values.

### enum class QOpcUa::NodeClass
flags QOpcUa::NodeClasses

This enum specifies the class a node belongs to. OPC-UA specifies a fixed set of eight different classes.

Constant | Value | Description
--- | --- | ---
`QOpcUa::NodeClass::Undefined` | `0` | The node class is not known. This is the case before the NodeClass attribute has been read on the server.
`QOpcUa::NodeClass::Object` | `1` | An Object node.
`QOpcUa::NodeClass::Variable` | `2` | A Variable node.
`QOpcUa::NodeClass::Method` | `4` | A Method node.
`QOpcUa::NodeClass::ObjectType` | `8` | An ObjectType node.
`QOpcUa::NodeClass::VariableType` | `16` | A VariableType node.
`QOpcUa::NodeClass::ReferenceType` | `32` | A ReferenceType node.
`QOpcUa::NodeClass::DataType` | `64` | A DataType node.
`QOpcUa::NodeClass::View` | `128` | A View node.

The NodeClasses type is a typedef for QFlags<NodeClass>. It stores an OR combination of NodeClass values.

### enum class QOpcUa::ReferenceTypeId

This enum contains the reference types specified in OPC-UA part 3, 7. They are used to filter for a certain reference type in QOpcUaNode::browseChildren and for the reference type information in QOpcUaReferenceDescription.

Constant | Value | Description
--- | --- | ---
`QOpcUa::ReferenceTypeId::Unspecified` | `0` | Not a valid reference type.
`QOpcUa::ReferenceTypeId::References` | `31` | The abstract base type for all references.
`QOpcUa::ReferenceTypeId::NonHierarchicalReferences` | `32` | The abstract base type for all non-hierarchical references.
`QOpcUa::ReferenceTypeId::HierarchicalReferences` | `33` | The abstract base type for all hierarchical references.
`QOpcUa::ReferenceTypeId::HasChild` | `34` | The abstract base type for all non-looping hierarchical references.
`QOpcUa::ReferenceTypeId::Organizes` | `35` | The type for hierarchical references that are used to organize nodes.
`QOpcUa::ReferenceTypeId::HasEventSource` | `36` | The type for non-looping hierarchical references that are used to organize event sources.
`QOpcUa::ReferenceTypeId::HasModellingRule` | `37` | The type for references from instance declarations to modelling rule nodes.
`QOpcUa::ReferenceTypeId::HasEncoding` | `38` | The type for references from data type nodes to to data type encoding nodes.
`QOpcUa::ReferenceTypeId::HasDescription` | `39` | The type for references from data type encoding nodes to data type description nodes.
`QOpcUa::ReferenceTypeId::HasTypeDefinition` | `40` | The type for references from a instance node to its type definition node.
`QOpcUa::ReferenceTypeId::GeneratesEvent` | `41` | The type for references from a node to an event type that is raised by node.
`QOpcUa::ReferenceTypeId::Aggregates` | `44` | The type for non-looping hierarchical references that are used to aggregate nodes into complex types.
`QOpcUa::ReferenceTypeId::HasSubtype` | `45` | The type for non-looping hierarchical references that are used to define sub types.
`QOpcUa::ReferenceTypeId::HasProperty` | `46` | The type for non-looping hierarchical reference from a node to its property.
`QOpcUa::ReferenceTypeId::HasComponent` | `47` | The type for non-looping hierarchical reference from a node to its component.
`QOpcUa::ReferenceTypeId::HasNotifier` | `48` | The type for non-looping hierarchical references that are used to indicate how events propagate from node to node.
`QOpcUa::ReferenceTypeId::HasOrderedComponent` | `49` | The type for non-looping hierarchical reference from a node to its component when the order of references matters.
`QOpcUa::ReferenceTypeId::FromState` | `51` | The type for a reference to the state before a transition.
`QOpcUa::ReferenceTypeId::ToState` | `52` | The type for a reference to the state after a transition.
`QOpcUa::ReferenceTypeId::HasCause` | `53` | The type for a reference to a method that can cause a transition to occur.
`QOpcUa::ReferenceTypeId::HasEffect` | `54` | The type for a reference to an event that may be raised when a transition occurs.
`QOpcUa::ReferenceTypeId::HasHistoricalConfiguration` | `56` | The type for a reference to the historical configuration for a data variable.
`QOpcUa::ReferenceTypeId::HasSubStateMachine` | `117` | The type for a reference to a substate for a state.
`QOpcUa::ReferenceTypeId::HasArgumentDescription` | `129` | The type for a reference to an argument description
`QOpcUa::ReferenceTypeId::HasOptionalInputArgumentDescription` | `131` | The type for a reference to an optional input argument description
`QOpcUa::ReferenceTypeId::AlwaysGeneratesEvent` | `3065` | The type for references from a node to an event type that is always raised by node.
`QOpcUa::ReferenceTypeId::HasTrueSubState` | `9004` | The type for references from a TRUE super state node to a subordinate state node.
`QOpcUa::ReferenceTypeId::HasFalseSubState` | `9005` | The type for references from a FALSE super state node to a subordinate state node.
`QOpcUa::ReferenceTypeId::HasCondition` | `9006` | The type for references from a ConditionSource node to a Condition.
`QOpcUa::ReferenceTypeId::HasPubSubConnection` | `14476` | The type for a reference to a PubSub connection
`QOpcUa::ReferenceTypeId::DataSetToWriter` | `14936` | The type for a reference to a data set writer
`QOpcUa::ReferenceTypeId::HasGuard` | `15112` | The type for a reference to a guard
`QOpcUa::ReferenceTypeId::HasDataSetWriter` | `15296` | The type for a reference to a data set writer
`QOpcUa::ReferenceTypeId::HasDataSetReader` | `15297` | The type for a reference to data set reader
`QOpcUa::ReferenceTypeId::HasAlarmSuppressionGroup` | `16361` | The type for a reference to an alarm suppression group
`QOpcUa::ReferenceTypeId::AlarmGroupMember` | `16362` | The type for a reference to an alarm group member
`QOpcUa::ReferenceTypeId::HasEffectDisable` | `17276` | The type for a reference to an alarm which is disabled by a transition
`QOpcUa::ReferenceTypeId::HasDictionaryEntry` | `17597` | The type for a reference to a dictionary entry
`QOpcUa::ReferenceTypeId::HasInterface` | `17603` | The type for a reference to an interface
`QOpcUa::ReferenceTypeId::HasAddIn` | `17604` | The type for a reference to an addin
`QOpcUa::ReferenceTypeId::HasEffectEnable` | `17983` | The type for a reference to an alarm which is enabled by a transition
`QOpcUa::ReferenceTypeId::HasEffectSuppressed` | `17984` | The type for a reference to an alarm which is suppressed by a transition
`QOpcUa::ReferenceTypeId::HasEffectUnsuppressed` | `17985` | The type for a reference to an alarm which is unsuppressed by a transition
`QOpcUa::ReferenceTypeId::HasWriterGroup` | `18804` | The type for a reference to a writer group
`QOpcUa::ReferenceTypeId::HasReaderGroup` | `18805` | The type for a reference to a reader group
`QOpcUa::ReferenceTypeId::AliasFor` | `23469` | The type for a reference to the node represented by an alias

### QOpcUa::TypedVariant

This is QPair<QVariant, QOpcUa::Types>.

### enum QOpcUa::Types

Enumerates the types supported by Qt OPC UA.

Constant | Value | Description
--- | --- | ---
`QOpcUa::Boolean` | `0` |
`QOpcUa::Int32` | `1` |
`QOpcUa::UInt32` | `2` |
`QOpcUa::Double` | `3` |
`QOpcUa::Float` | `4` |
`QOpcUa::String` | `5` |
`QOpcUa::LocalizedText` | `6` |
`QOpcUa::DateTime` | `7` |
`QOpcUa::UInt16` | `8` |
`QOpcUa::Int16` | `9` |
`QOpcUa::UInt64` | `10` |
`QOpcUa::Int64` | `11` |
`QOpcUa::Byte` | `12` |
`QOpcUa::SByte` | `13` |
`QOpcUa::ByteString` | `14` |
`QOpcUa::XmlElement` | `15` |
`QOpcUa::NodeId` | `16` |
`QOpcUa::Guid` | `17` |
`QOpcUa::QualifiedName` | `18` | A name qualified by an OPC UA namespace index.
`QOpcUa::StatusCode` | `19` |
`QOpcUa::ExtensionObject` | `20` | A data structure which contains a serialized object.
`QOpcUa::Range` | `21` | A range composed from the two double values low and high.
`QOpcUa::EUInformation` | `22` | The unit of measurement for an analog value.
`QOpcUa::ComplexNumber` | `23` | The OPC UA ComplexNumber type.
`QOpcUa::DoubleComplexNumber` | `24` | The OPC UA DoubleComplexNumber type.
`QOpcUa::AxisInformation` | `25` | Information about an axis.
`QOpcUa::XV` | `26` | A float value with a double precision position on an axis.
`QOpcUa::ExpandedNodeId` | `27` | A node id with additional namespace URI and server index.
`QOpcUa::Argument` | `28` | The OPC UA Argument type.
`QOpcUa::Undefined` | `0xFFFFFFFF` |

### enum QOpcUa::UaStatusCode

Enumerates all status codes from https://opcfoundation.org/UA/schemas/1.03/Opc.Ua.StatusCodes.csv

Constant | Value
--- | ---
`QOpcUa::Good` | `0`
`QOpcUa::BadUnexpectedError` | `0x80010000`
`QOpcUa::BadInternalError` | `0x80020000`
`QOpcUa::BadOutOfMemory` | `0x80030000`
`QOpcUa::BadResourceUnavailable` | `0x80040000`
`QOpcUa::BadCommunicationError` | `0x80050000`
`QOpcUa::BadEncodingError` | `0x80060000`
`QOpcUa::BadDecodingError` | `0x80070000`
`QOpcUa::BadEncodingLimitsExceeded` | `0x80080000`
`QOpcUa::BadRequestTooLarge` | `0x80B80000`
`QOpcUa::BadResponseTooLarge` | `0x80B90000`
`QOpcUa::BadUnknownResponse` | `0x80090000`
`QOpcUa::BadTimeout` | `0x800A0000`
`QOpcUa::BadServiceUnsupported` | `0x800B0000`
`QOpcUa::BadShutdown` | `0x800C0000`
`QOpcUa::BadServerNotConnected` | `0x800D0000`
`QOpcUa::BadServerHalted` | `0x800E0000`
`QOpcUa::BadNothingToDo` | `0x800F0000`
`QOpcUa::BadTooManyOperations` | `0x80100000`
`QOpcUa::BadTooManyMonitoredItems` | `0x80DB0000`
`QOpcUa::BadDataTypeIdUnknown` | `0x80110000`
`QOpcUa::BadCertificateInvalid` | `0x80120000`
`QOpcUa::BadSecurityChecksFailed` | `0x80130000`
`QOpcUa::BadCertificateTimeInvalid` | `0x80140000`
`QOpcUa::BadCertificateIssuerTimeInvalid` | `0x80150000`
`QOpcUa::BadCertificateHostNameInvalid` | `0x80160000`
`QOpcUa::BadCertificateUriInvalid` | `0x80170000`
`QOpcUa::BadCertificateUseNotAllowed` | `0x80180000`
`QOpcUa::BadCertificateIssuerUseNotAllowed` | `0x80190000`
`QOpcUa::BadCertificateUntrusted` | `0x801A0000`
`QOpcUa::BadCertificateRevocationUnknown` | `0x801B0000`
`QOpcUa::BadCertificateIssuerRevocationUnknown` | `0x801C0000`
`QOpcUa::BadCertificateRevoked` | `0x801D0000`
`QOpcUa::BadCertificateIssuerRevoked` | `0x801E0000`
`QOpcUa::BadCertificateChainIncomplete` | `0x810D0000`
`QOpcUa::BadUserAccessDenied` | `0x801F0000`
`QOpcUa::BadIdentityTokenInvalid` | `0x80200000`
`QOpcUa::BadIdentityTokenRejected` | `0x80210000`
`QOpcUa::BadSecureChannelIdInvalid` | `0x80220000`
`QOpcUa::BadInvalidTimestamp` | `0x80230000`
`QOpcUa::BadNonceInvalid` | `0x80240000`
`QOpcUa::BadSessionIdInvalid` | `0x80250000`
`QOpcUa::BadSessionClosed` | `0x80260000`
`QOpcUa::BadSessionNotActivated` | `0x80270000`
`QOpcUa::BadSubscriptionIdInvalid` | `0x80280000`
`QOpcUa::BadRequestHeaderInvalid` | `0x802A0000`
`QOpcUa::BadTimestampsToReturnInvalid` | `0x802B0000`
`QOpcUa::BadRequestCancelledByClient` | `0x802C0000`
`QOpcUa::BadTooManyArguments` | `0x80E50000`
`QOpcUa::GoodSubscriptionTransferred` | `0x002D0000`
`QOpcUa::GoodCompletesAsynchronously` | `0x002E0000`
`QOpcUa::GoodOverload` | `0x002F0000`
`QOpcUa::GoodClamped` | `0x00300000`
`QOpcUa::BadNoCommunication` | `0x80310000`
`QOpcUa::BadWaitingForInitialData` | `0x80320000`
`QOpcUa::BadNodeIdInvalid` | `0x80330000`
`QOpcUa::BadNodeIdUnknown` | `0x80340000`
`QOpcUa::BadAttributeIdInvalid` | `0x80350000`
`QOpcUa::BadIndexRangeInvalid` | `0x80360000`
`QOpcUa::BadIndexRangeNoData` | `0x80370000`
`QOpcUa::BadDataEncodingInvalid` | `0x80380000`
`QOpcUa::BadDataEncodingUnsupported` | `0x80390000`
`QOpcUa::BadNotReadable` | `0x803A0000`
`QOpcUa::BadNotWritable` | `0x803B0000`
`QOpcUa::BadOutOfRange` | `0x803C0000`
`QOpcUa::BadNotSupported` | `0x803D0000`
`QOpcUa::BadNotFound` | `0x803E0000`
`QOpcUa::BadObjectDeleted` | `0x803F0000`
`QOpcUa::BadNotImplemented` | `0x80400000`
`QOpcUa::BadMonitoringModeInvalid` | `0x80410000`
`QOpcUa::BadMonitoredItemIdInvalid` | `0x80420000`
`QOpcUa::BadMonitoredItemFilterInvalid` | `0x80430000`
`QOpcUa::BadMonitoredItemFilterUnsupported` | `0x80440000`
`QOpcUa::BadFilterNotAllowed` | `0x80450000`
`QOpcUa::BadStructureMissing` | `0x80460000`
`QOpcUa::BadEventFilterInvalid` | `0x80470000`
`QOpcUa::BadContentFilterInvalid` | `0x80480000`
`QOpcUa::BadFilterOperatorInvalid` | `0x80C10000`
`QOpcUa::BadFilterOperatorUnsupported` | `0x80C20000`
`QOpcUa::BadFilterOperandCountMismatch` | `0x80C30000`
`QOpcUa::BadFilterOperandInvalid` | `0x80490000`
`QOpcUa::BadFilterElementInvalid` | `0x80C40000`
`QOpcUa::BadFilterLiteralInvalid` | `0x80C50000`
`QOpcUa::BadContinuationPointInvalid` | `0x804A0000`
`QOpcUa::BadNoContinuationPoints` | `0x804B0000`
`QOpcUa::BadReferenceTypeIdInvalid` | `0x804C0000`
`QOpcUa::BadBrowseDirectionInvalid` | `0x804D0000`
`QOpcUa::BadNodeNotInView` | `0x804E0000`
`QOpcUa::BadServerUriInvalid` | `0x804F0000`
`QOpcUa::BadServerNameMissing` | `0x80500000`
`QOpcUa::BadDiscoveryUrlMissing` | `0x80510000`
`QOpcUa::BadSempahoreFileMissing` | `0x80520000`
`QOpcUa::BadRequestTypeInvalid` | `0x80530000`
`QOpcUa::BadSecurityModeRejected` | `0x80540000`
`QOpcUa::BadSecurityPolicyRejected` | `0x80550000`
`QOpcUa::BadTooManySessions` | `0x80560000`
`QOpcUa::BadUserSignatureInvalid` | `0x80570000`
`QOpcUa::BadApplicationSignatureInvalid` | `0x80580000`
`QOpcUa::BadNoValidCertificates` | `0x80590000`
`QOpcUa::BadIdentityChangeNotSupported` | `0x80C60000`
`QOpcUa::BadRequestCancelledByRequest` | `0x805A0000`
`QOpcUa::BadParentNodeIdInvalid` | `0x805B0000`
`QOpcUa::BadReferenceNotAllowed` | `0x805C0000`
`QOpcUa::BadNodeIdRejected` | `0x805D0000`
`QOpcUa::BadNodeIdExists` | `0x805E0000`
`QOpcUa::BadNodeClassInvalid` | `0x805F0000`
`QOpcUa::BadBrowseNameInvalid` | `0x80600000`
`QOpcUa::BadBrowseNameDuplicated` | `0x80610000`
`QOpcUa::BadNodeAttributesInvalid` | `0x80620000`
`QOpcUa::BadTypeDefinitionInvalid` | `0x80630000`
`QOpcUa::BadSourceNodeIdInvalid` | `0x80640000`
`QOpcUa::BadTargetNodeIdInvalid` | `0x80650000`
`QOpcUa::BadDuplicateReferenceNotAllowed` | `0x80660000`
`QOpcUa::BadInvalidSelfReference` | `0x80670000`
`QOpcUa::BadReferenceLocalOnly` | `0x80680000`
`QOpcUa::BadNoDeleteRights` | `0x80690000`
`QOpcUa::UncertainReferenceNotDeleted` | `0x40BC0000`
`QOpcUa::BadServerIndexInvalid` | `0x806A0000`
`QOpcUa::BadViewIdUnknown` | `0x806B0000`
`QOpcUa::BadViewTimestampInvalid` | `0x80C90000`
`QOpcUa::BadViewParameterMismatch` | `0x80CA0000`
`QOpcUa::BadViewVersionInvalid` | `0x80CB0000`
`QOpcUa::UncertainNotAllNodesAvailable` | `0x40C00000`
`QOpcUa::GoodResultsMayBeIncomplete` | `0x00BA0000`
`QOpcUa::BadNotTypeDefinition` | `0x80C80000`
`QOpcUa::UncertainReferenceOutOfServer` | `0x406C0000`
`QOpcUa::BadTooManyMatches` | `0x806D0000`
`QOpcUa::BadQueryTooComplex` | `0x806E0000`
`QOpcUa::BadNoMatch` | `0x806F0000`
`QOpcUa::BadMaxAgeInvalid` | `0x80700000`
`QOpcUa::BadSecurityModeInsufficient` | `0x80E60000`
`QOpcUa::BadHistoryOperationInvalid` | `0x80710000`
`QOpcUa::BadHistoryOperationUnsupported` | `0x80720000`
`QOpcUa::BadInvalidTimestampArgument` | `0x80BD0000`
`QOpcUa::BadWriteNotSupported` | `0x80730000`
`QOpcUa::BadTypeMismatch` | `0x80740000`
`QOpcUa::BadMethodInvalid` | `0x80750000`
`QOpcUa::BadArgumentsMissing` | `0x80760000`
`QOpcUa::BadTooManySubscriptions` | `0x80770000`
`QOpcUa::BadTooManyPublishRequests` | `0x80780000`
`QOpcUa::BadNoSubscription` | `0x80790000`
`QOpcUa::BadSequenceNumberUnknown` | `0x807A0000`
`QOpcUa::BadMessageNotAvailable` | `0x807B0000`
`QOpcUa::BadInsufficientClientProfile` | `0x807C0000`
`QOpcUa::BadStateNotActive` | `0x80BF0000`
`QOpcUa::BadTcpServerTooBusy` | `0x807D0000`
`QOpcUa::BadTcpMessageTypeInvalid` | `0x807E0000`
`QOpcUa::BadTcpSecureChannelUnknown` | `0x807F0000`
`QOpcUa::BadTcpMessageTooLarge` | `0x80800000`
`QOpcUa::BadTcpNotEnoughResources` | `0x80810000`
`QOpcUa::BadTcpInternalError` | `0x80820000`
`QOpcUa::BadTcpEndpointUrlInvalid` | `0x80830000`
`QOpcUa::BadRequestInterrupted` | `0x80840000`
`QOpcUa::BadRequestTimeout` | `0x80850000`
`QOpcUa::BadSecureChannelClosed` | `0x80860000`
`QOpcUa::BadSecureChannelTokenUnknown` | `0x80870000`
`QOpcUa::BadSequenceNumberInvalid` | `0x80880000`
`QOpcUa::BadProtocolVersionUnsupported` | `0x80BE0000`
`QOpcUa::BadConfigurationError` | `0x80890000`
`QOpcUa::BadNotConnected` | `0x808A0000`
`QOpcUa::BadDeviceFailure` | `0x808B0000`
`QOpcUa::BadSensorFailure` | `0x808C0000`
`QOpcUa::BadOutOfService` | `0x808D0000`
`QOpcUa::BadDeadbandFilterInvalid` | `0x808E0000`
`QOpcUa::UncertainNoCommunicationLastUsableValue` | `0x408F0000`
`QOpcUa::UncertainLastUsableValue` | `0x40900000`
`QOpcUa::UncertainSubstituteValue` | `0x40910000`
`QOpcUa::UncertainInitialValue` | `0x40920000`
`QOpcUa::UncertainSensorNotAccurate` | `0x40930000`
`QOpcUa::UncertainEngineeringUnitsExceeded` | `0x40940000`
`QOpcUa::UncertainSubNormal` | `0x40950000`
`QOpcUa::GoodLocalOverride` | `0x00960000`
`QOpcUa::BadRefreshInProgress` | `0x80970000`
`QOpcUa::BadConditionAlreadyDisabled` | `0x80980000`
`QOpcUa::BadConditionAlreadyEnabled` | `0x80CC0000`
`QOpcUa::BadConditionDisabled` | `0x80990000`
`QOpcUa::BadEventIdUnknown` | `0x809A0000`
`QOpcUa::BadEventNotAcknowledgeable` | `0x80BB0000`
`QOpcUa::BadDialogNotActive` | `0x80CD0000`
`QOpcUa::BadDialogResponseInvalid` | `0x80CE0000`
`QOpcUa::BadConditionBranchAlreadyAcked` | `0x80CF0000`
`QOpcUa::BadConditionBranchAlreadyConfirmed` | `0x80D00000`
`QOpcUa::BadConditionAlreadyShelved` | `0x80D10000`
`QOpcUa::BadConditionNotShelved` | `0x80D20000`
`QOpcUa::BadShelvingTimeOutOfRange` | `0x80D30000`
`QOpcUa::BadNoData` | `0x809B0000`
`QOpcUa::BadBoundNotFound` | `0x80D70000`
`QOpcUa::BadBoundNotSupported` | `0x80D80000`
`QOpcUa::BadDataLost` | `0x809D0000`
`QOpcUa::BadDataUnavailable` | `0x809E0000`
`QOpcUa::BadEntryExists` | `0x809F0000`
`QOpcUa::BadNoEntryExists` | `0x80A00000`
`QOpcUa::BadTimestampNotSupported` | `0x80A10000`
`QOpcUa::GoodEntryInserted` | `0x00A20000`
`QOpcUa::GoodEntryReplaced` | `0x00A30000`
`QOpcUa::UncertainDataSubNormal` | `0x40A40000`
`QOpcUa::GoodNoData` | `0x00A50000`
`QOpcUa::GoodMoreData` | `0x00A60000`
`QOpcUa::BadAggregateListMismatch` | `0x80D40000`
`QOpcUa::BadAggregateNotSupported` | `0x80D50000`
`QOpcUa::BadAggregateInvalidInputs` | `0x80D60000`
`QOpcUa::BadAggregateConfigurationRejected` | `0x80DA0000`
`QOpcUa::GoodDataIgnored` | `0x00D90000`
`QOpcUa::BadRequestNotAllowed` | `0x80E40000`
`QOpcUa::GoodEdited` | `0x00DC0000`
`QOpcUa::GoodPostActionFailed` | `0x00DD0000`
`QOpcUa::UncertainDominantValueChanged` | `0x40DE0000`
`QOpcUa::GoodDependentValueChanged` | `0x00E00000`
`QOpcUa::BadDominantValueChanged` | `0x80E10000`
`QOpcUa::UncertainDependentValueChanged` | `0x40E20000`
`QOpcUa::BadDependentValueChanged` | `0x80E30000`
`QOpcUa::GoodCommunicationEvent` | `0x00A70000`
`QOpcUa::GoodShutdownEvent` | `0x00A80000`
`QOpcUa::GoodCallAgain` | `0x00A90000`
`QOpcUa::GoodNonCriticalTimeout` | `0x00AA0000`
`QOpcUa::BadInvalidArgument` | `0x80AB0000`
`QOpcUa::BadConnectionRejected` | `0x80AC0000`
`QOpcUa::BadDisconnect` | `0x80AD0000`
`QOpcUa::BadConnectionClosed` | `0x80AE0000`
`QOpcUa::BadInvalidState` | `0x80AF0000`
`QOpcUa::BadEndOfStream` | `0x80B00000`
`QOpcUa::BadNoDataAvailable` | `0x80B10000`
`QOpcUa::BadWaitingForResponse` | `0x80B20000`
`QOpcUa::BadOperationAbandoned` | `0x80B30000`
`QOpcUa::BadExpectedStreamToBlock` | `0x80B40000`
`QOpcUa::BadWouldBlock` | `0x80B50000`
`QOpcUa::BadSyntaxError` | `0x80B60000`
`QOpcUa::BadMaxConnectionsReached` | `0x80B70000`

### enum class QOpcUa::WriteMaskBit
flags QOpcUa::WriteMask

This enum contains all possible bits for the WriteMask and UserWriteMask node attributes defined in OPC-UA part 3, Table 3.

Constant | Value | Description
--- | --- | ---
`QOpcUa::WriteMaskBit::None` | `0` | No attribute is writable.
`QOpcUa::WriteMaskBit::AccessLevel` | `(1 << 0)` | The AccessLevel attribute is writable.
`QOpcUa::WriteMaskBit::ArrayDimensions` | `(1 << 1)` | The ArrayDimensions attribute is writable.
`QOpcUa::WriteMaskBit::BrowseName` | `(1 << 2)` | The BrowseName attribute is writable.
`QOpcUa::WriteMaskBit::ContainsNoLoops` | `(1 << 3)` | The ContainsNoLoops attribute is writable.
`QOpcUa::WriteMaskBit::DataType` | `(1 << 4)` | The DataType attribute is writable.
`QOpcUa::WriteMaskBit::Description` | `(1 << 5)` | The Description attribute is writable.
`QOpcUa::WriteMaskBit::DisplayName` | `(1 << 6)` | The DisplayName attribute is writable.
`QOpcUa::WriteMaskBit::EventNotifier` | `(1 << 7)` | The EventNotifier attribute is writable.
`QOpcUa::WriteMaskBit::Executable` | `(1 << 8)` | The Executable attribute is writable.
`QOpcUa::WriteMaskBit::Historizing` | `(1 << 9)` | The Historizing attribute is writable.
`QOpcUa::WriteMaskBit::InverseName` | `(1 << 10)` | The InverseName attribute is writable.
`QOpcUa::WriteMaskBit::IsAbstract` | `(1 << 11)` | The IsAbstract attribute is writable.
`QOpcUa::WriteMaskBit::MinimumSamplingInterval` | `(1 << 12)` | The MinimumSamplingInterval attribute is writable.
`QOpcUa::WriteMaskBit::NodeClass` | `(1 << 13)` | The NodeClass attribute is writable.
`QOpcUa::WriteMaskBit::NodeId` | `(1 << 14)` | The NodeId attribute is writable.
`QOpcUa::WriteMaskBit::Symmetric` | `(1 << 15)` | The Symmetric attribute is writable.
`QOpcUa::WriteMaskBit::UserAccessLevel` | `(1 << 16)` | The UserAccessLevel attribute is writable.
`QOpcUa::WriteMaskBit::UserExecutable` | `(1 << 17)` | The UserExecutable attribute is writable.
`QOpcUa::WriteMaskBit::UserWriteMask` | `(1 << 18)` | The UserWriteMask attribute is writable.
`QOpcUa::WriteMaskBit::ValueRank` | `(1 << 19)` | The ValueRank attribute is writable.
`QOpcUa::WriteMaskBit::WriteMask` | `(1 << 20)` | The WriteMask attribute is writable.
`QOpcUa::WriteMaskBit::ValueForVariableType` | `(1 << 21)` | The Value attribute of a variable type is writable.

The WriteMask type is a typedef for QFlags<WriteMaskBit>. It stores an OR combination of WriteMaskBit values.

## Function Documentation

### QOpcUa::ErrorCategory QOpcUa::errorCategory(QOpcUa::UaStatusCode statusCode)

Converts statusCode to an ErrorCategory. ErrorCategory can be used in cases where the exact error is not important.

For error handling dependent on status codes, the full status code must be used instead. The meaning of the status codes for the different services is documented in OPC-UA part 4.

If statusCode has not been categorized, UnspecifiedError is returned. In this case, the user must check the full status code.

### `[since QtOpcUa 5.14]` bool QOpcUa::isSecurePolicy(const QString &securityPolicy)

Returns `true` if securityPolicy is a secure policy, `false` otherwise.

This function was introduced in QtOpcUa 5.14.

### bool QOpcUa::isSuccessStatus(QOpcUa::UaStatusCode statusCode)

This method can be used to check if a call has successfully finished.

Returns `true` if statusCode's severity field is Good.

### `[since 5.13]` QOpcUa::Types QOpcUa::metaTypeToQOpcUaType(QMetaType::Type type)

Returns the Qt OPC UA type from type. In case the type does not map, `QOpcUa::Undefined` is returned.

This function was introduced in Qt 5.13.

### QString QOpcUa::namespace0Id(QOpcUa::NodeIds::Namespace0 id)

Returns a node id string for the namespace 0 identifier id.

### QOpcUa::NodeIds::Namespace0 QOpcUa::namespace0IdFromNodeId(const QString &nodeId)

Returns the enum value from QOpcUa::NodeIds::Namespace0 for nodeId.

If the node id is not in namespace 0 or doesn't have a numeric identifier which is part of the OPC Foundation's NodeIds.csv file, Unknown is returned.

If Qt OPC UA has been configured with -no-feature-ns0idnames, the check if the numeric identifier is part of the NodeIds.csv file is omitted. If the node id is in namespace 0 and has a numeric identifier, the identifier is returned regardless if it is part of the QOpcUa::NodeIds::Namespace0 enum.

### QString QOpcUa::namespace0IdName(QOpcUa::NodeIds::Namespace0 id)

Returns the name of the namespace 0 node id id.

If id is unknown or Qt OPC UA has been configured with -no-feature-ns0idnames, an empty string is returned.

### bool QOpcUa::nodeIdEquals(const QString &first, const QString &second)

Returns `true` if the two node ids first and second have the same namespace index and identifier. A node id string without a namespace index is assumed to be in namespace 0.

### QString QOpcUa::nodeIdFromByteString(quint16 ns, const QByteArray &identifier)

Creates a node id string from the namespace index ns and the byte string identifier.

See also QOpcUaNode.

### QString QOpcUa::nodeIdFromGuid(quint16 ns, const QUuid &identifier)

Creates a node id string from the namespace index ns and the GUID identifier.

See also QOpcUaNode.

### QString QOpcUa::nodeIdFromInteger(quint16 ns, quint32 identifier)

Creates a node id string from the namespace index ns and the integer identifier.

See also QOpcUaNode.

### QString QOpcUa::nodeIdFromReferenceType(QOpcUa::ReferenceTypeId referenceType)

Creates a node id string for the reference type id referenceType.

### QString QOpcUa::nodeIdFromString(quint16 ns, const QString &identifier)

Creates a node id string from the namespace index ns and the string identifier.

See also QOpcUaNode.

### bool QOpcUa::nodeIdStringSplit(const QString &nodeIdString, quint16 *nsIndex, QString *identifier, char *identifierType)

Splits the node id string nodeIdString in its components. The namespace index of the node id will be copied into nsIndex. The identifier string is copied into identifier and the identifier type (i, s, g, b) is copied into identifierType.

Returns `true` if the node id could be split successfully.

For example, "ns=1;s=MyString" is split into 1, 's' and "MyString". If no namespace index is given, ns=0 is assumed.

### QString QOpcUa::statusToString(QOpcUa::UaStatusCode statusCode)

Returns a textual representation of statusCode.

Currently, this is the name of the enum value but may be a real message in future releases.