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>
This commit is contained in:
Hannes Mezger 2014-06-12 17:36:32 +02:00 committed by Evan Huus
parent 8c0d3ae47e
commit 7067e3a340
8 changed files with 1571 additions and 439 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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);

View File

@ -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));
}

View File

@ -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);

File diff suppressed because it is too large Load Diff

View File

@ -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);

View File

@ -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;

View File

@ -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);