aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorHannes Mezger <hannes.mezger@ascolab.com>2014-06-12 17:36:32 +0200
committerEvan Huus <eapache@gmail.com>2014-06-17 17:25:16 +0000
commit7067e3a34006cc15b5d050e9dd564ced0cb1bd9b (patch)
tree3ecf61932ce0bf0caff98213922c6ad5edcb3f01 /plugins
parent8c0d3ae47e35f6692b91ab776919391f52700829 (diff)
Create and register subtree identifiers for all opcua array types
Currently for all arrays, the generic ett_opcua_array is used, instead we want to be more selective for storing the expanded state of subtrees. This commit adds subtree identifiers for all array types. Change-Id: Idcec51a200d1109cdb557d3366021d3b066b453d Reviewed-on: https://code.wireshark.org/review/2176 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/opcua/opcua_complextypeparser.c733
-rw-r--r--plugins/opcua/opcua_complextypeparser.h272
-rw-r--r--plugins/opcua/opcua_enumparser.c61
-rw-r--r--plugins/opcua/opcua_enumparser.h31
-rw-r--r--plugins/opcua/opcua_serviceparser.c489
-rw-r--r--plugins/opcua/opcua_serviceparser.h275
-rw-r--r--plugins/opcua/opcua_simpletypes.c116
-rw-r--r--plugins/opcua/opcua_simpletypes.h33
8 files changed, 1571 insertions, 439 deletions
diff --git a/plugins/opcua/opcua_complextypeparser.c b/plugins/opcua/opcua_complextypeparser.c
index d32b6c49ce..c0985072ec 100644
--- a/plugins/opcua/opcua_complextypeparser.c
+++ b/plugins/opcua/opcua_complextypeparser.c
@@ -29,6 +29,276 @@
#include "opcua_hfindeces.h"
gint ett_opcua_Node = -1;
+gint ett_opcua_array_Node = -1;
+gint ett_opcua_InstanceNode = -1;
+gint ett_opcua_array_InstanceNode = -1;
+gint ett_opcua_TypeNode = -1;
+gint ett_opcua_array_TypeNode = -1;
+gint ett_opcua_ObjectNode = -1;
+gint ett_opcua_array_ObjectNode = -1;
+gint ett_opcua_ObjectTypeNode = -1;
+gint ett_opcua_array_ObjectTypeNode = -1;
+gint ett_opcua_VariableNode = -1;
+gint ett_opcua_array_VariableNode = -1;
+gint ett_opcua_VariableTypeNode = -1;
+gint ett_opcua_array_VariableTypeNode = -1;
+gint ett_opcua_ReferenceTypeNode = -1;
+gint ett_opcua_array_ReferenceTypeNode = -1;
+gint ett_opcua_MethodNode = -1;
+gint ett_opcua_array_MethodNode = -1;
+gint ett_opcua_ViewNode = -1;
+gint ett_opcua_array_ViewNode = -1;
+gint ett_opcua_DataTypeNode = -1;
+gint ett_opcua_array_DataTypeNode = -1;
+gint ett_opcua_ReferenceNode = -1;
+gint ett_opcua_array_ReferenceNode = -1;
+gint ett_opcua_Argument = -1;
+gint ett_opcua_array_Argument = -1;
+gint ett_opcua_EnumValueType = -1;
+gint ett_opcua_array_EnumValueType = -1;
+gint ett_opcua_TimeZoneDataType = -1;
+gint ett_opcua_array_TimeZoneDataType = -1;
+gint ett_opcua_ApplicationDescription = -1;
+gint ett_opcua_array_ApplicationDescription = -1;
+gint ett_opcua_RequestHeader = -1;
+gint ett_opcua_array_RequestHeader = -1;
+gint ett_opcua_ResponseHeader = -1;
+gint ett_opcua_array_ResponseHeader = -1;
+gint ett_opcua_UserTokenPolicy = -1;
+gint ett_opcua_array_UserTokenPolicy = -1;
+gint ett_opcua_EndpointDescription = -1;
+gint ett_opcua_array_EndpointDescription = -1;
+gint ett_opcua_RegisteredServer = -1;
+gint ett_opcua_array_RegisteredServer = -1;
+gint ett_opcua_ChannelSecurityToken = -1;
+gint ett_opcua_array_ChannelSecurityToken = -1;
+gint ett_opcua_SignedSoftwareCertificate = -1;
+gint ett_opcua_array_SignedSoftwareCertificate = -1;
+gint ett_opcua_SignatureData = -1;
+gint ett_opcua_array_SignatureData = -1;
+gint ett_opcua_UserIdentityToken = -1;
+gint ett_opcua_array_UserIdentityToken = -1;
+gint ett_opcua_AnonymousIdentityToken = -1;
+gint ett_opcua_array_AnonymousIdentityToken = -1;
+gint ett_opcua_UserNameIdentityToken = -1;
+gint ett_opcua_array_UserNameIdentityToken = -1;
+gint ett_opcua_X509IdentityToken = -1;
+gint ett_opcua_array_X509IdentityToken = -1;
+gint ett_opcua_IssuedIdentityToken = -1;
+gint ett_opcua_array_IssuedIdentityToken = -1;
+gint ett_opcua_NodeAttributes = -1;
+gint ett_opcua_array_NodeAttributes = -1;
+gint ett_opcua_ObjectAttributes = -1;
+gint ett_opcua_array_ObjectAttributes = -1;
+gint ett_opcua_VariableAttributes = -1;
+gint ett_opcua_array_VariableAttributes = -1;
+gint ett_opcua_MethodAttributes = -1;
+gint ett_opcua_array_MethodAttributes = -1;
+gint ett_opcua_ObjectTypeAttributes = -1;
+gint ett_opcua_array_ObjectTypeAttributes = -1;
+gint ett_opcua_VariableTypeAttributes = -1;
+gint ett_opcua_array_VariableTypeAttributes = -1;
+gint ett_opcua_ReferenceTypeAttributes = -1;
+gint ett_opcua_array_ReferenceTypeAttributes = -1;
+gint ett_opcua_DataTypeAttributes = -1;
+gint ett_opcua_array_DataTypeAttributes = -1;
+gint ett_opcua_ViewAttributes = -1;
+gint ett_opcua_array_ViewAttributes = -1;
+gint ett_opcua_AddNodesItem = -1;
+gint ett_opcua_array_AddNodesItem = -1;
+gint ett_opcua_AddNodesResult = -1;
+gint ett_opcua_array_AddNodesResult = -1;
+gint ett_opcua_AddReferencesItem = -1;
+gint ett_opcua_array_AddReferencesItem = -1;
+gint ett_opcua_DeleteNodesItem = -1;
+gint ett_opcua_array_DeleteNodesItem = -1;
+gint ett_opcua_DeleteReferencesItem = -1;
+gint ett_opcua_array_DeleteReferencesItem = -1;
+gint ett_opcua_ViewDescription = -1;
+gint ett_opcua_array_ViewDescription = -1;
+gint ett_opcua_BrowseDescription = -1;
+gint ett_opcua_array_BrowseDescription = -1;
+gint ett_opcua_ReferenceDescription = -1;
+gint ett_opcua_array_ReferenceDescription = -1;
+gint ett_opcua_BrowseResult = -1;
+gint ett_opcua_array_BrowseResult = -1;
+gint ett_opcua_RelativePathElement = -1;
+gint ett_opcua_array_RelativePathElement = -1;
+gint ett_opcua_RelativePath = -1;
+gint ett_opcua_array_RelativePath = -1;
+gint ett_opcua_BrowsePath = -1;
+gint ett_opcua_array_BrowsePath = -1;
+gint ett_opcua_BrowsePathTarget = -1;
+gint ett_opcua_array_BrowsePathTarget = -1;
+gint ett_opcua_BrowsePathResult = -1;
+gint ett_opcua_array_BrowsePathResult = -1;
+gint ett_opcua_EndpointConfiguration = -1;
+gint ett_opcua_array_EndpointConfiguration = -1;
+gint ett_opcua_SupportedProfile = -1;
+gint ett_opcua_array_SupportedProfile = -1;
+gint ett_opcua_SoftwareCertificate = -1;
+gint ett_opcua_array_SoftwareCertificate = -1;
+gint ett_opcua_QueryDataDescription = -1;
+gint ett_opcua_array_QueryDataDescription = -1;
+gint ett_opcua_NodeTypeDescription = -1;
+gint ett_opcua_array_NodeTypeDescription = -1;
+gint ett_opcua_QueryDataSet = -1;
+gint ett_opcua_array_QueryDataSet = -1;
+gint ett_opcua_NodeReference = -1;
+gint ett_opcua_array_NodeReference = -1;
+gint ett_opcua_ContentFilterElement = -1;
+gint ett_opcua_array_ContentFilterElement = -1;
+gint ett_opcua_ContentFilter = -1;
+gint ett_opcua_array_ContentFilter = -1;
+gint ett_opcua_ElementOperand = -1;
+gint ett_opcua_array_ElementOperand = -1;
+gint ett_opcua_LiteralOperand = -1;
+gint ett_opcua_array_LiteralOperand = -1;
+gint ett_opcua_AttributeOperand = -1;
+gint ett_opcua_array_AttributeOperand = -1;
+gint ett_opcua_SimpleAttributeOperand = -1;
+gint ett_opcua_array_SimpleAttributeOperand = -1;
+gint ett_opcua_ContentFilterElementResult = -1;
+gint ett_opcua_array_ContentFilterElementResult = -1;
+gint ett_opcua_ContentFilterResult = -1;
+gint ett_opcua_array_ContentFilterResult = -1;
+gint ett_opcua_ParsingResult = -1;
+gint ett_opcua_array_ParsingResult = -1;
+gint ett_opcua_ReadValueId = -1;
+gint ett_opcua_array_ReadValueId = -1;
+gint ett_opcua_HistoryReadValueId = -1;
+gint ett_opcua_array_HistoryReadValueId = -1;
+gint ett_opcua_HistoryReadResult = -1;
+gint ett_opcua_array_HistoryReadResult = -1;
+gint ett_opcua_ReadEventDetails = -1;
+gint ett_opcua_array_ReadEventDetails = -1;
+gint ett_opcua_ReadRawModifiedDetails = -1;
+gint ett_opcua_array_ReadRawModifiedDetails = -1;
+gint ett_opcua_ReadProcessedDetails = -1;
+gint ett_opcua_array_ReadProcessedDetails = -1;
+gint ett_opcua_ReadAtTimeDetails = -1;
+gint ett_opcua_array_ReadAtTimeDetails = -1;
+gint ett_opcua_HistoryData = -1;
+gint ett_opcua_array_HistoryData = -1;
+gint ett_opcua_ModificationInfo = -1;
+gint ett_opcua_array_ModificationInfo = -1;
+gint ett_opcua_HistoryModifiedData = -1;
+gint ett_opcua_array_HistoryModifiedData = -1;
+gint ett_opcua_HistoryEvent = -1;
+gint ett_opcua_array_HistoryEvent = -1;
+gint ett_opcua_WriteValue = -1;
+gint ett_opcua_array_WriteValue = -1;
+gint ett_opcua_HistoryUpdateDetails = -1;
+gint ett_opcua_array_HistoryUpdateDetails = -1;
+gint ett_opcua_UpdateDataDetails = -1;
+gint ett_opcua_array_UpdateDataDetails = -1;
+gint ett_opcua_UpdateStructureDataDetails = -1;
+gint ett_opcua_array_UpdateStructureDataDetails = -1;
+gint ett_opcua_UpdateEventDetails = -1;
+gint ett_opcua_array_UpdateEventDetails = -1;
+gint ett_opcua_DeleteRawModifiedDetails = -1;
+gint ett_opcua_array_DeleteRawModifiedDetails = -1;
+gint ett_opcua_DeleteAtTimeDetails = -1;
+gint ett_opcua_array_DeleteAtTimeDetails = -1;
+gint ett_opcua_DeleteEventDetails = -1;
+gint ett_opcua_array_DeleteEventDetails = -1;
+gint ett_opcua_HistoryUpdateResult = -1;
+gint ett_opcua_array_HistoryUpdateResult = -1;
+gint ett_opcua_CallMethodRequest = -1;
+gint ett_opcua_array_CallMethodRequest = -1;
+gint ett_opcua_CallMethodResult = -1;
+gint ett_opcua_array_CallMethodResult = -1;
+gint ett_opcua_DataChangeFilter = -1;
+gint ett_opcua_array_DataChangeFilter = -1;
+gint ett_opcua_EventFilter = -1;
+gint ett_opcua_array_EventFilter = -1;
+gint ett_opcua_AggregateConfiguration = -1;
+gint ett_opcua_array_AggregateConfiguration = -1;
+gint ett_opcua_AggregateFilter = -1;
+gint ett_opcua_array_AggregateFilter = -1;
+gint ett_opcua_EventFilterResult = -1;
+gint ett_opcua_array_EventFilterResult = -1;
+gint ett_opcua_AggregateFilterResult = -1;
+gint ett_opcua_array_AggregateFilterResult = -1;
+gint ett_opcua_MonitoringParameters = -1;
+gint ett_opcua_array_MonitoringParameters = -1;
+gint ett_opcua_MonitoredItemCreateRequest = -1;
+gint ett_opcua_array_MonitoredItemCreateRequest = -1;
+gint ett_opcua_MonitoredItemCreateResult = -1;
+gint ett_opcua_array_MonitoredItemCreateResult = -1;
+gint ett_opcua_MonitoredItemModifyRequest = -1;
+gint ett_opcua_array_MonitoredItemModifyRequest = -1;
+gint ett_opcua_MonitoredItemModifyResult = -1;
+gint ett_opcua_array_MonitoredItemModifyResult = -1;
+gint ett_opcua_NotificationMessage = -1;
+gint ett_opcua_array_NotificationMessage = -1;
+gint ett_opcua_DataChangeNotification = -1;
+gint ett_opcua_array_DataChangeNotification = -1;
+gint ett_opcua_MonitoredItemNotification = -1;
+gint ett_opcua_array_MonitoredItemNotification = -1;
+gint ett_opcua_EventNotificationList = -1;
+gint ett_opcua_array_EventNotificationList = -1;
+gint ett_opcua_EventFieldList = -1;
+gint ett_opcua_array_EventFieldList = -1;
+gint ett_opcua_HistoryEventFieldList = -1;
+gint ett_opcua_array_HistoryEventFieldList = -1;
+gint ett_opcua_StatusChangeNotification = -1;
+gint ett_opcua_array_StatusChangeNotification = -1;
+gint ett_opcua_SubscriptionAcknowledgement = -1;
+gint ett_opcua_array_SubscriptionAcknowledgement = -1;
+gint ett_opcua_TransferResult = -1;
+gint ett_opcua_array_TransferResult = -1;
+gint ett_opcua_ScalarTestType = -1;
+gint ett_opcua_array_ScalarTestType = -1;
+gint ett_opcua_ArrayTestType = -1;
+gint ett_opcua_array_ArrayTestType = -1;
+gint ett_opcua_CompositeTestType = -1;
+gint ett_opcua_array_CompositeTestType = -1;
+gint ett_opcua_BuildInfo = -1;
+gint ett_opcua_array_BuildInfo = -1;
+gint ett_opcua_RedundantServerDataType = -1;
+gint ett_opcua_array_RedundantServerDataType = -1;
+gint ett_opcua_EndpointUrlListDataType = -1;
+gint ett_opcua_array_EndpointUrlListDataType = -1;
+gint ett_opcua_NetworkGroupDataType = -1;
+gint ett_opcua_array_NetworkGroupDataType = -1;
+gint ett_opcua_SamplingIntervalDiagnosticsDataType = -1;
+gint ett_opcua_array_SamplingIntervalDiagnosticsDataType = -1;
+gint ett_opcua_ServerDiagnosticsSummaryDataType = -1;
+gint ett_opcua_array_ServerDiagnosticsSummaryDataType = -1;
+gint ett_opcua_ServerStatusDataType = -1;
+gint ett_opcua_array_ServerStatusDataType = -1;
+gint ett_opcua_SessionDiagnosticsDataType = -1;
+gint ett_opcua_array_SessionDiagnosticsDataType = -1;
+gint ett_opcua_SessionSecurityDiagnosticsDataType = -1;
+gint ett_opcua_array_SessionSecurityDiagnosticsDataType = -1;
+gint ett_opcua_ServiceCounterDataType = -1;
+gint ett_opcua_array_ServiceCounterDataType = -1;
+gint ett_opcua_StatusResult = -1;
+gint ett_opcua_array_StatusResult = -1;
+gint ett_opcua_SubscriptionDiagnosticsDataType = -1;
+gint ett_opcua_array_SubscriptionDiagnosticsDataType = -1;
+gint ett_opcua_ModelChangeStructureDataType = -1;
+gint ett_opcua_array_ModelChangeStructureDataType = -1;
+gint ett_opcua_SemanticChangeStructureDataType = -1;
+gint ett_opcua_array_SemanticChangeStructureDataType = -1;
+gint ett_opcua_Range = -1;
+gint ett_opcua_array_Range = -1;
+gint ett_opcua_EUInformation = -1;
+gint ett_opcua_array_EUInformation = -1;
+gint ett_opcua_ComplexNumberType = -1;
+gint ett_opcua_array_ComplexNumberType = -1;
+gint ett_opcua_DoubleComplexNumberType = -1;
+gint ett_opcua_array_DoubleComplexNumberType = -1;
+gint ett_opcua_AxisInformation = -1;
+gint ett_opcua_array_AxisInformation = -1;
+gint ett_opcua_XVType = -1;
+gint ett_opcua_array_XVType = -1;
+gint ett_opcua_ProgramDiagnosticDataType = -1;
+gint ett_opcua_array_ProgramDiagnosticDataType = -1;
+gint ett_opcua_Annotation = -1;
+gint ett_opcua_array_Annotation = -1;
+
void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Node", szFieldName);
@@ -41,10 +311,9 @@ void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFie
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_InstanceNode = -1;
void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: InstanceNode", szFieldName);
@@ -57,10 +326,9 @@ void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TypeNode = -1;
void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TypeNode", szFieldName);
@@ -73,10 +341,9 @@ void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ObjectNode = -1;
void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectNode", szFieldName);
@@ -89,11 +356,10 @@ void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ObjectTypeNode = -1;
void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectTypeNode", szFieldName);
@@ -106,11 +372,10 @@ void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_VariableNode = -1;
void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableNode", szFieldName);
@@ -123,19 +388,18 @@ void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseVariant(subtree, tvb, pOffset, "Value");
parseNodeId(subtree, tvb, pOffset, "DataType");
parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel);
parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel);
parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval);
parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_VariableTypeNode = -1;
void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableTypeNode", szFieldName);
@@ -148,16 +412,15 @@ void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseVariant(subtree, tvb, pOffset, "Value");
parseNodeId(subtree, tvb, pOffset, "DataType");
parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReferenceTypeNode = -1;
void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceTypeNode", szFieldName);
@@ -170,13 +433,12 @@ void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric);
parseLocalizedText(subtree, tvb, pOffset, "InverseName");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MethodNode = -1;
void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MethodNode", szFieldName);
@@ -189,12 +451,11 @@ void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable);
parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ViewNode = -1;
void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewNode", szFieldName);
@@ -207,12 +468,11 @@ void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops);
parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DataTypeNode = -1;
void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataTypeNode", szFieldName);
@@ -225,11 +485,10 @@ void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReferenceNode = -1;
void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceNode", szFieldName);
@@ -239,7 +498,6 @@ void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
parseExpandedNodeId(subtree, tvb, pOffset, "TargetId");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_Argument = -1;
void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Argument", szFieldName);
@@ -248,11 +506,10 @@ void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s
parseNodeId(subtree, tvb, pOffset, "DataType");
parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
parseLocalizedText(subtree, tvb, pOffset, "Description");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EnumValueType = -1;
void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EnumValueType", szFieldName);
@@ -262,7 +519,6 @@ void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
parseLocalizedText(subtree, tvb, pOffset, "Description");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TimeZoneDataType = -1;
void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TimeZoneDataType", szFieldName);
@@ -271,7 +527,6 @@ void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseBoolean(subtree, tvb, pOffset, hf_opcua_DaylightSavingInOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ApplicationDescription = -1;
void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ApplicationDescription", szFieldName);
@@ -283,10 +538,9 @@ void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri);
parseString(subtree, tvb, pOffset, hf_opcua_DiscoveryProfileUri);
/* Array length field ignored: NoOfDiscoveryUrls */
- parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RequestHeader = -1;
void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RequestHeader", szFieldName);
@@ -300,7 +554,6 @@ void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ResponseHeader = -1;
void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ResponseHeader", szFieldName);
@@ -310,11 +563,10 @@ void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseStatusCode(subtree, tvb, pOffset, hf_opcua_ServiceResult);
parseDiagnosticInfo(subtree, tvb, pOffset, "ServiceDiagnostics");
/* Array length field ignored: NoOfStringTable */
- parseArraySimple(subtree, tvb, pOffset, "StringTable", "String", hf_opcua_StringTable, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "StringTable", "String", hf_opcua_StringTable, parseString, ett_opcua_array_String);
parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UserTokenPolicy = -1;
void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserTokenPolicy", szFieldName);
@@ -326,7 +578,6 @@ void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EndpointDescription = -1;
void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointDescription", szFieldName);
@@ -337,12 +588,11 @@ void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co
parseMessageSecurityMode(subtree, tvb, pOffset);
parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
/* Array length field ignored: NoOfUserIdentityTokens */
- parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", "UserTokenPolicy", parseUserTokenPolicy);
+ parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", "UserTokenPolicy", parseUserTokenPolicy, ett_opcua_array_UserTokenPolicy);
parseString(subtree, tvb, pOffset, hf_opcua_TransportProfileUri);
parseByte(subtree, tvb, pOffset, hf_opcua_SecurityLevel);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RegisteredServer = -1;
void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RegisteredServer", szFieldName);
@@ -350,16 +600,15 @@ void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
parseString(subtree, tvb, pOffset, hf_opcua_ProductUri);
/* Array length field ignored: NoOfServerNames */
- parseArrayComplex(subtree, tvb, pOffset, "ServerNames", "LocalizedText", parseLocalizedText);
+ parseArrayComplex(subtree, tvb, pOffset, "ServerNames", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText);
parseApplicationType(subtree, tvb, pOffset);
parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri);
/* Array length field ignored: NoOfDiscoveryUrls */
- parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String);
parseString(subtree, tvb, pOffset, hf_opcua_SemaphoreFilePath);
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsOnline);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ChannelSecurityToken = -1;
void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ChannelSecurityToken", szFieldName);
@@ -370,7 +619,6 @@ void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SignedSoftwareCertificate = -1;
void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SignedSoftwareCertificate", szFieldName);
@@ -379,7 +627,6 @@ void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseByteString(subtree, tvb, pOffset, hf_opcua_Signature);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SignatureData = -1;
void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SignatureData", szFieldName);
@@ -388,7 +635,6 @@ void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
parseByteString(subtree, tvb, pOffset, hf_opcua_Signature);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UserIdentityToken = -1;
void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserIdentityToken", szFieldName);
@@ -396,7 +642,6 @@ void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AnonymousIdentityToken = -1;
void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AnonymousIdentityToken", szFieldName);
@@ -404,7 +649,6 @@ void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UserNameIdentityToken = -1;
void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserNameIdentityToken", szFieldName);
@@ -415,7 +659,6 @@ void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_X509IdentityToken = -1;
void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: X509IdentityToken", szFieldName);
@@ -424,7 +667,6 @@ void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_IssuedIdentityToken = -1;
void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: IssuedIdentityToken", szFieldName);
@@ -434,7 +676,6 @@ void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co
parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_NodeAttributes = -1;
void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeAttributes", szFieldName);
@@ -446,7 +687,6 @@ void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ObjectAttributes = -1;
void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectAttributes", szFieldName);
@@ -459,7 +699,6 @@ void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_VariableAttributes = -1;
void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableAttributes", szFieldName);
@@ -473,14 +712,13 @@ void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con
parseNodeId(subtree, tvb, pOffset, "DataType");
parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel);
parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel);
parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval);
parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MethodAttributes = -1;
void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MethodAttributes", szFieldName);
@@ -494,7 +732,6 @@ void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ObjectTypeAttributes = -1;
void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectTypeAttributes", szFieldName);
@@ -507,7 +744,6 @@ void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_VariableTypeAttributes = -1;
void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableTypeAttributes", szFieldName);
@@ -521,11 +757,10 @@ void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseNodeId(subtree, tvb, pOffset, "DataType");
parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReferenceTypeAttributes = -1;
void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceTypeAttributes", szFieldName);
@@ -540,7 +775,6 @@ void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset
parseLocalizedText(subtree, tvb, pOffset, "InverseName");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DataTypeAttributes = -1;
void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataTypeAttributes", szFieldName);
@@ -553,7 +787,6 @@ void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ViewAttributes = -1;
void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewAttributes", szFieldName);
@@ -567,7 +800,6 @@ void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddNodesItem = -1;
void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddNodesItem", szFieldName);
@@ -581,7 +813,6 @@ void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddNodesResult = -1;
void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddNodesResult", szFieldName);
@@ -590,7 +821,6 @@ void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseNodeId(subtree, tvb, pOffset, "AddedNodeId");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddReferencesItem = -1;
void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddReferencesItem", szFieldName);
@@ -603,7 +833,6 @@ void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseNodeClass(subtree, tvb, pOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteNodesItem = -1;
void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteNodesItem", szFieldName);
@@ -612,7 +841,6 @@ void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteTargetReferences);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteReferencesItem = -1;
void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteReferencesItem", szFieldName);
@@ -624,7 +852,6 @@ void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteBidirectional);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ViewDescription = -1;
void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewDescription", szFieldName);
@@ -634,7 +861,6 @@ void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseUInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowseDescription = -1;
void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowseDescription", szFieldName);
@@ -647,7 +873,6 @@ void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseUInt32(subtree, tvb, pOffset, hf_opcua_ResultMask);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReferenceDescription = -1;
void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceDescription", szFieldName);
@@ -661,7 +886,6 @@ void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowseResult = -1;
void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowseResult", szFieldName);
@@ -669,10 +893,9 @@ void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceDescription", parseReferenceDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceDescription", parseReferenceDescription, ett_opcua_array_ReferenceDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RelativePathElement = -1;
void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RelativePathElement", szFieldName);
@@ -683,16 +906,14 @@ void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co
parseQualifiedName(subtree, tvb, pOffset, "TargetName");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RelativePath = -1;
void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RelativePath", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RelativePath);
/* Array length field ignored: NoOfElements */
- parseArrayComplex(subtree, tvb, pOffset, "Elements", "RelativePathElement", parseRelativePathElement);
+ parseArrayComplex(subtree, tvb, pOffset, "Elements", "RelativePathElement", parseRelativePathElement, ett_opcua_array_RelativePathElement);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowsePath = -1;
void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePath", szFieldName);
@@ -701,7 +922,6 @@ void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
parseRelativePath(subtree, tvb, pOffset, "RelativePath");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowsePathTarget = -1;
void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePathTarget", szFieldName);
@@ -710,17 +930,15 @@ void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseUInt32(subtree, tvb, pOffset, hf_opcua_RemainingPathIndex);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowsePathResult = -1;
void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePathResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePathResult);
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfTargets */
- parseArrayComplex(subtree, tvb, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget);
+ parseArrayComplex(subtree, tvb, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget, ett_opcua_array_BrowsePathTarget);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EndpointConfiguration = -1;
void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointConfiguration", szFieldName);
@@ -736,7 +954,6 @@ void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseInt32(subtree, tvb, pOffset, hf_opcua_SecurityTokenLifetime);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SupportedProfile = -1;
void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SupportedProfile", szFieldName);
@@ -747,10 +964,9 @@ void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseDateTime(subtree, tvb, pOffset, hf_opcua_ComplianceDate);
parseComplianceLevel(subtree, tvb, pOffset);
/* Array length field ignored: NoOfUnsupportedUnitIds */
- parseArraySimple(subtree, tvb, pOffset, "UnsupportedUnitIds", "String", hf_opcua_UnsupportedUnitIds, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "UnsupportedUnitIds", "String", hf_opcua_UnsupportedUnitIds, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SoftwareCertificate = -1;
void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SoftwareCertificate", szFieldName);
@@ -765,10 +981,9 @@ void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co
parseString(subtree, tvb, pOffset, hf_opcua_IssuedBy);
parseDateTime(subtree, tvb, pOffset, hf_opcua_IssueDate);
/* Array length field ignored: NoOfSupportedProfiles */
- parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", "SupportedProfile", parseSupportedProfile);
+ parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", "SupportedProfile", parseSupportedProfile, ett_opcua_array_SupportedProfile);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_QueryDataDescription = -1;
void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: QueryDataDescription", szFieldName);
@@ -778,7 +993,6 @@ void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_NodeTypeDescription = -1;
void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeTypeDescription", szFieldName);
@@ -786,10 +1000,9 @@ void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co
parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode");
parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubTypes);
/* Array length field ignored: NoOfDataToReturn */
- parseArrayComplex(subtree, tvb, pOffset, "DataToReturn", "QueryDataDescription", parseQueryDataDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "DataToReturn", "QueryDataDescription", parseQueryDataDescription, ett_opcua_array_QueryDataDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_QueryDataSet = -1;
void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: QueryDataSet", szFieldName);
@@ -797,10 +1010,9 @@ void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseExpandedNodeId(subtree, tvb, pOffset, "NodeId");
parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode");
/* Array length field ignored: NoOfValues */
- parseArrayComplex(subtree, tvb, pOffset, "Values", "Variant", parseVariant);
+ parseArrayComplex(subtree, tvb, pOffset, "Values", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_NodeReference = -1;
void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeReference", szFieldName);
@@ -809,29 +1021,26 @@ void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
/* Array length field ignored: NoOfReferencedNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", "NodeId", parseNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ContentFilterElement = -1;
void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterElement", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElement);
parseFilterOperator(subtree, tvb, pOffset);
/* Array length field ignored: NoOfFilterOperands */
- parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject);
+ parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ContentFilter = -1;
void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilter", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilter);
/* Array length field ignored: NoOfElements */
- parseArrayComplex(subtree, tvb, pOffset, "Elements", "ContentFilterElement", parseContentFilterElement);
+ parseArrayComplex(subtree, tvb, pOffset, "Elements", "ContentFilterElement", parseContentFilterElement, ett_opcua_array_ContentFilterElement);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ElementOperand = -1;
void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ElementOperand", szFieldName);
@@ -839,7 +1048,6 @@ void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseUInt32(subtree, tvb, pOffset, hf_opcua_Index);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_LiteralOperand = -1;
void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: LiteralOperand", szFieldName);
@@ -847,7 +1055,6 @@ void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseVariant(subtree, tvb, pOffset, "Value");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AttributeOperand = -1;
void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AttributeOperand", szFieldName);
@@ -859,54 +1066,49 @@ void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SimpleAttributeOperand = -1;
void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SimpleAttributeOperand", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SimpleAttributeOperand);
parseNodeId(subtree, tvb, pOffset, "TypeDefinitionId");
/* Array length field ignored: NoOfBrowsePath */
- parseArrayComplex(subtree, tvb, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName);
+ parseArrayComplex(subtree, tvb, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName);
parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ContentFilterElementResult = -1;
void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterElementResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElementResult);
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfOperandStatusCodes */
- parseArraySimple(subtree, tvb, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfOperandDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "OperandDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "OperandDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ContentFilterResult = -1;
void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterResult);
/* Array length field ignored: NoOfElementResults */
- parseArrayComplex(subtree, tvb, pOffset, "ElementResults", "ContentFilterElementResult", parseContentFilterElementResult);
+ parseArrayComplex(subtree, tvb, pOffset, "ElementResults", "ContentFilterElementResult", parseContentFilterElementResult, ett_opcua_array_ContentFilterElementResult);
/* Array length field ignored: NoOfElementDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "ElementDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "ElementDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ParsingResult = -1;
void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ParsingResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ParsingResult);
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfDataStatusCodes */
- parseArraySimple(subtree, tvb, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDataDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DataDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DataDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadValueId = -1;
void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadValueId", szFieldName);
@@ -917,7 +1119,6 @@ void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
parseQualifiedName(subtree, tvb, pOffset, "DataEncoding");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryReadValueId = -1;
void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryReadValueId", szFieldName);
@@ -928,7 +1129,6 @@ void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con
parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryReadResult = -1;
void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryReadResult", szFieldName);
@@ -938,7 +1138,6 @@ void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseExtensionObject(subtree, tvb, pOffset, "HistoryData");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadEventDetails = -1;
void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadEventDetails", szFieldName);
@@ -949,7 +1148,6 @@ void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseEventFilter(subtree, tvb, pOffset, "Filter");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadRawModifiedDetails = -1;
void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadRawModifiedDetails", szFieldName);
@@ -961,7 +1159,6 @@ void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseBoolean(subtree, tvb, pOffset, hf_opcua_ReturnBounds);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadProcessedDetails = -1;
void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadProcessedDetails", szFieldName);
@@ -970,30 +1167,27 @@ void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
parseDouble(subtree, tvb, pOffset, hf_opcua_ProcessingInterval);
/* Array length field ignored: NoOfAggregateType */
- parseArrayComplex(subtree, tvb, pOffset, "AggregateType", "NodeId", parseNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "AggregateType", "NodeId", parseNodeId, ett_opcua_array_NodeId);
parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadAtTimeDetails = -1;
void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadAtTimeDetails", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadAtTimeDetails);
/* Array length field ignored: NoOfReqTimes */
- parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime);
+ parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime);
parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSimpleBounds);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryData = -1;
void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryData", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryData);
/* Array length field ignored: NoOfDataValues */
- parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue);
+ parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ModificationInfo = -1;
void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ModificationInfo", szFieldName);
@@ -1003,27 +1197,24 @@ void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseString(subtree, tvb, pOffset, hf_opcua_UserName);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryModifiedData = -1;
void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryModifiedData", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryModifiedData);
/* Array length field ignored: NoOfDataValues */
- parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue);
+ parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
/* Array length field ignored: NoOfModificationInfos */
- parseArrayComplex(subtree, tvb, pOffset, "ModificationInfos", "ModificationInfo", parseModificationInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "ModificationInfos", "ModificationInfo", parseModificationInfo, ett_opcua_array_ModificationInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryEvent = -1;
void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryEvent", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEvent);
/* Array length field ignored: NoOfEvents */
- parseArrayComplex(subtree, tvb, pOffset, "Events", "HistoryEventFieldList", parseHistoryEventFieldList);
+ parseArrayComplex(subtree, tvb, pOffset, "Events", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_WriteValue = -1;
void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: WriteValue", szFieldName);
@@ -1034,7 +1225,6 @@ void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
parseDataValue(subtree, tvb, pOffset, "Value");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryUpdateDetails = -1;
void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryUpdateDetails", szFieldName);
@@ -1042,7 +1232,6 @@ void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseNodeId(subtree, tvb, pOffset, "NodeId");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UpdateDataDetails = -1;
void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateDataDetails", szFieldName);
@@ -1050,10 +1239,9 @@ void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseNodeId(subtree, tvb, pOffset, "NodeId");
parsePerformUpdateType(subtree, tvb, pOffset);
/* Array length field ignored: NoOfUpdateValues */
- parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue);
+ parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UpdateStructureDataDetails = -1;
void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateStructureDataDetails", szFieldName);
@@ -1061,10 +1249,9 @@ void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseNodeId(subtree, tvb, pOffset, "NodeId");
parsePerformUpdateType(subtree, tvb, pOffset);
/* Array length field ignored: NoOfUpdateValues */
- parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue);
+ parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UpdateEventDetails = -1;
void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateEventDetails", szFieldName);
@@ -1073,10 +1260,9 @@ void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con
parsePerformUpdateType(subtree, tvb, pOffset);
parseEventFilter(subtree, tvb, pOffset, "Filter");
/* Array length field ignored: NoOfEventData */
- parseArrayComplex(subtree, tvb, pOffset, "EventData", "HistoryEventFieldList", parseHistoryEventFieldList);
+ parseArrayComplex(subtree, tvb, pOffset, "EventData", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteRawModifiedDetails = -1;
void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteRawModifiedDetails", szFieldName);
@@ -1087,39 +1273,35 @@ void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteAtTimeDetails = -1;
void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteAtTimeDetails", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteAtTimeDetails);
parseNodeId(subtree, tvb, pOffset, "NodeId");
/* Array length field ignored: NoOfReqTimes */
- parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime);
+ parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteEventDetails = -1;
void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteEventDetails", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteEventDetails);
parseNodeId(subtree, tvb, pOffset, "NodeId");
/* Array length field ignored: NoOfEventIds */
- parseArraySimple(subtree, tvb, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString);
+ parseArraySimple(subtree, tvb, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString, ett_opcua_array_ByteString);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryUpdateResult = -1;
void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryUpdateResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResult);
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfOperationResults */
- parseArraySimple(subtree, tvb, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CallMethodRequest = -1;
void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CallMethodRequest", szFieldName);
@@ -1127,24 +1309,22 @@ void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseNodeId(subtree, tvb, pOffset, "ObjectId");
parseNodeId(subtree, tvb, pOffset, "MethodId");
/* Array length field ignored: NoOfInputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "InputArguments", "Variant", parseVariant);
+ parseArrayComplex(subtree, tvb, pOffset, "InputArguments", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CallMethodResult = -1;
void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CallMethodResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallMethodResult);
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfInputArgumentResults */
- parseArraySimple(subtree, tvb, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfInputArgumentDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
/* Array length field ignored: NoOfOutputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", "Variant", parseVariant);
+ parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DataChangeFilter = -1;
void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataChangeFilter", szFieldName);
@@ -1154,17 +1334,15 @@ void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseDouble(subtree, tvb, pOffset, hf_opcua_DeadbandValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EventFilter = -1;
void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFilter", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilter);
/* Array length field ignored: NoOfSelectClauses */
- parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", "SimpleAttributeOperand", parseSimpleAttributeOperand);
+ parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", "SimpleAttributeOperand", parseSimpleAttributeOperand, ett_opcua_array_SimpleAttributeOperand);
parseContentFilter(subtree, tvb, pOffset, "WhereClause");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AggregateConfiguration = -1;
void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateConfiguration", szFieldName);
@@ -1176,7 +1354,6 @@ void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSlopedExtrapolation);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AggregateFilter = -1;
void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateFilter", szFieldName);
@@ -1187,19 +1364,17 @@ void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EventFilterResult = -1;
void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFilterResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilterResult);
/* Array length field ignored: NoOfSelectClauseResults */
- parseArraySimple(subtree, tvb, pOffset, "SelectClauseResults", "StatusCode", hf_opcua_SelectClauseResults, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "SelectClauseResults", "StatusCode", hf_opcua_SelectClauseResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfSelectClauseDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
parseContentFilterResult(subtree, tvb, pOffset, "WhereClauseResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AggregateFilterResult = -1;
void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateFilterResult", szFieldName);
@@ -1209,7 +1384,6 @@ void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseAggregateConfiguration(subtree, tvb, pOffset, "RevisedAggregateConfiguration");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MonitoringParameters = -1;
void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoringParameters", szFieldName);
@@ -1221,7 +1395,6 @@ void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseBoolean(subtree, tvb, pOffset, hf_opcua_DiscardOldest);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MonitoredItemCreateRequest = -1;
void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemCreateRequest", szFieldName);
@@ -1231,7 +1404,6 @@ void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MonitoredItemCreateResult = -1;
void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemCreateResult", szFieldName);
@@ -1243,7 +1415,6 @@ void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseExtensionObject(subtree, tvb, pOffset, "FilterResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MonitoredItemModifyRequest = -1;
void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemModifyRequest", szFieldName);
@@ -1252,7 +1423,6 @@ void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MonitoredItemModifyResult = -1;
void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemModifyResult", szFieldName);
@@ -1263,7 +1433,6 @@ void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseExtensionObject(subtree, tvb, pOffset, "FilterResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_NotificationMessage = -1;
void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NotificationMessage", szFieldName);
@@ -1271,21 +1440,19 @@ void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co
parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
parseDateTime(subtree, tvb, pOffset, hf_opcua_PublishTime);
/* Array length field ignored: NoOfNotificationData */
- parseArrayComplex(subtree, tvb, pOffset, "NotificationData", "ExtensionObject", parseExtensionObject);
+ parseArrayComplex(subtree, tvb, pOffset, "NotificationData", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DataChangeNotification = -1;
void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataChangeNotification", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeNotification);
/* Array length field ignored: NoOfMonitoredItems */
- parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", "MonitoredItemNotification", parseMonitoredItemNotification);
+ parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", "MonitoredItemNotification", parseMonitoredItemNotification, ett_opcua_array_MonitoredItemNotification);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_MonitoredItemNotification = -1;
void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemNotification", szFieldName);
@@ -1294,35 +1461,31 @@ void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseDataValue(subtree, tvb, pOffset, "Value");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EventNotificationList = -1;
void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventNotificationList", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventNotificationList);
/* Array length field ignored: NoOfEvents */
- parseArrayComplex(subtree, tvb, pOffset, "Events", "EventFieldList", parseEventFieldList);
+ parseArrayComplex(subtree, tvb, pOffset, "Events", "EventFieldList", parseEventFieldList, ett_opcua_array_EventFieldList);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EventFieldList = -1;
void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFieldList", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFieldList);
parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
/* Array length field ignored: NoOfEventFields */
- parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant);
+ parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryEventFieldList = -1;
void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryEventFieldList", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEventFieldList);
/* Array length field ignored: NoOfEventFields */
- parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant);
+ parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_StatusChangeNotification = -1;
void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: StatusChangeNotification", szFieldName);
@@ -1331,7 +1494,6 @@ void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SubscriptionAcknowledgement = -1;
void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SubscriptionAcknowledgement", szFieldName);
@@ -1340,17 +1502,15 @@ void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOf
parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TransferResult = -1;
void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TransferResult", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferResult);
parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfAvailableSequenceNumbers */
- parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ScalarTestType = -1;
void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ScalarTestType", szFieldName);
@@ -1382,64 +1542,62 @@ void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
parseEnumeratedTestType(subtree, tvb, pOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ArrayTestType = -1;
void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ArrayTestType", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayTestType);
/* Array length field ignored: NoOfBooleans */
- parseArraySimple(subtree, tvb, pOffset, "Booleans", "Boolean", hf_opcua_Booleans, parseBoolean);
+ parseArraySimple(subtree, tvb, pOffset, "Booleans", "Boolean", hf_opcua_Booleans, parseBoolean, ett_opcua_array_Boolean);
/* Array length field ignored: NoOfSBytes */
- parseArraySimple(subtree, tvb, pOffset, "SBytes", "SByte", hf_opcua_SBytes, parseSByte);
+ parseArraySimple(subtree, tvb, pOffset, "SBytes", "SByte", hf_opcua_SBytes, parseSByte, ett_opcua_array_SByte);
/* Array length field ignored: NoOfInt16s */
- parseArraySimple(subtree, tvb, pOffset, "Int16s", "Int16", hf_opcua_Int16s, parseInt16);
+ parseArraySimple(subtree, tvb, pOffset, "Int16s", "Int16", hf_opcua_Int16s, parseInt16, ett_opcua_array_Int16);
/* Array length field ignored: NoOfUInt16s */
- parseArraySimple(subtree, tvb, pOffset, "UInt16s", "UInt16", hf_opcua_UInt16s, parseUInt16);
+ parseArraySimple(subtree, tvb, pOffset, "UInt16s", "UInt16", hf_opcua_UInt16s, parseUInt16, ett_opcua_array_UInt16);
/* Array length field ignored: NoOfInt32s */
- parseArraySimple(subtree, tvb, pOffset, "Int32s", "Int32", hf_opcua_Int32s, parseInt32);
+ parseArraySimple(subtree, tvb, pOffset, "Int32s", "Int32", hf_opcua_Int32s, parseInt32, ett_opcua_array_Int32);
/* Array length field ignored: NoOfUInt32s */
- parseArraySimple(subtree, tvb, pOffset, "UInt32s", "UInt32", hf_opcua_UInt32s, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "UInt32s", "UInt32", hf_opcua_UInt32s, parseUInt32, ett_opcua_array_UInt32);
/* Array length field ignored: NoOfInt64s */
- parseArraySimple(subtree, tvb, pOffset, "Int64s", "Int64", hf_opcua_Int64s, parseInt64);
+ parseArraySimple(subtree, tvb, pOffset, "Int64s", "Int64", hf_opcua_Int64s, parseInt64, ett_opcua_array_Int64);
/* Array length field ignored: NoOfUInt64s */
- parseArraySimple(subtree, tvb, pOffset, "UInt64s", "UInt64", hf_opcua_UInt64s, parseUInt64);
+ parseArraySimple(subtree, tvb, pOffset, "UInt64s", "UInt64", hf_opcua_UInt64s, parseUInt64, ett_opcua_array_UInt64);
/* Array length field ignored: NoOfFloats */
- parseArraySimple(subtree, tvb, pOffset, "Floats", "Float", hf_opcua_Floats, parseFloat);
+ parseArraySimple(subtree, tvb, pOffset, "Floats", "Float", hf_opcua_Floats, parseFloat, ett_opcua_array_Float);
/* Array length field ignored: NoOfDoubles */
- parseArraySimple(subtree, tvb, pOffset, "Doubles", "Double", hf_opcua_Doubles, parseDouble);
+ parseArraySimple(subtree, tvb, pOffset, "Doubles", "Double", hf_opcua_Doubles, parseDouble, ett_opcua_array_Double);
/* Array length field ignored: NoOfStrings */
- parseArraySimple(subtree, tvb, pOffset, "Strings", "String", hf_opcua_Strings, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "Strings", "String", hf_opcua_Strings, parseString, ett_opcua_array_String);
/* Array length field ignored: NoOfDateTimes */
- parseArraySimple(subtree, tvb, pOffset, "DateTimes", "DateTime", hf_opcua_DateTimes, parseDateTime);
+ parseArraySimple(subtree, tvb, pOffset, "DateTimes", "DateTime", hf_opcua_DateTimes, parseDateTime, ett_opcua_array_DateTime);
/* Array length field ignored: NoOfGuids */
- parseArraySimple(subtree, tvb, pOffset, "Guids", "Guid", hf_opcua_Guids, parseGuid);
+ parseArraySimple(subtree, tvb, pOffset, "Guids", "Guid", hf_opcua_Guids, parseGuid, ett_opcua_array_Guid);
/* Array length field ignored: NoOfByteStrings */
- parseArraySimple(subtree, tvb, pOffset, "ByteStrings", "ByteString", hf_opcua_ByteStrings, parseByteString);
+ parseArraySimple(subtree, tvb, pOffset, "ByteStrings", "ByteString", hf_opcua_ByteStrings, parseByteString, ett_opcua_array_ByteString);
/* Array length field ignored: NoOfXmlElements */
- parseArraySimple(subtree, tvb, pOffset, "XmlElements", "XmlElement", hf_opcua_XmlElements, parseXmlElement);
+ parseArraySimple(subtree, tvb, pOffset, "XmlElements", "XmlElement", hf_opcua_XmlElements, parseXmlElement, ett_opcua_array_XmlElement);
/* Array length field ignored: NoOfNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "NodeIds", "NodeId", parseNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "NodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
/* Array length field ignored: NoOfExpandedNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeIds", "ExpandedNodeId", parseExpandedNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeIds", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId);
/* Array length field ignored: NoOfStatusCodes */
- parseArraySimple(subtree, tvb, pOffset, "StatusCodes", "StatusCode", hf_opcua_StatusCodes, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "StatusCodes", "StatusCode", hf_opcua_StatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
/* Array length field ignored: NoOfQualifiedNames */
- parseArrayComplex(subtree, tvb, pOffset, "QualifiedNames", "QualifiedName", parseQualifiedName);
+ parseArrayComplex(subtree, tvb, pOffset, "QualifiedNames", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName);
/* Array length field ignored: NoOfLocalizedTexts */
- parseArrayComplex(subtree, tvb, pOffset, "LocalizedTexts", "LocalizedText", parseLocalizedText);
+ parseArrayComplex(subtree, tvb, pOffset, "LocalizedTexts", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText);
/* Array length field ignored: NoOfExtensionObjects */
- parseArrayComplex(subtree, tvb, pOffset, "ExtensionObjects", "ExtensionObject", parseExtensionObject);
+ parseArrayComplex(subtree, tvb, pOffset, "ExtensionObjects", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
/* Array length field ignored: NoOfDataValues */
- parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue);
+ parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
/* Array length field ignored: NoOfVariants */
- parseArrayComplex(subtree, tvb, pOffset, "Variants", "Variant", parseVariant);
+ parseArrayComplex(subtree, tvb, pOffset, "Variants", "Variant", parseVariant, ett_opcua_array_Variant);
/* Array length field ignored: NoOfEnumeratedValues */
- parseArrayEnum(subtree, tvb, pOffset, "EnumeratedValues", "EnumeratedTestType", parseEnumeratedTestType);
+ parseArrayEnum(subtree, tvb, pOffset, "EnumeratedValues", "EnumeratedTestType", parseEnumeratedTestType, ett_opcua_array_EnumeratedTestType);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CompositeTestType = -1;
void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CompositeTestType", szFieldName);
@@ -1448,7 +1606,6 @@ void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseArrayTestType(subtree, tvb, pOffset, "Field2");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BuildInfo = -1;
void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BuildInfo", szFieldName);
@@ -1461,7 +1618,6 @@ void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *
parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RedundantServerDataType = -1;
void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RedundantServerDataType", szFieldName);
@@ -1471,26 +1627,23 @@ void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset
parseServerState(subtree, tvb, pOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EndpointUrlListDataType = -1;
void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointUrlListDataType", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointUrlListDataType);
/* Array length field ignored: NoOfEndpointUrlList */
- parseArraySimple(subtree, tvb, pOffset, "EndpointUrlList", "String", hf_opcua_EndpointUrlList, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "EndpointUrlList", "String", hf_opcua_EndpointUrlList, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_NetworkGroupDataType = -1;
void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NetworkGroupDataType", szFieldName);
proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NetworkGroupDataType);
parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
/* Array length field ignored: NoOfNetworkPaths */
- parseArrayComplex(subtree, tvb, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType);
+ parseArrayComplex(subtree, tvb, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType, ett_opcua_array_EndpointUrlListDataType);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SamplingIntervalDiagnosticsDataType = -1;
void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SamplingIntervalDiagnosticsDataType", szFieldName);
@@ -1501,7 +1654,6 @@ void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, g
parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ServerDiagnosticsSummaryDataType = -1;
void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServerDiagnosticsSummaryDataType", szFieldName);
@@ -1520,7 +1672,6 @@ void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint
parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ServerStatusDataType = -1;
void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServerStatusDataType", szFieldName);
@@ -1533,7 +1684,6 @@ void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
parseLocalizedText(subtree, tvb, pOffset, "ShutdownReason");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SessionDiagnosticsDataType = -1;
void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SessionDiagnosticsDataType", szFieldName);
@@ -1544,7 +1694,7 @@ void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
parseDouble(subtree, tvb, pOffset, hf_opcua_ActualSessionTimeout);
parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize);
parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientConnectionTime);
@@ -1584,7 +1734,6 @@ void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseServiceCounterDataType(subtree, tvb, pOffset, "UnregisterNodesCount");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SessionSecurityDiagnosticsDataType = -1;
void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SessionSecurityDiagnosticsDataType", szFieldName);
@@ -1592,7 +1741,7 @@ void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gi
parseNodeId(subtree, tvb, pOffset, "SessionId");
parseString(subtree, tvb, pOffset, hf_opcua_ClientUserIdOfSession);
/* Array length field ignored: NoOfClientUserIdHistory */
- parseArraySimple(subtree, tvb, pOffset, "ClientUserIdHistory", "String", hf_opcua_ClientUserIdHistory, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "ClientUserIdHistory", "String", hf_opcua_ClientUserIdHistory, parseString, ett_opcua_array_String);
parseString(subtree, tvb, pOffset, hf_opcua_AuthenticationMechanism);
parseString(subtree, tvb, pOffset, hf_opcua_Encoding);
parseString(subtree, tvb, pOffset, hf_opcua_TransportProtocol);
@@ -1601,7 +1750,6 @@ void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gi
parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ServiceCounterDataType = -1;
void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServiceCounterDataType", szFieldName);
@@ -1610,7 +1758,6 @@ void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_StatusResult = -1;
void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: StatusResult", szFieldName);
@@ -1619,7 +1766,6 @@ void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SubscriptionDiagnosticsDataType = -1;
void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SubscriptionDiagnosticsDataType", szFieldName);
@@ -1657,7 +1803,6 @@ void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint
parseUInt32(subtree, tvb, pOffset, hf_opcua_EventQueueOverFlowCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ModelChangeStructureDataType = -1;
void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ModelChangeStructureDataType", szFieldName);
@@ -1667,7 +1812,6 @@ void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pO
parseByte(subtree, tvb, pOffset, hf_opcua_Verb);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SemanticChangeStructureDataType = -1;
void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SemanticChangeStructureDataType", szFieldName);
@@ -1676,7 +1820,6 @@ void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint
parseNodeId(subtree, tvb, pOffset, "AffectedType");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_Range = -1;
void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Range", szFieldName);
@@ -1685,7 +1828,6 @@ void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFi
parseDouble(subtree, tvb, pOffset, hf_opcua_High);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_EUInformation = -1;
void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EUInformation", szFieldName);
@@ -1696,7 +1838,6 @@ void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
parseLocalizedText(subtree, tvb, pOffset, "Description");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ComplexNumberType = -1;
void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ComplexNumberType", szFieldName);
@@ -1705,7 +1846,6 @@ void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons
parseFloat(subtree, tvb, pOffset, hf_opcua_Imaginary);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DoubleComplexNumberType = -1;
void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DoubleComplexNumberType", szFieldName);
@@ -1714,7 +1854,6 @@ void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset
parseDouble(subtree, tvb, pOffset, hf_opcua_Imaginary);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AxisInformation = -1;
void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AxisInformation", szFieldName);
@@ -1724,10 +1863,9 @@ void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
parseLocalizedText(subtree, tvb, pOffset, "Title");
parseAxisScaleEnumeration(subtree, tvb, pOffset);
/* Array length field ignored: NoOfAxisSteps */
- parseArraySimple(subtree, tvb, pOffset, "AxisSteps", "Double", hf_opcua_AxisSteps, parseDouble);
+ parseArraySimple(subtree, tvb, pOffset, "AxisSteps", "Double", hf_opcua_AxisSteps, parseDouble, ett_opcua_array_Double);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_XVType = -1;
void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: XVType", szFieldName);
@@ -1736,7 +1874,6 @@ void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szF
parseFloat(subtree, tvb, pOffset, hf_opcua_Value);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ProgramDiagnosticDataType = -1;
void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ProgramDiagnosticDataType", szFieldName);
@@ -1748,14 +1885,13 @@ void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseString(subtree, tvb, pOffset, hf_opcua_LastMethodCall);
parseNodeId(subtree, tvb, pOffset, "LastMethodSessionId");
/* Array length field ignored: NoOfLastMethodInputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "LastMethodInputArguments", "Argument", parseArgument);
+ parseArrayComplex(subtree, tvb, pOffset, "LastMethodInputArguments", "Argument", parseArgument, ett_opcua_array_Argument);
/* Array length field ignored: NoOfLastMethodOutputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "LastMethodOutputArguments", "Argument", parseArgument);
+ parseArrayComplex(subtree, tvb, pOffset, "LastMethodOutputArguments", "Argument", parseArgument, ett_opcua_array_Argument);
parseDateTime(subtree, tvb, pOffset, hf_opcua_LastMethodCallTime);
parseStatusResult(subtree, tvb, pOffset, "LastMethodReturnStatus");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_Annotation = -1;
void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Annotation", szFieldName);
@@ -1770,140 +1906,275 @@ void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
static gint *ett[] =
{
&ett_opcua_Node,
+ &ett_opcua_array_Node,
&ett_opcua_InstanceNode,
+ &ett_opcua_array_InstanceNode,
&ett_opcua_TypeNode,
+ &ett_opcua_array_TypeNode,
&ett_opcua_ObjectNode,
+ &ett_opcua_array_ObjectNode,
&ett_opcua_ObjectTypeNode,
+ &ett_opcua_array_ObjectTypeNode,
&ett_opcua_VariableNode,
+ &ett_opcua_array_VariableNode,
&ett_opcua_VariableTypeNode,
+ &ett_opcua_array_VariableTypeNode,
&ett_opcua_ReferenceTypeNode,
+ &ett_opcua_array_ReferenceTypeNode,
&ett_opcua_MethodNode,
+ &ett_opcua_array_MethodNode,
&ett_opcua_ViewNode,
+ &ett_opcua_array_ViewNode,
&ett_opcua_DataTypeNode,
+ &ett_opcua_array_DataTypeNode,
&ett_opcua_ReferenceNode,
+ &ett_opcua_array_ReferenceNode,
&ett_opcua_Argument,
+ &ett_opcua_array_Argument,
&ett_opcua_EnumValueType,
+ &ett_opcua_array_EnumValueType,
&ett_opcua_TimeZoneDataType,
+ &ett_opcua_array_TimeZoneDataType,
&ett_opcua_ApplicationDescription,
+ &ett_opcua_array_ApplicationDescription,
&ett_opcua_RequestHeader,
+ &ett_opcua_array_RequestHeader,
&ett_opcua_ResponseHeader,
+ &ett_opcua_array_ResponseHeader,
&ett_opcua_UserTokenPolicy,
+ &ett_opcua_array_UserTokenPolicy,
&ett_opcua_EndpointDescription,
+ &ett_opcua_array_EndpointDescription,
&ett_opcua_RegisteredServer,
+ &ett_opcua_array_RegisteredServer,
&ett_opcua_ChannelSecurityToken,
+ &ett_opcua_array_ChannelSecurityToken,
&ett_opcua_SignedSoftwareCertificate,
+ &ett_opcua_array_SignedSoftwareCertificate,
&ett_opcua_SignatureData,
+ &ett_opcua_array_SignatureData,
&ett_opcua_UserIdentityToken,
+ &ett_opcua_array_UserIdentityToken,
&ett_opcua_AnonymousIdentityToken,
+ &ett_opcua_array_AnonymousIdentityToken,
&ett_opcua_UserNameIdentityToken,
+ &ett_opcua_array_UserNameIdentityToken,
&ett_opcua_X509IdentityToken,
+ &ett_opcua_array_X509IdentityToken,
&ett_opcua_IssuedIdentityToken,
+ &ett_opcua_array_IssuedIdentityToken,
&ett_opcua_NodeAttributes,
+ &ett_opcua_array_NodeAttributes,
&ett_opcua_ObjectAttributes,
+ &ett_opcua_array_ObjectAttributes,
&ett_opcua_VariableAttributes,
+ &ett_opcua_array_VariableAttributes,
&ett_opcua_MethodAttributes,
+ &ett_opcua_array_MethodAttributes,
&ett_opcua_ObjectTypeAttributes,
+ &ett_opcua_array_ObjectTypeAttributes,
&ett_opcua_VariableTypeAttributes,
+ &ett_opcua_array_VariableTypeAttributes,
&ett_opcua_ReferenceTypeAttributes,
+ &ett_opcua_array_ReferenceTypeAttributes,
&ett_opcua_DataTypeAttributes,
+ &ett_opcua_array_DataTypeAttributes,
&ett_opcua_ViewAttributes,
+ &ett_opcua_array_ViewAttributes,
&ett_opcua_AddNodesItem,
+ &ett_opcua_array_AddNodesItem,
&ett_opcua_AddNodesResult,
+ &ett_opcua_array_AddNodesResult,
&ett_opcua_AddReferencesItem,
+ &ett_opcua_array_AddReferencesItem,
&ett_opcua_DeleteNodesItem,
+ &ett_opcua_array_DeleteNodesItem,
&ett_opcua_DeleteReferencesItem,
+ &ett_opcua_array_DeleteReferencesItem,
&ett_opcua_ViewDescription,
+ &ett_opcua_array_ViewDescription,
&ett_opcua_BrowseDescription,
+ &ett_opcua_array_BrowseDescription,
&ett_opcua_ReferenceDescription,
+ &ett_opcua_array_ReferenceDescription,
&ett_opcua_BrowseResult,
+ &ett_opcua_array_BrowseResult,
&ett_opcua_RelativePathElement,
+ &ett_opcua_array_RelativePathElement,
&ett_opcua_RelativePath,
+ &ett_opcua_array_RelativePath,
&ett_opcua_BrowsePath,
+ &ett_opcua_array_BrowsePath,
&ett_opcua_BrowsePathTarget,
+ &ett_opcua_array_BrowsePathTarget,
&ett_opcua_BrowsePathResult,
+ &ett_opcua_array_BrowsePathResult,
&ett_opcua_EndpointConfiguration,
+ &ett_opcua_array_EndpointConfiguration,
&ett_opcua_SupportedProfile,
+ &ett_opcua_array_SupportedProfile,
&ett_opcua_SoftwareCertificate,
+ &ett_opcua_array_SoftwareCertificate,
&ett_opcua_QueryDataDescription,
+ &ett_opcua_array_QueryDataDescription,
&ett_opcua_NodeTypeDescription,
+ &ett_opcua_array_NodeTypeDescription,
&ett_opcua_QueryDataSet,
+ &ett_opcua_array_QueryDataSet,
&ett_opcua_NodeReference,
+ &ett_opcua_array_NodeReference,
&ett_opcua_ContentFilterElement,
+ &ett_opcua_array_ContentFilterElement,
&ett_opcua_ContentFilter,
+ &ett_opcua_array_ContentFilter,
&ett_opcua_ElementOperand,
+ &ett_opcua_array_ElementOperand,
&ett_opcua_LiteralOperand,
+ &ett_opcua_array_LiteralOperand,
&ett_opcua_AttributeOperand,
+ &ett_opcua_array_AttributeOperand,
&ett_opcua_SimpleAttributeOperand,
+ &ett_opcua_array_SimpleAttributeOperand,
&ett_opcua_ContentFilterElementResult,
+ &ett_opcua_array_ContentFilterElementResult,
&ett_opcua_ContentFilterResult,
+ &ett_opcua_array_ContentFilterResult,
&ett_opcua_ParsingResult,
+ &ett_opcua_array_ParsingResult,
&ett_opcua_ReadValueId,
+ &ett_opcua_array_ReadValueId,
&ett_opcua_HistoryReadValueId,
+ &ett_opcua_array_HistoryReadValueId,
&ett_opcua_HistoryReadResult,
+ &ett_opcua_array_HistoryReadResult,
&ett_opcua_ReadEventDetails,
+ &ett_opcua_array_ReadEventDetails,
&ett_opcua_ReadRawModifiedDetails,
+ &ett_opcua_array_ReadRawModifiedDetails,
&ett_opcua_ReadProcessedDetails,
+ &ett_opcua_array_ReadProcessedDetails,
&ett_opcua_ReadAtTimeDetails,
+ &ett_opcua_array_ReadAtTimeDetails,
&ett_opcua_HistoryData,
+ &ett_opcua_array_HistoryData,
&ett_opcua_ModificationInfo,
+ &ett_opcua_array_ModificationInfo,
&ett_opcua_HistoryModifiedData,
+ &ett_opcua_array_HistoryModifiedData,
&ett_opcua_HistoryEvent,
+ &ett_opcua_array_HistoryEvent,
&ett_opcua_WriteValue,
+ &ett_opcua_array_WriteValue,
&ett_opcua_HistoryUpdateDetails,
+ &ett_opcua_array_HistoryUpdateDetails,
&ett_opcua_UpdateDataDetails,
+ &ett_opcua_array_UpdateDataDetails,
&ett_opcua_UpdateStructureDataDetails,
+ &ett_opcua_array_UpdateStructureDataDetails,
&ett_opcua_UpdateEventDetails,
+ &ett_opcua_array_UpdateEventDetails,
&ett_opcua_DeleteRawModifiedDetails,
+ &ett_opcua_array_DeleteRawModifiedDetails,
&ett_opcua_DeleteAtTimeDetails,
+ &ett_opcua_array_DeleteAtTimeDetails,
&ett_opcua_DeleteEventDetails,
+ &ett_opcua_array_DeleteEventDetails,
&ett_opcua_HistoryUpdateResult,
+ &ett_opcua_array_HistoryUpdateResult,
&ett_opcua_CallMethodRequest,
+ &ett_opcua_array_CallMethodRequest,
&ett_opcua_CallMethodResult,
+ &ett_opcua_array_CallMethodResult,
&ett_opcua_DataChangeFilter,
+ &ett_opcua_array_DataChangeFilter,
&ett_opcua_EventFilter,
+ &ett_opcua_array_EventFilter,
&ett_opcua_AggregateConfiguration,
+ &ett_opcua_array_AggregateConfiguration,
&ett_opcua_AggregateFilter,
+ &ett_opcua_array_AggregateFilter,
&ett_opcua_EventFilterResult,
+ &ett_opcua_array_EventFilterResult,
&ett_opcua_AggregateFilterResult,
+ &ett_opcua_array_AggregateFilterResult,
&ett_opcua_MonitoringParameters,
+ &ett_opcua_array_MonitoringParameters,
&ett_opcua_MonitoredItemCreateRequest,
+ &ett_opcua_array_MonitoredItemCreateRequest,
&ett_opcua_MonitoredItemCreateResult,
+ &ett_opcua_array_MonitoredItemCreateResult,
&ett_opcua_MonitoredItemModifyRequest,
+ &ett_opcua_array_MonitoredItemModifyRequest,
&ett_opcua_MonitoredItemModifyResult,
+ &ett_opcua_array_MonitoredItemModifyResult,
&ett_opcua_NotificationMessage,
+ &ett_opcua_array_NotificationMessage,
&ett_opcua_DataChangeNotification,
+ &ett_opcua_array_DataChangeNotification,
&ett_opcua_MonitoredItemNotification,
+ &ett_opcua_array_MonitoredItemNotification,
&ett_opcua_EventNotificationList,
+ &ett_opcua_array_EventNotificationList,
&ett_opcua_EventFieldList,
+ &ett_opcua_array_EventFieldList,
&ett_opcua_HistoryEventFieldList,
+ &ett_opcua_array_HistoryEventFieldList,
&ett_opcua_StatusChangeNotification,
+ &ett_opcua_array_StatusChangeNotification,
&ett_opcua_SubscriptionAcknowledgement,
+ &ett_opcua_array_SubscriptionAcknowledgement,
&ett_opcua_TransferResult,
+ &ett_opcua_array_TransferResult,
&ett_opcua_ScalarTestType,
+ &ett_opcua_array_ScalarTestType,
&ett_opcua_ArrayTestType,
+ &ett_opcua_array_ArrayTestType,
&ett_opcua_CompositeTestType,
+ &ett_opcua_array_CompositeTestType,
&ett_opcua_BuildInfo,
+ &ett_opcua_array_BuildInfo,
&ett_opcua_RedundantServerDataType,
+ &ett_opcua_array_RedundantServerDataType,
&ett_opcua_EndpointUrlListDataType,
+ &ett_opcua_array_EndpointUrlListDataType,
&ett_opcua_NetworkGroupDataType,
+ &ett_opcua_array_NetworkGroupDataType,
&ett_opcua_SamplingIntervalDiagnosticsDataType,
+ &ett_opcua_array_SamplingIntervalDiagnosticsDataType,
&ett_opcua_ServerDiagnosticsSummaryDataType,
+ &ett_opcua_array_ServerDiagnosticsSummaryDataType,
&ett_opcua_ServerStatusDataType,
+ &ett_opcua_array_ServerStatusDataType,
&ett_opcua_SessionDiagnosticsDataType,
+ &ett_opcua_array_SessionDiagnosticsDataType,
&ett_opcua_SessionSecurityDiagnosticsDataType,
+ &ett_opcua_array_SessionSecurityDiagnosticsDataType,
&ett_opcua_ServiceCounterDataType,
+ &ett_opcua_array_ServiceCounterDataType,
&ett_opcua_StatusResult,
+ &ett_opcua_array_StatusResult,
&ett_opcua_SubscriptionDiagnosticsDataType,
+ &ett_opcua_array_SubscriptionDiagnosticsDataType,
&ett_opcua_ModelChangeStructureDataType,
+ &ett_opcua_array_ModelChangeStructureDataType,
&ett_opcua_SemanticChangeStructureDataType,
+ &ett_opcua_array_SemanticChangeStructureDataType,
&ett_opcua_Range,
+ &ett_opcua_array_Range,
&ett_opcua_EUInformation,
+ &ett_opcua_array_EUInformation,
&ett_opcua_ComplexNumberType,
+ &ett_opcua_array_ComplexNumberType,
&ett_opcua_DoubleComplexNumberType,
+ &ett_opcua_array_DoubleComplexNumberType,
&ett_opcua_AxisInformation,
+ &ett_opcua_array_AxisInformation,
&ett_opcua_XVType,
+ &ett_opcua_array_XVType,
&ett_opcua_ProgramDiagnosticDataType,
+ &ett_opcua_array_ProgramDiagnosticDataType,
&ett_opcua_Annotation,
+ &ett_opcua_array_Annotation,
};
void registerComplexTypes(void)
diff --git a/plugins/opcua/opcua_complextypeparser.h b/plugins/opcua/opcua_complextypeparser.h
index fbd6ce4cab..ca176c2a93 100644
--- a/plugins/opcua/opcua_complextypeparser.h
+++ b/plugins/opcua/opcua_complextypeparser.h
@@ -14,7 +14,7 @@
**
** Description: OpcUa Complex Type Parser
**
-** This file was autogenerated on 10.06.2014.
+** This file was autogenerated on 17.06.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -23,6 +23,276 @@
#include <glib.h>
#include <epan/packet.h>
+extern gint ett_opcua_Node;
+extern gint ett_opcua_array_Node;
+extern gint ett_opcua_InstanceNode;
+extern gint ett_opcua_array_InstanceNode;
+extern gint ett_opcua_TypeNode;
+extern gint ett_opcua_array_TypeNode;
+extern gint ett_opcua_ObjectNode;
+extern gint ett_opcua_array_ObjectNode;
+extern gint ett_opcua_ObjectTypeNode;
+extern gint ett_opcua_array_ObjectTypeNode;
+extern gint ett_opcua_VariableNode;
+extern gint ett_opcua_array_VariableNode;
+extern gint ett_opcua_VariableTypeNode;
+extern gint ett_opcua_array_VariableTypeNode;
+extern gint ett_opcua_ReferenceTypeNode;
+extern gint ett_opcua_array_ReferenceTypeNode;
+extern gint ett_opcua_MethodNode;
+extern gint ett_opcua_array_MethodNode;
+extern gint ett_opcua_ViewNode;
+extern gint ett_opcua_array_ViewNode;
+extern gint ett_opcua_DataTypeNode;
+extern gint ett_opcua_array_DataTypeNode;
+extern gint ett_opcua_ReferenceNode;
+extern gint ett_opcua_array_ReferenceNode;
+extern gint ett_opcua_Argument;
+extern gint ett_opcua_array_Argument;
+extern gint ett_opcua_EnumValueType;
+extern gint ett_opcua_array_EnumValueType;
+extern gint ett_opcua_TimeZoneDataType;
+extern gint ett_opcua_array_TimeZoneDataType;
+extern gint ett_opcua_ApplicationDescription;
+extern gint ett_opcua_array_ApplicationDescription;
+extern gint ett_opcua_RequestHeader;
+extern gint ett_opcua_array_RequestHeader;
+extern gint ett_opcua_ResponseHeader;
+extern gint ett_opcua_array_ResponseHeader;
+extern gint ett_opcua_UserTokenPolicy;
+extern gint ett_opcua_array_UserTokenPolicy;
+extern gint ett_opcua_EndpointDescription;
+extern gint ett_opcua_array_EndpointDescription;
+extern gint ett_opcua_RegisteredServer;
+extern gint ett_opcua_array_RegisteredServer;
+extern gint ett_opcua_ChannelSecurityToken;
+extern gint ett_opcua_array_ChannelSecurityToken;
+extern gint ett_opcua_SignedSoftwareCertificate;
+extern gint ett_opcua_array_SignedSoftwareCertificate;
+extern gint ett_opcua_SignatureData;
+extern gint ett_opcua_array_SignatureData;
+extern gint ett_opcua_UserIdentityToken;
+extern gint ett_opcua_array_UserIdentityToken;
+extern gint ett_opcua_AnonymousIdentityToken;
+extern gint ett_opcua_array_AnonymousIdentityToken;
+extern gint ett_opcua_UserNameIdentityToken;
+extern gint ett_opcua_array_UserNameIdentityToken;
+extern gint ett_opcua_X509IdentityToken;
+extern gint ett_opcua_array_X509IdentityToken;
+extern gint ett_opcua_IssuedIdentityToken;
+extern gint ett_opcua_array_IssuedIdentityToken;
+extern gint ett_opcua_NodeAttributes;
+extern gint ett_opcua_array_NodeAttributes;
+extern gint ett_opcua_ObjectAttributes;
+extern gint ett_opcua_array_ObjectAttributes;
+extern gint ett_opcua_VariableAttributes;
+extern gint ett_opcua_array_VariableAttributes;
+extern gint ett_opcua_MethodAttributes;
+extern gint ett_opcua_array_MethodAttributes;
+extern gint ett_opcua_ObjectTypeAttributes;
+extern gint ett_opcua_array_ObjectTypeAttributes;
+extern gint ett_opcua_VariableTypeAttributes;
+extern gint ett_opcua_array_VariableTypeAttributes;
+extern gint ett_opcua_ReferenceTypeAttributes;
+extern gint ett_opcua_array_ReferenceTypeAttributes;
+extern gint ett_opcua_DataTypeAttributes;
+extern gint ett_opcua_array_DataTypeAttributes;
+extern gint ett_opcua_ViewAttributes;
+extern gint ett_opcua_array_ViewAttributes;
+extern gint ett_opcua_AddNodesItem;
+extern gint ett_opcua_array_AddNodesItem;
+extern gint ett_opcua_AddNodesResult;
+extern gint ett_opcua_array_AddNodesResult;
+extern gint ett_opcua_AddReferencesItem;
+extern gint ett_opcua_array_AddReferencesItem;
+extern gint ett_opcua_DeleteNodesItem;
+extern gint ett_opcua_array_DeleteNodesItem;
+extern gint ett_opcua_DeleteReferencesItem;
+extern gint ett_opcua_array_DeleteReferencesItem;
+extern gint ett_opcua_ViewDescription;
+extern gint ett_opcua_array_ViewDescription;
+extern gint ett_opcua_BrowseDescription;
+extern gint ett_opcua_array_BrowseDescription;
+extern gint ett_opcua_ReferenceDescription;
+extern gint ett_opcua_array_ReferenceDescription;
+extern gint ett_opcua_BrowseResult;
+extern gint ett_opcua_array_BrowseResult;
+extern gint ett_opcua_RelativePathElement;
+extern gint ett_opcua_array_RelativePathElement;
+extern gint ett_opcua_RelativePath;
+extern gint ett_opcua_array_RelativePath;
+extern gint ett_opcua_BrowsePath;
+extern gint ett_opcua_array_BrowsePath;
+extern gint ett_opcua_BrowsePathTarget;
+extern gint ett_opcua_array_BrowsePathTarget;
+extern gint ett_opcua_BrowsePathResult;
+extern gint ett_opcua_array_BrowsePathResult;
+extern gint ett_opcua_EndpointConfiguration;
+extern gint ett_opcua_array_EndpointConfiguration;
+extern gint ett_opcua_SupportedProfile;
+extern gint ett_opcua_array_SupportedProfile;
+extern gint ett_opcua_SoftwareCertificate;
+extern gint ett_opcua_array_SoftwareCertificate;
+extern gint ett_opcua_QueryDataDescription;
+extern gint ett_opcua_array_QueryDataDescription;
+extern gint ett_opcua_NodeTypeDescription;
+extern gint ett_opcua_array_NodeTypeDescription;
+extern gint ett_opcua_QueryDataSet;
+extern gint ett_opcua_array_QueryDataSet;
+extern gint ett_opcua_NodeReference;
+extern gint ett_opcua_array_NodeReference;
+extern gint ett_opcua_ContentFilterElement;
+extern gint ett_opcua_array_ContentFilterElement;
+extern gint ett_opcua_ContentFilter;
+extern gint ett_opcua_array_ContentFilter;
+extern gint ett_opcua_ElementOperand;
+extern gint ett_opcua_array_ElementOperand;
+extern gint ett_opcua_LiteralOperand;
+extern gint ett_opcua_array_LiteralOperand;
+extern gint ett_opcua_AttributeOperand;
+extern gint ett_opcua_array_AttributeOperand;
+extern gint ett_opcua_SimpleAttributeOperand;
+extern gint ett_opcua_array_SimpleAttributeOperand;
+extern gint ett_opcua_ContentFilterElementResult;
+extern gint ett_opcua_array_ContentFilterElementResult;
+extern gint ett_opcua_ContentFilterResult;
+extern gint ett_opcua_array_ContentFilterResult;
+extern gint ett_opcua_ParsingResult;
+extern gint ett_opcua_array_ParsingResult;
+extern gint ett_opcua_ReadValueId;
+extern gint ett_opcua_array_ReadValueId;
+extern gint ett_opcua_HistoryReadValueId;
+extern gint ett_opcua_array_HistoryReadValueId;
+extern gint ett_opcua_HistoryReadResult;
+extern gint ett_opcua_array_HistoryReadResult;
+extern gint ett_opcua_ReadEventDetails;
+extern gint ett_opcua_array_ReadEventDetails;
+extern gint ett_opcua_ReadRawModifiedDetails;
+extern gint ett_opcua_array_ReadRawModifiedDetails;
+extern gint ett_opcua_ReadProcessedDetails;
+extern gint ett_opcua_array_ReadProcessedDetails;
+extern gint ett_opcua_ReadAtTimeDetails;
+extern gint ett_opcua_array_ReadAtTimeDetails;
+extern gint ett_opcua_HistoryData;
+extern gint ett_opcua_array_HistoryData;
+extern gint ett_opcua_ModificationInfo;
+extern gint ett_opcua_array_ModificationInfo;
+extern gint ett_opcua_HistoryModifiedData;
+extern gint ett_opcua_array_HistoryModifiedData;
+extern gint ett_opcua_HistoryEvent;
+extern gint ett_opcua_array_HistoryEvent;
+extern gint ett_opcua_WriteValue;
+extern gint ett_opcua_array_WriteValue;
+extern gint ett_opcua_HistoryUpdateDetails;
+extern gint ett_opcua_array_HistoryUpdateDetails;
+extern gint ett_opcua_UpdateDataDetails;
+extern gint ett_opcua_array_UpdateDataDetails;
+extern gint ett_opcua_UpdateStructureDataDetails;
+extern gint ett_opcua_array_UpdateStructureDataDetails;
+extern gint ett_opcua_UpdateEventDetails;
+extern gint ett_opcua_array_UpdateEventDetails;
+extern gint ett_opcua_DeleteRawModifiedDetails;
+extern gint ett_opcua_array_DeleteRawModifiedDetails;
+extern gint ett_opcua_DeleteAtTimeDetails;
+extern gint ett_opcua_array_DeleteAtTimeDetails;
+extern gint ett_opcua_DeleteEventDetails;
+extern gint ett_opcua_array_DeleteEventDetails;
+extern gint ett_opcua_HistoryUpdateResult;
+extern gint ett_opcua_array_HistoryUpdateResult;
+extern gint ett_opcua_CallMethodRequest;
+extern gint ett_opcua_array_CallMethodRequest;
+extern gint ett_opcua_CallMethodResult;
+extern gint ett_opcua_array_CallMethodResult;
+extern gint ett_opcua_DataChangeFilter;
+extern gint ett_opcua_array_DataChangeFilter;
+extern gint ett_opcua_EventFilter;
+extern gint ett_opcua_array_EventFilter;
+extern gint ett_opcua_AggregateConfiguration;
+extern gint ett_opcua_array_AggregateConfiguration;
+extern gint ett_opcua_AggregateFilter;
+extern gint ett_opcua_array_AggregateFilter;
+extern gint ett_opcua_EventFilterResult;
+extern gint ett_opcua_array_EventFilterResult;
+extern gint ett_opcua_AggregateFilterResult;
+extern gint ett_opcua_array_AggregateFilterResult;
+extern gint ett_opcua_MonitoringParameters;
+extern gint ett_opcua_array_MonitoringParameters;
+extern gint ett_opcua_MonitoredItemCreateRequest;
+extern gint ett_opcua_array_MonitoredItemCreateRequest;
+extern gint ett_opcua_MonitoredItemCreateResult;
+extern gint ett_opcua_array_MonitoredItemCreateResult;
+extern gint ett_opcua_MonitoredItemModifyRequest;
+extern gint ett_opcua_array_MonitoredItemModifyRequest;
+extern gint ett_opcua_MonitoredItemModifyResult;
+extern gint ett_opcua_array_MonitoredItemModifyResult;
+extern gint ett_opcua_NotificationMessage;
+extern gint ett_opcua_array_NotificationMessage;
+extern gint ett_opcua_DataChangeNotification;
+extern gint ett_opcua_array_DataChangeNotification;
+extern gint ett_opcua_MonitoredItemNotification;
+extern gint ett_opcua_array_MonitoredItemNotification;
+extern gint ett_opcua_EventNotificationList;
+extern gint ett_opcua_array_EventNotificationList;
+extern gint ett_opcua_EventFieldList;
+extern gint ett_opcua_array_EventFieldList;
+extern gint ett_opcua_HistoryEventFieldList;
+extern gint ett_opcua_array_HistoryEventFieldList;
+extern gint ett_opcua_StatusChangeNotification;
+extern gint ett_opcua_array_StatusChangeNotification;
+extern gint ett_opcua_SubscriptionAcknowledgement;
+extern gint ett_opcua_array_SubscriptionAcknowledgement;
+extern gint ett_opcua_TransferResult;
+extern gint ett_opcua_array_TransferResult;
+extern gint ett_opcua_ScalarTestType;
+extern gint ett_opcua_array_ScalarTestType;
+extern gint ett_opcua_ArrayTestType;
+extern gint ett_opcua_array_ArrayTestType;
+extern gint ett_opcua_CompositeTestType;
+extern gint ett_opcua_array_CompositeTestType;
+extern gint ett_opcua_BuildInfo;
+extern gint ett_opcua_array_BuildInfo;
+extern gint ett_opcua_RedundantServerDataType;
+extern gint ett_opcua_array_RedundantServerDataType;
+extern gint ett_opcua_EndpointUrlListDataType;
+extern gint ett_opcua_array_EndpointUrlListDataType;
+extern gint ett_opcua_NetworkGroupDataType;
+extern gint ett_opcua_array_NetworkGroupDataType;
+extern gint ett_opcua_SamplingIntervalDiagnosticsDataType;
+extern gint ett_opcua_array_SamplingIntervalDiagnosticsDataType;
+extern gint ett_opcua_ServerDiagnosticsSummaryDataType;
+extern gint ett_opcua_array_ServerDiagnosticsSummaryDataType;
+extern gint ett_opcua_ServerStatusDataType;
+extern gint ett_opcua_array_ServerStatusDataType;
+extern gint ett_opcua_SessionDiagnosticsDataType;
+extern gint ett_opcua_array_SessionDiagnosticsDataType;
+extern gint ett_opcua_SessionSecurityDiagnosticsDataType;
+extern gint ett_opcua_array_SessionSecurityDiagnosticsDataType;
+extern gint ett_opcua_ServiceCounterDataType;
+extern gint ett_opcua_array_ServiceCounterDataType;
+extern gint ett_opcua_StatusResult;
+extern gint ett_opcua_array_StatusResult;
+extern gint ett_opcua_SubscriptionDiagnosticsDataType;
+extern gint ett_opcua_array_SubscriptionDiagnosticsDataType;
+extern gint ett_opcua_ModelChangeStructureDataType;
+extern gint ett_opcua_array_ModelChangeStructureDataType;
+extern gint ett_opcua_SemanticChangeStructureDataType;
+extern gint ett_opcua_array_SemanticChangeStructureDataType;
+extern gint ett_opcua_Range;
+extern gint ett_opcua_array_Range;
+extern gint ett_opcua_EUInformation;
+extern gint ett_opcua_array_EUInformation;
+extern gint ett_opcua_ComplexNumberType;
+extern gint ett_opcua_array_ComplexNumberType;
+extern gint ett_opcua_DoubleComplexNumberType;
+extern gint ett_opcua_array_DoubleComplexNumberType;
+extern gint ett_opcua_AxisInformation;
+extern gint ett_opcua_array_AxisInformation;
+extern gint ett_opcua_XVType;
+extern gint ett_opcua_array_XVType;
+extern gint ett_opcua_ProgramDiagnosticDataType;
+extern gint ett_opcua_array_ProgramDiagnosticDataType;
+extern gint ett_opcua_Annotation;
+extern gint ett_opcua_array_Annotation;
void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
diff --git a/plugins/opcua/opcua_enumparser.c b/plugins/opcua/opcua_enumparser.c
index c12e033876..36b26bb944 100644
--- a/plugins/opcua/opcua_enumparser.c
+++ b/plugins/opcua/opcua_enumparser.c
@@ -14,7 +14,7 @@
**
** Description: OpcUa Enum Type Parser
**
-** This file was autogenerated on 10.06.2014.
+** This file was autogenerated on 17.06.2014.
** DON'T MODIFY THIS FILE!
**
******************************************************************************/
@@ -26,6 +26,33 @@
#include "opcua_enumparser.h"
+gint ett_opcua_array_NodeIdType = -1;
+gint ett_opcua_array_OpenFileMode = -1;
+gint ett_opcua_array_IdType = -1;
+gint ett_opcua_array_NodeClass = -1;
+gint ett_opcua_array_ApplicationType = -1;
+gint ett_opcua_array_MessageSecurityMode = -1;
+gint ett_opcua_array_UserTokenType = -1;
+gint ett_opcua_array_SecurityTokenRequestType = -1;
+gint ett_opcua_array_NodeAttributesMask = -1;
+gint ett_opcua_array_AttributeWriteMask = -1;
+gint ett_opcua_array_BrowseDirection = -1;
+gint ett_opcua_array_BrowseResultMask = -1;
+gint ett_opcua_array_ComplianceLevel = -1;
+gint ett_opcua_array_FilterOperator = -1;
+gint ett_opcua_array_TimestampsToReturn = -1;
+gint ett_opcua_array_HistoryUpdateType = -1;
+gint ett_opcua_array_PerformUpdateType = -1;
+gint ett_opcua_array_MonitoringMode = -1;
+gint ett_opcua_array_DataChangeTrigger = -1;
+gint ett_opcua_array_DeadbandType = -1;
+gint ett_opcua_array_EnumeratedTestType = -1;
+gint ett_opcua_array_RedundancySupport = -1;
+gint ett_opcua_array_ServerState = -1;
+gint ett_opcua_array_ModelChangeStructureVerbMask = -1;
+gint ett_opcua_array_AxisScaleEnumeration = -1;
+gint ett_opcua_array_ExceptionDeviationFormat = -1;
+
/** NodeIdType enum table */
static const value_string g_NodeIdTypeTable[] = {
{ 0, "TwoByte" },
@@ -465,6 +492,37 @@ void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
proto_tree_add_item(tree, hf_opcua_ExceptionDeviationFormat, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
+/** Setup enum subtree array */
+static gint *ett[] =
+{
+ &ett_opcua_array_NodeIdType,
+ &ett_opcua_array_OpenFileMode,
+ &ett_opcua_array_IdType,
+ &ett_opcua_array_NodeClass,
+ &ett_opcua_array_ApplicationType,
+ &ett_opcua_array_MessageSecurityMode,
+ &ett_opcua_array_UserTokenType,
+ &ett_opcua_array_SecurityTokenRequestType,
+ &ett_opcua_array_NodeAttributesMask,
+ &ett_opcua_array_AttributeWriteMask,
+ &ett_opcua_array_BrowseDirection,
+ &ett_opcua_array_BrowseResultMask,
+ &ett_opcua_array_ComplianceLevel,
+ &ett_opcua_array_FilterOperator,
+ &ett_opcua_array_TimestampsToReturn,
+ &ett_opcua_array_HistoryUpdateType,
+ &ett_opcua_array_PerformUpdateType,
+ &ett_opcua_array_MonitoringMode,
+ &ett_opcua_array_DataChangeTrigger,
+ &ett_opcua_array_DeadbandType,
+ &ett_opcua_array_EnumeratedTestType,
+ &ett_opcua_array_RedundancySupport,
+ &ett_opcua_array_ServerState,
+ &ett_opcua_array_ModelChangeStructureVerbMask,
+ &ett_opcua_array_AxisScaleEnumeration,
+ &ett_opcua_array_ExceptionDeviationFormat,
+};
+
/** Register enum types. */
void registerEnumTypes(int proto)
{
@@ -552,5 +610,6 @@ void registerEnumTypes(int proto)
};
proto_register_field_array(proto, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
}
diff --git a/plugins/opcua/opcua_enumparser.h b/plugins/opcua/opcua_enumparser.h
index fc9b85cde7..cedb9a9209 100644
--- a/plugins/opcua/opcua_enumparser.h
+++ b/plugins/opcua/opcua_enumparser.h
@@ -1,5 +1,5 @@
/******************************************************************************
-** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved.
+** Copyright (C) 2006-2014 ascolab GmbH. All Rights Reserved.
** Web: http://www.ascolab.com
**
** This program is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
**
** Description: OpcUa Enum Type Parser
**
-** This file was autogenerated on 12.02.2013.
+** This file was autogenerated on 17.06.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -23,6 +23,33 @@
#include <glib.h>
#include <epan/packet.h>
+extern gint ett_opcua_array_NodeIdType;
+extern gint ett_opcua_array_OpenFileMode;
+extern gint ett_opcua_array_IdType;
+extern gint ett_opcua_array_NodeClass;
+extern gint ett_opcua_array_ApplicationType;
+extern gint ett_opcua_array_MessageSecurityMode;
+extern gint ett_opcua_array_UserTokenType;
+extern gint ett_opcua_array_SecurityTokenRequestType;
+extern gint ett_opcua_array_NodeAttributesMask;
+extern gint ett_opcua_array_AttributeWriteMask;
+extern gint ett_opcua_array_BrowseDirection;
+extern gint ett_opcua_array_BrowseResultMask;
+extern gint ett_opcua_array_ComplianceLevel;
+extern gint ett_opcua_array_FilterOperator;
+extern gint ett_opcua_array_TimestampsToReturn;
+extern gint ett_opcua_array_HistoryUpdateType;
+extern gint ett_opcua_array_PerformUpdateType;
+extern gint ett_opcua_array_MonitoringMode;
+extern gint ett_opcua_array_DataChangeTrigger;
+extern gint ett_opcua_array_DeadbandType;
+extern gint ett_opcua_array_EnumeratedTestType;
+extern gint ett_opcua_array_RedundancySupport;
+extern gint ett_opcua_array_ServerState;
+extern gint ett_opcua_array_ModelChangeStructureVerbMask;
+extern gint ett_opcua_array_AxisScaleEnumeration;
+extern gint ett_opcua_array_ExceptionDeviationFormat;
+
void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
diff --git a/plugins/opcua/opcua_serviceparser.c b/plugins/opcua/opcua_serviceparser.c
index 0a46a819f0..dea2b4c00f 100644
--- a/plugins/opcua/opcua_serviceparser.c
+++ b/plugins/opcua/opcua_serviceparser.c
@@ -30,6 +30,164 @@
#include "opcua_serviceparser.h"
gint ett_opcua_ServiceFault = -1;
+gint ett_opcua_array_ServiceFault = -1;
+gint ett_opcua_FindServersRequest = -1;
+gint ett_opcua_array_FindServersRequest = -1;
+gint ett_opcua_FindServersResponse = -1;
+gint ett_opcua_array_FindServersResponse = -1;
+gint ett_opcua_GetEndpointsRequest = -1;
+gint ett_opcua_array_GetEndpointsRequest = -1;
+gint ett_opcua_GetEndpointsResponse = -1;
+gint ett_opcua_array_GetEndpointsResponse = -1;
+gint ett_opcua_RegisterServerRequest = -1;
+gint ett_opcua_array_RegisterServerRequest = -1;
+gint ett_opcua_RegisterServerResponse = -1;
+gint ett_opcua_array_RegisterServerResponse = -1;
+gint ett_opcua_OpenSecureChannelRequest = -1;
+gint ett_opcua_array_OpenSecureChannelRequest = -1;
+gint ett_opcua_OpenSecureChannelResponse = -1;
+gint ett_opcua_array_OpenSecureChannelResponse = -1;
+gint ett_opcua_CloseSecureChannelRequest = -1;
+gint ett_opcua_array_CloseSecureChannelRequest = -1;
+gint ett_opcua_CloseSecureChannelResponse = -1;
+gint ett_opcua_array_CloseSecureChannelResponse = -1;
+gint ett_opcua_CreateSessionRequest = -1;
+gint ett_opcua_array_CreateSessionRequest = -1;
+gint ett_opcua_CreateSessionResponse = -1;
+gint ett_opcua_array_CreateSessionResponse = -1;
+gint ett_opcua_ActivateSessionRequest = -1;
+gint ett_opcua_array_ActivateSessionRequest = -1;
+gint ett_opcua_ActivateSessionResponse = -1;
+gint ett_opcua_array_ActivateSessionResponse = -1;
+gint ett_opcua_CloseSessionRequest = -1;
+gint ett_opcua_array_CloseSessionRequest = -1;
+gint ett_opcua_CloseSessionResponse = -1;
+gint ett_opcua_array_CloseSessionResponse = -1;
+gint ett_opcua_CancelRequest = -1;
+gint ett_opcua_array_CancelRequest = -1;
+gint ett_opcua_CancelResponse = -1;
+gint ett_opcua_array_CancelResponse = -1;
+gint ett_opcua_AddNodesRequest = -1;
+gint ett_opcua_array_AddNodesRequest = -1;
+gint ett_opcua_AddNodesResponse = -1;
+gint ett_opcua_array_AddNodesResponse = -1;
+gint ett_opcua_AddReferencesRequest = -1;
+gint ett_opcua_array_AddReferencesRequest = -1;
+gint ett_opcua_AddReferencesResponse = -1;
+gint ett_opcua_array_AddReferencesResponse = -1;
+gint ett_opcua_DeleteNodesRequest = -1;
+gint ett_opcua_array_DeleteNodesRequest = -1;
+gint ett_opcua_DeleteNodesResponse = -1;
+gint ett_opcua_array_DeleteNodesResponse = -1;
+gint ett_opcua_DeleteReferencesRequest = -1;
+gint ett_opcua_array_DeleteReferencesRequest = -1;
+gint ett_opcua_DeleteReferencesResponse = -1;
+gint ett_opcua_array_DeleteReferencesResponse = -1;
+gint ett_opcua_BrowseRequest = -1;
+gint ett_opcua_array_BrowseRequest = -1;
+gint ett_opcua_BrowseResponse = -1;
+gint ett_opcua_array_BrowseResponse = -1;
+gint ett_opcua_BrowseNextRequest = -1;
+gint ett_opcua_array_BrowseNextRequest = -1;
+gint ett_opcua_BrowseNextResponse = -1;
+gint ett_opcua_array_BrowseNextResponse = -1;
+gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1;
+gint ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest = -1;
+gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1;
+gint ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse = -1;
+gint ett_opcua_RegisterNodesRequest = -1;
+gint ett_opcua_array_RegisterNodesRequest = -1;
+gint ett_opcua_RegisterNodesResponse = -1;
+gint ett_opcua_array_RegisterNodesResponse = -1;
+gint ett_opcua_UnregisterNodesRequest = -1;
+gint ett_opcua_array_UnregisterNodesRequest = -1;
+gint ett_opcua_UnregisterNodesResponse = -1;
+gint ett_opcua_array_UnregisterNodesResponse = -1;
+gint ett_opcua_QueryFirstRequest = -1;
+gint ett_opcua_array_QueryFirstRequest = -1;
+gint ett_opcua_QueryFirstResponse = -1;
+gint ett_opcua_array_QueryFirstResponse = -1;
+gint ett_opcua_QueryNextRequest = -1;
+gint ett_opcua_array_QueryNextRequest = -1;
+gint ett_opcua_QueryNextResponse = -1;
+gint ett_opcua_array_QueryNextResponse = -1;
+gint ett_opcua_ReadRequest = -1;
+gint ett_opcua_array_ReadRequest = -1;
+gint ett_opcua_ReadResponse = -1;
+gint ett_opcua_array_ReadResponse = -1;
+gint ett_opcua_HistoryReadRequest = -1;
+gint ett_opcua_array_HistoryReadRequest = -1;
+gint ett_opcua_HistoryReadResponse = -1;
+gint ett_opcua_array_HistoryReadResponse = -1;
+gint ett_opcua_WriteRequest = -1;
+gint ett_opcua_array_WriteRequest = -1;
+gint ett_opcua_WriteResponse = -1;
+gint ett_opcua_array_WriteResponse = -1;
+gint ett_opcua_HistoryUpdateRequest = -1;
+gint ett_opcua_array_HistoryUpdateRequest = -1;
+gint ett_opcua_HistoryUpdateResponse = -1;
+gint ett_opcua_array_HistoryUpdateResponse = -1;
+gint ett_opcua_CallRequest = -1;
+gint ett_opcua_array_CallRequest = -1;
+gint ett_opcua_CallResponse = -1;
+gint ett_opcua_array_CallResponse = -1;
+gint ett_opcua_CreateMonitoredItemsRequest = -1;
+gint ett_opcua_array_CreateMonitoredItemsRequest = -1;
+gint ett_opcua_CreateMonitoredItemsResponse = -1;
+gint ett_opcua_array_CreateMonitoredItemsResponse = -1;
+gint ett_opcua_ModifyMonitoredItemsRequest = -1;
+gint ett_opcua_array_ModifyMonitoredItemsRequest = -1;
+gint ett_opcua_ModifyMonitoredItemsResponse = -1;
+gint ett_opcua_array_ModifyMonitoredItemsResponse = -1;
+gint ett_opcua_SetMonitoringModeRequest = -1;
+gint ett_opcua_array_SetMonitoringModeRequest = -1;
+gint ett_opcua_SetMonitoringModeResponse = -1;
+gint ett_opcua_array_SetMonitoringModeResponse = -1;
+gint ett_opcua_SetTriggeringRequest = -1;
+gint ett_opcua_array_SetTriggeringRequest = -1;
+gint ett_opcua_SetTriggeringResponse = -1;
+gint ett_opcua_array_SetTriggeringResponse = -1;
+gint ett_opcua_DeleteMonitoredItemsRequest = -1;
+gint ett_opcua_array_DeleteMonitoredItemsRequest = -1;
+gint ett_opcua_DeleteMonitoredItemsResponse = -1;
+gint ett_opcua_array_DeleteMonitoredItemsResponse = -1;
+gint ett_opcua_CreateSubscriptionRequest = -1;
+gint ett_opcua_array_CreateSubscriptionRequest = -1;
+gint ett_opcua_CreateSubscriptionResponse = -1;
+gint ett_opcua_array_CreateSubscriptionResponse = -1;
+gint ett_opcua_ModifySubscriptionRequest = -1;
+gint ett_opcua_array_ModifySubscriptionRequest = -1;
+gint ett_opcua_ModifySubscriptionResponse = -1;
+gint ett_opcua_array_ModifySubscriptionResponse = -1;
+gint ett_opcua_SetPublishingModeRequest = -1;
+gint ett_opcua_array_SetPublishingModeRequest = -1;
+gint ett_opcua_SetPublishingModeResponse = -1;
+gint ett_opcua_array_SetPublishingModeResponse = -1;
+gint ett_opcua_PublishRequest = -1;
+gint ett_opcua_array_PublishRequest = -1;
+gint ett_opcua_PublishResponse = -1;
+gint ett_opcua_array_PublishResponse = -1;
+gint ett_opcua_RepublishRequest = -1;
+gint ett_opcua_array_RepublishRequest = -1;
+gint ett_opcua_RepublishResponse = -1;
+gint ett_opcua_array_RepublishResponse = -1;
+gint ett_opcua_TransferSubscriptionsRequest = -1;
+gint ett_opcua_array_TransferSubscriptionsRequest = -1;
+gint ett_opcua_TransferSubscriptionsResponse = -1;
+gint ett_opcua_array_TransferSubscriptionsResponse = -1;
+gint ett_opcua_DeleteSubscriptionsRequest = -1;
+gint ett_opcua_array_DeleteSubscriptionsRequest = -1;
+gint ett_opcua_DeleteSubscriptionsResponse = -1;
+gint ett_opcua_array_DeleteSubscriptionsResponse = -1;
+gint ett_opcua_TestStackRequest = -1;
+gint ett_opcua_array_TestStackRequest = -1;
+gint ett_opcua_TestStackResponse = -1;
+gint ett_opcua_array_TestStackResponse = -1;
+gint ett_opcua_TestStackExRequest = -1;
+gint ett_opcua_array_TestStackExRequest = -1;
+gint ett_opcua_TestStackExResponse = -1;
+gint ett_opcua_array_TestStackExResponse = -1;
+
void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ServiceFault");
@@ -38,7 +196,6 @@ void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_FindServersRequest = -1;
void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "FindServersRequest");
@@ -47,12 +204,11 @@ void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
/* Array length field ignored: NoOfServerUris */
- parseArraySimple(subtree, tvb, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_FindServersResponse = -1;
void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "FindServersResponse");
@@ -60,10 +216,9 @@ void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfServers */
- parseArrayComplex(subtree, tvb, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription, ett_opcua_array_ApplicationDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_GetEndpointsRequest = -1;
void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "GetEndpointsRequest");
@@ -72,12 +227,11 @@ void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
/* Array length field ignored: NoOfProfileUris */
- parseArraySimple(subtree, tvb, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_GetEndpointsResponse = -1;
void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "GetEndpointsResponse");
@@ -85,10 +239,9 @@ void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfEndpoints */
- parseArrayComplex(subtree, tvb, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RegisterServerRequest = -1;
void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterServerRequest");
@@ -98,7 +251,6 @@ void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRegisteredServer(subtree, tvb, pOffset, "Server");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RegisterServerResponse = -1;
void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterServerResponse");
@@ -107,7 +259,6 @@ void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_OpenSecureChannelRequest = -1;
void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "OpenSecureChannelRequest");
@@ -121,7 +272,6 @@ void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_OpenSecureChannelResponse = -1;
void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "OpenSecureChannelResponse");
@@ -133,7 +283,6 @@ void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CloseSecureChannelRequest = -1;
void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSecureChannelRequest");
@@ -142,7 +291,6 @@ void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CloseSecureChannelResponse = -1;
void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSecureChannelResponse");
@@ -151,7 +299,6 @@ void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CreateSessionRequest = -1;
void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSessionRequest");
@@ -168,7 +315,6 @@ void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CreateSessionResponse = -1;
void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSessionResponse");
@@ -181,14 +327,13 @@ void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate);
/* Array length field ignored: NoOfServerEndpoints */
- parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription);
/* Array length field ignored: NoOfServerSoftwareCertificates */
- parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate);
+ parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate);
parseSignatureData(subtree, tvb, pOffset, "ServerSignature");
parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRequestMessageSize);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ActivateSessionRequest = -1;
void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ActivateSessionRequest");
@@ -197,14 +342,13 @@ void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseSignatureData(subtree, tvb, pOffset, "ClientSignature");
/* Array length field ignored: NoOfClientSoftwareCertificates */
- parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate);
+ parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString);
+ parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken");
parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ActivateSessionResponse = -1;
void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ActivateSessionResponse");
@@ -213,12 +357,11 @@ void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CloseSessionRequest = -1;
void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSessionRequest");
@@ -228,7 +371,6 @@ void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteSubscriptions);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CloseSessionResponse = -1;
void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSessionResponse");
@@ -237,7 +379,6 @@ void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CancelRequest = -1;
void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CancelRequest");
@@ -247,7 +388,6 @@ void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CancelResponse = -1;
void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CancelResponse");
@@ -257,7 +397,6 @@ void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseUInt32(subtree, tvb, pOffset, hf_opcua_CancelCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddNodesRequest = -1;
void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddNodesRequest");
@@ -265,10 +404,9 @@ void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToAdd */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem, ett_opcua_array_AddNodesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddNodesResponse = -1;
void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddNodesResponse");
@@ -276,12 +414,11 @@ void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "AddNodesResult", parseAddNodesResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "AddNodesResult", parseAddNodesResult, ett_opcua_array_AddNodesResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddReferencesRequest = -1;
void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddReferencesRequest");
@@ -289,10 +426,9 @@ void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfReferencesToAdd */
- parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem);
+ parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem, ett_opcua_array_AddReferencesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_AddReferencesResponse = -1;
void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddReferencesResponse");
@@ -300,12 +436,11 @@ void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteNodesRequest = -1;
void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteNodesRequest");
@@ -313,10 +448,9 @@ void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToDelete */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem, ett_opcua_array_DeleteNodesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteNodesResponse = -1;
void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteNodesResponse");
@@ -324,12 +458,11 @@ void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteReferencesRequest = -1;
void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteReferencesRequest");
@@ -337,10 +470,9 @@ void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfReferencesToDelete */
- parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem);
+ parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem, ett_opcua_array_DeleteReferencesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteReferencesResponse = -1;
void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteReferencesResponse");
@@ -348,12 +480,11 @@ void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowseRequest = -1;
void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseRequest");
@@ -363,10 +494,9 @@ void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseViewDescription(subtree, tvb, pOffset, "View");
parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxReferencesPerNode);
/* Array length field ignored: NoOfNodesToBrowse */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription, ett_opcua_array_BrowseDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowseResponse = -1;
void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseResponse");
@@ -374,12 +504,11 @@ void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowseNextRequest = -1;
void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseNextRequest");
@@ -388,10 +517,9 @@ void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
/* Array length field ignored: NoOfContinuationPoints */
- parseArraySimple(subtree, tvb, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString);
+ parseArraySimple(subtree, tvb, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString, ett_opcua_array_ByteString);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_BrowseNextResponse = -1;
void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseNextResponse");
@@ -399,12 +527,11 @@ void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1;
void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TranslateBrowsePathsToNodeIdsRequest");
@@ -412,10 +539,9 @@ void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb,
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfBrowsePaths */
- parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath);
+ parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath, ett_opcua_array_BrowsePath);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1;
void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TranslateBrowsePathsToNodeIdsResponse");
@@ -423,12 +549,11 @@ void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb,
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult, ett_opcua_array_BrowsePathResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RegisterNodesRequest = -1;
void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterNodesRequest");
@@ -436,10 +561,9 @@ void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToRegister */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", "NodeId", parseNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RegisterNodesResponse = -1;
void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterNodesResponse");
@@ -447,10 +571,9 @@ void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfRegisteredNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UnregisterNodesRequest = -1;
void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "UnregisterNodesRequest");
@@ -458,10 +581,9 @@ void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToUnregister */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", "NodeId", parseNodeId);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_UnregisterNodesResponse = -1;
void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "UnregisterNodesResponse");
@@ -470,7 +592,6 @@ void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_QueryFirstRequest = -1;
void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryFirstRequest");
@@ -479,13 +600,12 @@ void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseViewDescription(subtree, tvb, pOffset, "View");
/* Array length field ignored: NoOfNodeTypes */
- parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription);
+ parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription, ett_opcua_array_NodeTypeDescription);
parseContentFilter(subtree, tvb, pOffset, "Filter");
parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDataSetsToReturn);
parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_QueryFirstResponse = -1;
void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryFirstResponse");
@@ -493,16 +613,15 @@ void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfQueryDataSets */
- parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet);
+ parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet);
parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
/* Array length field ignored: NoOfParsingResults */
- parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", "ParsingResult", parseParsingResult);
+ parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", "ParsingResult", parseParsingResult, ett_opcua_array_ParsingResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
parseContentFilterResult(subtree, tvb, pOffset, "FilterResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_QueryNextRequest = -1;
void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryNextRequest");
@@ -513,7 +632,6 @@ void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_QueryNextResponse = -1;
void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryNextResponse");
@@ -521,11 +639,10 @@ void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfQueryDataSets */
- parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet);
+ parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet);
parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadRequest = -1;
void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ReadRequest");
@@ -535,10 +652,9 @@ void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseDouble(subtree, tvb, pOffset, hf_opcua_MaxAge);
parseTimestampsToReturn(subtree, tvb, pOffset);
/* Array length field ignored: NoOfNodesToRead */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "ReadValueId", parseReadValueId);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "ReadValueId", parseReadValueId, ett_opcua_array_ReadValueId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ReadResponse = -1;
void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ReadResponse");
@@ -546,12 +662,11 @@ void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "DataValue", parseDataValue);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "DataValue", parseDataValue, ett_opcua_array_DataValue);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryReadRequest = -1;
void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryReadRequest");
@@ -562,10 +677,9 @@ void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseTimestampsToReturn(subtree, tvb, pOffset);
parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
/* Array length field ignored: NoOfNodesToRead */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId, ett_opcua_array_HistoryReadValueId);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryReadResponse = -1;
void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryReadResponse");
@@ -573,12 +687,11 @@ void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult, ett_opcua_array_HistoryReadResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_WriteRequest = -1;
void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "WriteRequest");
@@ -586,10 +699,9 @@ void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToWrite */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", "WriteValue", parseWriteValue);
+ parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", "WriteValue", parseWriteValue, ett_opcua_array_WriteValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_WriteResponse = -1;
void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "WriteResponse");
@@ -597,12 +709,11 @@ void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryUpdateRequest = -1;
void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryUpdateRequest");
@@ -610,10 +721,9 @@ void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfHistoryUpdateDetails */
- parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject);
+ parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_HistoryUpdateResponse = -1;
void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryUpdateResponse");
@@ -621,12 +731,11 @@ void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult, ett_opcua_array_HistoryUpdateResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CallRequest = -1;
void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CallRequest");
@@ -634,10 +743,9 @@ void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfMethodsToCall */
- parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest);
+ parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest, ett_opcua_array_CallMethodRequest);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CallResponse = -1;
void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CallResponse");
@@ -645,12 +753,11 @@ void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "CallMethodResult", parseCallMethodResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "CallMethodResult", parseCallMethodResult, ett_opcua_array_CallMethodResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CreateMonitoredItemsRequest = -1;
void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateMonitoredItemsRequest");
@@ -660,10 +767,9 @@ void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf
parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
parseTimestampsToReturn(subtree, tvb, pOffset);
/* Array length field ignored: NoOfItemsToCreate */
- parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest);
+ parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest, ett_opcua_array_MonitoredItemCreateRequest);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CreateMonitoredItemsResponse = -1;
void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateMonitoredItemsResponse");
@@ -671,12 +777,11 @@ void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult, ett_opcua_array_MonitoredItemCreateResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ModifyMonitoredItemsRequest = -1;
void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifyMonitoredItemsRequest");
@@ -686,10 +791,9 @@ void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf
parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
parseTimestampsToReturn(subtree, tvb, pOffset);
/* Array length field ignored: NoOfItemsToModify */
- parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest);
+ parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest, ett_opcua_array_MonitoredItemModifyRequest);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ModifyMonitoredItemsResponse = -1;
void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifyMonitoredItemsResponse");
@@ -697,12 +801,11 @@ void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult, ett_opcua_array_MonitoredItemModifyResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SetMonitoringModeRequest = -1;
void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetMonitoringModeRequest");
@@ -712,10 +815,9 @@ void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
parseMonitoringMode(subtree, tvb, pOffset);
/* Array length field ignored: NoOfMonitoredItemIds */
- parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SetMonitoringModeResponse = -1;
void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetMonitoringModeResponse");
@@ -723,12 +825,11 @@ void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SetTriggeringRequest = -1;
void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetTriggeringRequest");
@@ -738,12 +839,11 @@ void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId);
/* Array length field ignored: NoOfLinksToAdd */
- parseArraySimple(subtree, tvb, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32, ett_opcua_array_UInt32);
/* Array length field ignored: NoOfLinksToRemove */
- parseArraySimple(subtree, tvb, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SetTriggeringResponse = -1;
void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetTriggeringResponse");
@@ -751,16 +851,15 @@ void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfAddResults */
- parseArraySimple(subtree, tvb, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfAddDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
/* Array length field ignored: NoOfRemoveResults */
- parseArraySimple(subtree, tvb, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfRemoveDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteMonitoredItemsRequest = -1;
void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteMonitoredItemsRequest");
@@ -769,10 +868,9 @@ void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
/* Array length field ignored: NoOfMonitoredItemIds */
- parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteMonitoredItemsResponse = -1;
void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteMonitoredItemsResponse");
@@ -780,12 +878,11 @@ void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CreateSubscriptionRequest = -1;
void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSubscriptionRequest");
@@ -800,7 +897,6 @@ void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_CreateSubscriptionResponse = -1;
void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSubscriptionResponse");
@@ -813,7 +909,6 @@ void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ModifySubscriptionRequest = -1;
void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifySubscriptionRequest");
@@ -828,7 +923,6 @@ void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_ModifySubscriptionResponse = -1;
void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifySubscriptionResponse");
@@ -840,7 +934,6 @@ void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SetPublishingModeRequest = -1;
void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetPublishingModeRequest");
@@ -849,10 +942,9 @@ void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
/* Array length field ignored: NoOfSubscriptionIds */
- parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_SetPublishingModeResponse = -1;
void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetPublishingModeResponse");
@@ -860,12 +952,11 @@ void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_PublishRequest = -1;
void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "PublishRequest");
@@ -873,10 +964,9 @@ void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfSubscriptionAcknowledgements */
- parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement);
+ parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement, ett_opcua_array_SubscriptionAcknowledgement);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_PublishResponse = -1;
void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "PublishResponse");
@@ -885,16 +975,15 @@ void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
/* Array length field ignored: NoOfAvailableSequenceNumbers */
- parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32);
parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications);
parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RepublishRequest = -1;
void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RepublishRequest");
@@ -905,7 +994,6 @@ void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_RepublishResponse = -1;
void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RepublishResponse");
@@ -915,7 +1003,6 @@ void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TransferSubscriptionsRequest = -1;
void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TransferSubscriptionsRequest");
@@ -923,11 +1010,10 @@ void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pO
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfSubscriptionIds */
- parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
parseBoolean(subtree, tvb, pOffset, hf_opcua_SendInitialValues);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TransferSubscriptionsResponse = -1;
void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TransferSubscriptionsResponse");
@@ -935,12 +1021,11 @@ void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *p
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "TransferResult", parseTransferResult);
+ parseArrayComplex(subtree, tvb, pOffset, "Results", "TransferResult", parseTransferResult, ett_opcua_array_TransferResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteSubscriptionsRequest = -1;
void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteSubscriptionsRequest");
@@ -948,10 +1033,9 @@ void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff
parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
/* Array length field ignored: NoOfSubscriptionIds */
- parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32);
+ parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_DeleteSubscriptionsResponse = -1;
void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteSubscriptionsResponse");
@@ -959,12 +1043,11 @@ void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOf
parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode);
+ parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TestStackRequest = -1;
void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackRequest");
@@ -976,7 +1059,6 @@ void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseVariant(subtree, tvb, pOffset, "Input");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TestStackResponse = -1;
void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackResponse");
@@ -986,7 +1068,6 @@ void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseVariant(subtree, tvb, pOffset, "Output");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TestStackExRequest = -1;
void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackExRequest");
@@ -998,7 +1079,6 @@ void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
parseCompositeTestType(subtree, tvb, pOffset, "Input");
proto_item_set_end(ti, tvb, *pOffset);
}
-gint ett_opcua_TestStackExResponse = -1;
void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackExResponse");
@@ -1013,84 +1093,163 @@ void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
static gint *ett[] =
{
&ett_opcua_ServiceFault,
+ &ett_opcua_array_ServiceFault,
&ett_opcua_FindServersRequest,
+ &ett_opcua_array_FindServersRequest,
&ett_opcua_FindServersResponse,
+ &ett_opcua_array_FindServersResponse,
&ett_opcua_GetEndpointsRequest,
+ &ett_opcua_array_GetEndpointsRequest,
&ett_opcua_GetEndpointsResponse,
+ &ett_opcua_array_GetEndpointsResponse,
&ett_opcua_RegisterServerRequest,
+ &ett_opcua_array_RegisterServerRequest,
&ett_opcua_RegisterServerResponse,
+ &ett_opcua_array_RegisterServerResponse,
&ett_opcua_OpenSecureChannelRequest,
+ &ett_opcua_array_OpenSecureChannelRequest,
&ett_opcua_OpenSecureChannelResponse,
+ &ett_opcua_array_OpenSecureChannelResponse,
&ett_opcua_CloseSecureChannelRequest,
+ &ett_opcua_array_CloseSecureChannelRequest,
&ett_opcua_CloseSecureChannelResponse,
+ &ett_opcua_array_CloseSecureChannelResponse,
&ett_opcua_CreateSessionRequest,
+ &ett_opcua_array_CreateSessionRequest,
&ett_opcua_CreateSessionResponse,
+ &ett_opcua_array_CreateSessionResponse,
&ett_opcua_ActivateSessionRequest,
+ &ett_opcua_array_ActivateSessionRequest,
&ett_opcua_ActivateSessionResponse,
+ &ett_opcua_array_ActivateSessionResponse,
&ett_opcua_CloseSessionRequest,
+ &ett_opcua_array_CloseSessionRequest,
&ett_opcua_CloseSessionResponse,
+ &ett_opcua_array_CloseSessionResponse,
&ett_opcua_CancelRequest,
+ &ett_opcua_array_CancelRequest,
&ett_opcua_CancelResponse,
+ &ett_opcua_array_CancelResponse,
&ett_opcua_AddNodesRequest,
+ &ett_opcua_array_AddNodesRequest,
&ett_opcua_AddNodesResponse,
+ &ett_opcua_array_AddNodesResponse,
&ett_opcua_AddReferencesRequest,
+ &ett_opcua_array_AddReferencesRequest,
&ett_opcua_AddReferencesResponse,
+ &ett_opcua_array_AddReferencesResponse,
&ett_opcua_DeleteNodesRequest,
+ &ett_opcua_array_DeleteNodesRequest,
&ett_opcua_DeleteNodesResponse,
+ &ett_opcua_array_DeleteNodesResponse,
&ett_opcua_DeleteReferencesRequest,
+ &ett_opcua_array_DeleteReferencesRequest,
&ett_opcua_DeleteReferencesResponse,
+ &ett_opcua_array_DeleteReferencesResponse,
&ett_opcua_BrowseRequest,
+ &ett_opcua_array_BrowseRequest,
&ett_opcua_BrowseResponse,
+ &ett_opcua_array_BrowseResponse,
&ett_opcua_BrowseNextRequest,
+ &ett_opcua_array_BrowseNextRequest,
&ett_opcua_BrowseNextResponse,
+ &ett_opcua_array_BrowseNextResponse,
&ett_opcua_TranslateBrowsePathsToNodeIdsRequest,
+ &ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest,
&ett_opcua_TranslateBrowsePathsToNodeIdsResponse,
+ &ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse,
&ett_opcua_RegisterNodesRequest,
+ &ett_opcua_array_RegisterNodesRequest,
&ett_opcua_RegisterNodesResponse,
+ &ett_opcua_array_RegisterNodesResponse,
&ett_opcua_UnregisterNodesRequest,
+ &ett_opcua_array_UnregisterNodesRequest,
&ett_opcua_UnregisterNodesResponse,
+ &ett_opcua_array_UnregisterNodesResponse,
&ett_opcua_QueryFirstRequest,
+ &ett_opcua_array_QueryFirstRequest,
&ett_opcua_QueryFirstResponse,
+ &ett_opcua_array_QueryFirstResponse,
&ett_opcua_QueryNextRequest,
+ &ett_opcua_array_QueryNextRequest,
&ett_opcua_QueryNextResponse,
+ &ett_opcua_array_QueryNextResponse,
&ett_opcua_ReadRequest,
+ &ett_opcua_array_ReadRequest,
&ett_opcua_ReadResponse,
+ &ett_opcua_array_ReadResponse,
&ett_opcua_HistoryReadRequest,
+ &ett_opcua_array_HistoryReadRequest,
&ett_opcua_HistoryReadResponse,
+ &ett_opcua_array_HistoryReadResponse,
&ett_opcua_WriteRequest,
+ &ett_opcua_array_WriteRequest,
&ett_opcua_WriteResponse,
+ &ett_opcua_array_WriteResponse,
&ett_opcua_HistoryUpdateRequest,
+ &ett_opcua_array_HistoryUpdateRequest,
&ett_opcua_HistoryUpdateResponse,
+ &ett_opcua_array_HistoryUpdateResponse,
&ett_opcua_CallRequest,
+ &ett_opcua_array_CallRequest,
&ett_opcua_CallResponse,
+ &ett_opcua_array_CallResponse,
&ett_opcua_CreateMonitoredItemsRequest,
+ &ett_opcua_array_CreateMonitoredItemsRequest,
&ett_opcua_CreateMonitoredItemsResponse,
+ &ett_opcua_array_CreateMonitoredItemsResponse,
&ett_opcua_ModifyMonitoredItemsRequest,
+ &ett_opcua_array_ModifyMonitoredItemsRequest,
&ett_opcua_ModifyMonitoredItemsResponse,
+ &ett_opcua_array_ModifyMonitoredItemsResponse,
&ett_opcua_SetMonitoringModeRequest,
+ &ett_opcua_array_SetMonitoringModeRequest,
&ett_opcua_SetMonitoringModeResponse,
+ &ett_opcua_array_SetMonitoringModeResponse,
&ett_opcua_SetTriggeringRequest,
+ &ett_opcua_array_SetTriggeringRequest,
&ett_opcua_SetTriggeringResponse,
+ &ett_opcua_array_SetTriggeringResponse,
&ett_opcua_DeleteMonitoredItemsRequest,
+ &ett_opcua_array_DeleteMonitoredItemsRequest,
&ett_opcua_DeleteMonitoredItemsResponse,
+ &ett_opcua_array_DeleteMonitoredItemsResponse,
&ett_opcua_CreateSubscriptionRequest,
+ &ett_opcua_array_CreateSubscriptionRequest,
&ett_opcua_CreateSubscriptionResponse,
+ &ett_opcua_array_CreateSubscriptionResponse,
&ett_opcua_ModifySubscriptionRequest,
+ &ett_opcua_array_ModifySubscriptionRequest,
&ett_opcua_ModifySubscriptionResponse,
+ &ett_opcua_array_ModifySubscriptionResponse,
&ett_opcua_SetPublishingModeRequest,
+ &ett_opcua_array_SetPublishingModeRequest,
&ett_opcua_SetPublishingModeResponse,
+ &ett_opcua_array_SetPublishingModeResponse,
&ett_opcua_PublishRequest,
+ &ett_opcua_array_PublishRequest,
&ett_opcua_PublishResponse,
+ &ett_opcua_array_PublishResponse,
&ett_opcua_RepublishRequest,
+ &ett_opcua_array_RepublishRequest,
&ett_opcua_RepublishResponse,
+ &ett_opcua_array_RepublishResponse,
&ett_opcua_TransferSubscriptionsRequest,
+ &ett_opcua_array_TransferSubscriptionsRequest,
&ett_opcua_TransferSubscriptionsResponse,
+ &ett_opcua_array_TransferSubscriptionsResponse,
&ett_opcua_DeleteSubscriptionsRequest,
+ &ett_opcua_array_DeleteSubscriptionsRequest,
&ett_opcua_DeleteSubscriptionsResponse,
+ &ett_opcua_array_DeleteSubscriptionsResponse,
&ett_opcua_TestStackRequest,
+ &ett_opcua_array_TestStackRequest,
&ett_opcua_TestStackResponse,
+ &ett_opcua_array_TestStackResponse,
&ett_opcua_TestStackExRequest,
+ &ett_opcua_array_TestStackExRequest,
&ett_opcua_TestStackExResponse,
+ &ett_opcua_array_TestStackExResponse,
};
void registerServiceTypes(void)
diff --git a/plugins/opcua/opcua_serviceparser.h b/plugins/opcua/opcua_serviceparser.h
index 6025cf7d73..44ff4ee2c8 100644
--- a/plugins/opcua/opcua_serviceparser.h
+++ b/plugins/opcua/opcua_serviceparser.h
@@ -1,5 +1,5 @@
/******************************************************************************
-** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved.
+** Copyright (C) 2006-2014 ascolab GmbH. All Rights Reserved.
** Web: http://www.ascolab.com
**
** This program is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
**
** Description: OpcUa Service Type Parser
**
-** This file was autogenerated on 12.02.2013.
+** This file was autogenerated on 17.06.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -23,6 +23,277 @@
#include <glib.h>
#include <epan/packet.h>
+extern gint ett_opcua_Node;
+extern gint ett_opcua_array_Node;
+extern gint ett_opcua_InstanceNode;
+extern gint ett_opcua_array_InstanceNode;
+extern gint ett_opcua_TypeNode;
+extern gint ett_opcua_array_TypeNode;
+extern gint ett_opcua_ObjectNode;
+extern gint ett_opcua_array_ObjectNode;
+extern gint ett_opcua_ObjectTypeNode;
+extern gint ett_opcua_array_ObjectTypeNode;
+extern gint ett_opcua_VariableNode;
+extern gint ett_opcua_array_VariableNode;
+extern gint ett_opcua_VariableTypeNode;
+extern gint ett_opcua_array_VariableTypeNode;
+extern gint ett_opcua_ReferenceTypeNode;
+extern gint ett_opcua_array_ReferenceTypeNode;
+extern gint ett_opcua_MethodNode;
+extern gint ett_opcua_array_MethodNode;
+extern gint ett_opcua_ViewNode;
+extern gint ett_opcua_array_ViewNode;
+extern gint ett_opcua_DataTypeNode;
+extern gint ett_opcua_array_DataTypeNode;
+extern gint ett_opcua_ReferenceNode;
+extern gint ett_opcua_array_ReferenceNode;
+extern gint ett_opcua_Argument;
+extern gint ett_opcua_array_Argument;
+extern gint ett_opcua_EnumValueType;
+extern gint ett_opcua_array_EnumValueType;
+extern gint ett_opcua_TimeZoneDataType;
+extern gint ett_opcua_array_TimeZoneDataType;
+extern gint ett_opcua_ApplicationDescription;
+extern gint ett_opcua_array_ApplicationDescription;
+extern gint ett_opcua_RequestHeader;
+extern gint ett_opcua_array_RequestHeader;
+extern gint ett_opcua_ResponseHeader;
+extern gint ett_opcua_array_ResponseHeader;
+extern gint ett_opcua_UserTokenPolicy;
+extern gint ett_opcua_array_UserTokenPolicy;
+extern gint ett_opcua_EndpointDescription;
+extern gint ett_opcua_array_EndpointDescription;
+extern gint ett_opcua_RegisteredServer;
+extern gint ett_opcua_array_RegisteredServer;
+extern gint ett_opcua_ChannelSecurityToken;
+extern gint ett_opcua_array_ChannelSecurityToken;
+extern gint ett_opcua_SignedSoftwareCertificate;
+extern gint ett_opcua_array_SignedSoftwareCertificate;
+extern gint ett_opcua_SignatureData;
+extern gint ett_opcua_array_SignatureData;
+extern gint ett_opcua_UserIdentityToken;
+extern gint ett_opcua_array_UserIdentityToken;
+extern gint ett_opcua_AnonymousIdentityToken;
+extern gint ett_opcua_array_AnonymousIdentityToken;
+extern gint ett_opcua_UserNameIdentityToken;
+extern gint ett_opcua_array_UserNameIdentityToken;
+extern gint ett_opcua_X509IdentityToken;
+extern gint ett_opcua_array_X509IdentityToken;
+extern gint ett_opcua_IssuedIdentityToken;
+extern gint ett_opcua_array_IssuedIdentityToken;
+extern gint ett_opcua_NodeAttributes;
+extern gint ett_opcua_array_NodeAttributes;
+extern gint ett_opcua_ObjectAttributes;
+extern gint ett_opcua_array_ObjectAttributes;
+extern gint ett_opcua_VariableAttributes;
+extern gint ett_opcua_array_VariableAttributes;
+extern gint ett_opcua_MethodAttributes;
+extern gint ett_opcua_array_MethodAttributes;
+extern gint ett_opcua_ObjectTypeAttributes;
+extern gint ett_opcua_array_ObjectTypeAttributes;
+extern gint ett_opcua_VariableTypeAttributes;
+extern gint ett_opcua_array_VariableTypeAttributes;
+extern gint ett_opcua_ReferenceTypeAttributes;
+extern gint ett_opcua_array_ReferenceTypeAttributes;
+extern gint ett_opcua_DataTypeAttributes;
+extern gint ett_opcua_array_DataTypeAttributes;
+extern gint ett_opcua_ViewAttributes;
+extern gint ett_opcua_array_ViewAttributes;
+extern gint ett_opcua_AddNodesItem;
+extern gint ett_opcua_array_AddNodesItem;
+extern gint ett_opcua_AddNodesResult;
+extern gint ett_opcua_array_AddNodesResult;
+extern gint ett_opcua_AddReferencesItem;
+extern gint ett_opcua_array_AddReferencesItem;
+extern gint ett_opcua_DeleteNodesItem;
+extern gint ett_opcua_array_DeleteNodesItem;
+extern gint ett_opcua_DeleteReferencesItem;
+extern gint ett_opcua_array_DeleteReferencesItem;
+extern gint ett_opcua_ViewDescription;
+extern gint ett_opcua_array_ViewDescription;
+extern gint ett_opcua_BrowseDescription;
+extern gint ett_opcua_array_BrowseDescription;
+extern gint ett_opcua_ReferenceDescription;
+extern gint ett_opcua_array_ReferenceDescription;
+extern gint ett_opcua_BrowseResult;
+extern gint ett_opcua_array_BrowseResult;
+extern gint ett_opcua_RelativePathElement;
+extern gint ett_opcua_array_RelativePathElement;
+extern gint ett_opcua_RelativePath;
+extern gint ett_opcua_array_RelativePath;
+extern gint ett_opcua_BrowsePath;
+extern gint ett_opcua_array_BrowsePath;
+extern gint ett_opcua_BrowsePathTarget;
+extern gint ett_opcua_array_BrowsePathTarget;
+extern gint ett_opcua_BrowsePathResult;
+extern gint ett_opcua_array_BrowsePathResult;
+extern gint ett_opcua_EndpointConfiguration;
+extern gint ett_opcua_array_EndpointConfiguration;
+extern gint ett_opcua_SupportedProfile;
+extern gint ett_opcua_array_SupportedProfile;
+extern gint ett_opcua_SoftwareCertificate;
+extern gint ett_opcua_array_SoftwareCertificate;
+extern gint ett_opcua_QueryDataDescription;
+extern gint ett_opcua_array_QueryDataDescription;
+extern gint ett_opcua_NodeTypeDescription;
+extern gint ett_opcua_array_NodeTypeDescription;
+extern gint ett_opcua_QueryDataSet;
+extern gint ett_opcua_array_QueryDataSet;
+extern gint ett_opcua_NodeReference;
+extern gint ett_opcua_array_NodeReference;
+extern gint ett_opcua_ContentFilterElement;
+extern gint ett_opcua_array_ContentFilterElement;
+extern gint ett_opcua_ContentFilter;
+extern gint ett_opcua_array_ContentFilter;
+extern gint ett_opcua_ElementOperand;
+extern gint ett_opcua_array_ElementOperand;
+extern gint ett_opcua_LiteralOperand;
+extern gint ett_opcua_array_LiteralOperand;
+extern gint ett_opcua_AttributeOperand;
+extern gint ett_opcua_array_AttributeOperand;
+extern gint ett_opcua_SimpleAttributeOperand;
+extern gint ett_opcua_array_SimpleAttributeOperand;
+extern gint ett_opcua_ContentFilterElementResult;
+extern gint ett_opcua_array_ContentFilterElementResult;
+extern gint ett_opcua_ContentFilterResult;
+extern gint ett_opcua_array_ContentFilterResult;
+extern gint ett_opcua_ParsingResult;
+extern gint ett_opcua_array_ParsingResult;
+extern gint ett_opcua_ReadValueId;
+extern gint ett_opcua_array_ReadValueId;
+extern gint ett_opcua_HistoryReadValueId;
+extern gint ett_opcua_array_HistoryReadValueId;
+extern gint ett_opcua_HistoryReadResult;
+extern gint ett_opcua_array_HistoryReadResult;
+extern gint ett_opcua_ReadEventDetails;
+extern gint ett_opcua_array_ReadEventDetails;
+extern gint ett_opcua_ReadRawModifiedDetails;
+extern gint ett_opcua_array_ReadRawModifiedDetails;
+extern gint ett_opcua_ReadProcessedDetails;
+extern gint ett_opcua_array_ReadProcessedDetails;
+extern gint ett_opcua_ReadAtTimeDetails;
+extern gint ett_opcua_array_ReadAtTimeDetails;
+extern gint ett_opcua_HistoryData;
+extern gint ett_opcua_array_HistoryData;
+extern gint ett_opcua_ModificationInfo;
+extern gint ett_opcua_array_ModificationInfo;
+extern gint ett_opcua_HistoryModifiedData;
+extern gint ett_opcua_array_HistoryModifiedData;
+extern gint ett_opcua_HistoryEvent;
+extern gint ett_opcua_array_HistoryEvent;
+extern gint ett_opcua_WriteValue;
+extern gint ett_opcua_array_WriteValue;
+extern gint ett_opcua_HistoryUpdateDetails;
+extern gint ett_opcua_array_HistoryUpdateDetails;
+extern gint ett_opcua_UpdateDataDetails;
+extern gint ett_opcua_array_UpdateDataDetails;
+extern gint ett_opcua_UpdateStructureDataDetails;
+extern gint ett_opcua_array_UpdateStructureDataDetails;
+extern gint ett_opcua_UpdateEventDetails;
+extern gint ett_opcua_array_UpdateEventDetails;
+extern gint ett_opcua_DeleteRawModifiedDetails;
+extern gint ett_opcua_array_DeleteRawModifiedDetails;
+extern gint ett_opcua_DeleteAtTimeDetails;
+extern gint ett_opcua_array_DeleteAtTimeDetails;
+extern gint ett_opcua_DeleteEventDetails;
+extern gint ett_opcua_array_DeleteEventDetails;
+extern gint ett_opcua_HistoryUpdateResult;
+extern gint ett_opcua_array_HistoryUpdateResult;
+extern gint ett_opcua_CallMethodRequest;
+extern gint ett_opcua_array_CallMethodRequest;
+extern gint ett_opcua_CallMethodResult;
+extern gint ett_opcua_array_CallMethodResult;
+extern gint ett_opcua_DataChangeFilter;
+extern gint ett_opcua_array_DataChangeFilter;
+extern gint ett_opcua_EventFilter;
+extern gint ett_opcua_array_EventFilter;
+extern gint ett_opcua_AggregateConfiguration;
+extern gint ett_opcua_array_AggregateConfiguration;
+extern gint ett_opcua_AggregateFilter;
+extern gint ett_opcua_array_AggregateFilter;
+extern gint ett_opcua_EventFilterResult;
+extern gint ett_opcua_array_EventFilterResult;
+extern gint ett_opcua_AggregateFilterResult;
+extern gint ett_opcua_array_AggregateFilterResult;
+extern gint ett_opcua_MonitoringParameters;
+extern gint ett_opcua_array_MonitoringParameters;
+extern gint ett_opcua_MonitoredItemCreateRequest;
+extern gint ett_opcua_array_MonitoredItemCreateRequest;
+extern gint ett_opcua_MonitoredItemCreateResult;
+extern gint ett_opcua_array_MonitoredItemCreateResult;
+extern gint ett_opcua_MonitoredItemModifyRequest;
+extern gint ett_opcua_array_MonitoredItemModifyRequest;
+extern gint ett_opcua_MonitoredItemModifyResult;
+extern gint ett_opcua_array_MonitoredItemModifyResult;
+extern gint ett_opcua_NotificationMessage;
+extern gint ett_opcua_array_NotificationMessage;
+extern gint ett_opcua_DataChangeNotification;
+extern gint ett_opcua_array_DataChangeNotification;
+extern gint ett_opcua_MonitoredItemNotification;
+extern gint ett_opcua_array_MonitoredItemNotification;
+extern gint ett_opcua_EventNotificationList;
+extern gint ett_opcua_array_EventNotificationList;
+extern gint ett_opcua_EventFieldList;
+extern gint ett_opcua_array_EventFieldList;
+extern gint ett_opcua_HistoryEventFieldList;
+extern gint ett_opcua_array_HistoryEventFieldList;
+extern gint ett_opcua_StatusChangeNotification;
+extern gint ett_opcua_array_StatusChangeNotification;
+extern gint ett_opcua_SubscriptionAcknowledgement;
+extern gint ett_opcua_array_SubscriptionAcknowledgement;
+extern gint ett_opcua_TransferResult;
+extern gint ett_opcua_array_TransferResult;
+extern gint ett_opcua_ScalarTestType;
+extern gint ett_opcua_array_ScalarTestType;
+extern gint ett_opcua_ArrayTestType;
+extern gint ett_opcua_array_ArrayTestType;
+extern gint ett_opcua_CompositeTestType;
+extern gint ett_opcua_array_CompositeTestType;
+extern gint ett_opcua_BuildInfo;
+extern gint ett_opcua_array_BuildInfo;
+extern gint ett_opcua_RedundantServerDataType;
+extern gint ett_opcua_array_RedundantServerDataType;
+extern gint ett_opcua_EndpointUrlListDataType;
+extern gint ett_opcua_array_EndpointUrlListDataType;
+extern gint ett_opcua_NetworkGroupDataType;
+extern gint ett_opcua_array_NetworkGroupDataType;
+extern gint ett_opcua_SamplingIntervalDiagnosticsDataType;
+extern gint ett_opcua_array_SamplingIntervalDiagnosticsDataType;
+extern gint ett_opcua_ServerDiagnosticsSummaryDataType;
+extern gint ett_opcua_array_ServerDiagnosticsSummaryDataType;
+extern gint ett_opcua_ServerStatusDataType;
+extern gint ett_opcua_array_ServerStatusDataType;
+extern gint ett_opcua_SessionDiagnosticsDataType;
+extern gint ett_opcua_array_SessionDiagnosticsDataType;
+extern gint ett_opcua_SessionSecurityDiagnosticsDataType;
+extern gint ett_opcua_array_SessionSecurityDiagnosticsDataType;
+extern gint ett_opcua_ServiceCounterDataType;
+extern gint ett_opcua_array_ServiceCounterDataType;
+extern gint ett_opcua_StatusResult;
+extern gint ett_opcua_array_StatusResult;
+extern gint ett_opcua_SubscriptionDiagnosticsDataType;
+extern gint ett_opcua_array_SubscriptionDiagnosticsDataType;
+extern gint ett_opcua_ModelChangeStructureDataType;
+extern gint ett_opcua_array_ModelChangeStructureDataType;
+extern gint ett_opcua_SemanticChangeStructureDataType;
+extern gint ett_opcua_array_SemanticChangeStructureDataType;
+extern gint ett_opcua_Range;
+extern gint ett_opcua_array_Range;
+extern gint ett_opcua_EUInformation;
+extern gint ett_opcua_array_EUInformation;
+extern gint ett_opcua_ComplexNumberType;
+extern gint ett_opcua_array_ComplexNumberType;
+extern gint ett_opcua_DoubleComplexNumberType;
+extern gint ett_opcua_array_DoubleComplexNumberType;
+extern gint ett_opcua_AxisInformation;
+extern gint ett_opcua_array_AxisInformation;
+extern gint ett_opcua_XVType;
+extern gint ett_opcua_array_XVType;
+extern gint ett_opcua_ProgramDiagnosticDataType;
+extern gint ett_opcua_array_ProgramDiagnosticDataType;
+extern gint ett_opcua_Annotation;
+extern gint ett_opcua_array_Annotation;
+
void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
diff --git a/plugins/opcua/opcua_simpletypes.c b/plugins/opcua/opcua_simpletypes.c
index 24600f5223..d74dc31541 100644
--- a/plugins/opcua/opcua_simpletypes.c
+++ b/plugins/opcua/opcua_simpletypes.c
@@ -266,7 +266,6 @@ static const value_string g_VariantTypes[] = {
#define VARIANT_ARRAYMASK 0x80
/* trees */
-static gint ett_opcua_array = -1;
static gint ett_opcua_diagnosticinfo = -1;
static gint ett_opcua_diagnosticinfo_encodingmask = -1;
static gint ett_opcua_nodeid = -1;
@@ -282,9 +281,33 @@ static gint ett_opcua_extensionobject = -1;
static gint ett_opcua_extensionobject_encodingmask = -1;
static gint ett_opcua_statuscode = -1;
static gint ett_opcua_statuscode_info = -1;
+gint ett_opcua_array_Boolean = -1;
+gint ett_opcua_array_SByte = -1;
+gint ett_opcua_array_Byte = -1;
+gint ett_opcua_array_Int16 = -1;
+gint ett_opcua_array_UInt16 = -1;
+gint ett_opcua_array_Int32 = -1;
+gint ett_opcua_array_UInt32 = -1;
+gint ett_opcua_array_Int64 = -1;
+gint ett_opcua_array_UInt64 = -1;
+gint ett_opcua_array_Float = -1;
+gint ett_opcua_array_Double = -1;
+gint ett_opcua_array_String = -1;
+gint ett_opcua_array_DateTime = -1;
+gint ett_opcua_array_Guid = -1;
+gint ett_opcua_array_ByteString = -1;
+gint ett_opcua_array_XmlElement = -1;
+gint ett_opcua_array_NodeId = -1;
+gint ett_opcua_array_ExpandedNodeId = -1;
+gint ett_opcua_array_StatusCode = -1;
+gint ett_opcua_array_DiagnosticInfo = -1;
+gint ett_opcua_array_QualifiedName = -1;
+gint ett_opcua_array_LocalizedText = -1;
+gint ett_opcua_array_ExtensionObject = -1;
+gint ett_opcua_array_DataValue = -1;
+gint ett_opcua_array_Variant = -1;
static gint *ett[] =
{
- &ett_opcua_array,
&ett_opcua_diagnosticinfo,
&ett_opcua_diagnosticinfo_encodingmask,
&ett_opcua_nodeid,
@@ -299,7 +322,32 @@ static gint *ett[] =
&ett_opcua_extensionobject,
&ett_opcua_extensionobject_encodingmask,
&ett_opcua_statuscode,
- &ett_opcua_statuscode_info
+ &ett_opcua_statuscode_info,
+ &ett_opcua_array_Boolean,
+ &ett_opcua_array_SByte,
+ &ett_opcua_array_Byte,
+ &ett_opcua_array_Int16,
+ &ett_opcua_array_UInt16,
+ &ett_opcua_array_Int32,
+ &ett_opcua_array_UInt32,
+ &ett_opcua_array_Int64,
+ &ett_opcua_array_UInt64,
+ &ett_opcua_array_Float,
+ &ett_opcua_array_Double,
+ &ett_opcua_array_String,
+ &ett_opcua_array_DateTime,
+ &ett_opcua_array_Guid,
+ &ett_opcua_array_ByteString,
+ &ett_opcua_array_XmlElement,
+ &ett_opcua_array_NodeId,
+ &ett_opcua_array_ExpandedNodeId,
+ &ett_opcua_array_StatusCode,
+ &ett_opcua_array_DiagnosticInfo,
+ &ett_opcua_array_QualifiedName,
+ &ett_opcua_array_LocalizedText,
+ &ett_opcua_array_ExtensionObject,
+ &ett_opcua_array_DataValue,
+ &ett_opcua_array_Variant
};
void registerSimpleTypes(int proto)
@@ -767,31 +815,31 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
- case OpcUaType_Boolean: parseArraySimple(subtree, tvb, &iOffset, "Boolean", "Boolean", hf_opcua_Boolean, parseBoolean); break;
- case OpcUaType_SByte: parseArraySimple(subtree, tvb, &iOffset, "SByte", "SByte", hf_opcua_SByte, parseSByte); break;
- case OpcUaType_Byte: parseArraySimple(subtree, tvb, &iOffset, "Byte", "Byte", hf_opcua_Byte, parseByte); break;
- case OpcUaType_Int16: parseArraySimple(subtree, tvb, &iOffset, "Int16", "Int16", hf_opcua_Int16, parseInt16); break;
- case OpcUaType_UInt16: parseArraySimple(subtree, tvb, &iOffset, "UInt16", "UInt16", hf_opcua_UInt16, parseUInt16); break;
- case OpcUaType_Int32: parseArraySimple(subtree, tvb, &iOffset, "Int32", "Int32", hf_opcua_Int32, parseInt32); break;
- case OpcUaType_UInt32: parseArraySimple(subtree, tvb, &iOffset, "UInt32", "UInt32", hf_opcua_UInt32, parseUInt32); break;
- case OpcUaType_Int64: parseArraySimple(subtree, tvb, &iOffset, "Int64", "Int64", hf_opcua_Int64, parseInt64); break;
- case OpcUaType_UInt64: parseArraySimple(subtree, tvb, &iOffset, "UInt64", "UInt64", hf_opcua_UInt64, parseUInt64); break;
- case OpcUaType_Float: parseArraySimple(subtree, tvb, &iOffset, "Float", "Float", hf_opcua_Float, parseFloat); break;
- case OpcUaType_Double: parseArraySimple(subtree, tvb, &iOffset, "Double", "Double", hf_opcua_Double, parseDouble); break;
- case OpcUaType_String: parseArraySimple(subtree, tvb, &iOffset, "String", "String", hf_opcua_String, parseString); break;
- case OpcUaType_DateTime: parseArraySimple(subtree, tvb, &iOffset, "DateTime", "DateTime", hf_opcua_DateTime, parseDateTime); break;
- case OpcUaType_Guid: parseArraySimple(subtree, tvb, &iOffset, "Guid", "Guid", hf_opcua_Guid, parseGuid); break;
- case OpcUaType_ByteString: parseArraySimple(subtree, tvb, &iOffset, "ByteString", "ByteString", hf_opcua_ByteString, parseByteString); break;
- case OpcUaType_XmlElement: parseArraySimple(subtree, tvb, &iOffset, "XmlElement", "XmlElement", hf_opcua_XmlElement, parseXmlElement); break;
- case OpcUaType_NodeId: parseArrayComplex(subtree, tvb, &iOffset, "NodeId", "NodeId", parseNodeId); break;
- case OpcUaType_ExpandedNodeId: parseArrayComplex(subtree, tvb, &iOffset, "ExpandedNodeId", "ExpandedNodeId", parseExpandedNodeId); break;
- case OpcUaType_StatusCode: parseArraySimple(subtree, tvb, &iOffset, "StatusCode", "StatusCode", hf_opcua_StatusCode, parseStatusCode); break;
- case OpcUaType_DiagnosticInfo: parseArrayComplex(subtree, tvb, &iOffset, "DiagnosticInfo", "DiagnosticInfo", parseDiagnosticInfo); break;
- case OpcUaType_QualifiedName: parseArrayComplex(subtree, tvb, &iOffset, "QualifiedName", "QualifiedName", parseQualifiedName); break;
- case OpcUaType_LocalizedText: parseArrayComplex(subtree, tvb, &iOffset, "LocalizedText", "LocalizedText", parseLocalizedText); break;
- case OpcUaType_ExtensionObject: parseArrayComplex(subtree, tvb, &iOffset, "ExtensionObject", "ExtensionObject", parseExtensionObject); break;
- case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, &iOffset, "DataValue", "DataValue", parseDataValue); break;
- case OpcUaType_Variant: parseArrayComplex(subtree, tvb, &iOffset, "Variant", "Variant", parseVariant); break;
+ case OpcUaType_Boolean: parseArraySimple(subtree, tvb, &iOffset, "Boolean", "Boolean", hf_opcua_Boolean, parseBoolean, ett_opcua_array_Boolean); break;
+ case OpcUaType_SByte: parseArraySimple(subtree, tvb, &iOffset, "SByte", "SByte", hf_opcua_SByte, parseSByte, ett_opcua_array_SByte); break;
+ case OpcUaType_Byte: parseArraySimple(subtree, tvb, &iOffset, "Byte", "Byte", hf_opcua_Byte, parseByte, ett_opcua_array_Byte); break;
+ case OpcUaType_Int16: parseArraySimple(subtree, tvb, &iOffset, "Int16", "Int16", hf_opcua_Int16, parseInt16, ett_opcua_array_Int16); break;
+ case OpcUaType_UInt16: parseArraySimple(subtree, tvb, &iOffset, "UInt16", "UInt16", hf_opcua_UInt16, parseUInt16, ett_opcua_array_UInt16); break;
+ case OpcUaType_Int32: parseArraySimple(subtree, tvb, &iOffset, "Int32", "Int32", hf_opcua_Int32, parseInt32, ett_opcua_array_Int32); break;
+ case OpcUaType_UInt32: parseArraySimple(subtree, tvb, &iOffset, "UInt32", "UInt32", hf_opcua_UInt32, parseUInt32, ett_opcua_array_UInt32); break;
+ case OpcUaType_Int64: parseArraySimple(subtree, tvb, &iOffset, "Int64", "Int64", hf_opcua_Int64, parseInt64, ett_opcua_array_Int64); break;
+ case OpcUaType_UInt64: parseArraySimple(subtree, tvb, &iOffset, "UInt64", "UInt64", hf_opcua_UInt64, parseUInt64, ett_opcua_array_UInt64); break;
+ case OpcUaType_Float: parseArraySimple(subtree, tvb, &iOffset, "Float", "Float", hf_opcua_Float, parseFloat, ett_opcua_array_Float); break;
+ case OpcUaType_Double: parseArraySimple(subtree, tvb, &iOffset, "Double", "Double", hf_opcua_Double, parseDouble, ett_opcua_array_Double); break;
+ case OpcUaType_String: parseArraySimple(subtree, tvb, &iOffset, "String", "String", hf_opcua_String, parseString, ett_opcua_array_String); break;
+ case OpcUaType_DateTime: parseArraySimple(subtree, tvb, &iOffset, "DateTime", "DateTime", hf_opcua_DateTime, parseDateTime, ett_opcua_array_DateTime); break;
+ case OpcUaType_Guid: parseArraySimple(subtree, tvb, &iOffset, "Guid", "Guid", hf_opcua_Guid, parseGuid, ett_opcua_array_Guid); break;
+ case OpcUaType_ByteString: parseArraySimple(subtree, tvb, &iOffset, "ByteString", "ByteString", hf_opcua_ByteString, parseByteString, ett_opcua_array_ByteString); break;
+ case OpcUaType_XmlElement: parseArraySimple(subtree, tvb, &iOffset, "XmlElement", "XmlElement", hf_opcua_XmlElement, parseXmlElement, ett_opcua_array_XmlElement); break;
+ case OpcUaType_NodeId: parseArrayComplex(subtree, tvb, &iOffset, "NodeId", "NodeId", parseNodeId, ett_opcua_array_NodeId); break;
+ case OpcUaType_ExpandedNodeId: parseArrayComplex(subtree, tvb, &iOffset, "ExpandedNodeId", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId); break;
+ case OpcUaType_StatusCode: parseArraySimple(subtree, tvb, &iOffset, "StatusCode", "StatusCode", hf_opcua_StatusCode, parseStatusCode, ett_opcua_array_StatusCode); break;
+ case OpcUaType_DiagnosticInfo: parseArrayComplex(subtree, tvb, &iOffset, "DiagnosticInfo", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); break;
+ case OpcUaType_QualifiedName: parseArrayComplex(subtree, tvb, &iOffset, "QualifiedName", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); break;
+ case OpcUaType_LocalizedText: parseArrayComplex(subtree, tvb, &iOffset, "LocalizedText", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText); break;
+ case OpcUaType_ExtensionObject: parseArrayComplex(subtree, tvb, &iOffset, "ExtensionObject", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); break;
+ case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, &iOffset, "DataValue", "DataValue", parseDataValue, ett_opcua_array_DataValue); break;
+ case OpcUaType_Variant: parseArrayComplex(subtree, tvb, &iOffset, "Variant", "Variant", parseVariant, ett_opcua_array_Variant); break;
}
if (EncodingMask & VARIANT_ARRAYDIMENSIONS)
@@ -862,10 +910,10 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz
* All arrays have one 4 byte signed integer length information,
* followed by n data elements.
*/
-void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction)
+void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Array of %s", szFieldName, szTypeName);
- proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array);
+ proto_tree *subtree = proto_item_add_subtree(ti, idx);
int i;
gint32 iLen;
@@ -897,10 +945,10 @@ void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
* All arrays have one 4 byte signed integer length information,
* followed by n data elements.
*/
-void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction)
+void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Array of %s", szFieldName, szTypeName);
- proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array);
+ proto_tree *subtree = proto_item_add_subtree(ti, idx);
int i;
gint32 iLen;
@@ -928,10 +976,10 @@ void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *
* All arrays have one 4 byte signed integer length information,
* followed by n data elements.
*/
-void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction)
+void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx)
{
proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Array of %s", szFieldName, szTypeName);
- proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array);
+ proto_tree *subtree = proto_item_add_subtree(ti, idx);
int i;
gint32 iLen;
diff --git a/plugins/opcua/opcua_simpletypes.h b/plugins/opcua/opcua_simpletypes.h
index 0c3cc45446..2ff583a78f 100644
--- a/plugins/opcua/opcua_simpletypes.h
+++ b/plugins/opcua/opcua_simpletypes.h
@@ -21,6 +21,33 @@
******************************************************************************/
#include "opcua_identifiers.h"
+/* simple types trees */
+extern gint ett_opcua_array_Boolean;
+extern gint ett_opcua_array_SByte;
+extern gint ett_opcua_array_Byte;
+extern gint ett_opcua_array_Int16;
+extern gint ett_opcua_array_UInt16;
+extern gint ett_opcua_array_Int32;
+extern gint ett_opcua_array_UInt32;
+extern gint ett_opcua_array_Int64;
+extern gint ett_opcua_array_UInt64;
+extern gint ett_opcua_array_Float;
+extern gint ett_opcua_array_Double;
+extern gint ett_opcua_array_String;
+extern gint ett_opcua_array_DateTime;
+extern gint ett_opcua_array_Guid;
+extern gint ett_opcua_array_ByteString;
+extern gint ett_opcua_array_XmlElement;
+extern gint ett_opcua_array_NodeId;
+extern gint ett_opcua_array_ExpandedNodeId;
+extern gint ett_opcua_array_StatusCode;
+extern gint ett_opcua_array_DiagnosticInfo;
+extern gint ett_opcua_array_QualifiedName;
+extern gint ett_opcua_array_LocalizedText;
+extern gint ett_opcua_array_ExtensionObject;
+extern gint ett_opcua_array_DataValue;
+extern gint ett_opcua_array_Variant;
+
/* simple types */
proto_item* parseBoolean(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
proto_item* parseByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
@@ -48,9 +75,9 @@ void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction);
-void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction);
-void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction);
+void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx);
+void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx);
+void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx);
void registerSimpleTypes(int proto);
guint32 getExtensionObjectType(tvbuff_t *tvb, gint *pOffset);