5 * Routines for IDL dissection
7 * Autogenerated from idl2wrs
8 * Copyright 2001 Frank Singleton <frank.singleton@ericsson.com>
13 * Wireshark - Network traffic analyzer
15 * Copyright 1999 - 2006 Gerald Combs
18 static int hf_operationrequest = -1;/* Request_Operation field */
22 * This program is free software; you can redistribute it and/or
23 * modify it under the terms of the GNU General Public License
24 * as published by the Free Software Foundation; either version 2
25 * of the License, or (at your option) any later version.
27 * This program is distributed in the hope that it will be useful,
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 * GNU General Public License for more details.
32 * You should have received a copy of the GNU General Public License
33 * along with this program; if not, write to the Free Software
34 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
46 #include <epan/packet.h>
47 #include <epan/proto.h>
48 #include <epan/dissectors/packet-giop.h>
51 G_MODULE_EXPORT const gchar version[] = "0.0.1";
55 /* disable warning: "unreference local variable" */
56 #pragma warning(disable:4101)
60 static proto_tree *start_dissecting(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset);
64 /* Struct prototype declaration Start */
67 /* Struct = IDL:Tango/DevVarLongStringArray:1.0 */
69 static void decode_Tango_DevVarLongStringArray_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
72 /* Struct = IDL:Tango/DevVarDoubleStringArray:1.0 */
74 static void decode_Tango_DevVarDoubleStringArray_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
77 /* Struct = IDL:Tango/TimeVal:1.0 */
79 static void decode_Tango_TimeVal_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
82 /* Struct = IDL:Tango/DevCmdInfo:1.0 */
84 static void decode_Tango_DevCmdInfo_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
87 /* Struct = IDL:Tango/DevCmdInfo_2:1.0 */
89 static void decode_Tango_DevCmdInfo_2_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
92 /* Struct = IDL:Tango/DevError:1.0 */
94 static void decode_Tango_DevError_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
97 /* Struct = IDL:Tango/NamedDevError:1.0 */
99 static void decode_Tango_NamedDevError_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
102 /* Struct = IDL:Tango/AttributeConfig:1.0 */
104 static void decode_Tango_AttributeConfig_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
107 /* Struct = IDL:Tango/AttributeConfig_2:1.0 */
109 static void decode_Tango_AttributeConfig_2_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
112 /* Struct = IDL:Tango/AttributeValue:1.0 */
114 static void decode_Tango_AttributeValue_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
117 /* Struct = IDL:Tango/AttributeDim:1.0 */
119 static void decode_Tango_AttributeDim_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
122 /* Struct = IDL:Tango/AttributeValue_3:1.0 */
124 static void decode_Tango_AttributeValue_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
127 /* Struct = IDL:Tango/ChangeEventProp:1.0 */
129 static void decode_Tango_ChangeEventProp_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
132 /* Struct = IDL:Tango/PeriodicEventProp:1.0 */
134 static void decode_Tango_PeriodicEventProp_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
137 /* Struct = IDL:Tango/ArchiveEventProp:1.0 */
139 static void decode_Tango_ArchiveEventProp_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
142 /* Struct = IDL:Tango/EventProperties:1.0 */
144 static void decode_Tango_EventProperties_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
147 /* Struct = IDL:Tango/AttributeAlarm:1.0 */
149 static void decode_Tango_AttributeAlarm_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
152 /* Struct = IDL:Tango/AttributeConfig_3:1.0 */
154 static void decode_Tango_AttributeConfig_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
157 /* Struct = IDL:Tango/DevInfo:1.0 */
159 static void decode_Tango_DevInfo_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
162 /* Struct = IDL:Tango/DevInfo_3:1.0 */
164 static void decode_Tango_DevInfo_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
167 /* Struct = IDL:Tango/DevCmdHistory:1.0 */
169 static void decode_Tango_DevCmdHistory_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
172 /* Struct = IDL:Tango/DevAttrHistory:1.0 */
174 static void decode_Tango_DevAttrHistory_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
177 /* Struct = IDL:Tango/DevAttrHistory_3:1.0 */
179 static void decode_Tango_DevAttrHistory_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_);
182 /* Struct prototype declaration End */
185 /* Union prototype declaration Start */
188 /* Union prototype declaration End */
192 /* Initialise the protocol and subtree pointers */
194 static int proto_tango = -1;
196 static gint ett_tango = -1;
199 /* Initialise the initial Alignment */
201 static guint32 boundary = GIOP_HEADER_SIZE; /* initial value */
205 /* Initialise the Registered fields */
207 /* TODO - Use registered fields */
210 * IDL Operations Start
213 static const char Tango_Device_command_inout_op[] = "command_inout" ;
214 static const char Tango_Device_get_attribute_config_op[] = "get_attribute_config" ;
215 static const char Tango_Device_set_attribute_config_op[] = "set_attribute_config" ;
216 static const char Tango_Device_read_attributes_op[] = "read_attributes" ;
217 static const char Tango_Device_write_attributes_op[] = "write_attributes" ;
218 static const char Tango_Device_ping_op[] = "ping" ;
219 static const char Tango_Device_black_box_op[] = "black_box" ;
220 static const char Tango_Device_info_op[] = "info" ;
221 static const char Tango_Device_command_list_query_op[] = "command_list_query" ;
222 static const char Tango_Device_command_query_op[] = "command_query" ;
223 static const char Tango_Device_2_command_inout_2_op[] = "command_inout_2" ;
224 static const char Tango_Device_2_read_attributes_2_op[] = "read_attributes_2" ;
225 static const char Tango_Device_2_get_attribute_config_2_op[] = "get_attribute_config_2" ;
226 static const char Tango_Device_2_command_list_query_2_op[] = "command_list_query_2" ;
227 static const char Tango_Device_2_command_query_2_op[] = "command_query_2" ;
228 static const char Tango_Device_2_command_inout_history_2_op[] = "command_inout_history_2" ;
229 static const char Tango_Device_2_read_attribute_history_2_op[] = "read_attribute_history_2" ;
230 static const char Tango_Device_3_read_attributes_3_op[] = "read_attributes_3" ;
231 static const char Tango_Device_3_write_attributes_3_op[] = "write_attributes_3" ;
232 static const char Tango_Device_3_read_attribute_history_3_op[] = "read_attribute_history_3" ;
233 static const char Tango_Device_3_info_3_op[] = "info_3" ;
234 static const char Tango_Device_3_get_attribute_config_3_op[] = "get_attribute_config_3" ;
235 static const char Tango_Device_3_set_attribute_config_3_op[] = "set_attribute_config_3" ;
241 /* Begin Exception (containing members) String Declare */
244 static const char user_exception_Tango_DevFailed[] = "IDL:Tango/DevFailed:1.0" ;
245 static const char user_exception_Tango_MultiDevFailed[] = "IDL:Tango/MultiDevFailed:1.0" ;
247 /* End Exception (containing members) String Declare */
250 * IDL Attributes Start
253 static const char get_Tango_Device_name_at[] = "_get_name" ;
254 static const char get_Tango_Device_description_at[] = "_get_description" ;
255 static const char get_Tango_Device_state_at[] = "_get_state" ;
256 static const char get_Tango_Device_status_at[] = "_get_status" ;
257 static const char get_Tango_Device_adm_name_at[] = "_get_adm_name" ;
268 * Enum = IDL:Tango/AttrQuality:1.0
271 static const value_string Tango_AttrQuality[] = {
274 { 1, "ATTR_INVALID" },
276 { 3, "ATTR_CHANGING" },
277 { 4, "ATTR_WARNING" },
282 * Enum = IDL:Tango/AttrWriteType:1.0
285 static const value_string Tango_AttrWriteType[] = {
288 { 1, "READ_WITH_WRITE" },
295 * Enum = IDL:Tango/AttrDataFormat:1.0
298 static const value_string Tango_AttrDataFormat[] = {
307 * Enum = IDL:Tango/DevSource:1.0
310 static const value_string Tango_DevSource[] = {
319 * Enum = IDL:Tango/ErrSeverity:1.0
322 static const value_string Tango_ErrSeverity[] = {
331 * Enum = IDL:Tango/DevState:1.0
334 static const value_string Tango_DevState[] = {
354 * Enum = IDL:Tango/DispLevel:1.0
357 static const value_string Tango_DispLevel[] = {
368 /* Begin Exception Helper Functions */
371 /* Exception = IDL:Tango/DevFailed:1.0 */
373 static void decode_ex_Tango_DevFailed(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
376 /* Operation specific Variable declarations Begin */
378 guint32 u_octet4_loop_DevFailed_errors;
379 guint32 i_DevFailed_errors;
381 /* Operation specific Variable declarations End */
383 u_octet4_loop_DevFailed_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
385 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevFailed_errors = %u",u_octet4_loop_DevFailed_errors);
388 for (i_DevFailed_errors=0; i_DevFailed_errors < u_octet4_loop_DevFailed_errors; i_DevFailed_errors++) {
390 /* Begin struct "Tango_DevError" */
394 decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
396 /* End struct "Tango_DevError" */
402 /* Exception = IDL:Tango/MultiDevFailed:1.0 */
404 static void decode_ex_Tango_MultiDevFailed(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
407 /* Operation specific Variable declarations Begin */
409 guint32 u_octet4_loop_MultiDevFailed_errors;
410 guint32 i_MultiDevFailed_errors;
412 /* Operation specific Variable declarations End */
414 u_octet4_loop_MultiDevFailed_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
416 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of MultiDevFailed_errors = %u",u_octet4_loop_MultiDevFailed_errors);
419 for (i_MultiDevFailed_errors=0; i_MultiDevFailed_errors < u_octet4_loop_MultiDevFailed_errors; i_MultiDevFailed_errors++) {
421 /* Begin struct "Tango_NamedDevError" */
425 decode_Tango_NamedDevError_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
427 /* End struct "Tango_NamedDevError" */
434 /* End Exception Helper Functions */
437 * Main delegator for exception handling
441 static gboolean decode_user_exception(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *ptree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
443 /*gboolean stream_is_big_endian _U_;*/ /* big endianess */
444 proto_tree *tree _U_;
446 if (!header->exception_id)
449 if (strcmp(header->exception_id, user_exception_Tango_DevFailed) == 0) {
450 tree = start_dissecting(tvb, pinfo, ptree, offset);
451 decode_ex_Tango_DevFailed(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian); /* IDL:Tango/DevFailed:1.0 */
455 if (strcmp(header->exception_id, user_exception_Tango_MultiDevFailed) == 0) {
456 tree = start_dissecting(tvb, pinfo, ptree, offset);
457 decode_ex_Tango_MultiDevFailed(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian); /* IDL:Tango/MultiDevFailed:1.0 */
463 return FALSE; /* user exception not found */
467 /* Begin Attribute Helper Functions */
470 /* Attribute = IDL:Tango/Device/name:1.0 */
472 static void decode_get_Tango_Device_name_at(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
475 /* Operation specific Variable declarations Begin */
480 /* Operation specific Variable declarations End */
482 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
484 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"name (%u) = %s",
485 u_octet4, (u_octet4 > 0) ? seq : "");
488 g_free(seq); /* free buffer */
494 /* Attribute = IDL:Tango/Device/description:1.0 */
496 static void decode_get_Tango_Device_description_at(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
499 /* Operation specific Variable declarations Begin */
504 /* Operation specific Variable declarations End */
506 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
508 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"description (%u) = %s",
509 u_octet4, (u_octet4 > 0) ? seq : "");
512 g_free(seq); /* free buffer */
518 /* Attribute = IDL:Tango/Device/state:1.0 */
520 static void decode_get_Tango_Device_state_at(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
523 /* Operation specific Variable declarations Begin */
527 /* Operation specific Variable declarations End */
530 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
532 proto_tree_add_text(tree,tvb,*offset-4,4,"state = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevState,"Unknown Enum Value"));
538 /* Attribute = IDL:Tango/Device/status:1.0 */
540 static void decode_get_Tango_Device_status_at(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
543 /* Operation specific Variable declarations Begin */
548 /* Operation specific Variable declarations End */
550 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
552 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"status (%u) = %s",
553 u_octet4, (u_octet4 > 0) ? seq : "");
556 g_free(seq); /* free buffer */
562 /* Attribute = IDL:Tango/Device/adm_name:1.0 */
564 static void decode_get_Tango_Device_adm_name_at(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
567 /* Operation specific Variable declarations Begin */
572 /* Operation specific Variable declarations End */
574 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
576 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"adm_name (%u) = %s",
577 u_octet4, (u_octet4 > 0) ? seq : "");
580 g_free(seq); /* free buffer */
586 /* End Attribute Helper Functions */
589 * IDL:Tango/Device/command_inout:1.0
592 static void decode_Tango_Device_command_inout(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
595 /* Operation specific Variable declarations Begin */
600 /* Operation specific Variable declarations End */
603 switch(header->message_type) {
607 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
609 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
610 u_octet4, (u_octet4 > 0) ? seq : "");
613 g_free(seq); /* free buffer */
616 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
622 switch(header->rep_status) {
626 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
636 /* Unknown Exception */
638 g_warning("Unknown Exception ");
643 } /* switch(header->message_type) */
649 /* Unknown GIOP Message */
651 g_warning("Unknown GIOP Message");
655 } /* switch(header->message_type) */
660 * IDL:Tango/Device/get_attribute_config:1.0
663 static void decode_Tango_Device_get_attribute_config(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
666 /* Operation specific Variable declarations Begin */
668 guint32 u_octet4_loop_names;
672 guint32 u_octet4_loop_AttributeConfigList;
673 guint32 i_AttributeConfigList;
675 /* Operation specific Variable declarations End */
678 switch(header->message_type) {
682 u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
684 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
687 for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
689 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
691 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
692 u_octet4, (u_octet4 > 0) ? seq : "");
695 g_free(seq); /* free buffer */
704 switch(header->rep_status) {
708 u_octet4_loop_AttributeConfigList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
710 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfigList = %u",u_octet4_loop_AttributeConfigList);
713 for (i_AttributeConfigList=0; i_AttributeConfigList < u_octet4_loop_AttributeConfigList; i_AttributeConfigList++) {
715 /* Begin struct "Tango_AttributeConfig" */
719 decode_Tango_AttributeConfig_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
721 /* End struct "Tango_AttributeConfig" */
733 /* Unknown Exception */
735 g_warning("Unknown Exception ");
740 } /* switch(header->message_type) */
746 /* Unknown GIOP Message */
748 g_warning("Unknown GIOP Message");
752 } /* switch(header->message_type) */
757 * IDL:Tango/Device/set_attribute_config:1.0
760 static void decode_Tango_Device_set_attribute_config(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
763 /* Operation specific Variable declarations Begin */
765 guint32 u_octet4_loop_new_conf;
768 /* Operation specific Variable declarations End */
771 switch(header->message_type) {
775 u_octet4_loop_new_conf = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
777 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of new_conf = %u",u_octet4_loop_new_conf);
780 for (i_new_conf=0; i_new_conf < u_octet4_loop_new_conf; i_new_conf++) {
782 /* Begin struct "Tango_AttributeConfig" */
786 decode_Tango_AttributeConfig_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
788 /* End struct "Tango_AttributeConfig" */
796 switch(header->rep_status) {
800 /* Function returns void */
810 /* Unknown Exception */
812 g_warning("Unknown Exception ");
817 } /* switch(header->message_type) */
823 /* Unknown GIOP Message */
825 g_warning("Unknown GIOP Message");
829 } /* switch(header->message_type) */
834 * IDL:Tango/Device/read_attributes:1.0
837 static void decode_Tango_Device_read_attributes(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
840 /* Operation specific Variable declarations Begin */
842 guint32 u_octet4_loop_names;
846 guint32 u_octet4_loop_AttributeValueList;
847 guint32 i_AttributeValueList;
849 /* Operation specific Variable declarations End */
852 switch(header->message_type) {
856 u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
858 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
861 for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
863 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
865 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
866 u_octet4, (u_octet4 > 0) ? seq : "");
869 g_free(seq); /* free buffer */
878 switch(header->rep_status) {
882 u_octet4_loop_AttributeValueList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
884 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValueList = %u",u_octet4_loop_AttributeValueList);
887 for (i_AttributeValueList=0; i_AttributeValueList < u_octet4_loop_AttributeValueList; i_AttributeValueList++) {
889 /* Begin struct "Tango_AttributeValue" */
893 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
895 /* End struct "Tango_AttributeValue" */
907 /* Unknown Exception */
909 g_warning("Unknown Exception ");
914 } /* switch(header->message_type) */
920 /* Unknown GIOP Message */
922 g_warning("Unknown GIOP Message");
926 } /* switch(header->message_type) */
931 * IDL:Tango/Device/write_attributes:1.0
934 static void decode_Tango_Device_write_attributes(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
937 /* Operation specific Variable declarations Begin */
939 guint32 u_octet4_loop_values;
942 /* Operation specific Variable declarations End */
945 switch(header->message_type) {
949 u_octet4_loop_values = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
951 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of values = %u",u_octet4_loop_values);
954 for (i_values=0; i_values < u_octet4_loop_values; i_values++) {
956 /* Begin struct "Tango_AttributeValue" */
960 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
962 /* End struct "Tango_AttributeValue" */
970 switch(header->rep_status) {
974 /* Function returns void */
984 /* Unknown Exception */
986 g_warning("Unknown Exception ");
991 } /* switch(header->message_type) */
997 /* Unknown GIOP Message */
999 g_warning("Unknown GIOP Message");
1003 } /* switch(header->message_type) */
1008 * IDL:Tango/Device/ping:1.0
1011 static void decode_Tango_Device_ping(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1014 /* Operation specific Variable declarations Begin */
1017 /* Operation specific Variable declarations End */
1020 switch(header->message_type) {
1028 switch(header->rep_status) {
1032 /* Function returns void */
1036 case USER_EXCEPTION:
1042 /* Unknown Exception */
1044 g_warning("Unknown Exception ");
1049 } /* switch(header->message_type) */
1055 /* Unknown GIOP Message */
1057 g_warning("Unknown GIOP Message");
1061 } /* switch(header->message_type) */
1066 * IDL:Tango/Device/black_box:1.0
1069 static void decode_Tango_Device_black_box(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1072 /* Operation specific Variable declarations Begin */
1075 guint32 u_octet4_loop_DevVarStringArray;
1076 guint32 i_DevVarStringArray;
1080 /* Operation specific Variable declarations End */
1083 switch(header->message_type) {
1087 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
1089 proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
1096 switch(header->rep_status) {
1100 u_octet4_loop_DevVarStringArray = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1102 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarStringArray = %u",u_octet4_loop_DevVarStringArray);
1105 for (i_DevVarStringArray=0; i_DevVarStringArray < u_octet4_loop_DevVarStringArray; i_DevVarStringArray++) {
1107 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1109 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevVarStringArray (%u) = %s",
1110 u_octet4, (u_octet4 > 0) ? seq : "");
1113 g_free(seq); /* free buffer */
1120 case USER_EXCEPTION:
1126 /* Unknown Exception */
1128 g_warning("Unknown Exception ");
1133 } /* switch(header->message_type) */
1139 /* Unknown GIOP Message */
1141 g_warning("Unknown GIOP Message");
1145 } /* switch(header->message_type) */
1150 * IDL:Tango/Device/info:1.0
1153 static void decode_Tango_Device_info(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1156 /* Operation specific Variable declarations Begin */
1159 /* Operation specific Variable declarations End */
1162 switch(header->message_type) {
1170 switch(header->rep_status) {
1174 /* Begin struct "Tango_DevInfo" */
1178 decode_Tango_DevInfo_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1180 /* End struct "Tango_DevInfo" */
1184 case USER_EXCEPTION:
1190 /* Unknown Exception */
1192 g_warning("Unknown Exception ");
1197 } /* switch(header->message_type) */
1203 /* Unknown GIOP Message */
1205 g_warning("Unknown GIOP Message");
1209 } /* switch(header->message_type) */
1214 * IDL:Tango/Device/command_list_query:1.0
1217 static void decode_Tango_Device_command_list_query(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1220 /* Operation specific Variable declarations Begin */
1222 guint32 u_octet4_loop_DevCmdInfoList;
1223 guint32 i_DevCmdInfoList;
1225 /* Operation specific Variable declarations End */
1228 switch(header->message_type) {
1236 switch(header->rep_status) {
1240 u_octet4_loop_DevCmdInfoList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1242 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdInfoList = %u",u_octet4_loop_DevCmdInfoList);
1245 for (i_DevCmdInfoList=0; i_DevCmdInfoList < u_octet4_loop_DevCmdInfoList; i_DevCmdInfoList++) {
1247 /* Begin struct "Tango_DevCmdInfo" */
1251 decode_Tango_DevCmdInfo_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1253 /* End struct "Tango_DevCmdInfo" */
1259 case USER_EXCEPTION:
1265 /* Unknown Exception */
1267 g_warning("Unknown Exception ");
1272 } /* switch(header->message_type) */
1278 /* Unknown GIOP Message */
1280 g_warning("Unknown GIOP Message");
1284 } /* switch(header->message_type) */
1289 * IDL:Tango/Device/command_query:1.0
1292 static void decode_Tango_Device_command_query(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1295 /* Operation specific Variable declarations Begin */
1300 /* Operation specific Variable declarations End */
1303 switch(header->message_type) {
1307 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1309 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1310 u_octet4, (u_octet4 > 0) ? seq : "");
1313 g_free(seq); /* free buffer */
1320 switch(header->rep_status) {
1324 /* Begin struct "Tango_DevCmdInfo" */
1328 decode_Tango_DevCmdInfo_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1330 /* End struct "Tango_DevCmdInfo" */
1334 case USER_EXCEPTION:
1340 /* Unknown Exception */
1342 g_warning("Unknown Exception ");
1347 } /* switch(header->message_type) */
1353 /* Unknown GIOP Message */
1355 g_warning("Unknown GIOP Message");
1359 } /* switch(header->message_type) */
1364 * IDL:Tango/Device_2/command_inout_2:1.0
1367 static void decode_Tango_Device_2_command_inout_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1370 /* Operation specific Variable declarations Begin */
1375 /* Operation specific Variable declarations End */
1378 switch(header->message_type) {
1382 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1384 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1385 u_octet4, (u_octet4 > 0) ? seq : "");
1388 g_free(seq); /* free buffer */
1391 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
1394 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
1396 proto_tree_add_text(tree,tvb,*offset-4,4,"source = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevSource,"Unknown Enum Value"));
1403 switch(header->rep_status) {
1407 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
1411 case USER_EXCEPTION:
1417 /* Unknown Exception */
1419 g_warning("Unknown Exception ");
1424 } /* switch(header->message_type) */
1430 /* Unknown GIOP Message */
1432 g_warning("Unknown GIOP Message");
1436 } /* switch(header->message_type) */
1441 * IDL:Tango/Device_2/read_attributes_2:1.0
1444 static void decode_Tango_Device_2_read_attributes_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1447 /* Operation specific Variable declarations Begin */
1449 guint32 u_octet4_loop_names;
1453 guint32 u_octet4_loop_AttributeValueList;
1454 guint32 i_AttributeValueList;
1456 /* Operation specific Variable declarations End */
1459 switch(header->message_type) {
1463 u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1465 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
1468 for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
1470 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1472 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
1473 u_octet4, (u_octet4 > 0) ? seq : "");
1476 g_free(seq); /* free buffer */
1482 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
1484 proto_tree_add_text(tree,tvb,*offset-4,4,"source = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevSource,"Unknown Enum Value"));
1491 switch(header->rep_status) {
1495 u_octet4_loop_AttributeValueList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1497 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValueList = %u",u_octet4_loop_AttributeValueList);
1500 for (i_AttributeValueList=0; i_AttributeValueList < u_octet4_loop_AttributeValueList; i_AttributeValueList++) {
1502 /* Begin struct "Tango_AttributeValue" */
1506 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1508 /* End struct "Tango_AttributeValue" */
1514 case USER_EXCEPTION:
1520 /* Unknown Exception */
1522 g_warning("Unknown Exception ");
1527 } /* switch(header->message_type) */
1533 /* Unknown GIOP Message */
1535 g_warning("Unknown GIOP Message");
1539 } /* switch(header->message_type) */
1544 * IDL:Tango/Device_2/get_attribute_config_2:1.0
1547 static void decode_Tango_Device_2_get_attribute_config_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1550 /* Operation specific Variable declarations Begin */
1552 guint32 u_octet4_loop_names;
1556 guint32 u_octet4_loop_AttributeConfigList_2;
1557 guint32 i_AttributeConfigList_2;
1559 /* Operation specific Variable declarations End */
1562 switch(header->message_type) {
1566 u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1568 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
1571 for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
1573 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1575 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
1576 u_octet4, (u_octet4 > 0) ? seq : "");
1579 g_free(seq); /* free buffer */
1588 switch(header->rep_status) {
1592 u_octet4_loop_AttributeConfigList_2 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1594 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfigList_2 = %u",u_octet4_loop_AttributeConfigList_2);
1597 for (i_AttributeConfigList_2=0; i_AttributeConfigList_2 < u_octet4_loop_AttributeConfigList_2; i_AttributeConfigList_2++) {
1599 /* Begin struct "Tango_AttributeConfig_2" */
1603 decode_Tango_AttributeConfig_2_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1605 /* End struct "Tango_AttributeConfig_2" */
1611 case USER_EXCEPTION:
1617 /* Unknown Exception */
1619 g_warning("Unknown Exception ");
1624 } /* switch(header->message_type) */
1630 /* Unknown GIOP Message */
1632 g_warning("Unknown GIOP Message");
1636 } /* switch(header->message_type) */
1641 * IDL:Tango/Device_2/command_list_query_2:1.0
1644 static void decode_Tango_Device_2_command_list_query_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1647 /* Operation specific Variable declarations Begin */
1649 guint32 u_octet4_loop_DevCmdInfoList_2;
1650 guint32 i_DevCmdInfoList_2;
1652 /* Operation specific Variable declarations End */
1655 switch(header->message_type) {
1663 switch(header->rep_status) {
1667 u_octet4_loop_DevCmdInfoList_2 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1669 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdInfoList_2 = %u",u_octet4_loop_DevCmdInfoList_2);
1672 for (i_DevCmdInfoList_2=0; i_DevCmdInfoList_2 < u_octet4_loop_DevCmdInfoList_2; i_DevCmdInfoList_2++) {
1674 /* Begin struct "Tango_DevCmdInfo_2" */
1678 decode_Tango_DevCmdInfo_2_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1680 /* End struct "Tango_DevCmdInfo_2" */
1686 case USER_EXCEPTION:
1692 /* Unknown Exception */
1694 g_warning("Unknown Exception ");
1699 } /* switch(header->message_type) */
1705 /* Unknown GIOP Message */
1707 g_warning("Unknown GIOP Message");
1711 } /* switch(header->message_type) */
1716 * IDL:Tango/Device_2/command_query_2:1.0
1719 static void decode_Tango_Device_2_command_query_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1722 /* Operation specific Variable declarations Begin */
1727 /* Operation specific Variable declarations End */
1730 switch(header->message_type) {
1734 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1736 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1737 u_octet4, (u_octet4 > 0) ? seq : "");
1740 g_free(seq); /* free buffer */
1747 switch(header->rep_status) {
1751 /* Begin struct "Tango_DevCmdInfo_2" */
1755 decode_Tango_DevCmdInfo_2_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1757 /* End struct "Tango_DevCmdInfo_2" */
1761 case USER_EXCEPTION:
1767 /* Unknown Exception */
1769 g_warning("Unknown Exception ");
1774 } /* switch(header->message_type) */
1780 /* Unknown GIOP Message */
1782 g_warning("Unknown GIOP Message");
1786 } /* switch(header->message_type) */
1791 * IDL:Tango/Device_2/command_inout_history_2:1.0
1794 static void decode_Tango_Device_2_command_inout_history_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1797 /* Operation specific Variable declarations Begin */
1802 guint32 u_octet4_loop_DevCmdHistoryList;
1803 guint32 i_DevCmdHistoryList;
1805 /* Operation specific Variable declarations End */
1808 switch(header->message_type) {
1812 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1814 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1815 u_octet4, (u_octet4 > 0) ? seq : "");
1818 g_free(seq); /* free buffer */
1821 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
1823 proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
1830 switch(header->rep_status) {
1834 u_octet4_loop_DevCmdHistoryList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1836 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdHistoryList = %u",u_octet4_loop_DevCmdHistoryList);
1839 for (i_DevCmdHistoryList=0; i_DevCmdHistoryList < u_octet4_loop_DevCmdHistoryList; i_DevCmdHistoryList++) {
1841 /* Begin struct "Tango_DevCmdHistory" */
1845 decode_Tango_DevCmdHistory_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1847 /* End struct "Tango_DevCmdHistory" */
1853 case USER_EXCEPTION:
1859 /* Unknown Exception */
1861 g_warning("Unknown Exception ");
1866 } /* switch(header->message_type) */
1872 /* Unknown GIOP Message */
1874 g_warning("Unknown GIOP Message");
1878 } /* switch(header->message_type) */
1883 * IDL:Tango/Device_2/read_attribute_history_2:1.0
1886 static void decode_Tango_Device_2_read_attribute_history_2(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1889 /* Operation specific Variable declarations Begin */
1894 guint32 u_octet4_loop_DevAttrHistoryList;
1895 guint32 i_DevAttrHistoryList;
1897 /* Operation specific Variable declarations End */
1900 switch(header->message_type) {
1904 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1906 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"name (%u) = %s",
1907 u_octet4, (u_octet4 > 0) ? seq : "");
1910 g_free(seq); /* free buffer */
1913 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
1915 proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
1922 switch(header->rep_status) {
1926 u_octet4_loop_DevAttrHistoryList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1928 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevAttrHistoryList = %u",u_octet4_loop_DevAttrHistoryList);
1931 for (i_DevAttrHistoryList=0; i_DevAttrHistoryList < u_octet4_loop_DevAttrHistoryList; i_DevAttrHistoryList++) {
1933 /* Begin struct "Tango_DevAttrHistory" */
1937 decode_Tango_DevAttrHistory_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
1939 /* End struct "Tango_DevAttrHistory" */
1945 case USER_EXCEPTION:
1951 /* Unknown Exception */
1953 g_warning("Unknown Exception ");
1958 } /* switch(header->message_type) */
1964 /* Unknown GIOP Message */
1966 g_warning("Unknown GIOP Message");
1970 } /* switch(header->message_type) */
1975 * IDL:Tango/Device_3/read_attributes_3:1.0
1978 static void decode_Tango_Device_3_read_attributes_3(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
1981 /* Operation specific Variable declarations Begin */
1983 guint32 u_octet4_loop_names;
1987 guint32 u_octet4_loop_AttributeValueList_3;
1988 guint32 i_AttributeValueList_3;
1990 /* Operation specific Variable declarations End */
1993 switch(header->message_type) {
1997 u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1999 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
2002 for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
2004 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2006 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
2007 u_octet4, (u_octet4 > 0) ? seq : "");
2010 g_free(seq); /* free buffer */
2016 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2018 proto_tree_add_text(tree,tvb,*offset-4,4,"source = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevSource,"Unknown Enum Value"));
2025 switch(header->rep_status) {
2029 u_octet4_loop_AttributeValueList_3 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2031 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValueList_3 = %u",u_octet4_loop_AttributeValueList_3);
2034 for (i_AttributeValueList_3=0; i_AttributeValueList_3 < u_octet4_loop_AttributeValueList_3; i_AttributeValueList_3++) {
2036 /* Begin struct "Tango_AttributeValue_3" */
2040 decode_Tango_AttributeValue_3_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2042 /* End struct "Tango_AttributeValue_3" */
2048 case USER_EXCEPTION:
2054 /* Unknown Exception */
2056 g_warning("Unknown Exception ");
2061 } /* switch(header->message_type) */
2067 /* Unknown GIOP Message */
2069 g_warning("Unknown GIOP Message");
2073 } /* switch(header->message_type) */
2078 * IDL:Tango/Device_3/write_attributes_3:1.0
2081 static void decode_Tango_Device_3_write_attributes_3(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2084 /* Operation specific Variable declarations Begin */
2086 guint32 u_octet4_loop_values;
2089 /* Operation specific Variable declarations End */
2092 switch(header->message_type) {
2096 u_octet4_loop_values = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2098 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of values = %u",u_octet4_loop_values);
2101 for (i_values=0; i_values < u_octet4_loop_values; i_values++) {
2103 /* Begin struct "Tango_AttributeValue" */
2107 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2109 /* End struct "Tango_AttributeValue" */
2117 switch(header->rep_status) {
2121 /* Function returns void */
2125 case USER_EXCEPTION:
2131 /* Unknown Exception */
2133 g_warning("Unknown Exception ");
2138 } /* switch(header->message_type) */
2144 /* Unknown GIOP Message */
2146 g_warning("Unknown GIOP Message");
2150 } /* switch(header->message_type) */
2155 * IDL:Tango/Device_3/read_attribute_history_3:1.0
2158 static void decode_Tango_Device_3_read_attribute_history_3(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2161 /* Operation specific Variable declarations Begin */
2166 guint32 u_octet4_loop_DevAttrHistoryList_3;
2167 guint32 i_DevAttrHistoryList_3;
2169 /* Operation specific Variable declarations End */
2172 switch(header->message_type) {
2176 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2178 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"name (%u) = %s",
2179 u_octet4, (u_octet4 > 0) ? seq : "");
2182 g_free(seq); /* free buffer */
2185 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2187 proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
2194 switch(header->rep_status) {
2198 u_octet4_loop_DevAttrHistoryList_3 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2200 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevAttrHistoryList_3 = %u",u_octet4_loop_DevAttrHistoryList_3);
2203 for (i_DevAttrHistoryList_3=0; i_DevAttrHistoryList_3 < u_octet4_loop_DevAttrHistoryList_3; i_DevAttrHistoryList_3++) {
2205 /* Begin struct "Tango_DevAttrHistory_3" */
2209 decode_Tango_DevAttrHistory_3_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2211 /* End struct "Tango_DevAttrHistory_3" */
2217 case USER_EXCEPTION:
2223 /* Unknown Exception */
2225 g_warning("Unknown Exception ");
2230 } /* switch(header->message_type) */
2236 /* Unknown GIOP Message */
2238 g_warning("Unknown GIOP Message");
2242 } /* switch(header->message_type) */
2247 * IDL:Tango/Device_3/info_3:1.0
2250 static void decode_Tango_Device_3_info_3(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2253 /* Operation specific Variable declarations Begin */
2256 /* Operation specific Variable declarations End */
2259 switch(header->message_type) {
2267 switch(header->rep_status) {
2271 /* Begin struct "Tango_DevInfo_3" */
2275 decode_Tango_DevInfo_3_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2277 /* End struct "Tango_DevInfo_3" */
2281 case USER_EXCEPTION:
2287 /* Unknown Exception */
2289 g_warning("Unknown Exception ");
2294 } /* switch(header->message_type) */
2300 /* Unknown GIOP Message */
2302 g_warning("Unknown GIOP Message");
2306 } /* switch(header->message_type) */
2311 * IDL:Tango/Device_3/get_attribute_config_3:1.0
2314 static void decode_Tango_Device_3_get_attribute_config_3(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2317 /* Operation specific Variable declarations Begin */
2319 guint32 u_octet4_loop_names;
2323 guint32 u_octet4_loop_AttributeConfigList_3;
2324 guint32 i_AttributeConfigList_3;
2326 /* Operation specific Variable declarations End */
2329 switch(header->message_type) {
2333 u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2335 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
2338 for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
2340 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2342 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
2343 u_octet4, (u_octet4 > 0) ? seq : "");
2346 g_free(seq); /* free buffer */
2355 switch(header->rep_status) {
2359 u_octet4_loop_AttributeConfigList_3 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2361 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfigList_3 = %u",u_octet4_loop_AttributeConfigList_3);
2364 for (i_AttributeConfigList_3=0; i_AttributeConfigList_3 < u_octet4_loop_AttributeConfigList_3; i_AttributeConfigList_3++) {
2366 /* Begin struct "Tango_AttributeConfig_3" */
2370 decode_Tango_AttributeConfig_3_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2372 /* End struct "Tango_AttributeConfig_3" */
2378 case USER_EXCEPTION:
2384 /* Unknown Exception */
2386 g_warning("Unknown Exception ");
2391 } /* switch(header->message_type) */
2397 /* Unknown GIOP Message */
2399 g_warning("Unknown GIOP Message");
2403 } /* switch(header->message_type) */
2408 * IDL:Tango/Device_3/set_attribute_config_3:1.0
2411 static void decode_Tango_Device_3_set_attribute_config_3(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2414 /* Operation specific Variable declarations Begin */
2416 guint32 u_octet4_loop_new_conf;
2419 /* Operation specific Variable declarations End */
2422 switch(header->message_type) {
2426 u_octet4_loop_new_conf = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2428 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of new_conf = %u",u_octet4_loop_new_conf);
2431 for (i_new_conf=0; i_new_conf < u_octet4_loop_new_conf; i_new_conf++) {
2433 /* Begin struct "Tango_AttributeConfig_3" */
2437 decode_Tango_AttributeConfig_3_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2439 /* End struct "Tango_AttributeConfig_3" */
2447 switch(header->rep_status) {
2451 /* Function returns void */
2455 case USER_EXCEPTION:
2461 /* Unknown Exception */
2463 g_warning("Unknown Exception ");
2468 } /* switch(header->message_type) */
2474 /* Unknown GIOP Message */
2476 g_warning("Unknown GIOP Message");
2480 } /* switch(header->message_type) */
2484 /* Struct = IDL:Tango/DevVarLongStringArray:1.0 */
2486 static void decode_Tango_DevVarLongStringArray_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2489 /* Operation specific Variable declarations Begin */
2491 guint32 u_octet4_loop_DevVarLongStringArray_lvalue;
2492 guint32 i_DevVarLongStringArray_lvalue;
2494 guint32 u_octet4_loop_DevVarLongStringArray_svalue;
2495 guint32 i_DevVarLongStringArray_svalue;
2499 /* Operation specific Variable declarations End */
2501 u_octet4_loop_DevVarLongStringArray_lvalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2503 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarLongStringArray_lvalue = %u",u_octet4_loop_DevVarLongStringArray_lvalue);
2506 for (i_DevVarLongStringArray_lvalue=0; i_DevVarLongStringArray_lvalue < u_octet4_loop_DevVarLongStringArray_lvalue; i_DevVarLongStringArray_lvalue++) {
2508 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2510 proto_tree_add_text(tree,tvb,*offset-4,4,"DevVarLongStringArray_lvalue = %i",s_octet4);
2515 u_octet4_loop_DevVarLongStringArray_svalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2517 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarLongStringArray_svalue = %u",u_octet4_loop_DevVarLongStringArray_svalue);
2520 for (i_DevVarLongStringArray_svalue=0; i_DevVarLongStringArray_svalue < u_octet4_loop_DevVarLongStringArray_svalue; i_DevVarLongStringArray_svalue++) {
2522 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2524 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevVarLongStringArray_svalue (%u) = %s",
2525 u_octet4, (u_octet4 > 0) ? seq : "");
2528 g_free(seq); /* free buffer */
2535 /* Struct = IDL:Tango/DevVarDoubleStringArray:1.0 */
2537 static void decode_Tango_DevVarDoubleStringArray_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2540 /* Operation specific Variable declarations Begin */
2542 guint32 u_octet4_loop_DevVarDoubleStringArray_dvalue;
2543 guint32 i_DevVarDoubleStringArray_dvalue;
2545 guint32 u_octet4_loop_DevVarDoubleStringArray_svalue;
2546 guint32 i_DevVarDoubleStringArray_svalue;
2550 /* Operation specific Variable declarations End */
2552 u_octet4_loop_DevVarDoubleStringArray_dvalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2554 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarDoubleStringArray_dvalue = %u",u_octet4_loop_DevVarDoubleStringArray_dvalue);
2557 for (i_DevVarDoubleStringArray_dvalue=0; i_DevVarDoubleStringArray_dvalue < u_octet4_loop_DevVarDoubleStringArray_dvalue; i_DevVarDoubleStringArray_dvalue++) {
2559 my_double = get_CDR_double(tvb,offset,stream_is_big_endian, boundary);
2561 proto_tree_add_text(tree,tvb,*offset-8,8,"DevVarDoubleStringArray_dvalue = %.15e",my_double);
2566 u_octet4_loop_DevVarDoubleStringArray_svalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2568 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarDoubleStringArray_svalue = %u",u_octet4_loop_DevVarDoubleStringArray_svalue);
2571 for (i_DevVarDoubleStringArray_svalue=0; i_DevVarDoubleStringArray_svalue < u_octet4_loop_DevVarDoubleStringArray_svalue; i_DevVarDoubleStringArray_svalue++) {
2573 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2575 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevVarDoubleStringArray_svalue (%u) = %s",
2576 u_octet4, (u_octet4 > 0) ? seq : "");
2579 g_free(seq); /* free buffer */
2586 /* Struct = IDL:Tango/TimeVal:1.0 */
2588 static void decode_Tango_TimeVal_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2591 /* Operation specific Variable declarations Begin */
2595 /* Operation specific Variable declarations End */
2597 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2599 proto_tree_add_text(tree,tvb,*offset-4,4,"TimeVal_tv_sec = %i",s_octet4);
2602 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2604 proto_tree_add_text(tree,tvb,*offset-4,4,"TimeVal_tv_usec = %i",s_octet4);
2607 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2609 proto_tree_add_text(tree,tvb,*offset-4,4,"TimeVal_tv_nsec = %i",s_octet4);
2614 /* Struct = IDL:Tango/DevCmdInfo:1.0 */
2616 static void decode_Tango_DevCmdInfo_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2619 /* Operation specific Variable declarations Begin */
2625 /* Operation specific Variable declarations End */
2627 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2629 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_cmd_name (%u) = %s",
2630 u_octet4, (u_octet4 > 0) ? seq : "");
2633 g_free(seq); /* free buffer */
2636 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2638 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_cmd_tag = %i",s_octet4);
2641 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2643 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_in_type = %i",s_octet4);
2646 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2648 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_out_type = %i",s_octet4);
2651 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2653 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_in_type_desc (%u) = %s",
2654 u_octet4, (u_octet4 > 0) ? seq : "");
2657 g_free(seq); /* free buffer */
2660 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2662 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_out_type_desc (%u) = %s",
2663 u_octet4, (u_octet4 > 0) ? seq : "");
2666 g_free(seq); /* free buffer */
2671 /* Struct = IDL:Tango/DevCmdInfo_2:1.0 */
2673 static void decode_Tango_DevCmdInfo_2_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2676 /* Operation specific Variable declarations Begin */
2682 /* Operation specific Variable declarations End */
2684 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2686 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_2_cmd_name (%u) = %s",
2687 u_octet4, (u_octet4 > 0) ? seq : "");
2690 g_free(seq); /* free buffer */
2694 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2696 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_level = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DispLevel,"Unknown Enum Value"));
2699 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2701 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_cmd_tag = %i",s_octet4);
2704 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2706 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_in_type = %i",s_octet4);
2709 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2711 proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_out_type = %i",s_octet4);
2714 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2716 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_2_in_type_desc (%u) = %s",
2717 u_octet4, (u_octet4 > 0) ? seq : "");
2720 g_free(seq); /* free buffer */
2723 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2725 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_2_out_type_desc (%u) = %s",
2726 u_octet4, (u_octet4 > 0) ? seq : "");
2729 g_free(seq); /* free buffer */
2734 /* Struct = IDL:Tango/DevError:1.0 */
2736 static void decode_Tango_DevError_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2739 /* Operation specific Variable declarations Begin */
2744 /* Operation specific Variable declarations End */
2746 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2748 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevError_reason (%u) = %s",
2749 u_octet4, (u_octet4 > 0) ? seq : "");
2752 g_free(seq); /* free buffer */
2756 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2758 proto_tree_add_text(tree,tvb,*offset-4,4,"DevError_severity = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_ErrSeverity,"Unknown Enum Value"));
2761 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2763 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevError_desc (%u) = %s",
2764 u_octet4, (u_octet4 > 0) ? seq : "");
2767 g_free(seq); /* free buffer */
2770 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2772 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevError_origin (%u) = %s",
2773 u_octet4, (u_octet4 > 0) ? seq : "");
2776 g_free(seq); /* free buffer */
2781 /* Struct = IDL:Tango/NamedDevError:1.0 */
2783 static void decode_Tango_NamedDevError_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2786 /* Operation specific Variable declarations Begin */
2791 guint32 u_octet4_loop_NamedDevError_err_list;
2792 guint32 i_NamedDevError_err_list;
2794 /* Operation specific Variable declarations End */
2796 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2798 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"NamedDevError_name (%u) = %s",
2799 u_octet4, (u_octet4 > 0) ? seq : "");
2802 g_free(seq); /* free buffer */
2805 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2807 proto_tree_add_text(tree,tvb,*offset-4,4,"NamedDevError_index_in_call = %i",s_octet4);
2810 u_octet4_loop_NamedDevError_err_list = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2812 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of NamedDevError_err_list = %u",u_octet4_loop_NamedDevError_err_list);
2815 for (i_NamedDevError_err_list=0; i_NamedDevError_err_list < u_octet4_loop_NamedDevError_err_list; i_NamedDevError_err_list++) {
2817 /* Begin struct "Tango_DevError" */
2821 decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
2823 /* End struct "Tango_DevError" */
2829 /* Struct = IDL:Tango/AttributeConfig:1.0 */
2831 static void decode_Tango_AttributeConfig_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
2834 /* Operation specific Variable declarations Begin */
2839 guint32 u_octet4_loop_AttributeConfig_extensions;
2840 guint32 i_AttributeConfig_extensions;
2842 /* Operation specific Variable declarations End */
2844 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2846 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_name (%u) = %s",
2847 u_octet4, (u_octet4 > 0) ? seq : "");
2850 g_free(seq); /* free buffer */
2854 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2856 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_writable = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrWriteType,"Unknown Enum Value"));
2860 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2862 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_data_format = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrDataFormat,"Unknown Enum Value"));
2865 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2867 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_data_type = %i",s_octet4);
2870 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2872 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_max_dim_x = %i",s_octet4);
2875 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2877 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_max_dim_y = %i",s_octet4);
2880 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2882 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_description (%u) = %s",
2883 u_octet4, (u_octet4 > 0) ? seq : "");
2886 g_free(seq); /* free buffer */
2889 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2891 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_label (%u) = %s",
2892 u_octet4, (u_octet4 > 0) ? seq : "");
2895 g_free(seq); /* free buffer */
2898 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2900 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_unit (%u) = %s",
2901 u_octet4, (u_octet4 > 0) ? seq : "");
2904 g_free(seq); /* free buffer */
2907 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2909 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_standard_unit (%u) = %s",
2910 u_octet4, (u_octet4 > 0) ? seq : "");
2913 g_free(seq); /* free buffer */
2916 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2918 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_display_unit (%u) = %s",
2919 u_octet4, (u_octet4 > 0) ? seq : "");
2922 g_free(seq); /* free buffer */
2925 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2927 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_format (%u) = %s",
2928 u_octet4, (u_octet4 > 0) ? seq : "");
2931 g_free(seq); /* free buffer */
2934 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2936 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_min_value (%u) = %s",
2937 u_octet4, (u_octet4 > 0) ? seq : "");
2940 g_free(seq); /* free buffer */
2943 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2945 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_max_value (%u) = %s",
2946 u_octet4, (u_octet4 > 0) ? seq : "");
2949 g_free(seq); /* free buffer */
2952 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2954 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_min_alarm (%u) = %s",
2955 u_octet4, (u_octet4 > 0) ? seq : "");
2958 g_free(seq); /* free buffer */
2961 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2963 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_max_alarm (%u) = %s",
2964 u_octet4, (u_octet4 > 0) ? seq : "");
2967 g_free(seq); /* free buffer */
2970 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2972 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_writable_attr_name (%u) = %s",
2973 u_octet4, (u_octet4 > 0) ? seq : "");
2976 g_free(seq); /* free buffer */
2979 u_octet4_loop_AttributeConfig_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2981 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_extensions = %u",u_octet4_loop_AttributeConfig_extensions);
2984 for (i_AttributeConfig_extensions=0; i_AttributeConfig_extensions < u_octet4_loop_AttributeConfig_extensions; i_AttributeConfig_extensions++) {
2986 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2988 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_extensions (%u) = %s",
2989 u_octet4, (u_octet4 > 0) ? seq : "");
2992 g_free(seq); /* free buffer */
2999 /* Struct = IDL:Tango/AttributeConfig_2:1.0 */
3001 static void decode_Tango_AttributeConfig_2_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3004 /* Operation specific Variable declarations Begin */
3009 guint32 u_octet4_loop_AttributeConfig_2_extensions;
3010 guint32 i_AttributeConfig_2_extensions;
3012 /* Operation specific Variable declarations End */
3014 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3016 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_name (%u) = %s",
3017 u_octet4, (u_octet4 > 0) ? seq : "");
3020 g_free(seq); /* free buffer */
3024 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3026 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_writable = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrWriteType,"Unknown Enum Value"));
3030 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3032 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_data_format = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrDataFormat,"Unknown Enum Value"));
3035 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3037 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_data_type = %i",s_octet4);
3040 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3042 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_max_dim_x = %i",s_octet4);
3045 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3047 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_max_dim_y = %i",s_octet4);
3050 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3052 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_description (%u) = %s",
3053 u_octet4, (u_octet4 > 0) ? seq : "");
3056 g_free(seq); /* free buffer */
3059 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3061 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_label (%u) = %s",
3062 u_octet4, (u_octet4 > 0) ? seq : "");
3065 g_free(seq); /* free buffer */
3068 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3070 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_unit (%u) = %s",
3071 u_octet4, (u_octet4 > 0) ? seq : "");
3074 g_free(seq); /* free buffer */
3077 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3079 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_standard_unit (%u) = %s",
3080 u_octet4, (u_octet4 > 0) ? seq : "");
3083 g_free(seq); /* free buffer */
3086 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3088 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_display_unit (%u) = %s",
3089 u_octet4, (u_octet4 > 0) ? seq : "");
3092 g_free(seq); /* free buffer */
3095 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3097 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_format (%u) = %s",
3098 u_octet4, (u_octet4 > 0) ? seq : "");
3101 g_free(seq); /* free buffer */
3104 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3106 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_min_value (%u) = %s",
3107 u_octet4, (u_octet4 > 0) ? seq : "");
3110 g_free(seq); /* free buffer */
3113 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3115 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_max_value (%u) = %s",
3116 u_octet4, (u_octet4 > 0) ? seq : "");
3119 g_free(seq); /* free buffer */
3122 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3124 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_min_alarm (%u) = %s",
3125 u_octet4, (u_octet4 > 0) ? seq : "");
3128 g_free(seq); /* free buffer */
3131 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3133 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_max_alarm (%u) = %s",
3134 u_octet4, (u_octet4 > 0) ? seq : "");
3137 g_free(seq); /* free buffer */
3140 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3142 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_writable_attr_name (%u) = %s",
3143 u_octet4, (u_octet4 > 0) ? seq : "");
3146 g_free(seq); /* free buffer */
3150 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3152 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_level = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DispLevel,"Unknown Enum Value"));
3155 u_octet4_loop_AttributeConfig_2_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3157 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_2_extensions = %u",u_octet4_loop_AttributeConfig_2_extensions);
3160 for (i_AttributeConfig_2_extensions=0; i_AttributeConfig_2_extensions < u_octet4_loop_AttributeConfig_2_extensions; i_AttributeConfig_2_extensions++) {
3162 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3164 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_extensions (%u) = %s",
3165 u_octet4, (u_octet4 > 0) ? seq : "");
3168 g_free(seq); /* free buffer */
3175 /* Struct = IDL:Tango/AttributeValue:1.0 */
3177 static void decode_Tango_AttributeValue_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3180 /* Operation specific Variable declarations Begin */
3186 /* Operation specific Variable declarations End */
3188 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
3191 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3193 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeValue_quality = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrQuality,"Unknown Enum Value"));
3196 /* Begin struct "Tango_TimeVal" */
3200 decode_Tango_TimeVal_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3202 /* End struct "Tango_TimeVal" */
3204 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3206 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeValue_name (%u) = %s",
3207 u_octet4, (u_octet4 > 0) ? seq : "");
3210 g_free(seq); /* free buffer */
3213 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3215 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeValue_dim_x = %i",s_octet4);
3218 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3220 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeValue_dim_y = %i",s_octet4);
3225 /* Struct = IDL:Tango/AttributeDim:1.0 */
3227 static void decode_Tango_AttributeDim_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3230 /* Operation specific Variable declarations Begin */
3234 /* Operation specific Variable declarations End */
3236 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3238 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeDim_dim_x = %i",s_octet4);
3241 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3243 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeDim_dim_y = %i",s_octet4);
3248 /* Struct = IDL:Tango/AttributeValue_3:1.0 */
3250 static void decode_Tango_AttributeValue_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3253 /* Operation specific Variable declarations Begin */
3257 guint32 u_octet4_loop_AttributeValue_3_err_list;
3258 guint32 i_AttributeValue_3_err_list;
3260 /* Operation specific Variable declarations End */
3262 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
3265 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3267 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeValue_3_quality = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrQuality,"Unknown Enum Value"));
3270 /* Begin struct "Tango_TimeVal" */
3274 decode_Tango_TimeVal_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3276 /* End struct "Tango_TimeVal" */
3278 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3280 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeValue_3_name (%u) = %s",
3281 u_octet4, (u_octet4 > 0) ? seq : "");
3284 g_free(seq); /* free buffer */
3287 /* Begin struct "Tango_AttributeDim" */
3291 decode_Tango_AttributeDim_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3293 /* End struct "Tango_AttributeDim" */
3295 /* Begin struct "Tango_AttributeDim" */
3299 decode_Tango_AttributeDim_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3301 /* End struct "Tango_AttributeDim" */
3303 u_octet4_loop_AttributeValue_3_err_list = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3305 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValue_3_err_list = %u",u_octet4_loop_AttributeValue_3_err_list);
3308 for (i_AttributeValue_3_err_list=0; i_AttributeValue_3_err_list < u_octet4_loop_AttributeValue_3_err_list; i_AttributeValue_3_err_list++) {
3310 /* Begin struct "Tango_DevError" */
3314 decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3316 /* End struct "Tango_DevError" */
3322 /* Struct = IDL:Tango/ChangeEventProp:1.0 */
3324 static void decode_Tango_ChangeEventProp_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3327 /* Operation specific Variable declarations Begin */
3331 guint32 u_octet4_loop_ChangeEventProp_extensions;
3332 guint32 i_ChangeEventProp_extensions;
3334 /* Operation specific Variable declarations End */
3336 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3338 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ChangeEventProp_rel_change (%u) = %s",
3339 u_octet4, (u_octet4 > 0) ? seq : "");
3342 g_free(seq); /* free buffer */
3345 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3347 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ChangeEventProp_abs_change (%u) = %s",
3348 u_octet4, (u_octet4 > 0) ? seq : "");
3351 g_free(seq); /* free buffer */
3354 u_octet4_loop_ChangeEventProp_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3356 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of ChangeEventProp_extensions = %u",u_octet4_loop_ChangeEventProp_extensions);
3359 for (i_ChangeEventProp_extensions=0; i_ChangeEventProp_extensions < u_octet4_loop_ChangeEventProp_extensions; i_ChangeEventProp_extensions++) {
3361 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3363 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ChangeEventProp_extensions (%u) = %s",
3364 u_octet4, (u_octet4 > 0) ? seq : "");
3367 g_free(seq); /* free buffer */
3374 /* Struct = IDL:Tango/PeriodicEventProp:1.0 */
3376 static void decode_Tango_PeriodicEventProp_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3379 /* Operation specific Variable declarations Begin */
3383 guint32 u_octet4_loop_PeriodicEventProp_extensions;
3384 guint32 i_PeriodicEventProp_extensions;
3386 /* Operation specific Variable declarations End */
3388 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3390 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"PeriodicEventProp_period (%u) = %s",
3391 u_octet4, (u_octet4 > 0) ? seq : "");
3394 g_free(seq); /* free buffer */
3397 u_octet4_loop_PeriodicEventProp_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3399 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of PeriodicEventProp_extensions = %u",u_octet4_loop_PeriodicEventProp_extensions);
3402 for (i_PeriodicEventProp_extensions=0; i_PeriodicEventProp_extensions < u_octet4_loop_PeriodicEventProp_extensions; i_PeriodicEventProp_extensions++) {
3404 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3406 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"PeriodicEventProp_extensions (%u) = %s",
3407 u_octet4, (u_octet4 > 0) ? seq : "");
3410 g_free(seq); /* free buffer */
3417 /* Struct = IDL:Tango/ArchiveEventProp:1.0 */
3419 static void decode_Tango_ArchiveEventProp_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3422 /* Operation specific Variable declarations Begin */
3426 guint32 u_octet4_loop_ArchiveEventProp_extensions;
3427 guint32 i_ArchiveEventProp_extensions;
3429 /* Operation specific Variable declarations End */
3431 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3433 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_rel_change (%u) = %s",
3434 u_octet4, (u_octet4 > 0) ? seq : "");
3437 g_free(seq); /* free buffer */
3440 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3442 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_abs_change (%u) = %s",
3443 u_octet4, (u_octet4 > 0) ? seq : "");
3446 g_free(seq); /* free buffer */
3449 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3451 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_period (%u) = %s",
3452 u_octet4, (u_octet4 > 0) ? seq : "");
3455 g_free(seq); /* free buffer */
3458 u_octet4_loop_ArchiveEventProp_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3460 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of ArchiveEventProp_extensions = %u",u_octet4_loop_ArchiveEventProp_extensions);
3463 for (i_ArchiveEventProp_extensions=0; i_ArchiveEventProp_extensions < u_octet4_loop_ArchiveEventProp_extensions; i_ArchiveEventProp_extensions++) {
3465 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3467 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_extensions (%u) = %s",
3468 u_octet4, (u_octet4 > 0) ? seq : "");
3471 g_free(seq); /* free buffer */
3478 /* Struct = IDL:Tango/EventProperties:1.0 */
3480 static void decode_Tango_EventProperties_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3483 /* Operation specific Variable declarations Begin */
3486 /* Operation specific Variable declarations End */
3488 /* Begin struct "Tango_ChangeEventProp" */
3492 decode_Tango_ChangeEventProp_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3494 /* End struct "Tango_ChangeEventProp" */
3496 /* Begin struct "Tango_PeriodicEventProp" */
3500 decode_Tango_PeriodicEventProp_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3502 /* End struct "Tango_PeriodicEventProp" */
3504 /* Begin struct "Tango_ArchiveEventProp" */
3508 decode_Tango_ArchiveEventProp_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3510 /* End struct "Tango_ArchiveEventProp" */
3514 /* Struct = IDL:Tango/AttributeAlarm:1.0 */
3516 static void decode_Tango_AttributeAlarm_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3519 /* Operation specific Variable declarations Begin */
3523 guint32 u_octet4_loop_AttributeAlarm_extensions;
3524 guint32 i_AttributeAlarm_extensions;
3526 /* Operation specific Variable declarations End */
3528 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3530 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_min_alarm (%u) = %s",
3531 u_octet4, (u_octet4 > 0) ? seq : "");
3534 g_free(seq); /* free buffer */
3537 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3539 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_max_alarm (%u) = %s",
3540 u_octet4, (u_octet4 > 0) ? seq : "");
3543 g_free(seq); /* free buffer */
3546 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3548 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_min_warning (%u) = %s",
3549 u_octet4, (u_octet4 > 0) ? seq : "");
3552 g_free(seq); /* free buffer */
3555 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3557 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_max_warning (%u) = %s",
3558 u_octet4, (u_octet4 > 0) ? seq : "");
3561 g_free(seq); /* free buffer */
3564 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3566 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_delta_t (%u) = %s",
3567 u_octet4, (u_octet4 > 0) ? seq : "");
3570 g_free(seq); /* free buffer */
3573 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3575 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_delta_val (%u) = %s",
3576 u_octet4, (u_octet4 > 0) ? seq : "");
3579 g_free(seq); /* free buffer */
3582 u_octet4_loop_AttributeAlarm_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3584 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeAlarm_extensions = %u",u_octet4_loop_AttributeAlarm_extensions);
3587 for (i_AttributeAlarm_extensions=0; i_AttributeAlarm_extensions < u_octet4_loop_AttributeAlarm_extensions; i_AttributeAlarm_extensions++) {
3589 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3591 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_extensions (%u) = %s",
3592 u_octet4, (u_octet4 > 0) ? seq : "");
3595 g_free(seq); /* free buffer */
3602 /* Struct = IDL:Tango/AttributeConfig_3:1.0 */
3604 static void decode_Tango_AttributeConfig_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3607 /* Operation specific Variable declarations Begin */
3612 guint32 u_octet4_loop_AttributeConfig_3_extensions;
3613 guint32 i_AttributeConfig_3_extensions;
3614 guint32 u_octet4_loop_AttributeConfig_3_sys_extensions;
3615 guint32 i_AttributeConfig_3_sys_extensions;
3617 /* Operation specific Variable declarations End */
3619 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3621 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_name (%u) = %s",
3622 u_octet4, (u_octet4 > 0) ? seq : "");
3625 g_free(seq); /* free buffer */
3629 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3631 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_writable = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrWriteType,"Unknown Enum Value"));
3635 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3637 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_data_format = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrDataFormat,"Unknown Enum Value"));
3640 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3642 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_data_type = %i",s_octet4);
3645 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3647 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_max_dim_x = %i",s_octet4);
3650 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3652 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_max_dim_y = %i",s_octet4);
3655 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3657 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_description (%u) = %s",
3658 u_octet4, (u_octet4 > 0) ? seq : "");
3661 g_free(seq); /* free buffer */
3664 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3666 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_label (%u) = %s",
3667 u_octet4, (u_octet4 > 0) ? seq : "");
3670 g_free(seq); /* free buffer */
3673 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3675 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_unit (%u) = %s",
3676 u_octet4, (u_octet4 > 0) ? seq : "");
3679 g_free(seq); /* free buffer */
3682 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3684 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_standard_unit (%u) = %s",
3685 u_octet4, (u_octet4 > 0) ? seq : "");
3688 g_free(seq); /* free buffer */
3691 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3693 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_display_unit (%u) = %s",
3694 u_octet4, (u_octet4 > 0) ? seq : "");
3697 g_free(seq); /* free buffer */
3700 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3702 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_format (%u) = %s",
3703 u_octet4, (u_octet4 > 0) ? seq : "");
3706 g_free(seq); /* free buffer */
3709 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3711 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_min_value (%u) = %s",
3712 u_octet4, (u_octet4 > 0) ? seq : "");
3715 g_free(seq); /* free buffer */
3718 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3720 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_max_value (%u) = %s",
3721 u_octet4, (u_octet4 > 0) ? seq : "");
3724 g_free(seq); /* free buffer */
3727 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3729 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_writable_attr_name (%u) = %s",
3730 u_octet4, (u_octet4 > 0) ? seq : "");
3733 g_free(seq); /* free buffer */
3737 u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3739 proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_level = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DispLevel,"Unknown Enum Value"));
3742 /* Begin struct "Tango_AttributeAlarm" */
3746 decode_Tango_AttributeAlarm_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3748 /* End struct "Tango_AttributeAlarm" */
3750 /* Begin struct "Tango_EventProperties" */
3754 decode_Tango_EventProperties_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3756 /* End struct "Tango_EventProperties" */
3758 u_octet4_loop_AttributeConfig_3_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3760 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_3_extensions = %u",u_octet4_loop_AttributeConfig_3_extensions);
3763 for (i_AttributeConfig_3_extensions=0; i_AttributeConfig_3_extensions < u_octet4_loop_AttributeConfig_3_extensions; i_AttributeConfig_3_extensions++) {
3765 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3767 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_extensions (%u) = %s",
3768 u_octet4, (u_octet4 > 0) ? seq : "");
3771 g_free(seq); /* free buffer */
3776 u_octet4_loop_AttributeConfig_3_sys_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3778 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_3_sys_extensions = %u",u_octet4_loop_AttributeConfig_3_sys_extensions);
3781 for (i_AttributeConfig_3_sys_extensions=0; i_AttributeConfig_3_sys_extensions < u_octet4_loop_AttributeConfig_3_sys_extensions; i_AttributeConfig_3_sys_extensions++) {
3783 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3785 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_sys_extensions (%u) = %s",
3786 u_octet4, (u_octet4 > 0) ? seq : "");
3789 g_free(seq); /* free buffer */
3796 /* Struct = IDL:Tango/DevInfo:1.0 */
3798 static void decode_Tango_DevInfo_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3801 /* Operation specific Variable declarations Begin */
3807 /* Operation specific Variable declarations End */
3809 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3811 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_dev_class (%u) = %s",
3812 u_octet4, (u_octet4 > 0) ? seq : "");
3815 g_free(seq); /* free buffer */
3818 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3820 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_server_id (%u) = %s",
3821 u_octet4, (u_octet4 > 0) ? seq : "");
3824 g_free(seq); /* free buffer */
3827 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3829 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_server_host (%u) = %s",
3830 u_octet4, (u_octet4 > 0) ? seq : "");
3833 g_free(seq); /* free buffer */
3836 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3838 proto_tree_add_text(tree,tvb,*offset-4,4,"DevInfo_server_version = %i",s_octet4);
3841 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3843 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_doc_url (%u) = %s",
3844 u_octet4, (u_octet4 > 0) ? seq : "");
3847 g_free(seq); /* free buffer */
3852 /* Struct = IDL:Tango/DevInfo_3:1.0 */
3854 static void decode_Tango_DevInfo_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3857 /* Operation specific Variable declarations Begin */
3863 /* Operation specific Variable declarations End */
3865 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3867 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_dev_class (%u) = %s",
3868 u_octet4, (u_octet4 > 0) ? seq : "");
3871 g_free(seq); /* free buffer */
3874 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3876 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_server_id (%u) = %s",
3877 u_octet4, (u_octet4 > 0) ? seq : "");
3880 g_free(seq); /* free buffer */
3883 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3885 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_server_host (%u) = %s",
3886 u_octet4, (u_octet4 > 0) ? seq : "");
3889 g_free(seq); /* free buffer */
3892 s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3894 proto_tree_add_text(tree,tvb,*offset-4,4,"DevInfo_3_server_version = %i",s_octet4);
3897 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3899 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_doc_url (%u) = %s",
3900 u_octet4, (u_octet4 > 0) ? seq : "");
3903 g_free(seq); /* free buffer */
3906 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3908 proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_dev_type (%u) = %s",
3909 u_octet4, (u_octet4 > 0) ? seq : "");
3912 g_free(seq); /* free buffer */
3917 /* Struct = IDL:Tango/DevCmdHistory:1.0 */
3919 static void decode_Tango_DevCmdHistory_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3922 /* Operation specific Variable declarations Begin */
3925 guint32 u_octet4_loop_DevCmdHistory_errors;
3926 guint32 i_DevCmdHistory_errors;
3928 /* Operation specific Variable declarations End */
3930 /* Begin struct "Tango_TimeVal" */
3934 decode_Tango_TimeVal_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3936 /* End struct "Tango_TimeVal" */
3938 u_octet1 = get_CDR_boolean(tvb,offset);
3940 proto_tree_add_text(tree,tvb,*offset-1,1,"DevCmdHistory_cmd_failed = %u",u_octet1);
3943 get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
3945 u_octet4_loop_DevCmdHistory_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3947 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdHistory_errors = %u",u_octet4_loop_DevCmdHistory_errors);
3950 for (i_DevCmdHistory_errors=0; i_DevCmdHistory_errors < u_octet4_loop_DevCmdHistory_errors; i_DevCmdHistory_errors++) {
3952 /* Begin struct "Tango_DevError" */
3956 decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3958 /* End struct "Tango_DevError" */
3964 /* Struct = IDL:Tango/DevAttrHistory:1.0 */
3966 static void decode_Tango_DevAttrHistory_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
3969 /* Operation specific Variable declarations Begin */
3972 guint32 u_octet4_loop_DevAttrHistory_errors;
3973 guint32 i_DevAttrHistory_errors;
3975 /* Operation specific Variable declarations End */
3977 u_octet1 = get_CDR_boolean(tvb,offset);
3979 proto_tree_add_text(tree,tvb,*offset-1,1,"DevAttrHistory_attr_failed = %u",u_octet1);
3982 /* Begin struct "Tango_AttributeValue" */
3986 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
3988 /* End struct "Tango_AttributeValue" */
3990 u_octet4_loop_DevAttrHistory_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3992 proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevAttrHistory_errors = %u",u_octet4_loop_DevAttrHistory_errors);
3995 for (i_DevAttrHistory_errors=0; i_DevAttrHistory_errors < u_octet4_loop_DevAttrHistory_errors; i_DevAttrHistory_errors++) {
3997 /* Begin struct "Tango_DevError" */
4001 decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4003 /* End struct "Tango_DevError" */
4009 /* Struct = IDL:Tango/DevAttrHistory_3:1.0 */
4011 static void decode_Tango_DevAttrHistory_3_st(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, gchar *operation _U_, gboolean stream_is_big_endian _U_) {
4014 /* Operation specific Variable declarations Begin */
4018 /* Operation specific Variable declarations End */
4020 u_octet1 = get_CDR_boolean(tvb,offset);
4022 proto_tree_add_text(tree,tvb,*offset-1,1,"DevAttrHistory_3_attr_failed = %u",u_octet1);
4025 /* Begin struct "Tango_AttributeValue_3" */
4029 decode_Tango_AttributeValue_3_st(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4031 /* End struct "Tango_AttributeValue_3" */
4036 * Called once we accept the packet as being for us; it sets the
4037 * Protocol and Info columns and creates the top-level protocol
4040 static proto_tree *start_dissecting(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset) {
4042 proto_item *ti = NULL;
4043 proto_tree *tree = NULL; /* init later, inside if(tree) */
4045 col_set_str(pinfo->cinfo, COL_PROTOCOL, "TANGO");
4048 * Do not clear COL_INFO, as nothing is being written there by
4049 * this dissector yet. So leave it as is from the GIOP dissector.
4050 * TODO: add something useful to COL_INFO
4051 * col_clear(pinfo->cinfo, COL_INFO);
4055 ti = proto_tree_add_item(ptree, proto_tango, tvb, *offset, -1, ENC_NA);
4056 tree = proto_item_add_subtree(ti, ett_tango);
4061 static gboolean dissect_tango(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset, MessageHeader *header, gchar *operation, gchar *idlname) {
4063 gboolean stream_is_big_endian; /* big endianess */
4064 proto_tree *tree _U_;
4065 #define process_RequestOperation(){ \
4067 if(header->message_type == Reply){ col_append_fstr(pinfo->cinfo, COL_INFO, " op = %s",operation); }; /* fill-up info column */ \
4068 pi=proto_tree_add_string_format_value(ptree,hf_operationrequest,tvb,0,0,operation," %s",operation);PROTO_ITEM_SET_GENERATED(pi); /* fill-up the field */ \
4071 stream_is_big_endian = is_big_endian(header); /* get endianess */
4073 /* If we have a USER Exception, then decode it and return */
4075 if ((header->message_type == Reply) && (header->rep_status == USER_EXCEPTION)) {
4077 return decode_user_exception(tvb, pinfo, ptree, offset, header, operation, stream_is_big_endian);
4081 switch(header->message_type) {
4086 if (strcmp(operation, Tango_Device_command_inout_op) == 0
4087 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4088 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4089 tree = start_dissecting(tvb, pinfo, ptree, offset);
4090 decode_Tango_Device_command_inout(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4094 if (strcmp(operation, Tango_Device_get_attribute_config_op) == 0
4095 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4096 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4097 tree = start_dissecting(tvb, pinfo, ptree, offset);
4098 decode_Tango_Device_get_attribute_config(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4102 if (strcmp(operation, Tango_Device_set_attribute_config_op) == 0
4103 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4104 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4105 tree = start_dissecting(tvb, pinfo, ptree, offset);
4106 decode_Tango_Device_set_attribute_config(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4110 if (strcmp(operation, Tango_Device_read_attributes_op) == 0
4111 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4112 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4113 tree = start_dissecting(tvb, pinfo, ptree, offset);
4114 decode_Tango_Device_read_attributes(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4118 if (strcmp(operation, Tango_Device_write_attributes_op) == 0
4119 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4120 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4121 tree = start_dissecting(tvb, pinfo, ptree, offset);
4122 decode_Tango_Device_write_attributes(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4126 if (strcmp(operation, Tango_Device_ping_op) == 0
4127 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4128 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4129 tree = start_dissecting(tvb, pinfo, ptree, offset);
4130 decode_Tango_Device_ping(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4134 if (strcmp(operation, Tango_Device_black_box_op) == 0
4135 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4136 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4137 tree = start_dissecting(tvb, pinfo, ptree, offset);
4138 decode_Tango_Device_black_box(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4142 if (strcmp(operation, Tango_Device_info_op) == 0
4143 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4144 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4145 tree = start_dissecting(tvb, pinfo, ptree, offset);
4146 decode_Tango_Device_info(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4150 if (strcmp(operation, Tango_Device_command_list_query_op) == 0
4151 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4152 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4153 tree = start_dissecting(tvb, pinfo, ptree, offset);
4154 decode_Tango_Device_command_list_query(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4158 if (strcmp(operation, Tango_Device_command_query_op) == 0
4159 && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4160 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4161 tree = start_dissecting(tvb, pinfo, ptree, offset);
4162 decode_Tango_Device_command_query(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4166 if (strcmp(operation, Tango_Device_2_command_inout_2_op) == 0
4167 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4168 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4169 tree = start_dissecting(tvb, pinfo, ptree, offset);
4170 decode_Tango_Device_2_command_inout_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4174 if (strcmp(operation, Tango_Device_2_read_attributes_2_op) == 0
4175 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4176 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4177 tree = start_dissecting(tvb, pinfo, ptree, offset);
4178 decode_Tango_Device_2_read_attributes_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4182 if (strcmp(operation, Tango_Device_2_get_attribute_config_2_op) == 0
4183 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4184 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4185 tree = start_dissecting(tvb, pinfo, ptree, offset);
4186 decode_Tango_Device_2_get_attribute_config_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4190 if (strcmp(operation, Tango_Device_2_command_list_query_2_op) == 0
4191 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4192 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4193 tree = start_dissecting(tvb, pinfo, ptree, offset);
4194 decode_Tango_Device_2_command_list_query_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4198 if (strcmp(operation, Tango_Device_2_command_query_2_op) == 0
4199 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4200 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4201 tree = start_dissecting(tvb, pinfo, ptree, offset);
4202 decode_Tango_Device_2_command_query_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4206 if (strcmp(operation, Tango_Device_2_command_inout_history_2_op) == 0
4207 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4208 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4209 tree = start_dissecting(tvb, pinfo, ptree, offset);
4210 decode_Tango_Device_2_command_inout_history_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4214 if (strcmp(operation, Tango_Device_2_read_attribute_history_2_op) == 0
4215 && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4216 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4217 tree = start_dissecting(tvb, pinfo, ptree, offset);
4218 decode_Tango_Device_2_read_attribute_history_2(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4222 if (strcmp(operation, Tango_Device_3_read_attributes_3_op) == 0
4223 && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4224 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4225 tree = start_dissecting(tvb, pinfo, ptree, offset);
4226 decode_Tango_Device_3_read_attributes_3(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4230 if (strcmp(operation, Tango_Device_3_write_attributes_3_op) == 0
4231 && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4232 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4233 tree = start_dissecting(tvb, pinfo, ptree, offset);
4234 decode_Tango_Device_3_write_attributes_3(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4238 if (strcmp(operation, Tango_Device_3_read_attribute_history_3_op) == 0
4239 && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4240 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4241 tree = start_dissecting(tvb, pinfo, ptree, offset);
4242 decode_Tango_Device_3_read_attribute_history_3(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4246 if (strcmp(operation, Tango_Device_3_info_3_op) == 0
4247 && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4248 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4249 tree = start_dissecting(tvb, pinfo, ptree, offset);
4250 decode_Tango_Device_3_info_3(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4254 if (strcmp(operation, Tango_Device_3_get_attribute_config_3_op) == 0
4255 && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4256 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4257 tree = start_dissecting(tvb, pinfo, ptree, offset);
4258 decode_Tango_Device_3_get_attribute_config_3(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4262 if (strcmp(operation, Tango_Device_3_set_attribute_config_3_op) == 0
4263 && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4264 process_RequestOperation(); /* fill-up Request_Operation field & info column */
4265 tree = start_dissecting(tvb, pinfo, ptree, offset);
4266 decode_Tango_Device_3_set_attribute_config_3(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4270 if (strcmp(operation, get_Tango_Device_name_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4271 tree = start_dissecting(tvb, pinfo, ptree, offset);
4272 decode_get_Tango_Device_name_at(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4276 if (strcmp(operation, get_Tango_Device_description_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4277 tree = start_dissecting(tvb, pinfo, ptree, offset);
4278 decode_get_Tango_Device_description_at(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4282 if (strcmp(operation, get_Tango_Device_state_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4283 tree = start_dissecting(tvb, pinfo, ptree, offset);
4284 decode_get_Tango_Device_state_at(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4288 if (strcmp(operation, get_Tango_Device_status_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4289 tree = start_dissecting(tvb, pinfo, ptree, offset);
4290 decode_get_Tango_Device_status_at(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4294 if (strcmp(operation, get_Tango_Device_adm_name_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4295 tree = start_dissecting(tvb, pinfo, ptree, offset);
4296 decode_get_Tango_Device_adm_name_at(tvb, pinfo, tree, offset, header, operation, stream_is_big_endian);
4306 case CloseConnection:
4309 return FALSE; /* not handled yet */
4312 return FALSE; /* not handled yet */
4319 } /* End of main dissector */
4323 /* Register the protocol with Wireshark */
4325 void proto_register_giop_tango(void) {
4327 /* setup list of header fields */
4329 static hf_register_info hf[] = {
4330 /* field that indicates the currently ongoing request/reply exchange */
4331 {&hf_operationrequest, {"Request_Operation","TANGO.Request_Operation",FT_STRING,BASE_NONE,NULL,0x0,NULL,HFILL}},
4337 /* setup protocol subtree array */
4339 static gint *ett[] = {
4343 /* Register the protocol name and description */
4345 proto_tango = proto_register_protocol("Tango Dissector Using GIOP API" , "TANGO", "giop-tango" );
4347 proto_register_field_array(proto_tango, hf, array_length(hf));
4349 proto_register_subtree_array(ett,array_length(ett));
4354 /* register me as handler for these interfaces */
4356 void proto_register_handoff_giop_tango(void) {
4360 /* Register for Explicit Dissection */
4362 register_giop_user_module(dissect_tango, "TANGO", "Tango/Device", proto_tango ); /* explicit dissector */
4365 /* Register for Explicit Dissection */
4367 register_giop_user_module(dissect_tango, "TANGO", "Tango/Device_2", proto_tango ); /* explicit dissector */
4370 /* Register for Explicit Dissection */
4372 register_giop_user_module(dissect_tango, "TANGO", "Tango/Device_3", proto_tango ); /* explicit dissector */
4375 /* Register for Heuristic Dissection */
4377 register_giop_user(dissect_tango, "TANGO" ,proto_tango); /* heuristic dissector */
4383 #ifndef ENABLE_STATIC
4385 G_MODULE_EXPORT void
4386 plugin_register(void)
4388 if (proto_tango == -1) {
4389 proto_register_giop_tango();
4393 G_MODULE_EXPORT void
4394 plugin_reg_handoff(void){
4395 proto_register_handoff_giop_tango();