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