Don't guard col_set_str (COL_PROTOCOL) with col_check
[obnox/wireshark/wip.git] / plugins / giop / packet-tango.c
1 /* packet-tango.c
2  *
3  * $Id$
4  *
5  * Routines for IDL dissection
6  *
7  * Autogenerated from idl2wrs
8  * Copyright 2001 Frank Singleton <frank.singleton@ericsson.com>
9  */
10
11
12 /*
13  * Wireshark - Network traffic analyzer
14  * By Gerald Combs
15  * Copyright 1999 - 2006 Gerald Combs
16  */
17
18
19 /*
20  * This program is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU General Public License
22  * as published by the Free Software Foundation; either version 2
23  * of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28  * GNU General Public License for more details.
29  *
30  * You should have received a copy of the GNU General Public License
31  * along with this program; if not, write to the Free Software
32  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
33  */
34
35
36 #ifdef HAVE_CONFIG_H
37 # include "config.h"
38 #endif
39
40 #include <stdio.h>
41 #include <stdlib.h>
42 #include <gmodule.h>
43
44 #include <string.h>
45 #include <glib.h>
46 #include <epan/packet.h>
47 #include <epan/proto.h>
48 #include <epan/dissectors/packet-giop.h>
49
50 #ifndef ENABLE_STATIC
51 G_MODULE_EXPORT const gchar version[] = "0.0.1";
52 #endif
53
54 #ifdef _MSC_VER
55 /* disable warning: "unreference local variable" */
56 #pragma warning(disable:4101)
57 #endif
58
59
60 static proto_tree *start_dissecting(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset);
61
62
63
64 /* Struct prototype declaration Start */
65
66
67 /* Struct = IDL:Tango/DevVarLongStringArray:1.0 */
68
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_);
70
71
72 /* Struct = IDL:Tango/DevVarDoubleStringArray:1.0 */
73
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_);
75
76
77 /* Struct = IDL:Tango/TimeVal:1.0 */
78
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_);
80
81
82 /* Struct = IDL:Tango/DevCmdInfo:1.0 */
83
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_);
85
86
87 /* Struct = IDL:Tango/DevCmdInfo_2:1.0 */
88
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_);
90
91
92 /* Struct = IDL:Tango/DevError:1.0 */
93
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_);
95
96
97 /* Struct = IDL:Tango/NamedDevError:1.0 */
98
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_);
100
101
102 /* Struct = IDL:Tango/AttributeConfig:1.0 */
103
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_);
105
106
107 /* Struct = IDL:Tango/AttributeConfig_2:1.0 */
108
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_);
110
111
112 /* Struct = IDL:Tango/AttributeValue:1.0 */
113
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_);
115
116
117 /* Struct = IDL:Tango/AttributeDim:1.0 */
118
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_);
120
121
122 /* Struct = IDL:Tango/AttributeValue_3:1.0 */
123
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_);
125
126
127 /* Struct = IDL:Tango/ChangeEventProp:1.0 */
128
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_);
130
131
132 /* Struct = IDL:Tango/PeriodicEventProp:1.0 */
133
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_);
135
136
137 /* Struct = IDL:Tango/ArchiveEventProp:1.0 */
138
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_);
140
141
142 /* Struct = IDL:Tango/EventProperties:1.0 */
143
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_);
145
146
147 /* Struct = IDL:Tango/AttributeAlarm:1.0 */
148
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_);
150
151
152 /* Struct = IDL:Tango/AttributeConfig_3:1.0 */
153
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_);
155
156
157 /* Struct = IDL:Tango/DevInfo:1.0 */
158
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_);
160
161
162 /* Struct = IDL:Tango/DevInfo_3:1.0 */
163
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_);
165
166
167 /* Struct = IDL:Tango/DevCmdHistory:1.0 */
168
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_);
170
171
172 /* Struct = IDL:Tango/DevAttrHistory:1.0 */
173
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_);
175
176
177 /* Struct = IDL:Tango/DevAttrHistory_3:1.0 */
178
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_);
180
181
182 /* Struct prototype declaration End */
183
184
185 /* Union prototype declaration Start */
186
187
188 /* Union prototype declaration End */
189
190
191
192 /* Initialise the protocol and subtree pointers */
193
194 static int proto_tango = -1;
195
196 static gint ett_tango = -1;
197
198
199 /* Initialise the initial Alignment */
200
201 static guint32  boundary = GIOP_HEADER_SIZE;  /* initial value */
202
203
204
205 /* Initialise the Registered fields */
206
207 /* TODO - Use registered fields */
208
209 /*
210  * IDL Operations Start
211  */
212  
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" ;
236
237 /*
238  * IDL Operations End
239  */
240
241 /*  Begin Exception (containing members) String  Declare  */
242
243
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" ; 
246
247 /*  End Exception (containing members) String Declare  */
248
249 /*
250  * IDL Attributes Start
251  */
252  
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" ;
258
259 /*
260  * IDL Attributes End
261  */
262
263 /*
264  * IDL Enums Start
265  */
266  
267 /*
268  * Enum = IDL:Tango/AttrQuality:1.0
269  */
270  
271 static const value_string Tango_AttrQuality[] = {
272
273    { 0, "ATTR_VALID" }, 
274    { 1, "ATTR_INVALID" }, 
275    { 2, "ATTR_ALARM" }, 
276    { 3, "ATTR_CHANGING" }, 
277    { 4, "ATTR_WARNING" }, 
278    { 0,       NULL },
279 };
280
281 /*
282  * Enum = IDL:Tango/AttrWriteType:1.0
283  */
284  
285 static const value_string Tango_AttrWriteType[] = {
286
287    { 0, "READ" }, 
288    { 1, "READ_WITH_WRITE" }, 
289    { 2, "WRITE" }, 
290    { 3, "READ_WRITE" }, 
291    { 0,       NULL },
292 };
293
294 /*
295  * Enum = IDL:Tango/AttrDataFormat:1.0
296  */
297  
298 static const value_string Tango_AttrDataFormat[] = {
299
300    { 0, "SCALAR" }, 
301    { 1, "SPECTRUM" }, 
302    { 2, "IMAGE" }, 
303    { 0,       NULL },
304 };
305
306 /*
307  * Enum = IDL:Tango/DevSource:1.0
308  */
309  
310 static const value_string Tango_DevSource[] = {
311
312    { 0, "DEV" }, 
313    { 1, "CACHE" }, 
314    { 2, "CACHE_DEV" }, 
315    { 0,       NULL },
316 };
317
318 /*
319  * Enum = IDL:Tango/ErrSeverity:1.0
320  */
321  
322 static const value_string Tango_ErrSeverity[] = {
323
324    { 0, "WARN" }, 
325    { 1, "ERR" }, 
326    { 2, "PANIC" }, 
327    { 0,       NULL },
328 };
329
330 /*
331  * Enum = IDL:Tango/DevState:1.0
332  */
333  
334 static const value_string Tango_DevState[] = {
335
336    { 0, "ON" }, 
337    { 1, "OFF" }, 
338    { 2, "CLOSE" }, 
339    { 3, "OPEN" }, 
340    { 4, "INSERT" }, 
341    { 5, "EXTRACT" }, 
342    { 6, "MOVING" }, 
343    { 7, "STANDBY" }, 
344    { 8, "FAULT" }, 
345    { 9, "INIT" }, 
346    { 10, "RUNNING" }, 
347    { 11, "ALARM" }, 
348    { 12, "DISABLE" }, 
349    { 13, "UNKNOWN" }, 
350    { 0,       NULL },
351 };
352
353 /*
354  * Enum = IDL:Tango/DispLevel:1.0
355  */
356  
357 static const value_string Tango_DispLevel[] = {
358
359    { 0, "OPERATOR" }, 
360    { 1, "EXPERT" }, 
361    { 0,       NULL },
362 };
363
364 /*
365  * IDL Enums End
366  */
367  
368 /*  Begin Exception Helper Functions  */
369
370
371 /* Exception = IDL:Tango/DevFailed:1.0 */
372
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_) {
374
375     gboolean stream_is_big_endian;          /* big endianess */
376
377     
378     /* Operation specific Variable declarations Begin */
379
380     guint32   u_octet4_loop_DevFailed_errors;
381     guint32   i_DevFailed_errors;
382     
383     /* Operation specific Variable declarations End */
384
385     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
386
387     u_octet4_loop_DevFailed_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
388     if (tree) {
389        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevFailed_errors = %u",u_octet4_loop_DevFailed_errors);
390     }
391
392     for (i_DevFailed_errors=0; i_DevFailed_errors < u_octet4_loop_DevFailed_errors; i_DevFailed_errors++) {
393
394         /*  Begin struct "Tango_DevError"  */
395
396         
397
398         decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation);
399
400         /*  End struct "Tango_DevError"  */
401
402     }
403
404 }
405
406 /* Exception = IDL:Tango/MultiDevFailed:1.0 */
407
408 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_) {
409
410     gboolean stream_is_big_endian;          /* big endianess */
411
412     
413     /* Operation specific Variable declarations Begin */
414
415     guint32   u_octet4_loop_MultiDevFailed_errors;
416     guint32   i_MultiDevFailed_errors;
417     
418     /* Operation specific Variable declarations End */
419
420     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
421
422     u_octet4_loop_MultiDevFailed_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
423     if (tree) {
424        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of MultiDevFailed_errors = %u",u_octet4_loop_MultiDevFailed_errors);
425     }
426
427     for (i_MultiDevFailed_errors=0; i_MultiDevFailed_errors < u_octet4_loop_MultiDevFailed_errors; i_MultiDevFailed_errors++) {
428
429         /*  Begin struct "Tango_NamedDevError"  */
430
431         
432
433         decode_Tango_NamedDevError_st(tvb, pinfo, tree, offset, header, operation);
434
435         /*  End struct "Tango_NamedDevError"  */
436
437     }
438
439 }
440
441
442 /*  End Exception Helper Functions  */
443
444 /*
445  * Main delegator for exception handling
446  *
447  */
448
449 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_ ) {
450
451     gboolean be _U_;                        /* big endianess */
452     proto_tree *tree _U_;
453
454     if (!header->exception_id)
455         return FALSE;
456
457     if (strcmp(header->exception_id, user_exception_Tango_DevFailed) == 0) {
458        tree = start_dissecting(tvb, pinfo, ptree, offset);
459        decode_ex_Tango_DevFailed(tvb, pinfo, tree, offset, header, operation);   /*  IDL:Tango/DevFailed:1.0  */
460        return TRUE;
461     }
462
463     if (strcmp(header->exception_id, user_exception_Tango_MultiDevFailed) == 0) {
464        tree = start_dissecting(tvb, pinfo, ptree, offset);
465        decode_ex_Tango_MultiDevFailed(tvb, pinfo, tree, offset, header, operation);   /*  IDL:Tango/MultiDevFailed:1.0  */
466        return TRUE;
467     }
468
469
470
471     return FALSE;    /* user exception not found */
472
473 }
474
475 /*  Begin Attribute Helper Functions  */
476
477
478 /* Attribute = IDL:Tango/Device/name:1.0 */
479
480 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_) {
481
482     gboolean stream_is_big_endian;          /* big endianess */
483
484     
485     /* Operation specific Variable declarations Begin */
486
487     guint32   u_octet4;
488     gchar   *seq = NULL;
489     
490     /* Operation specific Variable declarations End */
491
492     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
493
494     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
495     if (tree) {
496        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"name (%u) = %s",
497           u_octet4, (u_octet4 > 0) ? seq : "");
498     }
499
500     g_free(seq);          /*  free buffer  */
501     seq = NULL;
502
503 }
504
505
506 /* Attribute = IDL:Tango/Device/description:1.0 */
507
508 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_) {
509
510     gboolean stream_is_big_endian;          /* big endianess */
511
512     
513     /* Operation specific Variable declarations Begin */
514
515     guint32   u_octet4;
516     gchar   *seq = NULL;
517     
518     /* Operation specific Variable declarations End */
519
520     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
521
522     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
523     if (tree) {
524        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"description (%u) = %s",
525           u_octet4, (u_octet4 > 0) ? seq : "");
526     }
527
528     g_free(seq);          /*  free buffer  */
529     seq = NULL;
530
531 }
532
533
534 /* Attribute = IDL:Tango/Device/state:1.0 */
535
536 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_) {
537
538     gboolean stream_is_big_endian;          /* big endianess */
539
540     
541     /* Operation specific Variable declarations Begin */
542
543     guint32   u_octet4;
544     
545     /* Operation specific Variable declarations End */
546
547     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
548
549     
550     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
551     if (tree) {
552        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevState,"Unknown Enum Value"));
553     }
554
555 }
556
557
558 /* Attribute = IDL:Tango/Device/status:1.0 */
559
560 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_) {
561
562     gboolean stream_is_big_endian;          /* big endianess */
563
564     
565     /* Operation specific Variable declarations Begin */
566
567     guint32   u_octet4;
568     gchar   *seq = NULL;
569     
570     /* Operation specific Variable declarations End */
571
572     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
573
574     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
575     if (tree) {
576        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"status (%u) = %s",
577           u_octet4, (u_octet4 > 0) ? seq : "");
578     }
579
580     g_free(seq);          /*  free buffer  */
581     seq = NULL;
582
583 }
584
585
586 /* Attribute = IDL:Tango/Device/adm_name:1.0 */
587
588 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_) {
589
590     gboolean stream_is_big_endian;          /* big endianess */
591
592     
593     /* Operation specific Variable declarations Begin */
594
595     guint32   u_octet4;
596     gchar   *seq = NULL;
597     
598     /* Operation specific Variable declarations End */
599
600     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
601
602     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
603     if (tree) {
604        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"adm_name (%u) = %s",
605           u_octet4, (u_octet4 > 0) ? seq : "");
606     }
607
608     g_free(seq);          /*  free buffer  */
609     seq = NULL;
610
611 }
612
613
614 /*  End Attribute Helper Functions  */
615
616 /*
617  * IDL:Tango/Device/command_inout:1.0
618  */
619
620 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_) {
621
622     gboolean stream_is_big_endian;          /* big endianess */
623
624     
625     /* Operation specific Variable declarations Begin */
626
627     guint32   u_octet4;
628     gchar   *seq = NULL;
629     
630     /* Operation specific Variable declarations End */
631
632     stream_is_big_endian = is_big_endian(header);
633
634     switch(header->message_type) {
635
636     case Request:
637
638         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
639         if (tree) {
640            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
641               u_octet4, (u_octet4 > 0) ? seq : "");
642         }
643
644         g_free(seq);          /*  free buffer  */
645         seq = NULL;
646
647         get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
648
649         break;
650
651     case Reply:
652
653         switch(header->rep_status) {
654
655         case NO_EXCEPTION:
656
657             get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
658
659             break;
660
661         case USER_EXCEPTION:
662
663             break;
664
665         default:
666
667             /* Unknown Exception */
668
669             g_warning("Unknown Exception ");
670
671             break;
672
673         
674         }   /* switch(header->message_type) */
675
676         break;
677
678     default:
679
680         /* Unknown GIOP Message */
681
682         g_warning("Unknown GIOP Message");
683
684         break;
685
686     } /* switch(header->message_type) */
687
688 }
689
690 /*
691  * IDL:Tango/Device/get_attribute_config:1.0
692  */
693
694 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_) {
695
696     gboolean stream_is_big_endian;          /* big endianess */
697
698     
699     /* Operation specific Variable declarations Begin */
700
701     guint32   u_octet4_loop_names;
702     guint32   i_names;
703     guint32   u_octet4;
704     gchar   *seq = NULL;
705     guint32   u_octet4_loop_AttributeConfigList;
706     guint32   i_AttributeConfigList;
707     
708     /* Operation specific Variable declarations End */
709
710     stream_is_big_endian = is_big_endian(header);
711
712     switch(header->message_type) {
713
714     case Request:
715
716         u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
717         if (tree) {
718            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
719         }
720
721         for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
722
723             u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
724             if (tree) {
725                proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
726                   u_octet4, (u_octet4 > 0) ? seq : "");
727             }
728
729             g_free(seq);          /*  free buffer  */
730             seq = NULL;
731
732         }
733
734         break;
735
736     case Reply:
737
738         switch(header->rep_status) {
739
740         case NO_EXCEPTION:
741
742             u_octet4_loop_AttributeConfigList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
743             if (tree) {
744                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfigList = %u",u_octet4_loop_AttributeConfigList);
745             }
746
747             for (i_AttributeConfigList=0; i_AttributeConfigList < u_octet4_loop_AttributeConfigList; i_AttributeConfigList++) {
748
749                 /*  Begin struct "Tango_AttributeConfig"  */
750
751                 
752
753                 decode_Tango_AttributeConfig_st(tvb, pinfo, tree, offset, header, operation);
754
755                 /*  End struct "Tango_AttributeConfig"  */
756
757             }
758
759             break;
760
761         case USER_EXCEPTION:
762
763             break;
764
765         default:
766
767             /* Unknown Exception */
768
769             g_warning("Unknown Exception ");
770
771             break;
772
773         
774         }   /* switch(header->message_type) */
775
776         break;
777
778     default:
779
780         /* Unknown GIOP Message */
781
782         g_warning("Unknown GIOP Message");
783
784         break;
785
786     } /* switch(header->message_type) */
787
788 }
789
790 /*
791  * IDL:Tango/Device/set_attribute_config:1.0
792  */
793
794 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_) {
795
796     gboolean stream_is_big_endian;          /* big endianess */
797
798     
799     /* Operation specific Variable declarations Begin */
800
801     guint32   u_octet4_loop_new_conf;
802     guint32   i_new_conf;
803     
804     /* Operation specific Variable declarations End */
805
806     stream_is_big_endian = is_big_endian(header);
807
808     switch(header->message_type) {
809
810     case Request:
811
812         u_octet4_loop_new_conf = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
813         if (tree) {
814            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of new_conf = %u",u_octet4_loop_new_conf);
815         }
816
817         for (i_new_conf=0; i_new_conf < u_octet4_loop_new_conf; i_new_conf++) {
818
819             /*  Begin struct "Tango_AttributeConfig"  */
820
821             
822
823             decode_Tango_AttributeConfig_st(tvb, pinfo, tree, offset, header, operation);
824
825             /*  End struct "Tango_AttributeConfig"  */
826
827         }
828
829         break;
830
831     case Reply:
832
833         switch(header->rep_status) {
834
835         case NO_EXCEPTION:
836
837             /* Function returns void */
838
839             break;
840
841         case USER_EXCEPTION:
842
843             break;
844
845         default:
846
847             /* Unknown Exception */
848
849             g_warning("Unknown Exception ");
850
851             break;
852
853         
854         }   /* switch(header->message_type) */
855
856         break;
857
858     default:
859
860         /* Unknown GIOP Message */
861
862         g_warning("Unknown GIOP Message");
863
864         break;
865
866     } /* switch(header->message_type) */
867
868 }
869
870 /*
871  * IDL:Tango/Device/read_attributes:1.0
872  */
873
874 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_) {
875
876     gboolean stream_is_big_endian;          /* big endianess */
877
878     
879     /* Operation specific Variable declarations Begin */
880
881     guint32   u_octet4_loop_names;
882     guint32   i_names;
883     guint32   u_octet4;
884     gchar   *seq = NULL;
885     guint32   u_octet4_loop_AttributeValueList;
886     guint32   i_AttributeValueList;
887     
888     /* Operation specific Variable declarations End */
889
890     stream_is_big_endian = is_big_endian(header);
891
892     switch(header->message_type) {
893
894     case Request:
895
896         u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
897         if (tree) {
898            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
899         }
900
901         for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
902
903             u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
904             if (tree) {
905                proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
906                   u_octet4, (u_octet4 > 0) ? seq : "");
907             }
908
909             g_free(seq);          /*  free buffer  */
910             seq = NULL;
911
912         }
913
914         break;
915
916     case Reply:
917
918         switch(header->rep_status) {
919
920         case NO_EXCEPTION:
921
922             u_octet4_loop_AttributeValueList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
923             if (tree) {
924                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValueList = %u",u_octet4_loop_AttributeValueList);
925             }
926
927             for (i_AttributeValueList=0; i_AttributeValueList < u_octet4_loop_AttributeValueList; i_AttributeValueList++) {
928
929                 /*  Begin struct "Tango_AttributeValue"  */
930
931                 
932
933                 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation);
934
935                 /*  End struct "Tango_AttributeValue"  */
936
937             }
938
939             break;
940
941         case USER_EXCEPTION:
942
943             break;
944
945         default:
946
947             /* Unknown Exception */
948
949             g_warning("Unknown Exception ");
950
951             break;
952
953         
954         }   /* switch(header->message_type) */
955
956         break;
957
958     default:
959
960         /* Unknown GIOP Message */
961
962         g_warning("Unknown GIOP Message");
963
964         break;
965
966     } /* switch(header->message_type) */
967
968 }
969
970 /*
971  * IDL:Tango/Device/write_attributes:1.0
972  */
973
974 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_) {
975
976     gboolean stream_is_big_endian;          /* big endianess */
977
978     
979     /* Operation specific Variable declarations Begin */
980
981     guint32   u_octet4_loop_values;
982     guint32   i_values;
983     
984     /* Operation specific Variable declarations End */
985
986     stream_is_big_endian = is_big_endian(header);
987
988     switch(header->message_type) {
989
990     case Request:
991
992         u_octet4_loop_values = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
993         if (tree) {
994            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of values = %u",u_octet4_loop_values);
995         }
996
997         for (i_values=0; i_values < u_octet4_loop_values; i_values++) {
998
999             /*  Begin struct "Tango_AttributeValue"  */
1000
1001             
1002
1003             decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation);
1004
1005             /*  End struct "Tango_AttributeValue"  */
1006
1007         }
1008
1009         break;
1010
1011     case Reply:
1012
1013         switch(header->rep_status) {
1014
1015         case NO_EXCEPTION:
1016
1017             /* Function returns void */
1018
1019             break;
1020
1021         case USER_EXCEPTION:
1022
1023             break;
1024
1025         default:
1026
1027             /* Unknown Exception */
1028
1029             g_warning("Unknown Exception ");
1030
1031             break;
1032
1033         
1034         }   /* switch(header->message_type) */
1035
1036         break;
1037
1038     default:
1039
1040         /* Unknown GIOP Message */
1041
1042         g_warning("Unknown GIOP Message");
1043
1044         break;
1045
1046     } /* switch(header->message_type) */
1047
1048 }
1049
1050 /*
1051  * IDL:Tango/Device/ping:1.0
1052  */
1053
1054 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_) {
1055
1056     gboolean stream_is_big_endian;          /* big endianess */
1057
1058     
1059     /* Operation specific Variable declarations Begin */
1060
1061     
1062     /* Operation specific Variable declarations End */
1063
1064     stream_is_big_endian = is_big_endian(header);
1065
1066     switch(header->message_type) {
1067
1068     case Request:
1069
1070         break;
1071
1072     case Reply:
1073
1074         switch(header->rep_status) {
1075
1076         case NO_EXCEPTION:
1077
1078             /* Function returns void */
1079
1080             break;
1081
1082         case USER_EXCEPTION:
1083
1084             break;
1085
1086         default:
1087
1088             /* Unknown Exception */
1089
1090             g_warning("Unknown Exception ");
1091
1092             break;
1093
1094         
1095         }   /* switch(header->message_type) */
1096
1097         break;
1098
1099     default:
1100
1101         /* Unknown GIOP Message */
1102
1103         g_warning("Unknown GIOP Message");
1104
1105         break;
1106
1107     } /* switch(header->message_type) */
1108
1109 }
1110
1111 /*
1112  * IDL:Tango/Device/black_box:1.0
1113  */
1114
1115 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_) {
1116
1117     gboolean stream_is_big_endian;          /* big endianess */
1118
1119     
1120     /* Operation specific Variable declarations Begin */
1121
1122     gint32    s_octet4;
1123     guint32   u_octet4_loop_DevVarStringArray;
1124     guint32   i_DevVarStringArray;
1125     guint32   u_octet4;
1126     gchar   *seq = NULL;
1127     
1128     /* Operation specific Variable declarations End */
1129
1130     stream_is_big_endian = is_big_endian(header);
1131
1132     switch(header->message_type) {
1133
1134     case Request:
1135
1136         s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
1137         if (tree) {
1138            proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
1139         }
1140
1141         break;
1142
1143     case Reply:
1144
1145         switch(header->rep_status) {
1146
1147         case NO_EXCEPTION:
1148
1149             u_octet4_loop_DevVarStringArray = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1150             if (tree) {
1151                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarStringArray = %u",u_octet4_loop_DevVarStringArray);
1152             }
1153
1154             for (i_DevVarStringArray=0; i_DevVarStringArray < u_octet4_loop_DevVarStringArray; i_DevVarStringArray++) {
1155
1156                 u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1157                 if (tree) {
1158                    proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevVarStringArray (%u) = %s",
1159                       u_octet4, (u_octet4 > 0) ? seq : "");
1160                 }
1161
1162                 g_free(seq);          /*  free buffer  */
1163                 seq = NULL;
1164
1165             }
1166
1167             break;
1168
1169         case USER_EXCEPTION:
1170
1171             break;
1172
1173         default:
1174
1175             /* Unknown Exception */
1176
1177             g_warning("Unknown Exception ");
1178
1179             break;
1180
1181         
1182         }   /* switch(header->message_type) */
1183
1184         break;
1185
1186     default:
1187
1188         /* Unknown GIOP Message */
1189
1190         g_warning("Unknown GIOP Message");
1191
1192         break;
1193
1194     } /* switch(header->message_type) */
1195
1196 }
1197
1198 /*
1199  * IDL:Tango/Device/info:1.0
1200  */
1201
1202 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_) {
1203
1204     gboolean stream_is_big_endian;          /* big endianess */
1205
1206     
1207     /* Operation specific Variable declarations Begin */
1208
1209     
1210     /* Operation specific Variable declarations End */
1211
1212     stream_is_big_endian = is_big_endian(header);
1213
1214     switch(header->message_type) {
1215
1216     case Request:
1217
1218         break;
1219
1220     case Reply:
1221
1222         switch(header->rep_status) {
1223
1224         case NO_EXCEPTION:
1225
1226             /*  Begin struct "Tango_DevInfo"  */
1227
1228             
1229
1230             decode_Tango_DevInfo_st(tvb, pinfo, tree, offset, header, operation);
1231
1232             /*  End struct "Tango_DevInfo"  */
1233
1234             break;
1235
1236         case USER_EXCEPTION:
1237
1238             break;
1239
1240         default:
1241
1242             /* Unknown Exception */
1243
1244             g_warning("Unknown Exception ");
1245
1246             break;
1247
1248         
1249         }   /* switch(header->message_type) */
1250
1251         break;
1252
1253     default:
1254
1255         /* Unknown GIOP Message */
1256
1257         g_warning("Unknown GIOP Message");
1258
1259         break;
1260
1261     } /* switch(header->message_type) */
1262
1263 }
1264
1265 /*
1266  * IDL:Tango/Device/command_list_query:1.0
1267  */
1268
1269 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_) {
1270
1271     gboolean stream_is_big_endian;          /* big endianess */
1272
1273     
1274     /* Operation specific Variable declarations Begin */
1275
1276     guint32   u_octet4_loop_DevCmdInfoList;
1277     guint32   i_DevCmdInfoList;
1278     
1279     /* Operation specific Variable declarations End */
1280
1281     stream_is_big_endian = is_big_endian(header);
1282
1283     switch(header->message_type) {
1284
1285     case Request:
1286
1287         break;
1288
1289     case Reply:
1290
1291         switch(header->rep_status) {
1292
1293         case NO_EXCEPTION:
1294
1295             u_octet4_loop_DevCmdInfoList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1296             if (tree) {
1297                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdInfoList = %u",u_octet4_loop_DevCmdInfoList);
1298             }
1299
1300             for (i_DevCmdInfoList=0; i_DevCmdInfoList < u_octet4_loop_DevCmdInfoList; i_DevCmdInfoList++) {
1301
1302                 /*  Begin struct "Tango_DevCmdInfo"  */
1303
1304                 
1305
1306                 decode_Tango_DevCmdInfo_st(tvb, pinfo, tree, offset, header, operation);
1307
1308                 /*  End struct "Tango_DevCmdInfo"  */
1309
1310             }
1311
1312             break;
1313
1314         case USER_EXCEPTION:
1315
1316             break;
1317
1318         default:
1319
1320             /* Unknown Exception */
1321
1322             g_warning("Unknown Exception ");
1323
1324             break;
1325
1326         
1327         }   /* switch(header->message_type) */
1328
1329         break;
1330
1331     default:
1332
1333         /* Unknown GIOP Message */
1334
1335         g_warning("Unknown GIOP Message");
1336
1337         break;
1338
1339     } /* switch(header->message_type) */
1340
1341 }
1342
1343 /*
1344  * IDL:Tango/Device/command_query:1.0
1345  */
1346
1347 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_) {
1348
1349     gboolean stream_is_big_endian;          /* big endianess */
1350
1351     
1352     /* Operation specific Variable declarations Begin */
1353
1354     guint32   u_octet4;
1355     gchar   *seq = NULL;
1356     
1357     /* Operation specific Variable declarations End */
1358
1359     stream_is_big_endian = is_big_endian(header);
1360
1361     switch(header->message_type) {
1362
1363     case Request:
1364
1365         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1366         if (tree) {
1367            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1368               u_octet4, (u_octet4 > 0) ? seq : "");
1369         }
1370
1371         g_free(seq);          /*  free buffer  */
1372         seq = NULL;
1373
1374         break;
1375
1376     case Reply:
1377
1378         switch(header->rep_status) {
1379
1380         case NO_EXCEPTION:
1381
1382             /*  Begin struct "Tango_DevCmdInfo"  */
1383
1384             
1385
1386             decode_Tango_DevCmdInfo_st(tvb, pinfo, tree, offset, header, operation);
1387
1388             /*  End struct "Tango_DevCmdInfo"  */
1389
1390             break;
1391
1392         case USER_EXCEPTION:
1393
1394             break;
1395
1396         default:
1397
1398             /* Unknown Exception */
1399
1400             g_warning("Unknown Exception ");
1401
1402             break;
1403
1404         
1405         }   /* switch(header->message_type) */
1406
1407         break;
1408
1409     default:
1410
1411         /* Unknown GIOP Message */
1412
1413         g_warning("Unknown GIOP Message");
1414
1415         break;
1416
1417     } /* switch(header->message_type) */
1418
1419 }
1420
1421 /*
1422  * IDL:Tango/Device_2/command_inout_2:1.0
1423  */
1424
1425 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_) {
1426
1427     gboolean stream_is_big_endian;          /* big endianess */
1428
1429     
1430     /* Operation specific Variable declarations Begin */
1431
1432     guint32   u_octet4;
1433     gchar   *seq = NULL;
1434     
1435     /* Operation specific Variable declarations End */
1436
1437     stream_is_big_endian = is_big_endian(header);
1438
1439     switch(header->message_type) {
1440
1441     case Request:
1442
1443         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1444         if (tree) {
1445            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1446               u_octet4, (u_octet4 > 0) ? seq : "");
1447         }
1448
1449         g_free(seq);          /*  free buffer  */
1450         seq = NULL;
1451
1452         get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
1453
1454         
1455         u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
1456         if (tree) {
1457            proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevSource,"Unknown Enum Value"));
1458         }
1459
1460         break;
1461
1462     case Reply:
1463
1464         switch(header->rep_status) {
1465
1466         case NO_EXCEPTION:
1467
1468             get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
1469
1470             break;
1471
1472         case USER_EXCEPTION:
1473
1474             break;
1475
1476         default:
1477
1478             /* Unknown Exception */
1479
1480             g_warning("Unknown Exception ");
1481
1482             break;
1483
1484         
1485         }   /* switch(header->message_type) */
1486
1487         break;
1488
1489     default:
1490
1491         /* Unknown GIOP Message */
1492
1493         g_warning("Unknown GIOP Message");
1494
1495         break;
1496
1497     } /* switch(header->message_type) */
1498
1499 }
1500
1501 /*
1502  * IDL:Tango/Device_2/read_attributes_2:1.0
1503  */
1504
1505 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_) {
1506
1507     gboolean stream_is_big_endian;          /* big endianess */
1508
1509     
1510     /* Operation specific Variable declarations Begin */
1511
1512     guint32   u_octet4_loop_names;
1513     guint32   i_names;
1514     guint32   u_octet4;
1515     gchar   *seq = NULL;
1516     guint32   u_octet4_loop_AttributeValueList;
1517     guint32   i_AttributeValueList;
1518     
1519     /* Operation specific Variable declarations End */
1520
1521     stream_is_big_endian = is_big_endian(header);
1522
1523     switch(header->message_type) {
1524
1525     case Request:
1526
1527         u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1528         if (tree) {
1529            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
1530         }
1531
1532         for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
1533
1534             u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1535             if (tree) {
1536                proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
1537                   u_octet4, (u_octet4 > 0) ? seq : "");
1538             }
1539
1540             g_free(seq);          /*  free buffer  */
1541             seq = NULL;
1542
1543         }
1544
1545         
1546         u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
1547         if (tree) {
1548            proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevSource,"Unknown Enum Value"));
1549         }
1550
1551         break;
1552
1553     case Reply:
1554
1555         switch(header->rep_status) {
1556
1557         case NO_EXCEPTION:
1558
1559             u_octet4_loop_AttributeValueList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1560             if (tree) {
1561                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValueList = %u",u_octet4_loop_AttributeValueList);
1562             }
1563
1564             for (i_AttributeValueList=0; i_AttributeValueList < u_octet4_loop_AttributeValueList; i_AttributeValueList++) {
1565
1566                 /*  Begin struct "Tango_AttributeValue"  */
1567
1568                 
1569
1570                 decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation);
1571
1572                 /*  End struct "Tango_AttributeValue"  */
1573
1574             }
1575
1576             break;
1577
1578         case USER_EXCEPTION:
1579
1580             break;
1581
1582         default:
1583
1584             /* Unknown Exception */
1585
1586             g_warning("Unknown Exception ");
1587
1588             break;
1589
1590         
1591         }   /* switch(header->message_type) */
1592
1593         break;
1594
1595     default:
1596
1597         /* Unknown GIOP Message */
1598
1599         g_warning("Unknown GIOP Message");
1600
1601         break;
1602
1603     } /* switch(header->message_type) */
1604
1605 }
1606
1607 /*
1608  * IDL:Tango/Device_2/get_attribute_config_2:1.0
1609  */
1610
1611 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_) {
1612
1613     gboolean stream_is_big_endian;          /* big endianess */
1614
1615     
1616     /* Operation specific Variable declarations Begin */
1617
1618     guint32   u_octet4_loop_names;
1619     guint32   i_names;
1620     guint32   u_octet4;
1621     gchar   *seq = NULL;
1622     guint32   u_octet4_loop_AttributeConfigList_2;
1623     guint32   i_AttributeConfigList_2;
1624     
1625     /* Operation specific Variable declarations End */
1626
1627     stream_is_big_endian = is_big_endian(header);
1628
1629     switch(header->message_type) {
1630
1631     case Request:
1632
1633         u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1634         if (tree) {
1635            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
1636         }
1637
1638         for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
1639
1640             u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1641             if (tree) {
1642                proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
1643                   u_octet4, (u_octet4 > 0) ? seq : "");
1644             }
1645
1646             g_free(seq);          /*  free buffer  */
1647             seq = NULL;
1648
1649         }
1650
1651         break;
1652
1653     case Reply:
1654
1655         switch(header->rep_status) {
1656
1657         case NO_EXCEPTION:
1658
1659             u_octet4_loop_AttributeConfigList_2 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1660             if (tree) {
1661                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfigList_2 = %u",u_octet4_loop_AttributeConfigList_2);
1662             }
1663
1664             for (i_AttributeConfigList_2=0; i_AttributeConfigList_2 < u_octet4_loop_AttributeConfigList_2; i_AttributeConfigList_2++) {
1665
1666                 /*  Begin struct "Tango_AttributeConfig_2"  */
1667
1668                 
1669
1670                 decode_Tango_AttributeConfig_2_st(tvb, pinfo, tree, offset, header, operation);
1671
1672                 /*  End struct "Tango_AttributeConfig_2"  */
1673
1674             }
1675
1676             break;
1677
1678         case USER_EXCEPTION:
1679
1680             break;
1681
1682         default:
1683
1684             /* Unknown Exception */
1685
1686             g_warning("Unknown Exception ");
1687
1688             break;
1689
1690         
1691         }   /* switch(header->message_type) */
1692
1693         break;
1694
1695     default:
1696
1697         /* Unknown GIOP Message */
1698
1699         g_warning("Unknown GIOP Message");
1700
1701         break;
1702
1703     } /* switch(header->message_type) */
1704
1705 }
1706
1707 /*
1708  * IDL:Tango/Device_2/command_list_query_2:1.0
1709  */
1710
1711 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_) {
1712
1713     gboolean stream_is_big_endian;          /* big endianess */
1714
1715     
1716     /* Operation specific Variable declarations Begin */
1717
1718     guint32   u_octet4_loop_DevCmdInfoList_2;
1719     guint32   i_DevCmdInfoList_2;
1720     
1721     /* Operation specific Variable declarations End */
1722
1723     stream_is_big_endian = is_big_endian(header);
1724
1725     switch(header->message_type) {
1726
1727     case Request:
1728
1729         break;
1730
1731     case Reply:
1732
1733         switch(header->rep_status) {
1734
1735         case NO_EXCEPTION:
1736
1737             u_octet4_loop_DevCmdInfoList_2 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1738             if (tree) {
1739                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdInfoList_2 = %u",u_octet4_loop_DevCmdInfoList_2);
1740             }
1741
1742             for (i_DevCmdInfoList_2=0; i_DevCmdInfoList_2 < u_octet4_loop_DevCmdInfoList_2; i_DevCmdInfoList_2++) {
1743
1744                 /*  Begin struct "Tango_DevCmdInfo_2"  */
1745
1746                 
1747
1748                 decode_Tango_DevCmdInfo_2_st(tvb, pinfo, tree, offset, header, operation);
1749
1750                 /*  End struct "Tango_DevCmdInfo_2"  */
1751
1752             }
1753
1754             break;
1755
1756         case USER_EXCEPTION:
1757
1758             break;
1759
1760         default:
1761
1762             /* Unknown Exception */
1763
1764             g_warning("Unknown Exception ");
1765
1766             break;
1767
1768         
1769         }   /* switch(header->message_type) */
1770
1771         break;
1772
1773     default:
1774
1775         /* Unknown GIOP Message */
1776
1777         g_warning("Unknown GIOP Message");
1778
1779         break;
1780
1781     } /* switch(header->message_type) */
1782
1783 }
1784
1785 /*
1786  * IDL:Tango/Device_2/command_query_2:1.0
1787  */
1788
1789 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_) {
1790
1791     gboolean stream_is_big_endian;          /* big endianess */
1792
1793     
1794     /* Operation specific Variable declarations Begin */
1795
1796     guint32   u_octet4;
1797     gchar   *seq = NULL;
1798     
1799     /* Operation specific Variable declarations End */
1800
1801     stream_is_big_endian = is_big_endian(header);
1802
1803     switch(header->message_type) {
1804
1805     case Request:
1806
1807         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1808         if (tree) {
1809            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1810               u_octet4, (u_octet4 > 0) ? seq : "");
1811         }
1812
1813         g_free(seq);          /*  free buffer  */
1814         seq = NULL;
1815
1816         break;
1817
1818     case Reply:
1819
1820         switch(header->rep_status) {
1821
1822         case NO_EXCEPTION:
1823
1824             /*  Begin struct "Tango_DevCmdInfo_2"  */
1825
1826             
1827
1828             decode_Tango_DevCmdInfo_2_st(tvb, pinfo, tree, offset, header, operation);
1829
1830             /*  End struct "Tango_DevCmdInfo_2"  */
1831
1832             break;
1833
1834         case USER_EXCEPTION:
1835
1836             break;
1837
1838         default:
1839
1840             /* Unknown Exception */
1841
1842             g_warning("Unknown Exception ");
1843
1844             break;
1845
1846         
1847         }   /* switch(header->message_type) */
1848
1849         break;
1850
1851     default:
1852
1853         /* Unknown GIOP Message */
1854
1855         g_warning("Unknown GIOP Message");
1856
1857         break;
1858
1859     } /* switch(header->message_type) */
1860
1861 }
1862
1863 /*
1864  * IDL:Tango/Device_2/command_inout_history_2:1.0
1865  */
1866
1867 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_) {
1868
1869     gboolean stream_is_big_endian;          /* big endianess */
1870
1871     
1872     /* Operation specific Variable declarations Begin */
1873
1874     guint32   u_octet4;
1875     gchar   *seq = NULL;
1876     gint32    s_octet4;
1877     guint32   u_octet4_loop_DevCmdHistoryList;
1878     guint32   i_DevCmdHistoryList;
1879     
1880     /* Operation specific Variable declarations End */
1881
1882     stream_is_big_endian = is_big_endian(header);
1883
1884     switch(header->message_type) {
1885
1886     case Request:
1887
1888         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1889         if (tree) {
1890            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"command (%u) = %s",
1891               u_octet4, (u_octet4 > 0) ? seq : "");
1892         }
1893
1894         g_free(seq);          /*  free buffer  */
1895         seq = NULL;
1896
1897         s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
1898         if (tree) {
1899            proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
1900         }
1901
1902         break;
1903
1904     case Reply:
1905
1906         switch(header->rep_status) {
1907
1908         case NO_EXCEPTION:
1909
1910             u_octet4_loop_DevCmdHistoryList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
1911             if (tree) {
1912                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdHistoryList = %u",u_octet4_loop_DevCmdHistoryList);
1913             }
1914
1915             for (i_DevCmdHistoryList=0; i_DevCmdHistoryList < u_octet4_loop_DevCmdHistoryList; i_DevCmdHistoryList++) {
1916
1917                 /*  Begin struct "Tango_DevCmdHistory"  */
1918
1919                 
1920
1921                 decode_Tango_DevCmdHistory_st(tvb, pinfo, tree, offset, header, operation);
1922
1923                 /*  End struct "Tango_DevCmdHistory"  */
1924
1925             }
1926
1927             break;
1928
1929         case USER_EXCEPTION:
1930
1931             break;
1932
1933         default:
1934
1935             /* Unknown Exception */
1936
1937             g_warning("Unknown Exception ");
1938
1939             break;
1940
1941         
1942         }   /* switch(header->message_type) */
1943
1944         break;
1945
1946     default:
1947
1948         /* Unknown GIOP Message */
1949
1950         g_warning("Unknown GIOP Message");
1951
1952         break;
1953
1954     } /* switch(header->message_type) */
1955
1956 }
1957
1958 /*
1959  * IDL:Tango/Device_2/read_attribute_history_2:1.0
1960  */
1961
1962 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_) {
1963
1964     gboolean stream_is_big_endian;          /* big endianess */
1965
1966     
1967     /* Operation specific Variable declarations Begin */
1968
1969     guint32   u_octet4;
1970     gchar   *seq = NULL;
1971     gint32    s_octet4;
1972     guint32   u_octet4_loop_DevAttrHistoryList;
1973     guint32   i_DevAttrHistoryList;
1974     
1975     /* Operation specific Variable declarations End */
1976
1977     stream_is_big_endian = is_big_endian(header);
1978
1979     switch(header->message_type) {
1980
1981     case Request:
1982
1983         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
1984         if (tree) {
1985            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"name (%u) = %s",
1986               u_octet4, (u_octet4 > 0) ? seq : "");
1987         }
1988
1989         g_free(seq);          /*  free buffer  */
1990         seq = NULL;
1991
1992         s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
1993         if (tree) {
1994            proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
1995         }
1996
1997         break;
1998
1999     case Reply:
2000
2001         switch(header->rep_status) {
2002
2003         case NO_EXCEPTION:
2004
2005             u_octet4_loop_DevAttrHistoryList = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2006             if (tree) {
2007                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevAttrHistoryList = %u",u_octet4_loop_DevAttrHistoryList);
2008             }
2009
2010             for (i_DevAttrHistoryList=0; i_DevAttrHistoryList < u_octet4_loop_DevAttrHistoryList; i_DevAttrHistoryList++) {
2011
2012                 /*  Begin struct "Tango_DevAttrHistory"  */
2013
2014                 
2015
2016                 decode_Tango_DevAttrHistory_st(tvb, pinfo, tree, offset, header, operation);
2017
2018                 /*  End struct "Tango_DevAttrHistory"  */
2019
2020             }
2021
2022             break;
2023
2024         case USER_EXCEPTION:
2025
2026             break;
2027
2028         default:
2029
2030             /* Unknown Exception */
2031
2032             g_warning("Unknown Exception ");
2033
2034             break;
2035
2036         
2037         }   /* switch(header->message_type) */
2038
2039         break;
2040
2041     default:
2042
2043         /* Unknown GIOP Message */
2044
2045         g_warning("Unknown GIOP Message");
2046
2047         break;
2048
2049     } /* switch(header->message_type) */
2050
2051 }
2052
2053 /*
2054  * IDL:Tango/Device_3/read_attributes_3:1.0
2055  */
2056
2057 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_) {
2058
2059     gboolean stream_is_big_endian;          /* big endianess */
2060
2061     
2062     /* Operation specific Variable declarations Begin */
2063
2064     guint32   u_octet4_loop_names;
2065     guint32   i_names;
2066     guint32   u_octet4;
2067     gchar   *seq = NULL;
2068     guint32   u_octet4_loop_AttributeValueList_3;
2069     guint32   i_AttributeValueList_3;
2070     
2071     /* Operation specific Variable declarations End */
2072
2073     stream_is_big_endian = is_big_endian(header);
2074
2075     switch(header->message_type) {
2076
2077     case Request:
2078
2079         u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2080         if (tree) {
2081            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
2082         }
2083
2084         for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
2085
2086             u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2087             if (tree) {
2088                proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
2089                   u_octet4, (u_octet4 > 0) ? seq : "");
2090             }
2091
2092             g_free(seq);          /*  free buffer  */
2093             seq = NULL;
2094
2095         }
2096
2097         
2098         u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2099         if (tree) {
2100            proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DevSource,"Unknown Enum Value"));
2101         }
2102
2103         break;
2104
2105     case Reply:
2106
2107         switch(header->rep_status) {
2108
2109         case NO_EXCEPTION:
2110
2111             u_octet4_loop_AttributeValueList_3 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2112             if (tree) {
2113                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValueList_3 = %u",u_octet4_loop_AttributeValueList_3);
2114             }
2115
2116             for (i_AttributeValueList_3=0; i_AttributeValueList_3 < u_octet4_loop_AttributeValueList_3; i_AttributeValueList_3++) {
2117
2118                 /*  Begin struct "Tango_AttributeValue_3"  */
2119
2120                 
2121
2122                 decode_Tango_AttributeValue_3_st(tvb, pinfo, tree, offset, header, operation);
2123
2124                 /*  End struct "Tango_AttributeValue_3"  */
2125
2126             }
2127
2128             break;
2129
2130         case USER_EXCEPTION:
2131
2132             break;
2133
2134         default:
2135
2136             /* Unknown Exception */
2137
2138             g_warning("Unknown Exception ");
2139
2140             break;
2141
2142         
2143         }   /* switch(header->message_type) */
2144
2145         break;
2146
2147     default:
2148
2149         /* Unknown GIOP Message */
2150
2151         g_warning("Unknown GIOP Message");
2152
2153         break;
2154
2155     } /* switch(header->message_type) */
2156
2157 }
2158
2159 /*
2160  * IDL:Tango/Device_3/write_attributes_3:1.0
2161  */
2162
2163 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_) {
2164
2165     gboolean stream_is_big_endian;          /* big endianess */
2166
2167     
2168     /* Operation specific Variable declarations Begin */
2169
2170     guint32   u_octet4_loop_values;
2171     guint32   i_values;
2172     
2173     /* Operation specific Variable declarations End */
2174
2175     stream_is_big_endian = is_big_endian(header);
2176
2177     switch(header->message_type) {
2178
2179     case Request:
2180
2181         u_octet4_loop_values = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2182         if (tree) {
2183            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of values = %u",u_octet4_loop_values);
2184         }
2185
2186         for (i_values=0; i_values < u_octet4_loop_values; i_values++) {
2187
2188             /*  Begin struct "Tango_AttributeValue"  */
2189
2190             
2191
2192             decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation);
2193
2194             /*  End struct "Tango_AttributeValue"  */
2195
2196         }
2197
2198         break;
2199
2200     case Reply:
2201
2202         switch(header->rep_status) {
2203
2204         case NO_EXCEPTION:
2205
2206             /* Function returns void */
2207
2208             break;
2209
2210         case USER_EXCEPTION:
2211
2212             break;
2213
2214         default:
2215
2216             /* Unknown Exception */
2217
2218             g_warning("Unknown Exception ");
2219
2220             break;
2221
2222         
2223         }   /* switch(header->message_type) */
2224
2225         break;
2226
2227     default:
2228
2229         /* Unknown GIOP Message */
2230
2231         g_warning("Unknown GIOP Message");
2232
2233         break;
2234
2235     } /* switch(header->message_type) */
2236
2237 }
2238
2239 /*
2240  * IDL:Tango/Device_3/read_attribute_history_3:1.0
2241  */
2242
2243 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_) {
2244
2245     gboolean stream_is_big_endian;          /* big endianess */
2246
2247     
2248     /* Operation specific Variable declarations Begin */
2249
2250     guint32   u_octet4;
2251     gchar   *seq = NULL;
2252     gint32    s_octet4;
2253     guint32   u_octet4_loop_DevAttrHistoryList_3;
2254     guint32   i_DevAttrHistoryList_3;
2255     
2256     /* Operation specific Variable declarations End */
2257
2258     stream_is_big_endian = is_big_endian(header);
2259
2260     switch(header->message_type) {
2261
2262     case Request:
2263
2264         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2265         if (tree) {
2266            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"name (%u) = %s",
2267               u_octet4, (u_octet4 > 0) ? seq : "");
2268         }
2269
2270         g_free(seq);          /*  free buffer  */
2271         seq = NULL;
2272
2273         s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2274         if (tree) {
2275            proto_tree_add_text(tree,tvb,*offset-4,4,"n = %i",s_octet4);
2276         }
2277
2278         break;
2279
2280     case Reply:
2281
2282         switch(header->rep_status) {
2283
2284         case NO_EXCEPTION:
2285
2286             u_octet4_loop_DevAttrHistoryList_3 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2287             if (tree) {
2288                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevAttrHistoryList_3 = %u",u_octet4_loop_DevAttrHistoryList_3);
2289             }
2290
2291             for (i_DevAttrHistoryList_3=0; i_DevAttrHistoryList_3 < u_octet4_loop_DevAttrHistoryList_3; i_DevAttrHistoryList_3++) {
2292
2293                 /*  Begin struct "Tango_DevAttrHistory_3"  */
2294
2295                 
2296
2297                 decode_Tango_DevAttrHistory_3_st(tvb, pinfo, tree, offset, header, operation);
2298
2299                 /*  End struct "Tango_DevAttrHistory_3"  */
2300
2301             }
2302
2303             break;
2304
2305         case USER_EXCEPTION:
2306
2307             break;
2308
2309         default:
2310
2311             /* Unknown Exception */
2312
2313             g_warning("Unknown Exception ");
2314
2315             break;
2316
2317         
2318         }   /* switch(header->message_type) */
2319
2320         break;
2321
2322     default:
2323
2324         /* Unknown GIOP Message */
2325
2326         g_warning("Unknown GIOP Message");
2327
2328         break;
2329
2330     } /* switch(header->message_type) */
2331
2332 }
2333
2334 /*
2335  * IDL:Tango/Device_3/info_3:1.0
2336  */
2337
2338 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_) {
2339
2340     gboolean stream_is_big_endian;          /* big endianess */
2341
2342     
2343     /* Operation specific Variable declarations Begin */
2344
2345     
2346     /* Operation specific Variable declarations End */
2347
2348     stream_is_big_endian = is_big_endian(header);
2349
2350     switch(header->message_type) {
2351
2352     case Request:
2353
2354         break;
2355
2356     case Reply:
2357
2358         switch(header->rep_status) {
2359
2360         case NO_EXCEPTION:
2361
2362             /*  Begin struct "Tango_DevInfo_3"  */
2363
2364             
2365
2366             decode_Tango_DevInfo_3_st(tvb, pinfo, tree, offset, header, operation);
2367
2368             /*  End struct "Tango_DevInfo_3"  */
2369
2370             break;
2371
2372         case USER_EXCEPTION:
2373
2374             break;
2375
2376         default:
2377
2378             /* Unknown Exception */
2379
2380             g_warning("Unknown Exception ");
2381
2382             break;
2383
2384         
2385         }   /* switch(header->message_type) */
2386
2387         break;
2388
2389     default:
2390
2391         /* Unknown GIOP Message */
2392
2393         g_warning("Unknown GIOP Message");
2394
2395         break;
2396
2397     } /* switch(header->message_type) */
2398
2399 }
2400
2401 /*
2402  * IDL:Tango/Device_3/get_attribute_config_3:1.0
2403  */
2404
2405 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_) {
2406
2407     gboolean stream_is_big_endian;          /* big endianess */
2408
2409     
2410     /* Operation specific Variable declarations Begin */
2411
2412     guint32   u_octet4_loop_names;
2413     guint32   i_names;
2414     guint32   u_octet4;
2415     gchar   *seq = NULL;
2416     guint32   u_octet4_loop_AttributeConfigList_3;
2417     guint32   i_AttributeConfigList_3;
2418     
2419     /* Operation specific Variable declarations End */
2420
2421     stream_is_big_endian = is_big_endian(header);
2422
2423     switch(header->message_type) {
2424
2425     case Request:
2426
2427         u_octet4_loop_names = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2428         if (tree) {
2429            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of names = %u",u_octet4_loop_names);
2430         }
2431
2432         for (i_names=0; i_names < u_octet4_loop_names; i_names++) {
2433
2434             u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2435             if (tree) {
2436                proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"names (%u) = %s",
2437                   u_octet4, (u_octet4 > 0) ? seq : "");
2438             }
2439
2440             g_free(seq);          /*  free buffer  */
2441             seq = NULL;
2442
2443         }
2444
2445         break;
2446
2447     case Reply:
2448
2449         switch(header->rep_status) {
2450
2451         case NO_EXCEPTION:
2452
2453             u_octet4_loop_AttributeConfigList_3 = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2454             if (tree) {
2455                proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfigList_3 = %u",u_octet4_loop_AttributeConfigList_3);
2456             }
2457
2458             for (i_AttributeConfigList_3=0; i_AttributeConfigList_3 < u_octet4_loop_AttributeConfigList_3; i_AttributeConfigList_3++) {
2459
2460                 /*  Begin struct "Tango_AttributeConfig_3"  */
2461
2462                 
2463
2464                 decode_Tango_AttributeConfig_3_st(tvb, pinfo, tree, offset, header, operation);
2465
2466                 /*  End struct "Tango_AttributeConfig_3"  */
2467
2468             }
2469
2470             break;
2471
2472         case USER_EXCEPTION:
2473
2474             break;
2475
2476         default:
2477
2478             /* Unknown Exception */
2479
2480             g_warning("Unknown Exception ");
2481
2482             break;
2483
2484         
2485         }   /* switch(header->message_type) */
2486
2487         break;
2488
2489     default:
2490
2491         /* Unknown GIOP Message */
2492
2493         g_warning("Unknown GIOP Message");
2494
2495         break;
2496
2497     } /* switch(header->message_type) */
2498
2499 }
2500
2501 /*
2502  * IDL:Tango/Device_3/set_attribute_config_3:1.0
2503  */
2504
2505 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_) {
2506
2507     gboolean stream_is_big_endian;          /* big endianess */
2508
2509     
2510     /* Operation specific Variable declarations Begin */
2511
2512     guint32   u_octet4_loop_new_conf;
2513     guint32   i_new_conf;
2514     
2515     /* Operation specific Variable declarations End */
2516
2517     stream_is_big_endian = is_big_endian(header);
2518
2519     switch(header->message_type) {
2520
2521     case Request:
2522
2523         u_octet4_loop_new_conf = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2524         if (tree) {
2525            proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of new_conf = %u",u_octet4_loop_new_conf);
2526         }
2527
2528         for (i_new_conf=0; i_new_conf < u_octet4_loop_new_conf; i_new_conf++) {
2529
2530             /*  Begin struct "Tango_AttributeConfig_3"  */
2531
2532             
2533
2534             decode_Tango_AttributeConfig_3_st(tvb, pinfo, tree, offset, header, operation);
2535
2536             /*  End struct "Tango_AttributeConfig_3"  */
2537
2538         }
2539
2540         break;
2541
2542     case Reply:
2543
2544         switch(header->rep_status) {
2545
2546         case NO_EXCEPTION:
2547
2548             /* Function returns void */
2549
2550             break;
2551
2552         case USER_EXCEPTION:
2553
2554             break;
2555
2556         default:
2557
2558             /* Unknown Exception */
2559
2560             g_warning("Unknown Exception ");
2561
2562             break;
2563
2564         
2565         }   /* switch(header->message_type) */
2566
2567         break;
2568
2569     default:
2570
2571         /* Unknown GIOP Message */
2572
2573         g_warning("Unknown GIOP Message");
2574
2575         break;
2576
2577     } /* switch(header->message_type) */
2578
2579 }
2580
2581 /* Struct = IDL:Tango/DevVarLongStringArray:1.0 */
2582
2583 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_) {
2584
2585     gboolean stream_is_big_endian;          /* big endianess */
2586
2587     
2588     /* Operation specific Variable declarations Begin */
2589
2590     guint32   u_octet4_loop_DevVarLongStringArray_lvalue;
2591     guint32   i_DevVarLongStringArray_lvalue;
2592     gint32    s_octet4;
2593     guint32   u_octet4_loop_DevVarLongStringArray_svalue;
2594     guint32   i_DevVarLongStringArray_svalue;
2595     guint32   u_octet4;
2596     gchar   *seq = NULL;
2597     
2598     /* Operation specific Variable declarations End */
2599
2600     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2601
2602     u_octet4_loop_DevVarLongStringArray_lvalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2603     if (tree) {
2604        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarLongStringArray_lvalue = %u",u_octet4_loop_DevVarLongStringArray_lvalue);
2605     }
2606
2607     for (i_DevVarLongStringArray_lvalue=0; i_DevVarLongStringArray_lvalue < u_octet4_loop_DevVarLongStringArray_lvalue; i_DevVarLongStringArray_lvalue++) {
2608
2609         s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2610         if (tree) {
2611            proto_tree_add_text(tree,tvb,*offset-4,4,"DevVarLongStringArray_lvalue = %i",s_octet4);
2612         }
2613
2614     }
2615
2616     u_octet4_loop_DevVarLongStringArray_svalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2617     if (tree) {
2618        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarLongStringArray_svalue = %u",u_octet4_loop_DevVarLongStringArray_svalue);
2619     }
2620
2621     for (i_DevVarLongStringArray_svalue=0; i_DevVarLongStringArray_svalue < u_octet4_loop_DevVarLongStringArray_svalue; i_DevVarLongStringArray_svalue++) {
2622
2623         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2624         if (tree) {
2625            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevVarLongStringArray_svalue (%u) = %s",
2626               u_octet4, (u_octet4 > 0) ? seq : "");
2627         }
2628
2629         g_free(seq);          /*  free buffer  */
2630         seq = NULL;
2631
2632     }
2633
2634 }
2635
2636 /* Struct = IDL:Tango/DevVarDoubleStringArray:1.0 */
2637
2638 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_) {
2639
2640     gboolean stream_is_big_endian;          /* big endianess */
2641
2642     
2643     /* Operation specific Variable declarations Begin */
2644
2645     guint32   u_octet4_loop_DevVarDoubleStringArray_dvalue;
2646     guint32   i_DevVarDoubleStringArray_dvalue;
2647     gdouble   my_double;
2648     guint32   u_octet4_loop_DevVarDoubleStringArray_svalue;
2649     guint32   i_DevVarDoubleStringArray_svalue;
2650     guint32   u_octet4;
2651     gchar   *seq = NULL;
2652     
2653     /* Operation specific Variable declarations End */
2654
2655     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2656
2657     u_octet4_loop_DevVarDoubleStringArray_dvalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2658     if (tree) {
2659        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarDoubleStringArray_dvalue = %u",u_octet4_loop_DevVarDoubleStringArray_dvalue);
2660     }
2661
2662     for (i_DevVarDoubleStringArray_dvalue=0; i_DevVarDoubleStringArray_dvalue < u_octet4_loop_DevVarDoubleStringArray_dvalue; i_DevVarDoubleStringArray_dvalue++) {
2663
2664         my_double = get_CDR_double(tvb,offset,stream_is_big_endian, boundary);
2665         if (tree) {
2666            proto_tree_add_text(tree,tvb,*offset-8,8,"DevVarDoubleStringArray_dvalue = %.15e",my_double);
2667         }
2668
2669     }
2670
2671     u_octet4_loop_DevVarDoubleStringArray_svalue = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2672     if (tree) {
2673        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevVarDoubleStringArray_svalue = %u",u_octet4_loop_DevVarDoubleStringArray_svalue);
2674     }
2675
2676     for (i_DevVarDoubleStringArray_svalue=0; i_DevVarDoubleStringArray_svalue < u_octet4_loop_DevVarDoubleStringArray_svalue; i_DevVarDoubleStringArray_svalue++) {
2677
2678         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2679         if (tree) {
2680            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevVarDoubleStringArray_svalue (%u) = %s",
2681               u_octet4, (u_octet4 > 0) ? seq : "");
2682         }
2683
2684         g_free(seq);          /*  free buffer  */
2685         seq = NULL;
2686
2687     }
2688
2689 }
2690
2691 /* Struct = IDL:Tango/TimeVal:1.0 */
2692
2693 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_) {
2694
2695     gboolean stream_is_big_endian;          /* big endianess */
2696
2697     
2698     /* Operation specific Variable declarations Begin */
2699
2700     gint32    s_octet4;
2701     
2702     /* Operation specific Variable declarations End */
2703
2704     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2705
2706     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2707     if (tree) {
2708        proto_tree_add_text(tree,tvb,*offset-4,4,"TimeVal_tv_sec = %i",s_octet4);
2709     }
2710
2711     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2712     if (tree) {
2713        proto_tree_add_text(tree,tvb,*offset-4,4,"TimeVal_tv_usec = %i",s_octet4);
2714     }
2715
2716     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2717     if (tree) {
2718        proto_tree_add_text(tree,tvb,*offset-4,4,"TimeVal_tv_nsec = %i",s_octet4);
2719     }
2720
2721 }
2722
2723 /* Struct = IDL:Tango/DevCmdInfo:1.0 */
2724
2725 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_) {
2726
2727     gboolean stream_is_big_endian;          /* big endianess */
2728
2729     
2730     /* Operation specific Variable declarations Begin */
2731
2732     guint32   u_octet4;
2733     gchar   *seq = NULL;
2734     gint32    s_octet4;
2735     
2736     /* Operation specific Variable declarations End */
2737
2738     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2739
2740     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2741     if (tree) {
2742        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_cmd_name (%u) = %s",
2743           u_octet4, (u_octet4 > 0) ? seq : "");
2744     }
2745
2746     g_free(seq);          /*  free buffer  */
2747     seq = NULL;
2748
2749     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2750     if (tree) {
2751        proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_cmd_tag = %i",s_octet4);
2752     }
2753
2754     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2755     if (tree) {
2756        proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_in_type = %i",s_octet4);
2757     }
2758
2759     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2760     if (tree) {
2761        proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_out_type = %i",s_octet4);
2762     }
2763
2764     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2765     if (tree) {
2766        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_in_type_desc (%u) = %s",
2767           u_octet4, (u_octet4 > 0) ? seq : "");
2768     }
2769
2770     g_free(seq);          /*  free buffer  */
2771     seq = NULL;
2772
2773     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2774     if (tree) {
2775        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_out_type_desc (%u) = %s",
2776           u_octet4, (u_octet4 > 0) ? seq : "");
2777     }
2778
2779     g_free(seq);          /*  free buffer  */
2780     seq = NULL;
2781
2782 }
2783
2784 /* Struct = IDL:Tango/DevCmdInfo_2:1.0 */
2785
2786 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_) {
2787
2788     gboolean stream_is_big_endian;          /* big endianess */
2789
2790     
2791     /* Operation specific Variable declarations Begin */
2792
2793     guint32   u_octet4;
2794     gchar   *seq = NULL;
2795     gint32    s_octet4;
2796     
2797     /* Operation specific Variable declarations End */
2798
2799     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2800
2801     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2802     if (tree) {
2803        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_2_cmd_name (%u) = %s",
2804           u_octet4, (u_octet4 > 0) ? seq : "");
2805     }
2806
2807     g_free(seq);          /*  free buffer  */
2808     seq = NULL;
2809
2810     
2811     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2812     if (tree) {
2813        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DispLevel,"Unknown Enum Value"));
2814     }
2815
2816     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2817     if (tree) {
2818        proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_cmd_tag = %i",s_octet4);
2819     }
2820
2821     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2822     if (tree) {
2823        proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_in_type = %i",s_octet4);
2824     }
2825
2826     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2827     if (tree) {
2828        proto_tree_add_text(tree,tvb,*offset-4,4,"DevCmdInfo_2_out_type = %i",s_octet4);
2829     }
2830
2831     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2832     if (tree) {
2833        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_2_in_type_desc (%u) = %s",
2834           u_octet4, (u_octet4 > 0) ? seq : "");
2835     }
2836
2837     g_free(seq);          /*  free buffer  */
2838     seq = NULL;
2839
2840     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2841     if (tree) {
2842        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevCmdInfo_2_out_type_desc (%u) = %s",
2843           u_octet4, (u_octet4 > 0) ? seq : "");
2844     }
2845
2846     g_free(seq);          /*  free buffer  */
2847     seq = NULL;
2848
2849 }
2850
2851 /* Struct = IDL:Tango/DevError:1.0 */
2852
2853 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_) {
2854
2855     gboolean stream_is_big_endian;          /* big endianess */
2856
2857     
2858     /* Operation specific Variable declarations Begin */
2859
2860     guint32   u_octet4;
2861     gchar   *seq = NULL;
2862     
2863     /* Operation specific Variable declarations End */
2864
2865     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2866
2867     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2868     if (tree) {
2869        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevError_reason (%u) = %s",
2870           u_octet4, (u_octet4 > 0) ? seq : "");
2871     }
2872
2873     g_free(seq);          /*  free buffer  */
2874     seq = NULL;
2875
2876     
2877     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2878     if (tree) {
2879        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_ErrSeverity,"Unknown Enum Value"));
2880     }
2881
2882     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2883     if (tree) {
2884        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevError_desc (%u) = %s",
2885           u_octet4, (u_octet4 > 0) ? seq : "");
2886     }
2887
2888     g_free(seq);          /*  free buffer  */
2889     seq = NULL;
2890
2891     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2892     if (tree) {
2893        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevError_origin (%u) = %s",
2894           u_octet4, (u_octet4 > 0) ? seq : "");
2895     }
2896
2897     g_free(seq);          /*  free buffer  */
2898     seq = NULL;
2899
2900 }
2901
2902 /* Struct = IDL:Tango/NamedDevError:1.0 */
2903
2904 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_) {
2905
2906     gboolean stream_is_big_endian;          /* big endianess */
2907
2908     
2909     /* Operation specific Variable declarations Begin */
2910
2911     guint32   u_octet4;
2912     gchar   *seq = NULL;
2913     gint32    s_octet4;
2914     guint32   u_octet4_loop_NamedDevError_err_list;
2915     guint32   i_NamedDevError_err_list;
2916     
2917     /* Operation specific Variable declarations End */
2918
2919     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2920
2921     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2922     if (tree) {
2923        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"NamedDevError_name (%u) = %s",
2924           u_octet4, (u_octet4 > 0) ? seq : "");
2925     }
2926
2927     g_free(seq);          /*  free buffer  */
2928     seq = NULL;
2929
2930     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2931     if (tree) {
2932        proto_tree_add_text(tree,tvb,*offset-4,4,"NamedDevError_index_in_call = %i",s_octet4);
2933     }
2934
2935     u_octet4_loop_NamedDevError_err_list = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
2936     if (tree) {
2937        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of NamedDevError_err_list = %u",u_octet4_loop_NamedDevError_err_list);
2938     }
2939
2940     for (i_NamedDevError_err_list=0; i_NamedDevError_err_list < u_octet4_loop_NamedDevError_err_list; i_NamedDevError_err_list++) {
2941
2942         /*  Begin struct "Tango_DevError"  */
2943
2944         
2945
2946         decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation);
2947
2948         /*  End struct "Tango_DevError"  */
2949
2950     }
2951
2952 }
2953
2954 /* Struct = IDL:Tango/AttributeConfig:1.0 */
2955
2956 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_) {
2957
2958     gboolean stream_is_big_endian;          /* big endianess */
2959
2960     
2961     /* Operation specific Variable declarations Begin */
2962
2963     guint32   u_octet4;
2964     gchar   *seq = NULL;
2965     gint32    s_octet4;
2966     guint32   u_octet4_loop_AttributeConfig_extensions;
2967     guint32   i_AttributeConfig_extensions;
2968     
2969     /* Operation specific Variable declarations End */
2970
2971     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
2972
2973     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
2974     if (tree) {
2975        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_name (%u) = %s",
2976           u_octet4, (u_octet4 > 0) ? seq : "");
2977     }
2978
2979     g_free(seq);          /*  free buffer  */
2980     seq = NULL;
2981
2982     
2983     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2984     if (tree) {
2985        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrWriteType,"Unknown Enum Value"));
2986     }
2987
2988     
2989     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
2990     if (tree) {
2991        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrDataFormat,"Unknown Enum Value"));
2992     }
2993
2994     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
2995     if (tree) {
2996        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_data_type = %i",s_octet4);
2997     }
2998
2999     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3000     if (tree) {
3001        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_max_dim_x = %i",s_octet4);
3002     }
3003
3004     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3005     if (tree) {
3006        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_max_dim_y = %i",s_octet4);
3007     }
3008
3009     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3010     if (tree) {
3011        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_description (%u) = %s",
3012           u_octet4, (u_octet4 > 0) ? seq : "");
3013     }
3014
3015     g_free(seq);          /*  free buffer  */
3016     seq = NULL;
3017
3018     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3019     if (tree) {
3020        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_label (%u) = %s",
3021           u_octet4, (u_octet4 > 0) ? seq : "");
3022     }
3023
3024     g_free(seq);          /*  free buffer  */
3025     seq = NULL;
3026
3027     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3028     if (tree) {
3029        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_unit (%u) = %s",
3030           u_octet4, (u_octet4 > 0) ? seq : "");
3031     }
3032
3033     g_free(seq);          /*  free buffer  */
3034     seq = NULL;
3035
3036     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3037     if (tree) {
3038        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_standard_unit (%u) = %s",
3039           u_octet4, (u_octet4 > 0) ? seq : "");
3040     }
3041
3042     g_free(seq);          /*  free buffer  */
3043     seq = NULL;
3044
3045     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3046     if (tree) {
3047        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_display_unit (%u) = %s",
3048           u_octet4, (u_octet4 > 0) ? seq : "");
3049     }
3050
3051     g_free(seq);          /*  free buffer  */
3052     seq = NULL;
3053
3054     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3055     if (tree) {
3056        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_format (%u) = %s",
3057           u_octet4, (u_octet4 > 0) ? seq : "");
3058     }
3059
3060     g_free(seq);          /*  free buffer  */
3061     seq = NULL;
3062
3063     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3064     if (tree) {
3065        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_min_value (%u) = %s",
3066           u_octet4, (u_octet4 > 0) ? seq : "");
3067     }
3068
3069     g_free(seq);          /*  free buffer  */
3070     seq = NULL;
3071
3072     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3073     if (tree) {
3074        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_max_value (%u) = %s",
3075           u_octet4, (u_octet4 > 0) ? seq : "");
3076     }
3077
3078     g_free(seq);          /*  free buffer  */
3079     seq = NULL;
3080
3081     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3082     if (tree) {
3083        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_min_alarm (%u) = %s",
3084           u_octet4, (u_octet4 > 0) ? seq : "");
3085     }
3086
3087     g_free(seq);          /*  free buffer  */
3088     seq = NULL;
3089
3090     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3091     if (tree) {
3092        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_max_alarm (%u) = %s",
3093           u_octet4, (u_octet4 > 0) ? seq : "");
3094     }
3095
3096     g_free(seq);          /*  free buffer  */
3097     seq = NULL;
3098
3099     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3100     if (tree) {
3101        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_writable_attr_name (%u) = %s",
3102           u_octet4, (u_octet4 > 0) ? seq : "");
3103     }
3104
3105     g_free(seq);          /*  free buffer  */
3106     seq = NULL;
3107
3108     u_octet4_loop_AttributeConfig_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3109     if (tree) {
3110        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_extensions = %u",u_octet4_loop_AttributeConfig_extensions);
3111     }
3112
3113     for (i_AttributeConfig_extensions=0; i_AttributeConfig_extensions < u_octet4_loop_AttributeConfig_extensions; i_AttributeConfig_extensions++) {
3114
3115         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3116         if (tree) {
3117            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_extensions (%u) = %s",
3118               u_octet4, (u_octet4 > 0) ? seq : "");
3119         }
3120
3121         g_free(seq);          /*  free buffer  */
3122         seq = NULL;
3123
3124     }
3125
3126 }
3127
3128 /* Struct = IDL:Tango/AttributeConfig_2:1.0 */
3129
3130 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_) {
3131
3132     gboolean stream_is_big_endian;          /* big endianess */
3133
3134     
3135     /* Operation specific Variable declarations Begin */
3136
3137     guint32   u_octet4;
3138     gchar   *seq = NULL;
3139     gint32    s_octet4;
3140     guint32   u_octet4_loop_AttributeConfig_2_extensions;
3141     guint32   i_AttributeConfig_2_extensions;
3142     
3143     /* Operation specific Variable declarations End */
3144
3145     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3146
3147     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3148     if (tree) {
3149        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_name (%u) = %s",
3150           u_octet4, (u_octet4 > 0) ? seq : "");
3151     }
3152
3153     g_free(seq);          /*  free buffer  */
3154     seq = NULL;
3155
3156     
3157     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3158     if (tree) {
3159        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrWriteType,"Unknown Enum Value"));
3160     }
3161
3162     
3163     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3164     if (tree) {
3165        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrDataFormat,"Unknown Enum Value"));
3166     }
3167
3168     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3169     if (tree) {
3170        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_data_type = %i",s_octet4);
3171     }
3172
3173     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3174     if (tree) {
3175        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_max_dim_x = %i",s_octet4);
3176     }
3177
3178     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3179     if (tree) {
3180        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_2_max_dim_y = %i",s_octet4);
3181     }
3182
3183     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3184     if (tree) {
3185        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_description (%u) = %s",
3186           u_octet4, (u_octet4 > 0) ? seq : "");
3187     }
3188
3189     g_free(seq);          /*  free buffer  */
3190     seq = NULL;
3191
3192     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3193     if (tree) {
3194        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_label (%u) = %s",
3195           u_octet4, (u_octet4 > 0) ? seq : "");
3196     }
3197
3198     g_free(seq);          /*  free buffer  */
3199     seq = NULL;
3200
3201     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3202     if (tree) {
3203        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_unit (%u) = %s",
3204           u_octet4, (u_octet4 > 0) ? seq : "");
3205     }
3206
3207     g_free(seq);          /*  free buffer  */
3208     seq = NULL;
3209
3210     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3211     if (tree) {
3212        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_standard_unit (%u) = %s",
3213           u_octet4, (u_octet4 > 0) ? seq : "");
3214     }
3215
3216     g_free(seq);          /*  free buffer  */
3217     seq = NULL;
3218
3219     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3220     if (tree) {
3221        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_display_unit (%u) = %s",
3222           u_octet4, (u_octet4 > 0) ? seq : "");
3223     }
3224
3225     g_free(seq);          /*  free buffer  */
3226     seq = NULL;
3227
3228     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3229     if (tree) {
3230        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_format (%u) = %s",
3231           u_octet4, (u_octet4 > 0) ? seq : "");
3232     }
3233
3234     g_free(seq);          /*  free buffer  */
3235     seq = NULL;
3236
3237     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3238     if (tree) {
3239        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_min_value (%u) = %s",
3240           u_octet4, (u_octet4 > 0) ? seq : "");
3241     }
3242
3243     g_free(seq);          /*  free buffer  */
3244     seq = NULL;
3245
3246     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3247     if (tree) {
3248        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_max_value (%u) = %s",
3249           u_octet4, (u_octet4 > 0) ? seq : "");
3250     }
3251
3252     g_free(seq);          /*  free buffer  */
3253     seq = NULL;
3254
3255     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3256     if (tree) {
3257        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_min_alarm (%u) = %s",
3258           u_octet4, (u_octet4 > 0) ? seq : "");
3259     }
3260
3261     g_free(seq);          /*  free buffer  */
3262     seq = NULL;
3263
3264     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3265     if (tree) {
3266        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_max_alarm (%u) = %s",
3267           u_octet4, (u_octet4 > 0) ? seq : "");
3268     }
3269
3270     g_free(seq);          /*  free buffer  */
3271     seq = NULL;
3272
3273     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3274     if (tree) {
3275        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_writable_attr_name (%u) = %s",
3276           u_octet4, (u_octet4 > 0) ? seq : "");
3277     }
3278
3279     g_free(seq);          /*  free buffer  */
3280     seq = NULL;
3281
3282     
3283     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3284     if (tree) {
3285        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DispLevel,"Unknown Enum Value"));
3286     }
3287
3288     u_octet4_loop_AttributeConfig_2_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3289     if (tree) {
3290        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_2_extensions = %u",u_octet4_loop_AttributeConfig_2_extensions);
3291     }
3292
3293     for (i_AttributeConfig_2_extensions=0; i_AttributeConfig_2_extensions < u_octet4_loop_AttributeConfig_2_extensions; i_AttributeConfig_2_extensions++) {
3294
3295         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3296         if (tree) {
3297            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_2_extensions (%u) = %s",
3298               u_octet4, (u_octet4 > 0) ? seq : "");
3299         }
3300
3301         g_free(seq);          /*  free buffer  */
3302         seq = NULL;
3303
3304     }
3305
3306 }
3307
3308 /* Struct = IDL:Tango/AttributeValue:1.0 */
3309
3310 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_) {
3311
3312     gboolean stream_is_big_endian;          /* big endianess */
3313
3314     
3315     /* Operation specific Variable declarations Begin */
3316
3317     guint32   u_octet4;
3318     gchar   *seq = NULL;
3319     gint32    s_octet4;
3320     
3321     /* Operation specific Variable declarations End */
3322
3323     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3324
3325     get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
3326
3327     
3328     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3329     if (tree) {
3330        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrQuality,"Unknown Enum Value"));
3331     }
3332
3333     /*  Begin struct "Tango_TimeVal"  */
3334
3335     
3336
3337     decode_Tango_TimeVal_st(tvb, pinfo, tree, offset, header, operation);
3338
3339     /*  End struct "Tango_TimeVal"  */
3340
3341     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3342     if (tree) {
3343        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeValue_name (%u) = %s",
3344           u_octet4, (u_octet4 > 0) ? seq : "");
3345     }
3346
3347     g_free(seq);          /*  free buffer  */
3348     seq = NULL;
3349
3350     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3351     if (tree) {
3352        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeValue_dim_x = %i",s_octet4);
3353     }
3354
3355     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3356     if (tree) {
3357        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeValue_dim_y = %i",s_octet4);
3358     }
3359
3360 }
3361
3362 /* Struct = IDL:Tango/AttributeDim:1.0 */
3363
3364 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_) {
3365
3366     gboolean stream_is_big_endian;          /* big endianess */
3367
3368     
3369     /* Operation specific Variable declarations Begin */
3370
3371     gint32    s_octet4;
3372     
3373     /* Operation specific Variable declarations End */
3374
3375     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3376
3377     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3378     if (tree) {
3379        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeDim_dim_x = %i",s_octet4);
3380     }
3381
3382     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3383     if (tree) {
3384        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeDim_dim_y = %i",s_octet4);
3385     }
3386
3387 }
3388
3389 /* Struct = IDL:Tango/AttributeValue_3:1.0 */
3390
3391 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_) {
3392
3393     gboolean stream_is_big_endian;          /* big endianess */
3394
3395     
3396     /* Operation specific Variable declarations Begin */
3397
3398     guint32   u_octet4;
3399     gchar   *seq = NULL;
3400     guint32   u_octet4_loop_AttributeValue_3_err_list;
3401     guint32   i_AttributeValue_3_err_list;
3402     
3403     /* Operation specific Variable declarations End */
3404
3405     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3406
3407     get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
3408
3409     
3410     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3411     if (tree) {
3412        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrQuality,"Unknown Enum Value"));
3413     }
3414
3415     /*  Begin struct "Tango_TimeVal"  */
3416
3417     
3418
3419     decode_Tango_TimeVal_st(tvb, pinfo, tree, offset, header, operation);
3420
3421     /*  End struct "Tango_TimeVal"  */
3422
3423     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3424     if (tree) {
3425        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeValue_3_name (%u) = %s",
3426           u_octet4, (u_octet4 > 0) ? seq : "");
3427     }
3428
3429     g_free(seq);          /*  free buffer  */
3430     seq = NULL;
3431
3432     /*  Begin struct "Tango_AttributeDim"  */
3433
3434     
3435
3436     decode_Tango_AttributeDim_st(tvb, pinfo, tree, offset, header, operation);
3437
3438     /*  End struct "Tango_AttributeDim"  */
3439
3440     /*  Begin struct "Tango_AttributeDim"  */
3441
3442     
3443
3444     decode_Tango_AttributeDim_st(tvb, pinfo, tree, offset, header, operation);
3445
3446     /*  End struct "Tango_AttributeDim"  */
3447
3448     u_octet4_loop_AttributeValue_3_err_list = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3449     if (tree) {
3450        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeValue_3_err_list = %u",u_octet4_loop_AttributeValue_3_err_list);
3451     }
3452
3453     for (i_AttributeValue_3_err_list=0; i_AttributeValue_3_err_list < u_octet4_loop_AttributeValue_3_err_list; i_AttributeValue_3_err_list++) {
3454
3455         /*  Begin struct "Tango_DevError"  */
3456
3457         
3458
3459         decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation);
3460
3461         /*  End struct "Tango_DevError"  */
3462
3463     }
3464
3465 }
3466
3467 /* Struct = IDL:Tango/ChangeEventProp:1.0 */
3468
3469 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_) {
3470
3471     gboolean stream_is_big_endian;          /* big endianess */
3472
3473     
3474     /* Operation specific Variable declarations Begin */
3475
3476     guint32   u_octet4;
3477     gchar   *seq = NULL;
3478     guint32   u_octet4_loop_ChangeEventProp_extensions;
3479     guint32   i_ChangeEventProp_extensions;
3480     
3481     /* Operation specific Variable declarations End */
3482
3483     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3484
3485     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3486     if (tree) {
3487        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ChangeEventProp_rel_change (%u) = %s",
3488           u_octet4, (u_octet4 > 0) ? seq : "");
3489     }
3490
3491     g_free(seq);          /*  free buffer  */
3492     seq = NULL;
3493
3494     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3495     if (tree) {
3496        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ChangeEventProp_abs_change (%u) = %s",
3497           u_octet4, (u_octet4 > 0) ? seq : "");
3498     }
3499
3500     g_free(seq);          /*  free buffer  */
3501     seq = NULL;
3502
3503     u_octet4_loop_ChangeEventProp_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3504     if (tree) {
3505        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of ChangeEventProp_extensions = %u",u_octet4_loop_ChangeEventProp_extensions);
3506     }
3507
3508     for (i_ChangeEventProp_extensions=0; i_ChangeEventProp_extensions < u_octet4_loop_ChangeEventProp_extensions; i_ChangeEventProp_extensions++) {
3509
3510         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3511         if (tree) {
3512            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ChangeEventProp_extensions (%u) = %s",
3513               u_octet4, (u_octet4 > 0) ? seq : "");
3514         }
3515
3516         g_free(seq);          /*  free buffer  */
3517         seq = NULL;
3518
3519     }
3520
3521 }
3522
3523 /* Struct = IDL:Tango/PeriodicEventProp:1.0 */
3524
3525 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_) {
3526
3527     gboolean stream_is_big_endian;          /* big endianess */
3528
3529     
3530     /* Operation specific Variable declarations Begin */
3531
3532     guint32   u_octet4;
3533     gchar   *seq = NULL;
3534     guint32   u_octet4_loop_PeriodicEventProp_extensions;
3535     guint32   i_PeriodicEventProp_extensions;
3536     
3537     /* Operation specific Variable declarations End */
3538
3539     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3540
3541     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3542     if (tree) {
3543        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"PeriodicEventProp_period (%u) = %s",
3544           u_octet4, (u_octet4 > 0) ? seq : "");
3545     }
3546
3547     g_free(seq);          /*  free buffer  */
3548     seq = NULL;
3549
3550     u_octet4_loop_PeriodicEventProp_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3551     if (tree) {
3552        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of PeriodicEventProp_extensions = %u",u_octet4_loop_PeriodicEventProp_extensions);
3553     }
3554
3555     for (i_PeriodicEventProp_extensions=0; i_PeriodicEventProp_extensions < u_octet4_loop_PeriodicEventProp_extensions; i_PeriodicEventProp_extensions++) {
3556
3557         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3558         if (tree) {
3559            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"PeriodicEventProp_extensions (%u) = %s",
3560               u_octet4, (u_octet4 > 0) ? seq : "");
3561         }
3562
3563         g_free(seq);          /*  free buffer  */
3564         seq = NULL;
3565
3566     }
3567
3568 }
3569
3570 /* Struct = IDL:Tango/ArchiveEventProp:1.0 */
3571
3572 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_) {
3573
3574     gboolean stream_is_big_endian;          /* big endianess */
3575
3576     
3577     /* Operation specific Variable declarations Begin */
3578
3579     guint32   u_octet4;
3580     gchar   *seq = NULL;
3581     guint32   u_octet4_loop_ArchiveEventProp_extensions;
3582     guint32   i_ArchiveEventProp_extensions;
3583     
3584     /* Operation specific Variable declarations End */
3585
3586     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3587
3588     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3589     if (tree) {
3590        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_rel_change (%u) = %s",
3591           u_octet4, (u_octet4 > 0) ? seq : "");
3592     }
3593
3594     g_free(seq);          /*  free buffer  */
3595     seq = NULL;
3596
3597     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3598     if (tree) {
3599        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_abs_change (%u) = %s",
3600           u_octet4, (u_octet4 > 0) ? seq : "");
3601     }
3602
3603     g_free(seq);          /*  free buffer  */
3604     seq = NULL;
3605
3606     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3607     if (tree) {
3608        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_period (%u) = %s",
3609           u_octet4, (u_octet4 > 0) ? seq : "");
3610     }
3611
3612     g_free(seq);          /*  free buffer  */
3613     seq = NULL;
3614
3615     u_octet4_loop_ArchiveEventProp_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3616     if (tree) {
3617        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of ArchiveEventProp_extensions = %u",u_octet4_loop_ArchiveEventProp_extensions);
3618     }
3619
3620     for (i_ArchiveEventProp_extensions=0; i_ArchiveEventProp_extensions < u_octet4_loop_ArchiveEventProp_extensions; i_ArchiveEventProp_extensions++) {
3621
3622         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3623         if (tree) {
3624            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"ArchiveEventProp_extensions (%u) = %s",
3625               u_octet4, (u_octet4 > 0) ? seq : "");
3626         }
3627
3628         g_free(seq);          /*  free buffer  */
3629         seq = NULL;
3630
3631     }
3632
3633 }
3634
3635 /* Struct = IDL:Tango/EventProperties:1.0 */
3636
3637 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_) {
3638
3639     gboolean stream_is_big_endian;          /* big endianess */
3640
3641     
3642     /* Operation specific Variable declarations Begin */
3643
3644     
3645     /* Operation specific Variable declarations End */
3646
3647     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3648
3649     /*  Begin struct "Tango_ChangeEventProp"  */
3650
3651     
3652
3653     decode_Tango_ChangeEventProp_st(tvb, pinfo, tree, offset, header, operation);
3654
3655     /*  End struct "Tango_ChangeEventProp"  */
3656
3657     /*  Begin struct "Tango_PeriodicEventProp"  */
3658
3659     
3660
3661     decode_Tango_PeriodicEventProp_st(tvb, pinfo, tree, offset, header, operation);
3662
3663     /*  End struct "Tango_PeriodicEventProp"  */
3664
3665     /*  Begin struct "Tango_ArchiveEventProp"  */
3666
3667     
3668
3669     decode_Tango_ArchiveEventProp_st(tvb, pinfo, tree, offset, header, operation);
3670
3671     /*  End struct "Tango_ArchiveEventProp"  */
3672
3673 }
3674
3675 /* Struct = IDL:Tango/AttributeAlarm:1.0 */
3676
3677 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_) {
3678
3679     gboolean stream_is_big_endian;          /* big endianess */
3680
3681     
3682     /* Operation specific Variable declarations Begin */
3683
3684     guint32   u_octet4;
3685     gchar   *seq = NULL;
3686     guint32   u_octet4_loop_AttributeAlarm_extensions;
3687     guint32   i_AttributeAlarm_extensions;
3688     
3689     /* Operation specific Variable declarations End */
3690
3691     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3692
3693     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3694     if (tree) {
3695        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_min_alarm (%u) = %s",
3696           u_octet4, (u_octet4 > 0) ? seq : "");
3697     }
3698
3699     g_free(seq);          /*  free buffer  */
3700     seq = NULL;
3701
3702     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3703     if (tree) {
3704        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_max_alarm (%u) = %s",
3705           u_octet4, (u_octet4 > 0) ? seq : "");
3706     }
3707
3708     g_free(seq);          /*  free buffer  */
3709     seq = NULL;
3710
3711     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3712     if (tree) {
3713        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_min_warning (%u) = %s",
3714           u_octet4, (u_octet4 > 0) ? seq : "");
3715     }
3716
3717     g_free(seq);          /*  free buffer  */
3718     seq = NULL;
3719
3720     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3721     if (tree) {
3722        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_max_warning (%u) = %s",
3723           u_octet4, (u_octet4 > 0) ? seq : "");
3724     }
3725
3726     g_free(seq);          /*  free buffer  */
3727     seq = NULL;
3728
3729     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3730     if (tree) {
3731        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_delta_t (%u) = %s",
3732           u_octet4, (u_octet4 > 0) ? seq : "");
3733     }
3734
3735     g_free(seq);          /*  free buffer  */
3736     seq = NULL;
3737
3738     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3739     if (tree) {
3740        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_delta_val (%u) = %s",
3741           u_octet4, (u_octet4 > 0) ? seq : "");
3742     }
3743
3744     g_free(seq);          /*  free buffer  */
3745     seq = NULL;
3746
3747     u_octet4_loop_AttributeAlarm_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3748     if (tree) {
3749        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeAlarm_extensions = %u",u_octet4_loop_AttributeAlarm_extensions);
3750     }
3751
3752     for (i_AttributeAlarm_extensions=0; i_AttributeAlarm_extensions < u_octet4_loop_AttributeAlarm_extensions; i_AttributeAlarm_extensions++) {
3753
3754         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3755         if (tree) {
3756            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeAlarm_extensions (%u) = %s",
3757               u_octet4, (u_octet4 > 0) ? seq : "");
3758         }
3759
3760         g_free(seq);          /*  free buffer  */
3761         seq = NULL;
3762
3763     }
3764
3765 }
3766
3767 /* Struct = IDL:Tango/AttributeConfig_3:1.0 */
3768
3769 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_) {
3770
3771     gboolean stream_is_big_endian;          /* big endianess */
3772
3773     
3774     /* Operation specific Variable declarations Begin */
3775
3776     guint32   u_octet4;
3777     gchar   *seq = NULL;
3778     gint32    s_octet4;
3779     guint32   u_octet4_loop_AttributeConfig_3_extensions;
3780     guint32   i_AttributeConfig_3_extensions;
3781     guint32   u_octet4_loop_AttributeConfig_3_sys_extensions;
3782     guint32   i_AttributeConfig_3_sys_extensions;
3783     
3784     /* Operation specific Variable declarations End */
3785
3786     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3787
3788     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3789     if (tree) {
3790        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_name (%u) = %s",
3791           u_octet4, (u_octet4 > 0) ? seq : "");
3792     }
3793
3794     g_free(seq);          /*  free buffer  */
3795     seq = NULL;
3796
3797     
3798     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3799     if (tree) {
3800        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrWriteType,"Unknown Enum Value"));
3801     }
3802
3803     
3804     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3805     if (tree) {
3806        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_AttrDataFormat,"Unknown Enum Value"));
3807     }
3808
3809     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3810     if (tree) {
3811        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_data_type = %i",s_octet4);
3812     }
3813
3814     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3815     if (tree) {
3816        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_max_dim_x = %i",s_octet4);
3817     }
3818
3819     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
3820     if (tree) {
3821        proto_tree_add_text(tree,tvb,*offset-4,4,"AttributeConfig_3_max_dim_y = %i",s_octet4);
3822     }
3823
3824     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3825     if (tree) {
3826        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_description (%u) = %s",
3827           u_octet4, (u_octet4 > 0) ? seq : "");
3828     }
3829
3830     g_free(seq);          /*  free buffer  */
3831     seq = NULL;
3832
3833     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3834     if (tree) {
3835        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_label (%u) = %s",
3836           u_octet4, (u_octet4 > 0) ? seq : "");
3837     }
3838
3839     g_free(seq);          /*  free buffer  */
3840     seq = NULL;
3841
3842     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3843     if (tree) {
3844        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_unit (%u) = %s",
3845           u_octet4, (u_octet4 > 0) ? seq : "");
3846     }
3847
3848     g_free(seq);          /*  free buffer  */
3849     seq = NULL;
3850
3851     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3852     if (tree) {
3853        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_standard_unit (%u) = %s",
3854           u_octet4, (u_octet4 > 0) ? seq : "");
3855     }
3856
3857     g_free(seq);          /*  free buffer  */
3858     seq = NULL;
3859
3860     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3861     if (tree) {
3862        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_display_unit (%u) = %s",
3863           u_octet4, (u_octet4 > 0) ? seq : "");
3864     }
3865
3866     g_free(seq);          /*  free buffer  */
3867     seq = NULL;
3868
3869     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3870     if (tree) {
3871        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_format (%u) = %s",
3872           u_octet4, (u_octet4 > 0) ? seq : "");
3873     }
3874
3875     g_free(seq);          /*  free buffer  */
3876     seq = NULL;
3877
3878     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3879     if (tree) {
3880        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_min_value (%u) = %s",
3881           u_octet4, (u_octet4 > 0) ? seq : "");
3882     }
3883
3884     g_free(seq);          /*  free buffer  */
3885     seq = NULL;
3886
3887     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3888     if (tree) {
3889        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_max_value (%u) = %s",
3890           u_octet4, (u_octet4 > 0) ? seq : "");
3891     }
3892
3893     g_free(seq);          /*  free buffer  */
3894     seq = NULL;
3895
3896     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3897     if (tree) {
3898        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_writable_attr_name (%u) = %s",
3899           u_octet4, (u_octet4 > 0) ? seq : "");
3900     }
3901
3902     g_free(seq);          /*  free buffer  */
3903     seq = NULL;
3904
3905     
3906     u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
3907     if (tree) {
3908        proto_tree_add_text(tree,tvb,*offset-4,4,"Enum value = %u (%s)",u_octet4,val_to_str(u_octet4,Tango_DispLevel,"Unknown Enum Value"));
3909     }
3910
3911     /*  Begin struct "Tango_AttributeAlarm"  */
3912
3913     
3914
3915     decode_Tango_AttributeAlarm_st(tvb, pinfo, tree, offset, header, operation);
3916
3917     /*  End struct "Tango_AttributeAlarm"  */
3918
3919     /*  Begin struct "Tango_EventProperties"  */
3920
3921     
3922
3923     decode_Tango_EventProperties_st(tvb, pinfo, tree, offset, header, operation);
3924
3925     /*  End struct "Tango_EventProperties"  */
3926
3927     u_octet4_loop_AttributeConfig_3_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3928     if (tree) {
3929        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_3_extensions = %u",u_octet4_loop_AttributeConfig_3_extensions);
3930     }
3931
3932     for (i_AttributeConfig_3_extensions=0; i_AttributeConfig_3_extensions < u_octet4_loop_AttributeConfig_3_extensions; i_AttributeConfig_3_extensions++) {
3933
3934         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3935         if (tree) {
3936            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_extensions (%u) = %s",
3937               u_octet4, (u_octet4 > 0) ? seq : "");
3938         }
3939
3940         g_free(seq);          /*  free buffer  */
3941         seq = NULL;
3942
3943     }
3944
3945     u_octet4_loop_AttributeConfig_3_sys_extensions = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
3946     if (tree) {
3947        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of AttributeConfig_3_sys_extensions = %u",u_octet4_loop_AttributeConfig_3_sys_extensions);
3948     }
3949
3950     for (i_AttributeConfig_3_sys_extensions=0; i_AttributeConfig_3_sys_extensions < u_octet4_loop_AttributeConfig_3_sys_extensions; i_AttributeConfig_3_sys_extensions++) {
3951
3952         u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3953         if (tree) {
3954            proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"AttributeConfig_3_sys_extensions (%u) = %s",
3955               u_octet4, (u_octet4 > 0) ? seq : "");
3956         }
3957
3958         g_free(seq);          /*  free buffer  */
3959         seq = NULL;
3960
3961     }
3962
3963 }
3964
3965 /* Struct = IDL:Tango/DevInfo:1.0 */
3966
3967 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_) {
3968
3969     gboolean stream_is_big_endian;          /* big endianess */
3970
3971     
3972     /* Operation specific Variable declarations Begin */
3973
3974     guint32   u_octet4;
3975     gchar   *seq = NULL;
3976     gint32    s_octet4;
3977     
3978     /* Operation specific Variable declarations End */
3979
3980     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
3981
3982     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3983     if (tree) {
3984        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_dev_class (%u) = %s",
3985           u_octet4, (u_octet4 > 0) ? seq : "");
3986     }
3987
3988     g_free(seq);          /*  free buffer  */
3989     seq = NULL;
3990
3991     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
3992     if (tree) {
3993        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_server_id (%u) = %s",
3994           u_octet4, (u_octet4 > 0) ? seq : "");
3995     }
3996
3997     g_free(seq);          /*  free buffer  */
3998     seq = NULL;
3999
4000     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4001     if (tree) {
4002        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_server_host (%u) = %s",
4003           u_octet4, (u_octet4 > 0) ? seq : "");
4004     }
4005
4006     g_free(seq);          /*  free buffer  */
4007     seq = NULL;
4008
4009     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
4010     if (tree) {
4011        proto_tree_add_text(tree,tvb,*offset-4,4,"DevInfo_server_version = %i",s_octet4);
4012     }
4013
4014     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4015     if (tree) {
4016        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_doc_url (%u) = %s",
4017           u_octet4, (u_octet4 > 0) ? seq : "");
4018     }
4019
4020     g_free(seq);          /*  free buffer  */
4021     seq = NULL;
4022
4023 }
4024
4025 /* Struct = IDL:Tango/DevInfo_3:1.0 */
4026
4027 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_) {
4028
4029     gboolean stream_is_big_endian;          /* big endianess */
4030
4031     
4032     /* Operation specific Variable declarations Begin */
4033
4034     guint32   u_octet4;
4035     gchar   *seq = NULL;
4036     gint32    s_octet4;
4037     
4038     /* Operation specific Variable declarations End */
4039
4040     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
4041
4042     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4043     if (tree) {
4044        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_dev_class (%u) = %s",
4045           u_octet4, (u_octet4 > 0) ? seq : "");
4046     }
4047
4048     g_free(seq);          /*  free buffer  */
4049     seq = NULL;
4050
4051     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4052     if (tree) {
4053        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_server_id (%u) = %s",
4054           u_octet4, (u_octet4 > 0) ? seq : "");
4055     }
4056
4057     g_free(seq);          /*  free buffer  */
4058     seq = NULL;
4059
4060     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4061     if (tree) {
4062        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_server_host (%u) = %s",
4063           u_octet4, (u_octet4 > 0) ? seq : "");
4064     }
4065
4066     g_free(seq);          /*  free buffer  */
4067     seq = NULL;
4068
4069     s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
4070     if (tree) {
4071        proto_tree_add_text(tree,tvb,*offset-4,4,"DevInfo_3_server_version = %i",s_octet4);
4072     }
4073
4074     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4075     if (tree) {
4076        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_doc_url (%u) = %s",
4077           u_octet4, (u_octet4 > 0) ? seq : "");
4078     }
4079
4080     g_free(seq);          /*  free buffer  */
4081     seq = NULL;
4082
4083     u_octet4 = get_CDR_string(tvb, &seq, offset, stream_is_big_endian, boundary);
4084     if (tree) {
4085        proto_tree_add_text(tree,tvb,*offset-u_octet4,u_octet4,"DevInfo_3_dev_type (%u) = %s",
4086           u_octet4, (u_octet4 > 0) ? seq : "");
4087     }
4088
4089     g_free(seq);          /*  free buffer  */
4090     seq = NULL;
4091
4092 }
4093
4094 /* Struct = IDL:Tango/DevCmdHistory:1.0 */
4095
4096 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_) {
4097
4098     gboolean stream_is_big_endian;          /* big endianess */
4099
4100     
4101     /* Operation specific Variable declarations Begin */
4102
4103     guint8    u_octet1;
4104     guint32   u_octet4_loop_DevCmdHistory_errors;
4105     guint32   i_DevCmdHistory_errors;
4106     
4107     /* Operation specific Variable declarations End */
4108
4109     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
4110
4111     /*  Begin struct "Tango_TimeVal"  */
4112
4113     
4114
4115     decode_Tango_TimeVal_st(tvb, pinfo, tree, offset, header, operation);
4116
4117     /*  End struct "Tango_TimeVal"  */
4118
4119     u_octet1 = get_CDR_boolean(tvb,offset);
4120     if (tree) {
4121        proto_tree_add_text(tree,tvb,*offset-1,1,"DevCmdHistory_cmd_failed = %u",u_octet1);
4122     }
4123
4124     get_CDR_any(tvb,tree,offset,stream_is_big_endian, boundary, header);
4125
4126     u_octet4_loop_DevCmdHistory_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
4127     if (tree) {
4128        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevCmdHistory_errors = %u",u_octet4_loop_DevCmdHistory_errors);
4129     }
4130
4131     for (i_DevCmdHistory_errors=0; i_DevCmdHistory_errors < u_octet4_loop_DevCmdHistory_errors; i_DevCmdHistory_errors++) {
4132
4133         /*  Begin struct "Tango_DevError"  */
4134
4135         
4136
4137         decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation);
4138
4139         /*  End struct "Tango_DevError"  */
4140
4141     }
4142
4143 }
4144
4145 /* Struct = IDL:Tango/DevAttrHistory:1.0 */
4146
4147 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_) {
4148
4149     gboolean stream_is_big_endian;          /* big endianess */
4150
4151     
4152     /* Operation specific Variable declarations Begin */
4153
4154     guint8    u_octet1;
4155     guint32   u_octet4_loop_DevAttrHistory_errors;
4156     guint32   i_DevAttrHistory_errors;
4157     
4158     /* Operation specific Variable declarations End */
4159
4160     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
4161
4162     u_octet1 = get_CDR_boolean(tvb,offset);
4163     if (tree) {
4164        proto_tree_add_text(tree,tvb,*offset-1,1,"DevAttrHistory_attr_failed = %u",u_octet1);
4165     }
4166
4167     /*  Begin struct "Tango_AttributeValue"  */
4168
4169     
4170
4171     decode_Tango_AttributeValue_st(tvb, pinfo, tree, offset, header, operation);
4172
4173     /*  End struct "Tango_AttributeValue"  */
4174
4175     u_octet4_loop_DevAttrHistory_errors = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary);
4176     if (tree) {
4177        proto_tree_add_text(tree,tvb,*offset-4, 4 ,"Seq length of DevAttrHistory_errors = %u",u_octet4_loop_DevAttrHistory_errors);
4178     }
4179
4180     for (i_DevAttrHistory_errors=0; i_DevAttrHistory_errors < u_octet4_loop_DevAttrHistory_errors; i_DevAttrHistory_errors++) {
4181
4182         /*  Begin struct "Tango_DevError"  */
4183
4184         
4185
4186         decode_Tango_DevError_st(tvb, pinfo, tree, offset, header, operation);
4187
4188         /*  End struct "Tango_DevError"  */
4189
4190     }
4191
4192 }
4193
4194 /* Struct = IDL:Tango/DevAttrHistory_3:1.0 */
4195
4196 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_) {
4197
4198     gboolean stream_is_big_endian;          /* big endianess */
4199
4200     
4201     /* Operation specific Variable declarations Begin */
4202
4203     guint8    u_octet1;
4204     
4205     /* Operation specific Variable declarations End */
4206
4207     stream_is_big_endian = is_big_endian(header);  /* get stream endianess */
4208
4209     u_octet1 = get_CDR_boolean(tvb,offset);
4210     if (tree) {
4211        proto_tree_add_text(tree,tvb,*offset-1,1,"DevAttrHistory_3_attr_failed = %u",u_octet1);
4212     }
4213
4214     /*  Begin struct "Tango_AttributeValue_3"  */
4215
4216     
4217
4218     decode_Tango_AttributeValue_3_st(tvb, pinfo, tree, offset, header, operation);
4219
4220     /*  End struct "Tango_AttributeValue_3"  */
4221
4222 }
4223
4224 /*
4225  * Called once we accept the packet as being for us; it sets the
4226  * Protocol and Info columns and creates the top-level protocol
4227  * tree item.
4228  */
4229 static proto_tree *start_dissecting(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset) {
4230
4231     proto_item *ti = NULL;
4232     proto_tree *tree = NULL;            /* init later, inside if(tree) */
4233
4234     col_set_str(pinfo->cinfo, COL_PROTOCOL, "TANGO");
4235
4236     /*
4237      * Do not clear COL_INFO, as nothing is being written there by
4238      * this dissector yet. So leave it as is from the GIOP dissector.
4239      * TODO: add something useful to COL_INFO
4240      *  if (check_col(pinfo->cinfo, COL_INFO))
4241      *     col_clear(pinfo->cinfo, COL_INFO);
4242      */
4243
4244     if (ptree) {
4245         ti = proto_tree_add_item(ptree, proto_tango, tvb, *offset, -1, FALSE);
4246         tree = proto_item_add_subtree(ti, ett_tango);
4247     }
4248     return tree;
4249 }
4250
4251 static gboolean dissect_tango(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset, MessageHeader *header, gchar *operation, gchar *idlname) {
4252
4253     gboolean be;                        /* big endianess */
4254     proto_tree *tree _U_;
4255
4256     be = is_big_endian(header);         /* get endianess - TODO use passed in stream_is_big_endian instead ? */
4257
4258     /* If we have a USER Exception, then decode it and return */
4259
4260     if ((header->message_type == Reply) && (header->rep_status == USER_EXCEPTION)) {
4261
4262        return decode_user_exception(tvb, pinfo, ptree, offset, header, operation);
4263
4264     }
4265
4266     switch(header->message_type) {
4267
4268     case Request:
4269     case Reply:
4270
4271         if (strcmp(operation, Tango_Device_command_inout_op) == 0
4272             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4273            tree = start_dissecting(tvb, pinfo, ptree, offset);
4274            decode_Tango_Device_command_inout(tvb, pinfo, tree, offset, header, operation);
4275            return TRUE;
4276         }
4277
4278         if (strcmp(operation, Tango_Device_get_attribute_config_op) == 0
4279             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4280            tree = start_dissecting(tvb, pinfo, ptree, offset);
4281            decode_Tango_Device_get_attribute_config(tvb, pinfo, tree, offset, header, operation);
4282            return TRUE;
4283         }
4284
4285         if (strcmp(operation, Tango_Device_set_attribute_config_op) == 0
4286             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4287            tree = start_dissecting(tvb, pinfo, ptree, offset);
4288            decode_Tango_Device_set_attribute_config(tvb, pinfo, tree, offset, header, operation);
4289            return TRUE;
4290         }
4291
4292         if (strcmp(operation, Tango_Device_read_attributes_op) == 0
4293             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4294            tree = start_dissecting(tvb, pinfo, ptree, offset);
4295            decode_Tango_Device_read_attributes(tvb, pinfo, tree, offset, header, operation);
4296            return TRUE;
4297         }
4298
4299         if (strcmp(operation, Tango_Device_write_attributes_op) == 0
4300             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4301            tree = start_dissecting(tvb, pinfo, ptree, offset);
4302            decode_Tango_Device_write_attributes(tvb, pinfo, tree, offset, header, operation);
4303            return TRUE;
4304         }
4305
4306         if (strcmp(operation, Tango_Device_ping_op) == 0
4307             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4308            tree = start_dissecting(tvb, pinfo, ptree, offset);
4309            decode_Tango_Device_ping(tvb, pinfo, tree, offset, header, operation);
4310            return TRUE;
4311         }
4312
4313         if (strcmp(operation, Tango_Device_black_box_op) == 0
4314             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4315            tree = start_dissecting(tvb, pinfo, ptree, offset);
4316            decode_Tango_Device_black_box(tvb, pinfo, tree, offset, header, operation);
4317            return TRUE;
4318         }
4319
4320         if (strcmp(operation, Tango_Device_info_op) == 0
4321             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4322            tree = start_dissecting(tvb, pinfo, ptree, offset);
4323            decode_Tango_Device_info(tvb, pinfo, tree, offset, header, operation);
4324            return TRUE;
4325         }
4326
4327         if (strcmp(operation, Tango_Device_command_list_query_op) == 0
4328             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4329            tree = start_dissecting(tvb, pinfo, ptree, offset);
4330            decode_Tango_Device_command_list_query(tvb, pinfo, tree, offset, header, operation);
4331            return TRUE;
4332         }
4333
4334         if (strcmp(operation, Tango_Device_command_query_op) == 0
4335             && (!idlname || strcmp(idlname, "Tango/Device") == 0)) {
4336            tree = start_dissecting(tvb, pinfo, ptree, offset);
4337            decode_Tango_Device_command_query(tvb, pinfo, tree, offset, header, operation);
4338            return TRUE;
4339         }
4340
4341         if (strcmp(operation, Tango_Device_2_command_inout_2_op) == 0
4342             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4343            tree = start_dissecting(tvb, pinfo, ptree, offset);
4344            decode_Tango_Device_2_command_inout_2(tvb, pinfo, tree, offset, header, operation);
4345            return TRUE;
4346         }
4347
4348         if (strcmp(operation, Tango_Device_2_read_attributes_2_op) == 0
4349             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4350            tree = start_dissecting(tvb, pinfo, ptree, offset);
4351            decode_Tango_Device_2_read_attributes_2(tvb, pinfo, tree, offset, header, operation);
4352            return TRUE;
4353         }
4354
4355         if (strcmp(operation, Tango_Device_2_get_attribute_config_2_op) == 0
4356             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4357            tree = start_dissecting(tvb, pinfo, ptree, offset);
4358            decode_Tango_Device_2_get_attribute_config_2(tvb, pinfo, tree, offset, header, operation);
4359            return TRUE;
4360         }
4361
4362         if (strcmp(operation, Tango_Device_2_command_list_query_2_op) == 0
4363             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4364            tree = start_dissecting(tvb, pinfo, ptree, offset);
4365            decode_Tango_Device_2_command_list_query_2(tvb, pinfo, tree, offset, header, operation);
4366            return TRUE;
4367         }
4368
4369         if (strcmp(operation, Tango_Device_2_command_query_2_op) == 0
4370             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4371            tree = start_dissecting(tvb, pinfo, ptree, offset);
4372            decode_Tango_Device_2_command_query_2(tvb, pinfo, tree, offset, header, operation);
4373            return TRUE;
4374         }
4375
4376         if (strcmp(operation, Tango_Device_2_command_inout_history_2_op) == 0
4377             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4378            tree = start_dissecting(tvb, pinfo, ptree, offset);
4379            decode_Tango_Device_2_command_inout_history_2(tvb, pinfo, tree, offset, header, operation);
4380            return TRUE;
4381         }
4382
4383         if (strcmp(operation, Tango_Device_2_read_attribute_history_2_op) == 0
4384             && (!idlname || strcmp(idlname, "Tango/Device_2") == 0)) {
4385            tree = start_dissecting(tvb, pinfo, ptree, offset);
4386            decode_Tango_Device_2_read_attribute_history_2(tvb, pinfo, tree, offset, header, operation);
4387            return TRUE;
4388         }
4389
4390         if (strcmp(operation, Tango_Device_3_read_attributes_3_op) == 0
4391             && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4392            tree = start_dissecting(tvb, pinfo, ptree, offset);
4393            decode_Tango_Device_3_read_attributes_3(tvb, pinfo, tree, offset, header, operation);
4394            return TRUE;
4395         }
4396
4397         if (strcmp(operation, Tango_Device_3_write_attributes_3_op) == 0
4398             && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4399            tree = start_dissecting(tvb, pinfo, ptree, offset);
4400            decode_Tango_Device_3_write_attributes_3(tvb, pinfo, tree, offset, header, operation);
4401            return TRUE;
4402         }
4403
4404         if (strcmp(operation, Tango_Device_3_read_attribute_history_3_op) == 0
4405             && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4406            tree = start_dissecting(tvb, pinfo, ptree, offset);
4407            decode_Tango_Device_3_read_attribute_history_3(tvb, pinfo, tree, offset, header, operation);
4408            return TRUE;
4409         }
4410
4411         if (strcmp(operation, Tango_Device_3_info_3_op) == 0
4412             && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4413            tree = start_dissecting(tvb, pinfo, ptree, offset);
4414            decode_Tango_Device_3_info_3(tvb, pinfo, tree, offset, header, operation);
4415            return TRUE;
4416         }
4417
4418         if (strcmp(operation, Tango_Device_3_get_attribute_config_3_op) == 0
4419             && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4420            tree = start_dissecting(tvb, pinfo, ptree, offset);
4421            decode_Tango_Device_3_get_attribute_config_3(tvb, pinfo, tree, offset, header, operation);
4422            return TRUE;
4423         }
4424
4425         if (strcmp(operation, Tango_Device_3_set_attribute_config_3_op) == 0
4426             && (!idlname || strcmp(idlname, "Tango/Device_3") == 0)) {
4427            tree = start_dissecting(tvb, pinfo, ptree, offset);
4428            decode_Tango_Device_3_set_attribute_config_3(tvb, pinfo, tree, offset, header, operation);
4429            return TRUE;
4430         }
4431
4432         if (strcmp(operation, get_Tango_Device_name_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4433            tree = start_dissecting(tvb, pinfo, ptree, offset);
4434            decode_get_Tango_Device_name_at(tvb, pinfo, tree, offset, header, operation);
4435            return TRUE;
4436         }
4437
4438         if (strcmp(operation, get_Tango_Device_description_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4439            tree = start_dissecting(tvb, pinfo, ptree, offset);
4440            decode_get_Tango_Device_description_at(tvb, pinfo, tree, offset, header, operation);
4441            return TRUE;
4442         }
4443
4444         if (strcmp(operation, get_Tango_Device_state_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4445            tree = start_dissecting(tvb, pinfo, ptree, offset);
4446            decode_get_Tango_Device_state_at(tvb, pinfo, tree, offset, header, operation);
4447            return TRUE;
4448         }
4449
4450         if (strcmp(operation, get_Tango_Device_status_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4451            tree = start_dissecting(tvb, pinfo, ptree, offset);
4452            decode_get_Tango_Device_status_at(tvb, pinfo, tree, offset, header, operation);
4453            return TRUE;
4454         }
4455
4456         if (strcmp(operation, get_Tango_Device_adm_name_at) == 0 && (header->message_type == Reply) && (header->rep_status == NO_EXCEPTION) ) {
4457            tree = start_dissecting(tvb, pinfo, ptree, offset);
4458            decode_get_Tango_Device_adm_name_at(tvb, pinfo, tree, offset, header, operation);
4459            return TRUE;
4460         }
4461
4462         
4463         break;
4464
4465     case CancelRequest:
4466     case LocateRequest:
4467     case LocateReply:
4468     case CloseConnection:
4469     case MessageError:
4470     case Fragment:
4471        return FALSE;      /* not handled yet */
4472
4473     default:
4474        return FALSE;      /* not handled yet */
4475
4476     }   /* switch */
4477
4478
4479     return FALSE;
4480
4481 }  /* End of main dissector  */
4482
4483
4484
4485 /* Register the protocol with Wireshark */
4486
4487 void proto_register_giop_tango(void) {
4488
4489    /* setup list of header fields */
4490
4491 #if 0
4492    static hf_register_info hf[] = {
4493
4494       /* no fields yet */
4495
4496    };
4497 #endif
4498
4499    /* setup protocol subtree array */
4500
4501    static gint *ett[] = {
4502       &ett_tango,
4503    };
4504
4505    /* Register the protocol name and description */
4506
4507    proto_tango = proto_register_protocol("Tango Dissector Using GIOP API" , "TANGO", "giop-tango" );
4508
4509 #if 0
4510    proto_register_field_array(proto_tango, hf, array_length(hf));
4511 #endif
4512    proto_register_subtree_array(ett,array_length(ett));
4513
4514 }
4515
4516
4517 /* register me as handler for these interfaces */
4518
4519 void proto_register_handoff_giop_tango(void) {
4520
4521
4522     
4523     /* Register for Explicit Dissection */
4524
4525     register_giop_user_module(dissect_tango, "TANGO", "Tango/Device", proto_tango );     /* explicit dissector */
4526
4527     
4528     /* Register for Explicit Dissection */
4529
4530     register_giop_user_module(dissect_tango, "TANGO", "Tango/Device_2", proto_tango );     /* explicit dissector */
4531
4532     
4533     /* Register for Explicit Dissection */
4534
4535     register_giop_user_module(dissect_tango, "TANGO", "Tango/Device_3", proto_tango );     /* explicit dissector */
4536
4537     
4538     /* Register for Heuristic Dissection */
4539
4540     register_giop_user(dissect_tango, "TANGO" ,proto_tango);     /* heuristic dissector */
4541
4542
4543 }
4544
4545
4546 #ifndef ENABLE_STATIC
4547
4548 G_MODULE_EXPORT void
4549 plugin_register(void)
4550 {
4551    if (proto_tango == -1) {
4552      proto_register_giop_tango();
4553    }
4554 }
4555
4556 G_MODULE_EXPORT void
4557 plugin_reg_handoff(void){
4558    proto_register_handoff_giop_tango();
4559 }
4560 #endif
4561