aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/OpcUaMonitoredNode.cpp41
-rw-r--r--src/OpcUaMonitoredNode.h4
2 files changed, 45 insertions, 0 deletions
diff --git a/src/OpcUaMonitoredNode.cpp b/src/OpcUaMonitoredNode.cpp
index c5f1dc0..9155838 100644
--- a/src/OpcUaMonitoredNode.cpp
+++ b/src/OpcUaMonitoredNode.cpp
@@ -155,6 +155,8 @@ OpcUaMonitoredNode::setupNode ()
m_node->readAttributes (
QOpcUa::NodeAttribute::DisplayName | QOpcUa::NodeAttribute::Description
| QOpcUa::NodeAttribute::NodeClass | QOpcUa::NodeAttribute::DataType
+ | QOpcUa::NodeAttribute::ValueRank
+ | QOpcUa::NodeAttribute::ArrayDimensions
| QOpcUa::NodeAttribute::AccessLevel);
if (m_monitored)
@@ -238,6 +240,45 @@ OpcUaMonitoredNode::handleAttributeUpdated (QOpcUa::NodeAttribute attr,
m_info.dataType = rawId;
}
break;
+ case QOpcUa::NodeAttribute::ValueRank:
+ {
+ qint32 vr = value.toInt ();
+ switch (vr)
+ {
+ case -3:
+ m_info.valueRank = QStringLiteral ("ScalarOrOneDimension");
+ break;
+ case -2:
+ m_info.valueRank = QStringLiteral ("Any");
+ break;
+ case -1:
+ m_info.valueRank = QStringLiteral ("Scalar");
+ break;
+ case 0:
+ m_info.valueRank = QStringLiteral ("OneOrMoreDimensions");
+ break;
+ case 1:
+ m_info.valueRank = QStringLiteral ("OneDimension");
+ break;
+ case 2:
+ m_info.valueRank = QStringLiteral ("TwoDimensions");
+ break;
+ default:
+ m_info.valueRank = QString::number (vr)
+ + QStringLiteral ("Dimensions");
+ break;
+ }
+ }
+ break;
+ case QOpcUa::NodeAttribute::ArrayDimensions:
+ {
+ QStringList dims;
+ const QVariantList list = value.toList ();
+ for (const QVariant &dim : list)
+ dims << QString::number (dim.toUInt ());
+ m_info.arrayDimensions = dims.join (QStringLiteral (", "));
+ }
+ break;
case QOpcUa::NodeAttribute::AccessLevel:
{
quint32 bits = value.toUInt ();
diff --git a/src/OpcUaMonitoredNode.h b/src/OpcUaMonitoredNode.h
index 2ecffb7..3314874 100644
--- a/src/OpcUaMonitoredNode.h
+++ b/src/OpcUaMonitoredNode.h
@@ -30,6 +30,8 @@ struct OpcUaNodeInfo
Q_PROPERTY (QString description MEMBER description)
Q_PROPERTY (QString nodeClass MEMBER nodeClass)
Q_PROPERTY (QString dataType MEMBER dataType)
+ Q_PROPERTY (QString valueRank MEMBER valueRank)
+ Q_PROPERTY (QString arrayDimensions MEMBER arrayDimensions)
Q_PROPERTY (QString accessLevel MEMBER accessLevel)
Q_PROPERTY (QString status MEMBER status)
Q_PROPERTY (QDateTime sourceTimestamp MEMBER sourceTimestamp)
@@ -40,6 +42,8 @@ public:
QString description;
QString nodeClass;
QString dataType;
+ QString valueRank;
+ QString arrayDimensions;
QString accessLevel;
QString status;
QDateTime sourceTimestamp;