2 * Routines for Common Image Generator Interface
3 * (Versions 2 and 3 ) dissection
4 * CIGI - http://cigi.sourceforge.net/
5 * Copyright (c) 2005 The Boeing Company
9 * Wireshark - Network traffic analyzer
10 * By Gerald Combs <gerald@wireshark.org>
11 * Copyright 1998 Gerald Combs
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 * Kyle J. Harms <kyle.j.harms@boeing.com>
29 * Brian M. Ames <bmames@apk.net>
42 #include <epan/packet.h>
43 #include <epan/prefs.h>
45 /* Forward declaration */
46 void proto_reg_handoff_cigi(void);
47 static gboolean packet_is_cigi(tvbuff_t*);
48 static gboolean dissect_cigi_heur(tvbuff_t*, packet_info*, proto_tree*);
49 static int dissect_cigi(tvbuff_t*, packet_info*, proto_tree*);
50 static void dissect_cigi_pdu(tvbuff_t*, packet_info*, proto_tree*);
51 static void cigi_add_tree(tvbuff_t*, proto_tree*);
52 static gint cigi_add_data(tvbuff_t*, proto_tree*, gint);
54 static void cigi2_add_tree(tvbuff_t*, proto_tree*);
55 static gint cigi2_add_ig_control(tvbuff_t*, proto_tree*, gint);
56 static gint cigi2_add_entity_control(tvbuff_t*, proto_tree*, gint);
57 static gint cigi2_add_component_control(tvbuff_t*, proto_tree*, gint);
58 static gint cigi2_add_articulated_parts_control(tvbuff_t*, proto_tree*, gint);
59 static gint cigi2_add_rate_control(tvbuff_t*, proto_tree*, gint);
60 static gint cigi2_add_environment_control(tvbuff_t*, proto_tree*, gint);
61 static gint cigi2_add_weather_control(tvbuff_t*, proto_tree*, gint);
62 static gint cigi2_add_view_control(tvbuff_t*, proto_tree*, gint);
63 static gint cigi2_add_sensor_control(tvbuff_t*, proto_tree*, gint);
64 static gint cigi2_add_trajectory_definition(tvbuff_t*, proto_tree*, gint);
65 static gint cigi2_add_special_effect_definition(tvbuff_t*, proto_tree*, gint);
66 static gint cigi2_add_view_definition(tvbuff_t*, proto_tree*, gint);
67 static gint cigi2_add_collision_detection_segment_definition(tvbuff_t*, proto_tree*, gint);
68 static gint cigi2_add_collision_detection_volume_definition(tvbuff_t*, proto_tree*, gint);
69 static gint cigi2_add_height_above_terrain_request(tvbuff_t*, proto_tree*, gint);
70 static gint cigi2_add_line_of_sight_occult_request(tvbuff_t*, proto_tree*, gint);
71 static gint cigi2_add_line_of_sight_range_request(tvbuff_t*, proto_tree*, gint);
72 static gint cigi2_add_height_of_terrain_request(tvbuff_t*, proto_tree*, gint);
73 static gint cigi2_add_start_of_frame(tvbuff_t*, proto_tree*, gint);
74 static gint cigi2_add_height_above_terrain_response(tvbuff_t*, proto_tree*, gint);
75 static gint cigi2_add_line_of_sight_response(tvbuff_t*, proto_tree*, gint);
76 static gint cigi2_add_collision_detection_segment_response(tvbuff_t*, proto_tree*, gint);
77 static gint cigi2_add_sensor_response(tvbuff_t*, proto_tree*, gint);
78 static gint cigi2_add_height_of_terrain_response(tvbuff_t*, proto_tree*, gint);
79 static gint cigi2_add_collision_detection_volume_response(tvbuff_t*, proto_tree*, gint);
80 static gint cigi2_add_image_generator_message(tvbuff_t*, proto_tree*, gint);
82 static void cigi3_add_tree(tvbuff_t*, proto_tree*);
83 static gint cigi3_add_ig_control(tvbuff_t*, proto_tree*, gint);
84 static gint cigi3_add_entity_control(tvbuff_t*, proto_tree*, gint);
85 static gint cigi3_add_conformal_clamped_entity_control(tvbuff_t*, proto_tree*, gint);
86 static gint cigi3_add_component_control(tvbuff_t*, proto_tree*, gint);
87 static gint cigi3_add_short_component_control(tvbuff_t*, proto_tree*, gint);
88 static gint cigi3_add_articulated_part_control(tvbuff_t*, proto_tree*, gint);
89 static gint cigi3_add_short_articulated_part_control(tvbuff_t*, proto_tree*, gint);
90 static gint cigi3_add_rate_control(tvbuff_t*, proto_tree*, gint);
91 static gint cigi3_add_celestial_sphere_control(tvbuff_t*, proto_tree*, gint);
92 static gint cigi3_add_atmosphere_control(tvbuff_t*, proto_tree*, gint);
93 static gint cigi3_add_environmental_region_control(tvbuff_t*, proto_tree*, gint);
94 static gint cigi3_add_weather_control(tvbuff_t*, proto_tree*, gint);
95 static gint cigi3_add_maritime_surface_conditions_control(tvbuff_t*, proto_tree*, gint);
96 static gint cigi3_add_wave_control(tvbuff_t*, proto_tree*, gint);
97 static gint cigi3_add_terrestrial_surface_conditions_control(tvbuff_t*, proto_tree*, gint);
98 static gint cigi3_add_view_control(tvbuff_t*, proto_tree*, gint);
99 static gint cigi3_add_sensor_control(tvbuff_t*, proto_tree*, gint);
100 static gint cigi3_add_motion_tracker_control(tvbuff_t*, proto_tree*, gint);
101 static gint cigi3_add_earth_reference_model_definition(tvbuff_t*, proto_tree*, gint);
102 static gint cigi3_add_trajectory_definition(tvbuff_t*, proto_tree*, gint);
103 static gint cigi3_add_view_definition(tvbuff_t*, proto_tree*, gint);
104 static gint cigi3_add_collision_detection_segment_definition(tvbuff_t*, proto_tree*, gint);
105 static gint cigi3_add_collision_detection_volume_definition(tvbuff_t*, proto_tree*, gint);
106 static gint cigi3_add_hat_hot_request(tvbuff_t*, proto_tree*, gint);
107 static gint cigi3_add_line_of_sight_segment_request(tvbuff_t*, proto_tree*, gint);
108 static gint cigi3_add_line_of_sight_vector_request(tvbuff_t*, proto_tree*, gint);
109 static gint cigi3_add_position_request(tvbuff_t*, proto_tree*, gint);
110 static gint cigi3_add_environmental_conditions_request(tvbuff_t*, proto_tree*, gint);
111 static gint cigi3_add_start_of_frame(tvbuff_t*, proto_tree*, gint);
112 static gint cigi3_add_hat_hot_response(tvbuff_t*, proto_tree*, gint);
113 static gint cigi3_add_hat_hot_extended_response(tvbuff_t*, proto_tree*, gint);
114 static gint cigi3_add_line_of_sight_response(tvbuff_t*, proto_tree*, gint);
115 static gint cigi3_add_line_of_sight_extended_response(tvbuff_t*, proto_tree*, gint);
116 static gint cigi3_add_sensor_response(tvbuff_t*, proto_tree*, gint);
117 static gint cigi3_add_sensor_extended_response(tvbuff_t*, proto_tree*, gint);
118 static gint cigi3_add_position_response(tvbuff_t*, proto_tree*, gint);
119 static gint cigi3_add_weather_conditions_response(tvbuff_t*, proto_tree*, gint);
120 static gint cigi3_add_aerosol_concentration_response(tvbuff_t*, proto_tree*, gint);
121 static gint cigi3_add_maritime_surface_conditions_response(tvbuff_t*, proto_tree*, gint);
122 static gint cigi3_add_terrestrial_surface_conditions_response(tvbuff_t*, proto_tree*, gint);
123 static gint cigi3_add_collision_detection_segment_notification(tvbuff_t*, proto_tree*, gint);
124 static gint cigi3_add_collision_detection_volume_notification(tvbuff_t*, proto_tree*, gint);
125 static gint cigi3_add_animation_stop_notification(tvbuff_t*, proto_tree*, gint);
126 static gint cigi3_add_event_notification(tvbuff_t*, proto_tree*, gint);
127 static gint cigi3_add_image_generator_message(tvbuff_t*, proto_tree*, gint);
129 static gint cigi3_2_add_ig_control(tvbuff_t*, proto_tree*, gint);
130 static gint cigi3_2_add_rate_control(tvbuff_t*, proto_tree*, gint);
131 static gint cigi3_2_add_hat_hot_request(tvbuff_t*, proto_tree*, gint);
132 static gint cigi3_2_add_line_of_sight_segment_request(tvbuff_t*, proto_tree*, gint);
133 static gint cigi3_2_add_line_of_sight_vector_request(tvbuff_t*, proto_tree*, gint);
134 static gint cigi3_2_add_start_of_frame(tvbuff_t*, proto_tree*, gint);
135 static gint cigi3_2_add_hat_hot_response(tvbuff_t*, proto_tree*, gint);
136 static gint cigi3_2_add_hat_hot_extended_response(tvbuff_t*, proto_tree*, gint);
137 static gint cigi3_2_add_line_of_sight_response(tvbuff_t*, proto_tree*, gint);
138 static gint cigi3_2_add_line_of_sight_extended_response(tvbuff_t*, proto_tree*, gint);
140 static gint cigi3_3_add_ig_control(tvbuff_t*, proto_tree*, gint);
141 static gint cigi3_3_add_entity_control(tvbuff_t*, proto_tree*, gint);
142 static gint cigi3_3_add_component_control(tvbuff_t*, proto_tree*, gint);
143 static gint cigi3_3_add_short_component_control(tvbuff_t*, proto_tree*, gint);
144 static gint cigi3_3_add_symbol_surface_definition(tvbuff_t*, proto_tree*, gint);
145 static gint cigi3_3_add_symbol_text_definition(tvbuff_t*, proto_tree*, gint);
146 static gint cigi3_3_add_symbol_circle_definition(tvbuff_t*, proto_tree*, gint);
147 static gint cigi3_3_add_symbol_line_definition(tvbuff_t*, proto_tree*, gint);
148 static gint cigi3_3_add_symbol_clone(tvbuff_t*, proto_tree*, gint);
149 static gint cigi3_3_add_symbol_control(tvbuff_t*, proto_tree*, gint);
150 static gint cigi3_3_add_short_symbol_control(tvbuff_t*, proto_tree*, gint);
153 static gfloat tvb_get_fixed_point(tvbuff_t*, int, gint);
156 static dissector_handle_t cigi_handle;
158 /* Initialize the protocol and registered fields */
159 static int proto_cigi = -1;
161 static const true_false_string cigi_enable_tfs = {
166 static const true_false_string cigi_valid_tfs = {
172 /* All CIGI Versions */
173 static int hf_cigi_src_port = -1;
174 static int hf_cigi_dest_port = -1;
175 static int hf_cigi_port = -1;
177 static int hf_cigi_packet_id = -1;
178 static int hf_cigi_packet_size = -1;
179 static int hf_cigi_version = -1;
181 static int hf_cigi_frame_size = -1;
183 static int hf_cigi_unknown = -1;
186 /*** Fields for CIGI2 ***/
188 /* CIGI2 Packet ID */
189 static int hf_cigi2_packet_id = -1;
190 #define CIGI2_PACKET_ID_IG_CONTROL 1
191 #define CIGI2_PACKET_ID_ENTITY_CONTROL 2
192 #define CIGI2_PACKET_ID_COMPONENT_CONTROL 3
193 #define CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL 4
194 #define CIGI2_PACKET_ID_RATE_CONTROL 5
195 #define CIGI2_PACKET_ID_ENVIRONMENT_CONTROL 6
196 #define CIGI2_PACKET_ID_WEATHER_CONTROL 7
197 #define CIGI2_PACKET_ID_VIEW_CONTROL 8
198 #define CIGI2_PACKET_ID_SENSOR_CONTROL 9
199 #define CIGI2_PACKET_ID_TRAJECTORY_DEFINITION 21
200 #define CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION 22
201 #define CIGI2_PACKET_ID_VIEW_DEFINITION 23
202 #define CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION 24
203 #define CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION 25
204 #define CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST 41
205 #define CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST 42
206 #define CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST 43
207 #define CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST 44
208 #define CIGI2_PACKET_ID_START_OF_FRAME 101
209 #define CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE 102
210 #define CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE 103
211 #define CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE 104
212 #define CIGI2_PACKET_ID_SENSOR_RESPONSE 105
213 #define CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE 106
214 #define CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE 107
215 #define CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE 108
216 #define CIGI2_PACKET_ID_USER_DEFINABLE_MIN 236
217 #define CIGI2_PACKET_ID_USER_DEFINABLE_MAX 255
218 static const value_string cigi2_packet_id_vals[] = {
219 {CIGI2_PACKET_ID_IG_CONTROL, "IG Control"},
220 {CIGI2_PACKET_ID_ENTITY_CONTROL, "Entity Control"},
221 {CIGI2_PACKET_ID_COMPONENT_CONTROL, "Component Control"},
222 {CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL, "Articulated Parts Control"},
223 {CIGI2_PACKET_ID_RATE_CONTROL, "Rate Control"},
224 {CIGI2_PACKET_ID_ENVIRONMENT_CONTROL, "Environment Control"},
225 {CIGI2_PACKET_ID_WEATHER_CONTROL, "Weather Control"},
226 {CIGI2_PACKET_ID_VIEW_CONTROL, "View Control"},
227 {CIGI2_PACKET_ID_SENSOR_CONTROL, "Sensor Control"},
228 {CIGI2_PACKET_ID_TRAJECTORY_DEFINITION, "Trajectory Definition"},
229 {CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION, "Special Effect Definition"},
230 {CIGI2_PACKET_ID_VIEW_DEFINITION, "View Definition"},
231 {CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION, "Collision Detection Segment Definition"},
232 {CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION, "Collision Detection Volume Definition"},
233 {CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST, "Height Above Terrain Request"},
234 {CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST, "Line of Sight Occult Request"},
235 {CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST, "Line of Sight Range Request"},
236 {CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST, "Height of Terrain Request"},
237 {CIGI2_PACKET_ID_START_OF_FRAME, "Start of Frame"},
238 {CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE, "Height Above Terrain Response"},
239 {CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE, "Line of Sight Response"},
240 {CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE, "Collision Detection Segment Response"},
241 {CIGI2_PACKET_ID_SENSOR_RESPONSE, "Sensor Response"},
242 {CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE, "Height of Terrain Response"},
243 {CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE, "Collision Detection Volume Response"},
244 {CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE, "Image Generator Message"},
245 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN, "User Definable"},
246 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+1, "User Definable"},
247 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+2, "User Definable"},
248 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+3, "User Definable"},
249 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+4, "User Definable"},
250 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+5, "User Definable"},
251 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+6, "User Definable"},
252 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+7, "User Definable"},
253 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+8, "User Definable"},
254 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+9, "User Definable"},
255 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+10, "User Definable"},
256 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+11, "User Definable"},
257 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+12, "User Definable"},
258 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+13, "User Definable"},
259 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+14, "User Definable"},
260 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+15, "User Definable"},
261 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+16, "User Definable"},
262 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+17, "User Definable"},
263 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+18, "User Definable"},
264 {CIGI2_PACKET_ID_USER_DEFINABLE_MAX, "User Definable"},
268 /* CIGI2 IG Control */
269 #define CIGI2_PACKET_SIZE_IG_CONTROL 16
270 static int hf_cigi2_ig_control = -1;
271 static int hf_cigi2_ig_control_db_number = -1;
272 static int hf_cigi2_ig_control_ig_mode = -1;
273 static int hf_cigi2_ig_control_tracking_enable = -1;
274 static int hf_cigi2_ig_control_boresight = -1;
275 static int hf_cigi2_ig_control_frame_ctr = -1;
276 static int hf_cigi2_ig_control_time_tag = -1;
278 static const value_string cigi2_ig_control_ig_mode_vals[] = {
279 {0, "Standby/Reset"},
285 /* CIGI2 Entity Control */
286 #define CIGI2_PACKET_SIZE_ENTITY_CONTROL 56
287 static int hf_cigi2_entity_control = -1;
288 static int hf_cigi2_entity_control_entity_id = -1;
289 static int hf_cigi2_entity_control_entity_state = -1;
290 static int hf_cigi2_entity_control_attach_state = -1;
291 static int hf_cigi2_entity_control_collision_detect = -1;
292 static int hf_cigi2_entity_control_effect_state = -1;
293 static int hf_cigi2_entity_control_type = -1;
294 static int hf_cigi2_entity_control_parent_id = -1;
295 static int hf_cigi2_entity_control_opacity = -1;
296 static int hf_cigi2_entity_control_internal_temp = -1;
297 static int hf_cigi2_entity_control_roll = -1;
298 static int hf_cigi2_entity_control_pitch = -1;
299 static int hf_cigi2_entity_control_heading = -1;
300 static int hf_cigi2_entity_control_alt = -1;
301 static int hf_cigi2_entity_control_lat = -1;
302 static int hf_cigi2_entity_control_lon = -1;
304 static const value_string cigi2_entity_control_entity_state_vals[] = {
311 static const true_false_string cigi2_entity_control_attach_state_tfs = {
316 static const value_string cigi2_entity_control_effect_state_vals[] = {
323 /* CIGI2 Component Control */
324 #define CIGI2_PACKET_SIZE_COMPONENT_CONTROL 20
325 static int hf_cigi2_component_control = -1;
326 static int hf_cigi2_component_control_instance_id = -1;
327 static int hf_cigi2_component_control_component_class = -1;
328 static int hf_cigi2_component_control_component_id = -1;
329 static int hf_cigi2_component_control_component_state = -1;
330 static int hf_cigi2_component_control_component_val1 = -1;
331 static int hf_cigi2_component_control_component_val2 = -1;
333 static const value_string cigi2_component_control_component_class_vals[] = {
343 /* CIGI2 Articulated Parts Control */
344 #define CIGI2_PACKET_SIZE_ARTICULATED_PARTS_CONTROL 32
345 static int hf_cigi2_articulated_parts_control = -1;
346 static int hf_cigi2_articulated_parts_control_entity_id = -1;
347 static int hf_cigi2_articulated_parts_control_part_id = -1;
348 static int hf_cigi2_articulated_parts_control_part_state = -1;
349 static int hf_cigi2_articulated_parts_control_xoff_enable = -1;
350 static int hf_cigi2_articulated_parts_control_yoff_enable = -1;
351 static int hf_cigi2_articulated_parts_control_zoff_enable = -1;
352 static int hf_cigi2_articulated_parts_control_roll_enable = -1;
353 static int hf_cigi2_articulated_parts_control_pitch_enable = -1;
354 static int hf_cigi2_articulated_parts_control_yaw_enable = -1;
355 static int hf_cigi2_articulated_parts_control_x_offset = -1;
356 static int hf_cigi2_articulated_parts_control_y_offset = -1;
357 static int hf_cigi2_articulated_parts_control_z_offset = -1;
358 static int hf_cigi2_articulated_parts_control_roll = -1;
359 static int hf_cigi2_articulated_parts_control_pitch = -1;
360 static int hf_cigi2_articulated_parts_control_yaw = -1;
362 /* CIGI2 Rate Control */
363 #define CIGI2_PACKET_SIZE_RATE_CONTROL 32
364 static int hf_cigi2_rate_control = -1;
365 static int hf_cigi2_rate_control_entity_id = -1;
366 static int hf_cigi2_rate_control_part_id = -1;
367 static int hf_cigi2_rate_control_x_rate = -1;
368 static int hf_cigi2_rate_control_y_rate = -1;
369 static int hf_cigi2_rate_control_z_rate = -1;
370 static int hf_cigi2_rate_control_roll_rate = -1;
371 static int hf_cigi2_rate_control_pitch_rate = -1;
372 static int hf_cigi2_rate_control_yaw_rate = -1;
374 /* CIGI2 Environmental Control */
375 #define CIGI2_PACKET_SIZE_ENVIRONMENT_CONTROL 36
376 static int hf_cigi2_environment_control = -1;
377 static int hf_cigi2_environment_control_hour = -1;
378 static int hf_cigi2_environment_control_minute = -1;
379 static int hf_cigi2_environment_control_ephemeris_enable = -1;
380 static int hf_cigi2_environment_control_humidity = -1;
381 static int hf_cigi2_environment_control_modtran_enable = -1;
382 static int hf_cigi2_environment_control_date = -1;
383 static int hf_cigi2_environment_control_air_temp = -1;
384 static int hf_cigi2_environment_control_global_visibility = -1;
385 static int hf_cigi2_environment_control_wind_speed = -1;
386 static int hf_cigi2_environment_control_wind_direction = -1;
387 static int hf_cigi2_environment_control_pressure = -1;
388 static int hf_cigi2_environment_control_aerosol = -1;
390 /* CIGI2 Weather Control */
391 #define CIGI2_PACKET_SIZE_WEATHER_CONTROL 44
392 static int hf_cigi2_weather_control = -1;
393 static int hf_cigi2_weather_control_entity_id = -1;
394 static int hf_cigi2_weather_control_weather_enable = -1;
395 static int hf_cigi2_weather_control_scud_enable = -1;
396 static int hf_cigi2_weather_control_random_winds = -1;
397 static int hf_cigi2_weather_control_severity = -1;
398 static int hf_cigi2_weather_control_phenomenon_type = -1;
399 static int hf_cigi2_weather_control_air_temp = -1;
400 static int hf_cigi2_weather_control_opacity = -1;
401 static int hf_cigi2_weather_control_scud_frequency = -1;
402 static int hf_cigi2_weather_control_coverage = -1;
403 static int hf_cigi2_weather_control_elevation = -1;
404 static int hf_cigi2_weather_control_thickness = -1;
405 static int hf_cigi2_weather_control_transition_band = -1;
406 static int hf_cigi2_weather_control_wind_speed = -1;
407 static int hf_cigi2_weather_control_wind_direction = -1;
409 static const value_string cigi2_weather_control_phenomenon_type_vals[] = {
410 {0, "Use Entity ID"},
411 {1, "Cloud Layer 1"},
412 {2, "Cloud Layer 2"},
420 /* CIGI2 View Control */
421 #define CIGI2_PACKET_SIZE_VIEW_CONTROL 32
422 static int hf_cigi2_view_control = -1;
423 static int hf_cigi2_view_control_entity_id = -1;
424 static int hf_cigi2_view_control_view_id = -1;
425 static int hf_cigi2_view_control_view_group = -1;
426 static int hf_cigi2_view_control_xoff_enable = -1;
427 static int hf_cigi2_view_control_yoff_enable = -1;
428 static int hf_cigi2_view_control_zoff_enable = -1;
429 static int hf_cigi2_view_control_roll_enable = -1;
430 static int hf_cigi2_view_control_pitch_enable = -1;
431 static int hf_cigi2_view_control_yaw_enable = -1;
432 static int hf_cigi2_view_control_x_offset = -1;
433 static int hf_cigi2_view_control_y_offset = -1;
434 static int hf_cigi2_view_control_z_offset = -1;
435 static int hf_cigi2_view_control_roll = -1;
436 static int hf_cigi2_view_control_pitch = -1;
437 static int hf_cigi2_view_control_yaw = -1;
439 /* CIGI2 Sensor Control */
440 #define CIGI2_PACKET_SIZE_SENSOR_CONTROL 24
441 static int hf_cigi2_sensor_control = -1;
442 static int hf_cigi2_sensor_control_view_id = -1;
443 static int hf_cigi2_sensor_control_sensor_enable = -1;
444 static int hf_cigi2_sensor_control_polarity = -1;
445 static int hf_cigi2_sensor_control_line_dropout = -1;
446 static int hf_cigi2_sensor_control_sensor_id = -1;
447 static int hf_cigi2_sensor_control_track_mode = -1;
448 static int hf_cigi2_sensor_control_auto_gain = -1;
449 static int hf_cigi2_sensor_control_track_polarity = -1;
450 static int hf_cigi2_sensor_control_gain = -1;
451 static int hf_cigi2_sensor_control_level = -1;
452 static int hf_cigi2_sensor_control_ac_coupling = -1;
453 static int hf_cigi2_sensor_control_noise = -1;
455 static const true_false_string cigi2_sensor_control_polarity_tfs = {
460 static const value_string cigi2_sensor_control_track_mode_vals[] = {
462 {1, "Force Correlate"},
469 /* CIGI2 Trajectory Definition */
470 #define CIGI2_PACKET_SIZE_TRAJECTORY_DEFINITION 16
471 static int hf_cigi2_trajectory_definition = -1;
472 static int hf_cigi2_trajectory_definition_entity_id = -1;
473 static int hf_cigi2_trajectory_definition_acceleration = -1;
474 static int hf_cigi2_trajectory_definition_retardation = -1;
475 static int hf_cigi2_trajectory_definition_terminal_velocity = -1;
477 /* CIGI2 Special Effect Definition */
478 #define CIGI2_PACKET_SIZE_SPECIAL_EFFECT_DEFINITION 32
479 static int hf_cigi2_special_effect_definition = -1;
480 static int hf_cigi2_special_effect_definition_entity_id = -1;
481 static int hf_cigi2_special_effect_definition_seq_direction = -1;
482 static int hf_cigi2_special_effect_definition_color_enable = -1;
483 static int hf_cigi2_special_effect_definition_red = -1;
484 static int hf_cigi2_special_effect_definition_green = -1;
485 static int hf_cigi2_special_effect_definition_blue = -1;
486 static int hf_cigi2_special_effect_definition_x_scale = -1;
487 static int hf_cigi2_special_effect_definition_y_scale = -1;
488 static int hf_cigi2_special_effect_definition_z_scale = -1;
489 static int hf_cigi2_special_effect_definition_time_scale = -1;
490 static int hf_cigi2_special_effect_definition_effect_count = -1;
491 static int hf_cigi2_special_effect_definition_separation = -1;
492 static int hf_cigi2_special_effect_definition_burst_interval = -1;
493 static int hf_cigi2_special_effect_definition_duration = -1;
495 static const true_false_string cigi2_special_effect_definition_seq_direction_tfs = {
500 /* CIGI2 View Definition */
501 #define CIGI2_PACKET_SIZE_VIEW_DEFINITION 32
502 static int hf_cigi2_view_definition = -1;
503 static int hf_cigi2_view_definition_view_id = -1;
504 static int hf_cigi2_view_definition_view_group = -1;
505 static int hf_cigi2_view_definition_view_type = -1;
506 static int hf_cigi2_view_definition_pixel_rep = -1;
507 static int hf_cigi2_view_definition_mirror = -1;
508 static int hf_cigi2_view_definition_tracker_assign = -1;
509 static int hf_cigi2_view_definition_near_enable = -1;
510 static int hf_cigi2_view_definition_far_enable = -1;
511 static int hf_cigi2_view_definition_left_enable = -1;
512 static int hf_cigi2_view_definition_right_enable = -1;
513 static int hf_cigi2_view_definition_top_enable = -1;
514 static int hf_cigi2_view_definition_bottom_enable = -1;
515 static int hf_cigi2_view_definition_fov_near = -1;
516 static int hf_cigi2_view_definition_fov_far = -1;
517 static int hf_cigi2_view_definition_fov_left = -1;
518 static int hf_cigi2_view_definition_fov_right = -1;
519 static int hf_cigi2_view_definition_fov_top = -1;
520 static int hf_cigi2_view_definition_fov_bottom = -1;
522 static const value_string cigi2_view_definition_pixel_rep_vals[] = {
524 {1, "1x2 Pixel Replicate"},
525 {2, "2x1 Pixel Replicate"},
526 {3, "2x2 Pixel Replicate"},
533 static const value_string cigi2_view_definition_mirror_vals[] = {
537 {3, "Horizontal and Vertical"},
541 /* CIGI2 Collision Detection Segment Definition */
542 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION 24
543 static int hf_cigi2_collision_detection_segment_definition = -1;
544 static int hf_cigi2_collision_detection_segment_definition_entity_id = -1;
545 static int hf_cigi2_collision_detection_segment_definition_segment_enable = -1;
546 static int hf_cigi2_collision_detection_segment_definition_segment_id = -1;
547 static int hf_cigi2_collision_detection_segment_definition_collision_mask = -1;
548 static int hf_cigi2_collision_detection_segment_definition_x_start = -1;
549 static int hf_cigi2_collision_detection_segment_definition_y_start = -1;
550 static int hf_cigi2_collision_detection_segment_definition_z_start = -1;
551 static int hf_cigi2_collision_detection_segment_definition_x_end = -1;
552 static int hf_cigi2_collision_detection_segment_definition_y_end = -1;
553 static int hf_cigi2_collision_detection_segment_definition_z_end = -1;
555 /* CIGI2 Collision Detection Volume Definition */
556 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION 20
557 static int hf_cigi2_collision_detection_volume_definition = -1;
558 static int hf_cigi2_collision_detection_volume_definition_entity_id = -1;
559 static int hf_cigi2_collision_detection_volume_definition_volume_enable = -1;
560 static int hf_cigi2_collision_detection_volume_definition_volume_id = -1;
561 static int hf_cigi2_collision_detection_volume_definition_x_offset = -1;
562 static int hf_cigi2_collision_detection_volume_definition_y_offset = -1;
563 static int hf_cigi2_collision_detection_volume_definition_z_offset = -1;
564 static int hf_cigi2_collision_detection_volume_definition_height = -1;
565 static int hf_cigi2_collision_detection_volume_definition_width = -1;
566 static int hf_cigi2_collision_detection_volume_definition_depth = -1;
568 /* CIGI2 Height Above Terrain Request */
569 #define CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_REQUEST 32
570 static int hf_cigi2_height_above_terrain_request = -1;
571 static int hf_cigi2_height_above_terrain_request_hat_id = -1;
572 static int hf_cigi2_height_above_terrain_request_alt = -1;
573 static int hf_cigi2_height_above_terrain_request_lat = -1;
574 static int hf_cigi2_height_above_terrain_request_lon = -1;
576 /* CIGI2 Line of Sight Occult Request */
577 #define CIGI2_PACKET_SIZE_LINE_OF_SIGHT_OCCULT_REQUEST 56
578 static int hf_cigi2_line_of_sight_occult_request = -1;
579 static int hf_cigi2_line_of_sight_occult_request_los_id = -1;
580 static int hf_cigi2_line_of_sight_occult_request_source_alt = -1;
581 static int hf_cigi2_line_of_sight_occult_request_source_lat = -1;
582 static int hf_cigi2_line_of_sight_occult_request_source_lon = -1;
583 static int hf_cigi2_line_of_sight_occult_request_dest_alt = -1;
584 static int hf_cigi2_line_of_sight_occult_request_dest_lat = -1;
585 static int hf_cigi2_line_of_sight_occult_request_dest_lon = -1;
587 /* CIGI2 Line of Sight Range Request */
588 #define CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RANGE_REQUEST 48
589 static int hf_cigi2_line_of_sight_range_request = -1;
590 static int hf_cigi2_line_of_sight_range_request_los_id = -1;
591 static int hf_cigi2_line_of_sight_range_request_azimuth = -1;
592 static int hf_cigi2_line_of_sight_range_request_elevation = -1;
593 static int hf_cigi2_line_of_sight_range_request_min_range = -1;
594 static int hf_cigi2_line_of_sight_range_request_max_range = -1;
595 static int hf_cigi2_line_of_sight_range_request_source_alt = -1;
596 static int hf_cigi2_line_of_sight_range_request_source_lat = -1;
597 static int hf_cigi2_line_of_sight_range_request_source_lon = -1;
599 /* CIGI2 Height of Terrain Request */
600 #define CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_REQUEST 24
601 static int hf_cigi2_height_of_terrain_request = -1;
602 static int hf_cigi2_height_of_terrain_request_hot_id = -1;
603 static int hf_cigi2_height_of_terrain_request_lat = -1;
604 static int hf_cigi2_height_of_terrain_request_lon = -1;
606 /* CIGI2 Start of Frame */
607 #define CIGI2_PACKET_SIZE_START_OF_FRAME 16
608 static int hf_cigi2_start_of_frame = -1;
609 static int hf_cigi2_start_of_frame_db_number = -1;
610 static int hf_cigi2_start_of_frame_ig_status_code = -1;
611 static int hf_cigi2_start_of_frame_ig_mode = -1;
612 static int hf_cigi2_start_of_frame_frame_ctr = -1;
613 static int hf_cigi2_start_of_frame_time_tag = -1;
615 static const value_string cigi2_start_of_frame_ig_mode_vals[] = {
616 {0, "Standby/Reset"},
619 {3, "Off-Line Maintenance"},
623 /* CIGI2 Height Above Terrain Response */
624 #define CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_RESPONSE 24
625 static int hf_cigi2_height_above_terrain_response = -1;
626 static int hf_cigi2_height_above_terrain_response_hat_id = -1;
627 static int hf_cigi2_height_above_terrain_response_valid = -1;
628 static int hf_cigi2_height_above_terrain_response_material_type = -1;
629 static int hf_cigi2_height_above_terrain_response_alt = -1;
631 /* CIGI2 Line of Sight Response */
632 #define CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE 40
633 static int hf_cigi2_line_of_sight_response = -1;
634 static int hf_cigi2_line_of_sight_response_los_id = -1;
635 static int hf_cigi2_line_of_sight_response_valid = -1;
636 static int hf_cigi2_line_of_sight_response_occult_response = -1;
637 static int hf_cigi2_line_of_sight_response_material_type = -1;
638 static int hf_cigi2_line_of_sight_response_range = -1;
639 static int hf_cigi2_line_of_sight_response_alt = -1;
640 static int hf_cigi2_line_of_sight_response_lat = -1;
641 static int hf_cigi2_line_of_sight_response_lon = -1;
643 static const true_false_string cigi2_line_of_sight_occult_response_tfs = {
648 /* CIGI2 Collision Detection Segment Response */
649 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_RESPONSE 24
650 static int hf_cigi2_collision_detection_segment_response = -1;
651 static int hf_cigi2_collision_detection_segment_response_entity_id = -1;
652 static int hf_cigi2_collision_detection_segment_response_segment_id = -1;
653 static int hf_cigi2_collision_detection_segment_response_contact = -1;
654 static int hf_cigi2_collision_detection_segment_response_contacted_entity = -1;
655 static int hf_cigi2_collision_detection_segment_response_material_type = -1;
656 static int hf_cigi2_collision_detection_segment_response_collision_x = -1;
657 static int hf_cigi2_collision_detection_segment_response_collision_y = -1;
658 static int hf_cigi2_collision_detection_segment_response_collision_z = -1;
660 static const true_false_string cigi2_collision_detection_segment_response_contact_tfs = {
661 "Contact with a defined entity",
662 "Contact with a non-entity surface"
665 /* CIGI2 Sensor Response */
666 #define CIGI2_PACKET_SIZE_SENSOR_RESPONSE 12
667 static int hf_cigi2_sensor_response = -1;
668 static int hf_cigi2_sensor_response_view_id = -1;
669 static int hf_cigi2_sensor_response_status = -1;
670 static int hf_cigi2_sensor_response_sensor_id = -1;
671 static int hf_cigi2_sensor_response_x_offset = -1;
672 static int hf_cigi2_sensor_response_y_offset = -1;
673 static int hf_cigi2_sensor_response_x_size = -1;
674 static int hf_cigi2_sensor_response_y_size = -1;
676 static const value_string cigi2_sensor_response_status_vals[] = {
677 {0, "Searching for Target"},
679 {2, "Impending Breaklock"},
684 /* CIGI2 Height of Terrain Response */
685 #define CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_RESPONSE 24
686 static int hf_cigi2_height_of_terrain_response = -1;
687 static int hf_cigi2_height_of_terrain_response_hot_id = -1;
688 static int hf_cigi2_height_of_terrain_response_valid = -1;
689 static int hf_cigi2_height_of_terrain_response_material_type = -1;
690 static int hf_cigi2_height_of_terrain_response_alt = -1;
692 /* CIGI2 Collision Detection Volume Response */
693 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_RESPONSE 8
694 static int hf_cigi2_collision_detection_volume_response = -1;
695 static int hf_cigi2_collision_detection_volume_response_entity_id = -1;
696 static int hf_cigi2_collision_detection_volume_response_volume_id = -1;
697 static int hf_cigi2_collision_detection_volume_response_contact = -1;
698 static int hf_cigi2_collision_detection_volume_response_contact_entity = -1;
700 static const true_false_string cigi2_collision_detection_volume_response_contact_tfs = {
701 "Contact with a defined entity",
702 "Contact with a non-entity surface"
705 /* CIGI2 Image Generator Message */
706 static int hf_cigi2_image_generator_message = -1;
707 static int hf_cigi2_image_generator_message_id = -1;
708 static int hf_cigi2_image_generator_message_message = -1;
710 /* CIGI2 User Definable */
711 static int hf_cigi2_user_definable = -1;
714 /*** Fields for CIGI3 ***/
716 static int hf_cigi3_byte_swap = -1;
718 #define CIGI3_BYTE_SWAP_BIG_ENDIAN 0x8000
719 #define CIGI3_BYTE_SWAP_LITTLE_ENDIAN 0x0080
720 static const value_string cigi3_byte_swap_vals[] = {
721 {CIGI3_BYTE_SWAP_BIG_ENDIAN, "Big-Endian"},
722 {CIGI3_BYTE_SWAP_LITTLE_ENDIAN, "Little-Endian"},
726 /* CIGI3 Packet ID */
727 static int hf_cigi3_packet_id = -1;
728 #define CIGI3_PACKET_ID_IG_CONTROL 1
729 #define CIGI3_PACKET_ID_ENTITY_CONTROL 2
730 #define CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL 3
731 #define CIGI3_PACKET_ID_COMPONENT_CONTROL 4
732 #define CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL 5
733 #define CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL 6
734 #define CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL 7
735 #define CIGI3_PACKET_ID_RATE_CONTROL 8
736 #define CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL 9
737 #define CIGI3_PACKET_ID_ATMOSPHERE_CONTROL 10
738 #define CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL 11
739 #define CIGI3_PACKET_ID_WEATHER_CONTROL 12
740 #define CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL 13
741 #define CIGI3_PACKET_ID_WAVE_CONTROL 14
742 #define CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL 15
743 #define CIGI3_PACKET_ID_VIEW_CONTROL 16
744 #define CIGI3_PACKET_ID_SENSOR_CONTROL 17
745 #define CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL 18
746 #define CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION 19
747 #define CIGI3_PACKET_ID_TRAJECTORY_DEFINITION 20
748 #define CIGI3_PACKET_ID_VIEW_DEFINITION 21
749 #define CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION 22
750 #define CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION 23
751 #define CIGI3_PACKET_ID_HAT_HOT_REQUEST 24
752 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST 25
753 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST 26
754 #define CIGI3_PACKET_ID_POSITION_REQUEST 27
755 #define CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST 28
756 #define CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION 29
757 #define CIGI3_PACKET_ID_SYMBOL_TEXT_DEFINITION 30
758 #define CIGI3_PACKET_ID_SYMBOL_CIRCLE_DEFINITION 31
759 #define CIGI3_PACKET_ID_SYMBOL_LINE_DEFINITION 32
760 #define CIGI3_PACKET_ID_SYMBOL_CLONE 33
761 #define CIGI3_PACKET_ID_SYMBOL_CONTROL 34
762 #define CIGI3_PACKET_ID_SHORT_SYMBOL_CONTROL 35
763 #define CIGI3_PACKET_ID_START_OF_FRAME 101
764 #define CIGI3_PACKET_ID_HAT_HOT_RESPONSE 102
765 #define CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE 103
766 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE 104
767 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE 105
768 #define CIGI3_PACKET_ID_SENSOR_RESPONSE 106
769 #define CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE 107
770 #define CIGI3_PACKET_ID_POSITION_RESPONSE 108
771 #define CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE 109
772 #define CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE 110
773 #define CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE 111
774 #define CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE 112
775 #define CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION 113
776 #define CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION 114
777 #define CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION 115
778 #define CIGI3_PACKET_ID_EVENT_NOTIFICATION 116
779 #define CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE 117
780 #define CIGI3_PACKET_ID_USER_DEFINED_MIN 201
781 #define CIGI3_PACKET_ID_USER_DEFINED_MAX 255
782 static const value_string cigi3_packet_id_vals[] = {
783 {CIGI3_PACKET_ID_IG_CONTROL, "IG Control"},
784 {CIGI3_PACKET_ID_ENTITY_CONTROL, "Entity Control"},
785 {CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL, "Conformal Clamped Entity Control"},
786 {CIGI3_PACKET_ID_COMPONENT_CONTROL, "Component Control"},
787 {CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL, "Short Component Control"},
788 {CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL, "Articulated Part Control"},
789 {CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL, "Short Articulated Part Control"},
790 {CIGI3_PACKET_ID_RATE_CONTROL, "Rate Control"},
791 {CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL, "Celestial Sphere Control"},
792 {CIGI3_PACKET_ID_ATMOSPHERE_CONTROL, "Atmosphere Control"},
793 {CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL, "Environmental Region Control"},
794 {CIGI3_PACKET_ID_WEATHER_CONTROL, "Weather Control"},
795 {CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL, "Maritime Surface Conditions Control"},
796 {CIGI3_PACKET_ID_WAVE_CONTROL, "Wave Control"},
797 {CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL, "Terrestrial Surface Conditions Control"},
798 {CIGI3_PACKET_ID_VIEW_CONTROL, "View Control"},
799 {CIGI3_PACKET_ID_SENSOR_CONTROL, "Sensor Control"},
800 {CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL, "Motion Tracker Control"},
801 {CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION, "Earth Reference Model Definition"},
802 {CIGI3_PACKET_ID_TRAJECTORY_DEFINITION, "Trajectory Definition"},
803 {CIGI3_PACKET_ID_VIEW_DEFINITION, "View Definition"},
804 {CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION, "Collision Detection Segment Definition"},
805 {CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION, "Collision Detection Volume Definition"},
806 {CIGI3_PACKET_ID_HAT_HOT_REQUEST, "HAT/HOT Request"},
807 {CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST, "Line of Sight Segment Request"},
808 {CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST, "Line of Sight Vector Request"},
809 {CIGI3_PACKET_ID_POSITION_REQUEST, "Position Request"},
810 {CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST, "Environmental Conditions Request"},
811 {CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION, "Symbol Surface Definition"},
812 {CIGI3_PACKET_ID_SYMBOL_TEXT_DEFINITION, "Symbol Text Definition"},
813 {CIGI3_PACKET_ID_SYMBOL_CIRCLE_DEFINITION, "Symbol Circle Definition"},
814 {CIGI3_PACKET_ID_SYMBOL_LINE_DEFINITION, "Symbol Line Definition"},
815 {CIGI3_PACKET_ID_SYMBOL_CLONE, "Symbol Clone"},
816 {CIGI3_PACKET_ID_SYMBOL_CONTROL, "Symbol Control"},
817 {CIGI3_PACKET_ID_SHORT_SYMBOL_CONTROL, "Short Symbol Control"},
818 {CIGI3_PACKET_ID_START_OF_FRAME, "Start of Frame"},
819 {CIGI3_PACKET_ID_HAT_HOT_RESPONSE, "HAT/HOT Response"},
820 {CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE, "HAT/HOT Extended Response"},
821 {CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE, "Line of Sight Response"},
822 {CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE, "Line of Sight Extended Response"},
823 {CIGI3_PACKET_ID_SENSOR_RESPONSE, "Sensor Response"},
824 {CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE, "Sensor Extended Response"},
825 {CIGI3_PACKET_ID_POSITION_RESPONSE, "Position Response"},
826 {CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE, "Weather Conditions Response"},
827 {CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE, "Aerosol Concentration Response"},
828 {CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE, "Maritime Surface Conditions Response"},
829 {CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE, "Terrestrial Surface Conditions Response"},
830 {CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION, "Collision Detection Segment Notification"},
831 {CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION, "Collision Detection Volume Notification"},
832 {CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION, "Animation Stop Notification"},
833 {CIGI3_PACKET_ID_EVENT_NOTIFICATION, "Event Notification"},
834 {CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE, "Image Generator Message"},
835 {CIGI3_PACKET_ID_USER_DEFINED_MIN, "User-Defined Data"},
836 {CIGI3_PACKET_ID_USER_DEFINED_MIN+1, "User-Defined Data"},
837 {CIGI3_PACKET_ID_USER_DEFINED_MIN+2, "User-Defined Data"},
838 {CIGI3_PACKET_ID_USER_DEFINED_MIN+3, "User-Defined Data"},
839 {CIGI3_PACKET_ID_USER_DEFINED_MIN+4, "User-Defined Data"},
840 {CIGI3_PACKET_ID_USER_DEFINED_MIN+5, "User-Defined Data"},
841 {CIGI3_PACKET_ID_USER_DEFINED_MIN+6, "User-Defined Data"},
842 {CIGI3_PACKET_ID_USER_DEFINED_MIN+7, "User-Defined Data"},
843 {CIGI3_PACKET_ID_USER_DEFINED_MIN+8, "User-Defined Data"},
844 {CIGI3_PACKET_ID_USER_DEFINED_MIN+9, "User-Defined Data"},
845 {CIGI3_PACKET_ID_USER_DEFINED_MIN+10, "User-Defined Data"},
846 {CIGI3_PACKET_ID_USER_DEFINED_MIN+11, "User-Defined Data"},
847 {CIGI3_PACKET_ID_USER_DEFINED_MIN+12, "User-Defined Data"},
848 {CIGI3_PACKET_ID_USER_DEFINED_MIN+13, "User-Defined Data"},
849 {CIGI3_PACKET_ID_USER_DEFINED_MIN+14, "User-Defined Data"},
850 {CIGI3_PACKET_ID_USER_DEFINED_MIN+15, "User-Defined Data"},
851 {CIGI3_PACKET_ID_USER_DEFINED_MIN+16, "User-Defined Data"},
852 {CIGI3_PACKET_ID_USER_DEFINED_MIN+17, "User-Defined Data"},
853 {CIGI3_PACKET_ID_USER_DEFINED_MIN+18, "User-Defined Data"},
854 {CIGI3_PACKET_ID_USER_DEFINED_MIN+19, "User-Defined Data"},
855 {CIGI3_PACKET_ID_USER_DEFINED_MIN+20, "User-Defined Data"},
856 {CIGI3_PACKET_ID_USER_DEFINED_MIN+21, "User-Defined Data"},
857 {CIGI3_PACKET_ID_USER_DEFINED_MIN+22, "User-Defined Data"},
858 {CIGI3_PACKET_ID_USER_DEFINED_MIN+23, "User-Defined Data"},
859 {CIGI3_PACKET_ID_USER_DEFINED_MIN+24, "User-Defined Data"},
860 {CIGI3_PACKET_ID_USER_DEFINED_MIN+25, "User-Defined Data"},
861 {CIGI3_PACKET_ID_USER_DEFINED_MIN+26, "User-Defined Data"},
862 {CIGI3_PACKET_ID_USER_DEFINED_MIN+27, "User-Defined Data"},
863 {CIGI3_PACKET_ID_USER_DEFINED_MIN+28, "User-Defined Data"},
864 {CIGI3_PACKET_ID_USER_DEFINED_MIN+29, "User-Defined Data"},
865 {CIGI3_PACKET_ID_USER_DEFINED_MIN+30, "User-Defined Data"},
866 {CIGI3_PACKET_ID_USER_DEFINED_MIN+31, "User-Defined Data"},
867 {CIGI3_PACKET_ID_USER_DEFINED_MIN+32, "User-Defined Data"},
868 {CIGI3_PACKET_ID_USER_DEFINED_MIN+33, "User-Defined Data"},
869 {CIGI3_PACKET_ID_USER_DEFINED_MIN+34, "User-Defined Data"},
870 {CIGI3_PACKET_ID_USER_DEFINED_MIN+35, "User-Defined Data"},
871 {CIGI3_PACKET_ID_USER_DEFINED_MIN+36, "User-Defined Data"},
872 {CIGI3_PACKET_ID_USER_DEFINED_MIN+37, "User-Defined Data"},
873 {CIGI3_PACKET_ID_USER_DEFINED_MIN+38, "User-Defined Data"},
874 {CIGI3_PACKET_ID_USER_DEFINED_MIN+39, "User-Defined Data"},
875 {CIGI3_PACKET_ID_USER_DEFINED_MIN+40, "User-Defined Data"},
876 {CIGI3_PACKET_ID_USER_DEFINED_MIN+41, "User-Defined Data"},
877 {CIGI3_PACKET_ID_USER_DEFINED_MIN+42, "User-Defined Data"},
878 {CIGI3_PACKET_ID_USER_DEFINED_MIN+43, "User-Defined Data"},
879 {CIGI3_PACKET_ID_USER_DEFINED_MIN+44, "User-Defined Data"},
880 {CIGI3_PACKET_ID_USER_DEFINED_MIN+45, "User-Defined Data"},
881 {CIGI3_PACKET_ID_USER_DEFINED_MIN+46, "User-Defined Data"},
882 {CIGI3_PACKET_ID_USER_DEFINED_MIN+47, "User-Defined Data"},
883 {CIGI3_PACKET_ID_USER_DEFINED_MIN+48, "User-Defined Data"},
884 {CIGI3_PACKET_ID_USER_DEFINED_MIN+49, "User-Defined Data"},
885 {CIGI3_PACKET_ID_USER_DEFINED_MIN+50, "User-Defined Data"},
886 {CIGI3_PACKET_ID_USER_DEFINED_MIN+51, "User-Defined Data"},
887 {CIGI3_PACKET_ID_USER_DEFINED_MIN+52, "User-Defined Data"},
888 {CIGI3_PACKET_ID_USER_DEFINED_MIN+53, "User-Defined Data"},
889 {CIGI3_PACKET_ID_USER_DEFINED_MAX, "User-Defined Data"},
893 /* CIGI3 IG Control */
894 #define CIGI3_PACKET_SIZE_IG_CONTROL 16
895 static int hf_cigi3_ig_control = -1;
896 static int hf_cigi3_ig_control_db_number = -1;
897 static int hf_cigi3_ig_control_ig_mode = -1;
898 static int hf_cigi3_ig_control_timestamp_valid = -1;
899 static int hf_cigi3_ig_control_frame_ctr = -1;
900 static int hf_cigi3_ig_control_timestamp = -1;
902 static const value_string cigi3_ig_control_ig_mode_vals[] = {
903 {0, "Reset/Standby"},
909 /* CIGI3_2 IG Control */
910 #define CIGI3_2_PACKET_SIZE_IG_CONTROL 24
911 static int hf_cigi3_2_ig_control = -1;
912 static int hf_cigi3_2_ig_control_db_number = -1;
913 static int hf_cigi3_2_ig_control_ig_mode = -1;
914 static int hf_cigi3_2_ig_control_timestamp_valid = -1;
915 static int hf_cigi3_2_ig_control_host_frame_number = -1;
916 static int hf_cigi3_2_ig_control_timestamp = -1;
917 static int hf_cigi3_2_ig_control_last_ig_frame_number = -1;
919 static const value_string cigi3_2_ig_control_ig_mode_vals[] = {
920 {0, "Reset/Standby"},
926 /* CIGI3_3 IG Control */
927 #define CIGI3_3_PACKET_SIZE_IG_CONTROL 24
928 static int hf_cigi3_3_ig_control = -1;
929 static int hf_cigi3_3_ig_control_db_number = -1;
930 static int hf_cigi3_3_ig_control_ig_mode = -1;
931 static int hf_cigi3_3_ig_control_timestamp_valid = -1;
932 static int hf_cigi3_3_ig_control_extrapolation_enable = -1;
933 static int hf_cigi3_3_ig_control_minor_version = -1;
934 static int hf_cigi3_3_ig_control_host_frame_number = -1;
935 static int hf_cigi3_3_ig_control_timestamp = -1;
936 static int hf_cigi3_3_ig_control_last_ig_frame_number = -1;
938 static const value_string cigi3_3_ig_control_ig_mode_vals[] = {
939 {0, "Reset/Standby"},
945 /* CIGI3 Entity Control */
946 #define CIGI3_PACKET_SIZE_ENTITY_CONTROL 48
947 static int hf_cigi3_entity_control = -1;
948 static int hf_cigi3_entity_control_entity_id = -1;
949 static int hf_cigi3_entity_control_entity_state = -1;
950 static int hf_cigi3_entity_control_attach_state = -1;
951 static int hf_cigi3_entity_control_collision_detection_request = -1;
952 static int hf_cigi3_entity_control_inherit_alpha = -1;
953 static int hf_cigi3_entity_control_ground_ocean_clamp = -1;
954 static int hf_cigi3_entity_control_animation_direction = -1;
955 static int hf_cigi3_entity_control_animation_loop_mode = -1;
956 static int hf_cigi3_entity_control_animation_state = -1;
957 static int hf_cigi3_entity_control_alpha = -1;
958 static int hf_cigi3_entity_control_entity_type = -1;
959 static int hf_cigi3_entity_control_parent_id = -1;
960 static int hf_cigi3_entity_control_roll = -1;
961 static int hf_cigi3_entity_control_pitch = -1;
962 static int hf_cigi3_entity_control_yaw = -1;
963 static int hf_cigi3_entity_control_lat_xoff = -1;
964 static int hf_cigi3_entity_control_lon_yoff = -1;
965 static int hf_cigi3_entity_control_alt_zoff = -1;
967 static const value_string cigi3_entity_control_entity_state_vals[] = {
968 {0, "Inactive/Standby"},
974 static const true_false_string cigi3_entity_control_attach_state_tfs = {
979 static const true_false_string cigi3_entity_control_collision_detection_request_tfs = {
984 static const true_false_string cigi3_entity_control_inherit_alpha_tfs = {
989 static const value_string cigi3_entity_control_ground_ocean_clamp_vals[] = {
991 {1, "Non-Conformal"},
996 static const true_false_string cigi3_entity_control_animation_direction_tfs = {
1001 static const true_false_string cigi3_entity_control_animation_loop_mode_tfs = {
1006 static const value_string cigi3_entity_control_animation_state_vals[] = {
1014 /* CIGI3_3 Entity Control */
1015 static int hf_cigi3_3_entity_control = -1;
1016 static int hf_cigi3_3_entity_control_entity_id = -1;
1017 static int hf_cigi3_3_entity_control_entity_state = -1;
1018 static int hf_cigi3_3_entity_control_attach_state = -1;
1019 static int hf_cigi3_3_entity_control_collision_detection_request = -1;
1020 static int hf_cigi3_3_entity_control_inherit_alpha = -1;
1021 static int hf_cigi3_3_entity_control_ground_ocean_clamp = -1;
1022 static int hf_cigi3_3_entity_control_animation_direction = -1;
1023 static int hf_cigi3_3_entity_control_animation_loop_mode = -1;
1024 static int hf_cigi3_3_entity_control_animation_state = -1;
1025 static int hf_cigi3_3_entity_control_extrapolation_enable = -1;
1026 static int hf_cigi3_3_entity_control_alpha = -1;
1027 static int hf_cigi3_3_entity_control_entity_type = -1;
1028 static int hf_cigi3_3_entity_control_parent_id = -1;
1029 static int hf_cigi3_3_entity_control_roll = -1;
1030 static int hf_cigi3_3_entity_control_pitch = -1;
1031 static int hf_cigi3_3_entity_control_yaw = -1;
1032 static int hf_cigi3_3_entity_control_lat_xoff = -1;
1033 static int hf_cigi3_3_entity_control_lon_yoff = -1;
1034 static int hf_cigi3_3_entity_control_alt_zoff = -1;
1036 /* CIGI3 Conformal Clamped Entity Control */
1037 #define CIGI3_PACKET_SIZE_CONFORMAL_CLAMPED_ENTITY_CONTROL 24
1038 static int hf_cigi3_conformal_clamped_entity_control = -1;
1039 static int hf_cigi3_conformal_clamped_entity_control_entity_id = -1;
1040 static int hf_cigi3_conformal_clamped_entity_control_yaw = -1;
1041 static int hf_cigi3_conformal_clamped_entity_control_lat = -1;
1042 static int hf_cigi3_conformal_clamped_entity_control_lon = -1;
1044 /* CIGI3 Component Control */
1045 #define CIGI3_PACKET_SIZE_COMPONENT_CONTROL 32
1046 static int hf_cigi3_component_control = -1;
1047 static int hf_cigi3_component_control_component_id = -1;
1048 static int hf_cigi3_component_control_instance_id = -1;
1049 static int hf_cigi3_component_control_component_class = -1;
1050 static int hf_cigi3_component_control_component_state = -1;
1051 static int hf_cigi3_component_control_data_1 = -1;
1052 static int hf_cigi3_component_control_data_2 = -1;
1053 static int hf_cigi3_component_control_data_3 = -1;
1054 static int hf_cigi3_component_control_data_4 = -1;
1055 static int hf_cigi3_component_control_data_5 = -1;
1056 static int hf_cigi3_component_control_data_6 = -1;
1058 static const value_string cigi3_component_control_component_class_vals[] = {
1063 {4, "Regional Sea Surface"},
1064 {5, "Regional Terrain Surface"},
1065 {6, "Regional Layered Weather"},
1066 {7, "Global Sea Surface"},
1067 {8, "Global Terrain Surface"},
1068 {9, "Global Layered Weather"},
1070 {11, "Celestial Sphere"},
1076 /* CIGI3_3 Component Control */
1077 static int hf_cigi3_3_component_control = -1;
1078 static int hf_cigi3_3_component_control_component_id = -1;
1079 static int hf_cigi3_3_component_control_instance_id = -1;
1080 static int hf_cigi3_3_component_control_component_class = -1;
1081 static int hf_cigi3_3_component_control_component_state = -1;
1082 static int hf_cigi3_3_component_control_data_1 = -1;
1083 static int hf_cigi3_3_component_control_data_2 = -1;
1084 static int hf_cigi3_3_component_control_data_3 = -1;
1085 static int hf_cigi3_3_component_control_data_4 = -1;
1086 static int hf_cigi3_3_component_control_data_5 = -1;
1087 static int hf_cigi3_3_component_control_data_6 = -1;
1089 static const value_string cigi3_3_component_control_component_class_vals[] = {
1094 {4, "Regional Sea Surface"},
1095 {5, "Regional Terrain Surface"},
1096 {6, "Regional Layered Weather"},
1097 {7, "Global Sea Surface"},
1098 {8, "Global Terrain Surface"},
1099 {9, "Global Layered Weather"},
1101 {11, "Celestial Sphere"},
1104 {14, "Symbol Surface"},
1109 /* CIGI3 Short Component Control */
1110 #define CIGI3_PACKET_SIZE_SHORT_COMPONENT_CONTROL 16
1111 static int hf_cigi3_short_component_control = -1;
1112 static int hf_cigi3_short_component_control_component_id = -1;
1113 static int hf_cigi3_short_component_control_instance_id = -1;
1114 static int hf_cigi3_short_component_control_component_class = -1;
1115 static int hf_cigi3_short_component_control_component_state = -1;
1116 static int hf_cigi3_short_component_control_data_1 = -1;
1117 static int hf_cigi3_short_component_control_data_2 = -1;
1119 static const value_string cigi3_short_component_control_component_class_vals[] = {
1124 {4, "Regional Sea Surface"},
1125 {5, "Regional Terrain Surface"},
1126 {6, "Regional Layered Weather"},
1127 {7, "Global Sea Surface"},
1128 {8, "Global Terrain Surface"},
1129 {9, "Global Layered Weather"},
1131 {11, "Celestial Sphere"},
1137 /* CIGI3_3 Short Component Control */
1138 static int hf_cigi3_3_short_component_control = -1;
1139 static int hf_cigi3_3_short_component_control_component_id = -1;
1140 static int hf_cigi3_3_short_component_control_instance_id = -1;
1141 static int hf_cigi3_3_short_component_control_component_class = -1;
1142 static int hf_cigi3_3_short_component_control_component_state = -1;
1143 static int hf_cigi3_3_short_component_control_data_1 = -1;
1144 static int hf_cigi3_3_short_component_control_data_2 = -1;
1146 static const value_string cigi3_3_short_component_control_component_class_vals[] = {
1151 {4, "Regional Sea Surface"},
1152 {5, "Regional Terrain Surface"},
1153 {6, "Regional Layered Weather"},
1154 {7, "Global Sea Surface"},
1155 {8, "Global Terrain Surface"},
1156 {9, "Global Layered Weather"},
1158 {11, "Celestial Sphere"},
1161 {14, "Symbol Surface"},
1166 /* CIGI3 Articulated Part Control */
1167 #define CIGI3_PACKET_SIZE_ARTICULATED_PART_CONTROL 32
1168 static int hf_cigi3_articulated_part_control = -1;
1169 static int hf_cigi3_articulated_part_control_entity_id = -1;
1170 static int hf_cigi3_articulated_part_control_part_id = -1;
1171 static int hf_cigi3_articulated_part_control_part_enable = -1;
1172 static int hf_cigi3_articulated_part_control_xoff_enable = -1;
1173 static int hf_cigi3_articulated_part_control_yoff_enable = -1;
1174 static int hf_cigi3_articulated_part_control_zoff_enable = -1;
1175 static int hf_cigi3_articulated_part_control_roll_enable = -1;
1176 static int hf_cigi3_articulated_part_control_pitch_enable = -1;
1177 static int hf_cigi3_articulated_part_control_yaw_enable = -1;
1178 static int hf_cigi3_articulated_part_control_xoff = -1;
1179 static int hf_cigi3_articulated_part_control_yoff = -1;
1180 static int hf_cigi3_articulated_part_control_zoff = -1;
1181 static int hf_cigi3_articulated_part_control_roll = -1;
1182 static int hf_cigi3_articulated_part_control_pitch = -1;
1183 static int hf_cigi3_articulated_part_control_yaw = -1;
1185 /* CIGI3 Short Articulated Part Control */
1186 #define CIGI3_PACKET_SIZE_SHORT_ARTICULATED_PART_CONTROL 16
1187 static int hf_cigi3_short_articulated_part_control = -1;
1188 static int hf_cigi3_short_articulated_part_control_entity_id = -1;
1189 static int hf_cigi3_short_articulated_part_control_part_id_1 = -1;
1190 static int hf_cigi3_short_articulated_part_control_part_id_2 = -1;
1191 static int hf_cigi3_short_articulated_part_control_dof_select_1 = -1;
1192 static int hf_cigi3_short_articulated_part_control_dof_select_2 = -1;
1193 static int hf_cigi3_short_articulated_part_control_part_enable_1 = -1;
1194 static int hf_cigi3_short_articulated_part_control_part_enable_2 = -1;
1195 static int hf_cigi3_short_articulated_part_control_dof_1 = -1;
1196 static int hf_cigi3_short_articulated_part_control_dof_2 = -1;
1198 static const value_string cigi3_short_articulated_part_control_dof_select_vals[] = {
1209 /* CIGI3 Rate Control */
1210 #define CIGI3_PACKET_SIZE_RATE_CONTROL 32
1211 static int hf_cigi3_rate_control = -1;
1212 static int hf_cigi3_rate_control_entity_id = -1;
1213 static int hf_cigi3_rate_control_part_id = -1;
1214 static int hf_cigi3_rate_control_apply_to_part = -1;
1215 static int hf_cigi3_rate_control_x_rate = -1;
1216 static int hf_cigi3_rate_control_y_rate = -1;
1217 static int hf_cigi3_rate_control_z_rate = -1;
1218 static int hf_cigi3_rate_control_roll_rate = -1;
1219 static int hf_cigi3_rate_control_pitch_rate = -1;
1220 static int hf_cigi3_rate_control_yaw_rate = -1;
1222 /* CIGI3_2 Rate Control */
1223 #define CIGI3_2_PACKET_SIZE_RATE_CONTROL 32
1224 static int hf_cigi3_2_rate_control = -1;
1225 static int hf_cigi3_2_rate_control_entity_id = -1;
1226 static int hf_cigi3_2_rate_control_part_id = -1;
1227 static int hf_cigi3_2_rate_control_apply_to_part = -1;
1228 static int hf_cigi3_2_rate_control_coordinate_system = -1;
1229 static int hf_cigi3_2_rate_control_x_rate = -1;
1230 static int hf_cigi3_2_rate_control_y_rate = -1;
1231 static int hf_cigi3_2_rate_control_z_rate = -1;
1232 static int hf_cigi3_2_rate_control_roll_rate = -1;
1233 static int hf_cigi3_2_rate_control_pitch_rate = -1;
1234 static int hf_cigi3_2_rate_control_yaw_rate = -1;
1236 static const true_false_string cigi3_2_rate_control_coord_sys_select_vals = {
1241 /* CIGI3 Celestial Sphere Control */
1242 #define CIGI3_PACKET_SIZE_CELESTIAL_SPHERE_CONTROL 16
1243 static int hf_cigi3_celestial_sphere_control = -1;
1244 static int hf_cigi3_celestial_sphere_control_hour = -1;
1245 static int hf_cigi3_celestial_sphere_control_minute = -1;
1246 static int hf_cigi3_celestial_sphere_control_ephemeris_enable = -1;
1247 static int hf_cigi3_celestial_sphere_control_sun_enable = -1;
1248 static int hf_cigi3_celestial_sphere_control_moon_enable = -1;
1249 static int hf_cigi3_celestial_sphere_control_star_enable = -1;
1250 static int hf_cigi3_celestial_sphere_control_date_time_valid = -1;
1251 static int hf_cigi3_celestial_sphere_control_date = -1;
1252 static int hf_cigi3_celestial_sphere_control_star_intensity = -1;
1254 /* CIGI3 Atmosphere Control */
1255 #define CIGI3_PACKET_SIZE_ATMOSPHERE_CONTROL 32
1256 static int hf_cigi3_atmosphere_control = -1;
1257 static int hf_cigi3_atmosphere_control_atmospheric_model_enable = -1;
1258 static int hf_cigi3_atmosphere_control_humidity = -1;
1259 static int hf_cigi3_atmosphere_control_air_temp = -1;
1260 static int hf_cigi3_atmosphere_control_visibility_range = -1;
1261 static int hf_cigi3_atmosphere_control_horiz_wind = -1;
1262 static int hf_cigi3_atmosphere_control_vert_wind = -1;
1263 static int hf_cigi3_atmosphere_control_wind_direction = -1;
1264 static int hf_cigi3_atmosphere_control_barometric_pressure = -1;
1266 /* CIGI3 Environmental Region Control */
1267 #define CIGI3_PACKET_SIZE_ENVIRONMENTAL_REGION_CONTROL 48
1268 static int hf_cigi3_environmental_region_control = -1;
1269 static int hf_cigi3_environmental_region_control_region_id = -1;
1270 static int hf_cigi3_environmental_region_control_region_state = -1;
1271 static int hf_cigi3_environmental_region_control_merge_weather = -1;
1272 static int hf_cigi3_environmental_region_control_merge_aerosol = -1;
1273 static int hf_cigi3_environmental_region_control_merge_maritime = -1;
1274 static int hf_cigi3_environmental_region_control_merge_terrestrial = -1;
1275 static int hf_cigi3_environmental_region_control_lat = -1;
1276 static int hf_cigi3_environmental_region_control_lon = -1;
1277 static int hf_cigi3_environmental_region_control_size_x = -1;
1278 static int hf_cigi3_environmental_region_control_size_y = -1;
1279 static int hf_cigi3_environmental_region_control_corner_radius = -1;
1280 static int hf_cigi3_environmental_region_control_rotation = -1;
1281 static int hf_cigi3_environmental_region_control_transition_perimeter = -1;
1283 static const value_string cigi3_environmental_region_control_region_state_vals[] = {
1290 static const true_false_string cigi3_environmental_region_control_merge_properties_tfs = {
1295 /* CIGI3 Weather Control */
1296 #define CIGI3_PACKET_SIZE_WEATHER_CONTROL 56
1297 static int hf_cigi3_weather_control = -1;
1298 static int hf_cigi3_weather_control_entity_region_id = -1;
1299 static int hf_cigi3_weather_control_layer_id = -1;
1300 static int hf_cigi3_weather_control_humidity = -1;
1301 static int hf_cigi3_weather_control_weather_enable = -1;
1302 static int hf_cigi3_weather_control_scud_enable = -1;
1303 static int hf_cigi3_weather_control_random_winds_enable = -1;
1304 static int hf_cigi3_weather_control_random_lightning_enable = -1;
1305 static int hf_cigi3_weather_control_cloud_type = -1;
1306 static int hf_cigi3_weather_control_scope = -1;
1307 static int hf_cigi3_weather_control_severity = -1;
1308 static int hf_cigi3_weather_control_air_temp = -1;
1309 static int hf_cigi3_weather_control_visibility_range = -1;
1310 static int hf_cigi3_weather_control_scud_frequency = -1;
1311 static int hf_cigi3_weather_control_coverage = -1;
1312 static int hf_cigi3_weather_control_base_elevation = -1;
1313 static int hf_cigi3_weather_control_thickness = -1;
1314 static int hf_cigi3_weather_control_transition_band = -1;
1315 static int hf_cigi3_weather_control_horiz_wind = -1;
1316 static int hf_cigi3_weather_control_vert_wind = -1;
1317 static int hf_cigi3_weather_control_wind_direction = -1;
1318 static int hf_cigi3_weather_control_barometric_pressure = -1;
1319 static int hf_cigi3_weather_control_aerosol_concentration = -1;
1321 static const value_string cigi3_weather_control_layer_id_vals[] = {
1323 {1, "Cloud Layer 1"},
1324 {2, "Cloud Layer 2"},
1325 {3, "Cloud Layer 3"},
1335 static const value_string cigi3_weather_control_cloud_type_vals[] = {
1339 {3, "Cirrocumulus"},
1340 {4, "Cirrostratus"},
1342 {6, "Cumulonimbus"},
1344 {8, "Nimbostratus"},
1345 {9, "Stratocumulus"},
1355 static const value_string cigi3_weather_control_scope_vals[] = {
1362 /* CIGI3 Maritime Surface Conditions Control */
1363 #define CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_CONTROL 24
1364 static int hf_cigi3_maritime_surface_conditions_control = -1;
1365 static int hf_cigi3_maritime_surface_conditions_control_entity_region_id = -1;
1366 static int hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable = -1;
1367 static int hf_cigi3_maritime_surface_conditions_control_whitecap_enable = -1;
1368 static int hf_cigi3_maritime_surface_conditions_control_scope = -1;
1369 static int hf_cigi3_maritime_surface_conditions_control_sea_surface_height = -1;
1370 static int hf_cigi3_maritime_surface_conditions_control_surface_water_temp = -1;
1371 static int hf_cigi3_maritime_surface_conditions_control_surface_clarity = -1;
1373 static const value_string cigi3_maritime_surface_conditions_control_scope_vals[] = {
1380 /* CIGI3 Wave Control */
1381 #define CIGI3_PACKET_SIZE_WAVE_CONTROL 32
1382 static int hf_cigi3_wave_control = -1;
1383 static int hf_cigi3_wave_control_entity_region_id = -1;
1384 static int hf_cigi3_wave_control_wave_id = -1;
1385 static int hf_cigi3_wave_control_wave_enable = -1;
1386 static int hf_cigi3_wave_control_scope = -1;
1387 static int hf_cigi3_wave_control_breaker_type = -1;
1388 static int hf_cigi3_wave_control_height = -1;
1389 static int hf_cigi3_wave_control_wavelength = -1;
1390 static int hf_cigi3_wave_control_period = -1;
1391 static int hf_cigi3_wave_control_direction = -1;
1392 static int hf_cigi3_wave_control_phase_offset = -1;
1393 static int hf_cigi3_wave_control_leading = -1;
1395 static const value_string cigi3_wave_control_scope_vals[] = {
1402 static const value_string cigi3_wave_control_breaker_type_vals[] = {
1409 /* CIGI3 Terrestrial Surface Conditions Control */
1410 #define CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL 8
1411 static int hf_cigi3_terrestrial_surface_conditions_control = -1;
1412 static int hf_cigi3_terrestrial_surface_conditions_control_entity_region_id = -1;
1413 static int hf_cigi3_terrestrial_surface_conditions_control_surface_condition_id = -1;
1414 static int hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable = -1;
1415 static int hf_cigi3_terrestrial_surface_conditions_control_scope = -1;
1416 static int hf_cigi3_terrestrial_surface_conditions_control_severity = -1;
1417 static int hf_cigi3_terrestrial_surface_conditions_control_coverage = -1;
1419 static const value_string cigi3_terrestrial_surface_conditions_control_scope_vals[] = {
1426 /* CIGI3 View Control */
1427 #define CIGI3_PACKET_SIZE_VIEW_CONTROL 32
1428 static int hf_cigi3_view_control = -1;
1429 static int hf_cigi3_view_control_view_id = -1;
1430 static int hf_cigi3_view_control_group_id = -1;
1431 static int hf_cigi3_view_control_xoff_enable = -1;
1432 static int hf_cigi3_view_control_yoff_enable = -1;
1433 static int hf_cigi3_view_control_zoff_enable = -1;
1434 static int hf_cigi3_view_control_roll_enable = -1;
1435 static int hf_cigi3_view_control_pitch_enable = -1;
1436 static int hf_cigi3_view_control_yaw_enable = -1;
1437 static int hf_cigi3_view_control_entity_id = -1;
1438 static int hf_cigi3_view_control_xoff = -1;
1439 static int hf_cigi3_view_control_yoff = -1;
1440 static int hf_cigi3_view_control_zoff = -1;
1441 static int hf_cigi3_view_control_roll = -1;
1442 static int hf_cigi3_view_control_pitch = -1;
1443 static int hf_cigi3_view_control_yaw = -1;
1445 /* CIGI3 Sensor Control */
1446 #define CIGI3_PACKET_SIZE_SENSOR_CONTROL 24
1447 static int hf_cigi3_sensor_control = -1;
1448 static int hf_cigi3_sensor_control_view_id = -1;
1449 static int hf_cigi3_sensor_control_sensor_id = -1;
1450 static int hf_cigi3_sensor_control_sensor_on_off = -1;
1451 static int hf_cigi3_sensor_control_polarity = -1;
1452 static int hf_cigi3_sensor_control_line_dropout_enable = -1;
1453 static int hf_cigi3_sensor_control_auto_gain = -1;
1454 static int hf_cigi3_sensor_control_track_white_black = -1;
1455 static int hf_cigi3_sensor_control_track_mode = -1;
1456 static int hf_cigi3_sensor_control_response_type = -1;
1457 static int hf_cigi3_sensor_control_gain = -1;
1458 static int hf_cigi3_sensor_control_level = -1;
1459 static int hf_cigi3_sensor_control_ac_coupling = -1;
1460 static int hf_cigi3_sensor_control_noise = -1;
1462 static const value_string cigi3_sensor_control_track_mode_vals[] = {
1464 {1, "Force Correlate"},
1468 {5, "Defined by IG"},
1469 {6, "Defined by IG"},
1470 {7, "Defined by IG"},
1474 static const true_false_string cigi3_sensor_control_polarity_tfs = {
1479 static const true_false_string cigi3_sensor_control_track_white_black_tfs = {
1484 static const true_false_string cigi3_sensor_control_response_type_tfs = {
1489 /* CIGI3 Motion Tracker Control */
1490 #define CIGI3_PACKET_SIZE_MOTION_TRACKER_CONTROL 8
1491 static int hf_cigi3_motion_tracker_control = -1;
1492 static int hf_cigi3_motion_tracker_control_view_group_id = -1;
1493 static int hf_cigi3_motion_tracker_control_tracker_id = -1;
1494 static int hf_cigi3_motion_tracker_control_tracker_enable = -1;
1495 static int hf_cigi3_motion_tracker_control_boresight_enable = -1;
1496 static int hf_cigi3_motion_tracker_control_x_enable = -1;
1497 static int hf_cigi3_motion_tracker_control_y_enable = -1;
1498 static int hf_cigi3_motion_tracker_control_z_enable = -1;
1499 static int hf_cigi3_motion_tracker_control_roll_enable = -1;
1500 static int hf_cigi3_motion_tracker_control_pitch_enable = -1;
1501 static int hf_cigi3_motion_tracker_control_yaw_enable = -1;
1502 static int hf_cigi3_motion_tracker_control_view_group_select = -1;
1504 static const true_false_string cigi3_motion_tracker_control_view_group_select_tfs = {
1509 /* CIGI3 Earth Reference Model Definition */
1510 #define CIGI3_PACKET_SIZE_EARTH_REFERENCE_MODEL_DEFINITION 24
1511 static int hf_cigi3_earth_reference_model_definition = -1;
1512 static int hf_cigi3_earth_reference_model_definition_erm_enable = -1;
1513 static int hf_cigi3_earth_reference_model_definition_equatorial_radius = -1;
1514 static int hf_cigi3_earth_reference_model_definition_flattening = -1;
1516 /* CIGI3 Trajectory Definition */
1517 #define CIGI3_PACKET_SIZE_TRAJECTORY_DEFINITION 24
1518 static int hf_cigi3_trajectory_definition = -1;
1519 static int hf_cigi3_trajectory_definition_entity_id = -1;
1520 static int hf_cigi3_trajectory_definition_acceleration_x = -1;
1521 static int hf_cigi3_trajectory_definition_acceleration_y = -1;
1522 static int hf_cigi3_trajectory_definition_acceleration_z = -1;
1523 static int hf_cigi3_trajectory_definition_retardation_rate = -1;
1524 static int hf_cigi3_trajectory_definition_terminal_velocity = -1;
1526 /* CIGI3 View Definition */
1527 #define CIGI3_PACKET_SIZE_VIEW_DEFINITION 32
1528 static int hf_cigi3_view_definition = -1;
1529 static int hf_cigi3_view_definition_view_id = -1;
1530 static int hf_cigi3_view_definition_group_id = -1;
1531 static int hf_cigi3_view_definition_near_enable = -1;
1532 static int hf_cigi3_view_definition_far_enable = -1;
1533 static int hf_cigi3_view_definition_left_enable = -1;
1534 static int hf_cigi3_view_definition_right_enable = -1;
1535 static int hf_cigi3_view_definition_top_enable = -1;
1536 static int hf_cigi3_view_definition_bottom_enable = -1;
1537 static int hf_cigi3_view_definition_mirror_mode = -1;
1538 static int hf_cigi3_view_definition_pixel_replication = -1;
1539 static int hf_cigi3_view_definition_projection_type = -1;
1540 static int hf_cigi3_view_definition_reorder = -1;
1541 static int hf_cigi3_view_definition_view_type = -1;
1542 static int hf_cigi3_view_definition_near = -1;
1543 static int hf_cigi3_view_definition_far = -1;
1544 static int hf_cigi3_view_definition_left = -1;
1545 static int hf_cigi3_view_definition_right = -1;
1546 static int hf_cigi3_view_definition_top = -1;
1547 static int hf_cigi3_view_definition_bottom = -1;
1549 static const value_string cigi3_view_definition_mirror_mode_vals[] = {
1553 {3, "Horizontal and Vertical"},
1557 static const value_string cigi3_view_definition_pixel_replication_vals[] = {
1562 {4, "Defined by IG"},
1563 {5, "Defined by IG"},
1564 {6, "Defined by IG"},
1565 {7, "Defined by IG"},
1569 static const true_false_string cigi3_view_definition_projection_type_tfs = {
1570 "Orthographic Parallel",
1574 static const true_false_string cigi3_view_definition_reorder_tfs = {
1579 /* CIGI3 Collision Detection Segment Definition */
1580 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION 40
1581 static int hf_cigi3_collision_detection_segment_definition = -1;
1582 static int hf_cigi3_collision_detection_segment_definition_entity_id = -1;
1583 static int hf_cigi3_collision_detection_segment_definition_segment_id = -1;
1584 static int hf_cigi3_collision_detection_segment_definition_segment_enable = -1;
1585 static int hf_cigi3_collision_detection_segment_definition_x1 = -1;
1586 static int hf_cigi3_collision_detection_segment_definition_y1 = -1;
1587 static int hf_cigi3_collision_detection_segment_definition_z1 = -1;
1588 static int hf_cigi3_collision_detection_segment_definition_x2 = -1;
1589 static int hf_cigi3_collision_detection_segment_definition_y2 = -1;
1590 static int hf_cigi3_collision_detection_segment_definition_z2 = -1;
1591 static int hf_cigi3_collision_detection_segment_definition_material_mask = -1;
1593 /* CIGI3 Collision Detection Volume Definition */
1594 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION 48
1595 static int hf_cigi3_collision_detection_volume_definition = -1;
1596 static int hf_cigi3_collision_detection_volume_definition_entity_id = -1;
1597 static int hf_cigi3_collision_detection_volume_definition_volume_id = -1;
1598 static int hf_cigi3_collision_detection_volume_definition_volume_enable = -1;
1599 static int hf_cigi3_collision_detection_volume_definition_volume_type = -1;
1600 static int hf_cigi3_collision_detection_volume_definition_x = -1;
1601 static int hf_cigi3_collision_detection_volume_definition_y = -1;
1602 static int hf_cigi3_collision_detection_volume_definition_z = -1;
1603 static int hf_cigi3_collision_detection_volume_definition_radius_height = -1;
1604 static int hf_cigi3_collision_detection_volume_definition_width = -1;
1605 static int hf_cigi3_collision_detection_volume_definition_depth = -1;
1606 static int hf_cigi3_collision_detection_volume_definition_roll = -1;
1607 static int hf_cigi3_collision_detection_volume_definition_pitch = -1;
1608 static int hf_cigi3_collision_detection_volume_definition_yaw = -1;
1610 static const true_false_string cigi3_collision_detection_volume_definition_volume_type_tfs = {
1615 /* CIGI3 HAT/HOT Request */
1616 #define CIGI3_PACKET_SIZE_HAT_HOT_REQUEST 32
1617 static int hf_cigi3_hat_hot_request = -1;
1618 static int hf_cigi3_hat_hot_request_hat_hot_id = -1;
1619 static int hf_cigi3_hat_hot_request_type = -1;
1620 static int hf_cigi3_hat_hot_request_coordinate_system = -1;
1621 static int hf_cigi3_hat_hot_request_entity_id = -1;
1622 static int hf_cigi3_hat_hot_request_lat_xoff = -1;
1623 static int hf_cigi3_hat_hot_request_lon_yoff = -1;
1624 static int hf_cigi3_hat_hot_request_alt_zoff = -1;
1626 static const value_string cigi3_hat_hot_request_type_vals[] = {
1633 static const true_false_string cigi3_hat_hot_request_coordinate_system_tfs = {
1638 /* CIGI3_2 HAT/HOT Request */
1639 #define CIGI3_2_PACKET_SIZE_HAT_HOT_REQUEST 32
1640 static int hf_cigi3_2_hat_hot_request = -1;
1641 static int hf_cigi3_2_hat_hot_request_hat_hot_id = -1;
1642 static int hf_cigi3_2_hat_hot_request_type = -1;
1643 static int hf_cigi3_2_hat_hot_request_coordinate_system = -1;
1644 static int hf_cigi3_2_hat_hot_request_update_period = -1;
1645 static int hf_cigi3_2_hat_hot_request_entity_id = -1;
1646 static int hf_cigi3_2_hat_hot_request_lat_xoff = -1;
1647 static int hf_cigi3_2_hat_hot_request_lon_yoff = -1;
1648 static int hf_cigi3_2_hat_hot_request_alt_zoff = -1;
1650 static const value_string cigi3_2_hat_hot_request_type_vals[] = {
1657 static const true_false_string cigi3_2_hat_hot_request_coordinate_system_tfs = {
1662 /* CIGI3 Line of Sight Segment Request */
1663 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST 64
1664 static int hf_cigi3_line_of_sight_segment_request = -1;
1665 static int hf_cigi3_line_of_sight_segment_request_los_id = -1;
1666 static int hf_cigi3_line_of_sight_segment_request_type = -1;
1667 static int hf_cigi3_line_of_sight_segment_request_source_coord = -1;
1668 static int hf_cigi3_line_of_sight_segment_request_destination_coord = -1;
1669 static int hf_cigi3_line_of_sight_segment_request_response_coord = -1;
1670 static int hf_cigi3_line_of_sight_segment_request_alpha_threshold = -1;
1671 static int hf_cigi3_line_of_sight_segment_request_entity_id = -1;
1672 static int hf_cigi3_line_of_sight_segment_request_source_lat_xoff = -1;
1673 static int hf_cigi3_line_of_sight_segment_request_source_lon_yoff = -1;
1674 static int hf_cigi3_line_of_sight_segment_request_source_alt_zoff = -1;
1675 static int hf_cigi3_line_of_sight_segment_request_destination_lat_xoff = -1;
1676 static int hf_cigi3_line_of_sight_segment_request_destination_lon_yoff = -1;
1677 static int hf_cigi3_line_of_sight_segment_request_destination_alt_zoff = -1;
1678 static int hf_cigi3_line_of_sight_segment_request_material_mask = -1;
1680 static const true_false_string cigi3_line_of_sight_segment_request_type_tfs = {
1685 static const true_false_string cigi3_line_of_sight_segment_request_coord_tfs = {
1690 /* CIGI3_2 Line of Sight Segment Request */
1691 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST 64
1692 static int hf_cigi3_2_line_of_sight_segment_request = -1;
1693 static int hf_cigi3_2_line_of_sight_segment_request_los_id = -1;
1694 static int hf_cigi3_2_line_of_sight_segment_request_type = -1;
1695 static int hf_cigi3_2_line_of_sight_segment_request_source_coord = -1;
1696 static int hf_cigi3_2_line_of_sight_segment_request_destination_coord = -1;
1697 static int hf_cigi3_2_line_of_sight_segment_request_response_coord = -1;
1698 static int hf_cigi3_2_line_of_sight_segment_request_destination_entity_id_valid = -1;
1699 static int hf_cigi3_2_line_of_sight_segment_request_alpha_threshold = -1;
1700 static int hf_cigi3_2_line_of_sight_segment_request_entity_id = -1;
1701 static int hf_cigi3_2_line_of_sight_segment_request_source_lat_xoff = -1;
1702 static int hf_cigi3_2_line_of_sight_segment_request_source_lon_yoff = -1;
1703 static int hf_cigi3_2_line_of_sight_segment_request_source_alt_zoff = -1;
1704 static int hf_cigi3_2_line_of_sight_segment_request_destination_lat_xoff = -1;
1705 static int hf_cigi3_2_line_of_sight_segment_request_destination_lon_yoff = -1;
1706 static int hf_cigi3_2_line_of_sight_segment_request_destination_alt_zoff = -1;
1707 static int hf_cigi3_2_line_of_sight_segment_request_material_mask = -1;
1708 static int hf_cigi3_2_line_of_sight_segment_request_update_period = -1;
1709 static int hf_cigi3_2_line_of_sight_segment_request_destination_entity_id = -1;
1711 static const true_false_string cigi3_2_line_of_sight_segment_request_type_tfs = {
1716 static const true_false_string cigi3_2_line_of_sight_segment_request_coord_tfs = {
1721 /* CIGI3 Line of Sight Vector Request */
1722 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST 56
1723 static int hf_cigi3_line_of_sight_vector_request = -1;
1724 static int hf_cigi3_line_of_sight_vector_request_los_id = -1;
1725 static int hf_cigi3_line_of_sight_vector_request_type = -1;
1726 static int hf_cigi3_line_of_sight_vector_request_source_coord = -1;
1727 static int hf_cigi3_line_of_sight_vector_request_response_coord = -1;
1728 static int hf_cigi3_line_of_sight_vector_request_alpha = -1;
1729 static int hf_cigi3_line_of_sight_vector_request_entity_id = -1;
1730 static int hf_cigi3_line_of_sight_vector_request_azimuth = -1;
1731 static int hf_cigi3_line_of_sight_vector_request_elevation = -1;
1732 static int hf_cigi3_line_of_sight_vector_request_min_range = -1;
1733 static int hf_cigi3_line_of_sight_vector_request_max_range = -1;
1734 static int hf_cigi3_line_of_sight_vector_request_source_lat_xoff = -1;
1735 static int hf_cigi3_line_of_sight_vector_request_source_lon_yoff = -1;
1736 static int hf_cigi3_line_of_sight_vector_request_source_alt_zoff = -1;
1737 static int hf_cigi3_line_of_sight_vector_request_material_mask = -1;
1739 static const true_false_string cigi3_line_of_sight_vector_request_type_tfs = {
1744 static const true_false_string cigi3_line_of_sight_vector_request_coord_tfs = {
1749 /* CIGI3_2 Line of Sight Vector Request */
1750 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST 56
1751 static int hf_cigi3_2_line_of_sight_vector_request = -1;
1752 static int hf_cigi3_2_line_of_sight_vector_request_los_id = -1;
1753 static int hf_cigi3_2_line_of_sight_vector_request_type = -1;
1754 static int hf_cigi3_2_line_of_sight_vector_request_source_coord = -1;
1755 static int hf_cigi3_2_line_of_sight_vector_request_response_coord = -1;
1756 static int hf_cigi3_2_line_of_sight_vector_request_alpha = -1;
1757 static int hf_cigi3_2_line_of_sight_vector_request_entity_id = -1;
1758 static int hf_cigi3_2_line_of_sight_vector_request_azimuth = -1;
1759 static int hf_cigi3_2_line_of_sight_vector_request_elevation = -1;
1760 static int hf_cigi3_2_line_of_sight_vector_request_min_range = -1;
1761 static int hf_cigi3_2_line_of_sight_vector_request_max_range = -1;
1762 static int hf_cigi3_2_line_of_sight_vector_request_source_lat_xoff = -1;
1763 static int hf_cigi3_2_line_of_sight_vector_request_source_lon_yoff = -1;
1764 static int hf_cigi3_2_line_of_sight_vector_request_source_alt_zoff = -1;
1765 static int hf_cigi3_2_line_of_sight_vector_request_material_mask = -1;
1766 static int hf_cigi3_2_line_of_sight_vector_request_update_period = -1;
1768 static const true_false_string cigi3_2_line_of_sight_vector_request_type_tfs = {
1773 static const true_false_string cigi3_2_line_of_sight_vector_request_coord_tfs = {
1778 /* CIGI3 Position Request */
1779 #define CIGI3_PACKET_SIZE_POSITION_REQUEST 8
1780 static int hf_cigi3_position_request = -1;
1781 static int hf_cigi3_position_request_object_id = -1;
1782 static int hf_cigi3_position_request_part_id = -1;
1783 static int hf_cigi3_position_request_update_mode = -1;
1784 static int hf_cigi3_position_request_object_class = -1;
1785 static int hf_cigi3_position_request_coord_system = -1;
1787 static const true_false_string cigi3_position_request_update_mode_tfs = {
1792 static const value_string cigi3_position_request_object_class_vals[] = {
1794 {1, "Articulated Part"},
1797 {4, "Motion Tracker"},
1801 static const value_string cigi3_position_request_coord_system_vals[] = {
1803 {1, "Parent Entity"},
1808 /* CIGI3 Environmental Conditions Request */
1809 #define CIGI3_PACKET_SIZE_ENVIRONMENTAL_CONDITIONS_REQUEST 32
1810 static int hf_cigi3_environmental_conditions_request = -1;
1811 static int hf_cigi3_environmental_conditions_request_type = -1;
1812 static int hf_cigi3_environmental_conditions_request_id = -1;
1813 static int hf_cigi3_environmental_conditions_request_lat = -1;
1814 static int hf_cigi3_environmental_conditions_request_lon = -1;
1815 static int hf_cigi3_environmental_conditions_request_alt = -1;
1817 static const value_string cigi3_environmental_conditions_request_type_vals[] = {
1818 {1, "Maritime Surface Conditions"},
1819 {2, "Terrestrial Surface Conditions"},
1820 {3, "Maritime+Terrestrial Surface Conditions"},
1821 {4, "Weather Conditions"},
1822 {5, "Maritime+Weather Surface Conditions"},
1823 {6, "Terrestrial+Weather Surface Conditions"},
1824 {7, "Maritime+Terrestrial+Weather Surface Conditions"},
1825 {8, "Aerosol Concentrations"},
1826 {9, "Maritime Surface Conditions+Aerosol Concentrations"},
1827 {10, "Terrestrial Surface Conditions+Aerosol Concentrations"},
1828 {11, "Maritime+Terrestrial Surface Conditions+Aerosol Concentrations"},
1829 {12, "Weather Conditions+Aerosol Concentrations"},
1830 {13, "Maritime+Weather Surface Conditions+Aerosol Concentrations"},
1831 {14, "Terrestrial+Weather Surface Conditions+Aerosol Concentrations"},
1832 {15, "Maritime+Terrestrial+Weather Surface Conditions+Aerosol Concentrations"},
1836 /* CIGI3_3 Symbol Surface Definition */
1837 #define CIGI3_PACKET_SIZE_SYMBOL_SURFACE_DEFINITION 56
1838 static int hf_cigi3_3_symbol_surface_definition = -1;
1839 static int hf_cigi3_3_symbol_surface_definition_surface_id = -1;
1840 static int hf_cigi3_3_symbol_surface_definition_surface_state = -1;
1841 static int hf_cigi3_3_symbol_surface_definition_attach_type = -1;
1842 static int hf_cigi3_3_symbol_surface_definition_billboard = -1;
1843 static int hf_cigi3_3_symbol_surface_definition_perspective_growth_enable = -1;
1844 static int hf_cigi3_3_symbol_surface_definition_entity_view_id = -1;
1845 static int hf_cigi3_3_symbol_surface_definition_xoff_left = -1;
1846 static int hf_cigi3_3_symbol_surface_definition_yoff_right = -1;
1847 static int hf_cigi3_3_symbol_surface_definition_zoff_top = -1;
1848 static int hf_cigi3_3_symbol_surface_definition_yaw_bottom = -1;
1849 static int hf_cigi3_3_symbol_surface_definition_pitch = -1;
1850 static int hf_cigi3_3_symbol_surface_definition_roll = -1;
1851 static int hf_cigi3_3_symbol_surface_definition_width = -1;
1852 static int hf_cigi3_3_symbol_surface_definition_height = -1;
1853 static int hf_cigi3_3_symbol_surface_definition_min_u = -1;
1854 static int hf_cigi3_3_symbol_surface_definition_max_u = -1;
1855 static int hf_cigi3_3_symbol_surface_definition_min_v = -1;
1856 static int hf_cigi3_3_symbol_surface_definition_max_v = -1;
1858 static const true_false_string cigi3_3_symbol_surface_definition_surface_state_tfs = {
1863 static const true_false_string cigi3_3_symbol_surface_definition_attach_type_tfs = {
1868 static const true_false_string cigi3_3_symbol_surface_definition_billboard_tfs = {
1873 /* CIGI3_3 Symbol Text Definition */
1874 #define CIGI3_PACKET_SIZE_SYMBOL_TEXT_DEFINITION 56
1875 static int hf_cigi3_3_symbol_text_definition = -1;
1876 static int hf_cigi3_3_symbol_text_definition_symbol_id = -1;
1877 static int hf_cigi3_3_symbol_text_definition_orientation = -1;
1878 static int hf_cigi3_3_symbol_text_definition_alignment = -1;
1879 static int hf_cigi3_3_symbol_text_definition_font_ident = -1;
1880 static int hf_cigi3_3_symbol_text_definition_font_size = -1;
1881 static int hf_cigi3_3_symbol_text_definition_text = -1;
1883 static const value_string cigi3_3_symbol_text_definition_alignment_vals[] = {
1889 {5, "Center Right"},
1891 {7, "Bottom Center"},
1892 {8, "Bottom Right"},
1896 static const value_string cigi3_3_symbol_text_definition_orientation_vals[] = {
1897 {0, "Left To Right"},
1898 {1, "Top To Bottom"},
1899 {2, "Right To Left"},
1900 {3, "Bottom To Top"},
1904 static const value_string cigi3_3_symbol_text_definition_font_ident_vals[] = {
1906 {1, "Proportional Sans Serif"},
1907 {2, "Proportional Sans Serif Bold"},
1908 {3, "Proportional Sans Serif Italic"},
1909 {4, "Proportional Sans Serif Bold Italic"},
1910 {5, "Proportional Serif"},
1911 {6, "Proportional Serif Bold"},
1912 {7, "Proportional Serif Italic"},
1913 {8, "Proportional Serif Bold Italic"},
1914 {9, "Monospace Sans Serif"},
1915 {10, "Monospace Sans Serif Bold"},
1916 {11, "Monospace Sans Serif Italic"},
1917 {12, "Monospace Sans Serif Bold Italic"},
1918 {13, "Monospace Serif"},
1919 {14, "Monospace Serif Bold"},
1920 {15, "Monospace Serif Italic"},
1921 {16, "Monospace Serif Bold Italic"},
1925 /* CIGI3_3 Symbol Circle Definition */
1926 #define CIGI3_PACKET_SIZE_SYMBOL_CIRCLE_DEFINITION 56
1927 static int hf_cigi3_3_symbol_circle_definition = -1;
1928 static int hf_cigi3_3_symbol_circle_definition_symbol_id = -1;
1929 static int hf_cigi3_3_symbol_circle_definition_drawing_style = -1;
1930 static int hf_cigi3_3_symbol_circle_definition_stipple_pattern = -1;
1931 static int hf_cigi3_3_symbol_circle_definition_line_width = -1;
1932 static int hf_cigi3_3_symbol_circle_definition_stipple_pattern_length = -1;
1933 static int hf_cigi3_3_symbol_circle_definition_center_u[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1934 static int hf_cigi3_3_symbol_circle_definition_center_v[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1935 static int hf_cigi3_3_symbol_circle_definition_radius[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1936 static int hf_cigi3_3_symbol_circle_definition_inner_radius[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1937 static int hf_cigi3_3_symbol_circle_definition_start_angle[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1938 static int hf_cigi3_3_symbol_circle_definition_end_angle[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1940 static const true_false_string cigi3_3_symbol_circle_definition_drawing_style_tfs = {
1945 /* CIGI3_3 Symbol Line Definition */
1946 #define CIGI3_PACKET_SIZE_SYMBOL_LINE_DEFINITION 56
1947 static int hf_cigi3_3_symbol_line_definition = -1;
1948 static int hf_cigi3_3_symbol_line_definition_symbol_id = -1;
1949 static int hf_cigi3_3_symbol_line_definition_primitive_type = -1;
1950 static int hf_cigi3_3_symbol_line_definition_stipple_pattern = -1;
1951 static int hf_cigi3_3_symbol_line_definition_line_width = -1;
1952 static int hf_cigi3_3_symbol_line_definition_stipple_pattern_length = -1;
1953 static int hf_cigi3_3_symbol_line_definition_vertex_u[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
1954 static int hf_cigi3_3_symbol_line_definition_vertex_v[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
1956 static const value_string cigi3_3_symbol_line_definition_primitive_type_vals[] = {
1962 {5, "Triangle Strip"},
1963 {6, "Triangle Fan"},
1967 /* CIGI3_3 Symbol Clone */
1968 #define CIGI3_PACKET_SIZE_SYMBOL_CLONE_DEFINITION 8
1969 static int hf_cigi3_3_symbol_clone = -1;
1970 static int hf_cigi3_3_symbol_clone_symbol_id = -1;
1971 static int hf_cigi3_3_symbol_clone_source_type = -1;
1972 static int hf_cigi3_3_symbol_clone_source_id = -1;
1974 static const true_false_string cigi3_3_symbol_clone_source_type_tfs = {
1979 /* CIGI3_3 Symbol Control */
1980 #define CIGI3_PACKET_SIZE_SYMBOL_CONTROL_DEFINITION 40
1981 static int hf_cigi3_3_symbol_control = -1;
1982 static int hf_cigi3_3_symbol_control_symbol_id = -1;
1983 static int hf_cigi3_3_symbol_control_symbol_state = -1;
1984 static int hf_cigi3_3_symbol_control_attach_state = -1;
1985 static int hf_cigi3_3_symbol_control_flash_control = -1;
1986 static int hf_cigi3_3_symbol_control_inherit_color = -1;
1987 static int hf_cigi3_3_symbol_control_parent_symbol_ident = -1;
1988 static int hf_cigi3_3_symbol_control_surface_ident = -1;
1989 static int hf_cigi3_3_symbol_control_layer = -1;
1990 static int hf_cigi3_3_symbol_control_flash_duty_cycle = -1;
1991 static int hf_cigi3_3_symbol_control_flash_period = -1;
1992 static int hf_cigi3_3_symbol_control_position_u = -1;
1993 static int hf_cigi3_3_symbol_control_position_v = -1;
1994 static int hf_cigi3_3_symbol_control_rotation = -1;
1995 static int hf_cigi3_3_symbol_control_red = -1;
1996 static int hf_cigi3_3_symbol_control_green = -1;
1997 static int hf_cigi3_3_symbol_control_blue = -1;
1998 static int hf_cigi3_3_symbol_control_alpha = -1;
1999 static int hf_cigi3_3_symbol_control_scale_u = -1;
2000 static int hf_cigi3_3_symbol_control_scale_v = -1;
2002 static const value_string cigi3_3_symbol_control_symbol_state_vals[] = {
2009 static const true_false_string cigi3_3_symbol_control_attach_state_tfs = {
2014 static const true_false_string cigi3_3_symbol_control_flash_control_tfs = {
2019 static const true_false_string cigi3_3_symbol_control_inherit_color_tfs = {
2024 /* CIGI3_3 Short Symbol Control */
2025 #define CIGI3_PACKET_SIZE_SHORT_SYMBOL_CONTROL_DEFINITION 32
2026 static int hf_cigi3_3_short_symbol_control = -1;
2027 static int hf_cigi3_3_short_symbol_control_symbol_id = -1;
2028 static int hf_cigi3_3_short_symbol_control_inherit_color = -1;
2029 static int hf_cigi3_3_short_symbol_control_flash_control = -1;
2030 static int hf_cigi3_3_short_symbol_control_attach_state = -1;
2031 static int hf_cigi3_3_short_symbol_control_symbol_state = -1;
2032 static int hf_cigi3_3_short_symbol_control_attribute_select1 = -1;
2033 static int hf_cigi3_3_short_symbol_control_attribute_select2 = -1;
2034 static int hf_cigi3_3_short_symbol_control_attribute_value1 = -1;
2035 static int hf_cigi3_3_short_symbol_control_attribute_value2 = -1;
2036 static int hf_cigi3_3_short_symbol_control_attribute_value1f = -1;
2037 static int hf_cigi3_3_short_symbol_control_attribute_value2f = -1;
2038 static int hf_cigi3_3_short_symbol_control_red1 = -1;
2039 static int hf_cigi3_3_short_symbol_control_green1 = -1;
2040 static int hf_cigi3_3_short_symbol_control_blue1 = -1;
2041 static int hf_cigi3_3_short_symbol_control_alpha1 = -1;
2042 static int hf_cigi3_3_short_symbol_control_red2 = -1;
2043 static int hf_cigi3_3_short_symbol_control_green2 = -1;
2044 static int hf_cigi3_3_short_symbol_control_blue2 = -1;
2045 static int hf_cigi3_3_short_symbol_control_alpha2 = -1;
2047 static const value_string cigi3_3_short_symbol_control_attribute_select_vals[] = {
2050 {2, "Parent Symbol ID"},
2052 {4, "Flash Duty Cycle Percentage"},
2053 {5, "Flash Period"},
2063 /* CIGI3 Start of Frame */
2064 #define CIGI3_PACKET_SIZE_START_OF_FRAME 16
2065 static int hf_cigi3_start_of_frame = -1;
2066 static int hf_cigi3_start_of_frame_db_number = -1;
2067 static int hf_cigi3_start_of_frame_ig_status = -1;
2068 static int hf_cigi3_start_of_frame_ig_mode = -1;
2069 static int hf_cigi3_start_of_frame_timestamp_valid = -1;
2070 static int hf_cigi3_start_of_frame_earth_reference_model = -1;
2071 static int hf_cigi3_start_of_frame_frame_ctr = -1;
2072 static int hf_cigi3_start_of_frame_timestamp = -1;
2074 static const value_string cigi3_start_of_frame_ig_mode_vals[] = {
2075 {0, "Reset/Standby"},
2078 {3, "Offline Maintenance"},
2082 static const true_false_string cigi3_start_of_frame_earth_reference_model_tfs = {
2087 /* CIGI3_2 Start of Frame */
2088 #define CIGI3_2_PACKET_SIZE_START_OF_FRAME 24
2089 static int hf_cigi3_2_start_of_frame = -1;
2090 static int hf_cigi3_2_start_of_frame_db_number = -1;
2091 static int hf_cigi3_2_start_of_frame_ig_status = -1;
2092 static int hf_cigi3_2_start_of_frame_ig_mode = -1;
2093 static int hf_cigi3_2_start_of_frame_timestamp_valid = -1;
2094 static int hf_cigi3_2_start_of_frame_earth_reference_model = -1;
2095 static int hf_cigi3_2_start_of_frame_ig_frame_number = -1;
2096 static int hf_cigi3_2_start_of_frame_timestamp = -1;
2097 static int hf_cigi3_2_start_of_frame_last_host_frame_number = -1;
2099 static const value_string cigi3_2_start_of_frame_ig_mode_vals[] = {
2100 {0, "Reset/Standby"},
2103 {3, "Offline Maintenance"},
2107 static const true_false_string cigi3_2_start_of_frame_earth_reference_model_tfs = {
2112 /* CIGI3 HAT/HOT Response */
2113 #define CIGI3_PACKET_SIZE_HAT_HOT_RESPONSE 16
2114 static int hf_cigi3_hat_hot_response = -1;
2115 static int hf_cigi3_hat_hot_response_hat_hot_id = -1;
2116 static int hf_cigi3_hat_hot_response_valid = -1;
2117 static int hf_cigi3_hat_hot_response_type = -1;
2118 static int hf_cigi3_hat_hot_response_height = -1;
2120 static const true_false_string cigi3_hat_hot_response_type_tfs = {
2125 /* CIGI3_2 HAT/HOT Response */
2126 #define CIGI3_2_PACKET_SIZE_HAT_HOT_RESPONSE 16
2127 static int hf_cigi3_2_hat_hot_response = -1;
2128 static int hf_cigi3_2_hat_hot_response_hat_hot_id = -1;
2129 static int hf_cigi3_2_hat_hot_response_valid = -1;
2130 static int hf_cigi3_2_hat_hot_response_type = -1;
2131 static int hf_cigi3_2_hat_hot_response_host_frame_number_lsn = -1;
2132 static int hf_cigi3_2_hat_hot_response_height = -1;
2134 static const true_false_string cigi3_2_hat_hot_response_type_tfs = {
2139 /* CIGI3 HAT/HOT Extended Response */
2140 #define CIGI3_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE 40
2141 static int hf_cigi3_hat_hot_extended_response = -1;
2142 static int hf_cigi3_hat_hot_extended_response_hat_hot_id = -1;
2143 static int hf_cigi3_hat_hot_extended_response_valid = -1;
2144 static int hf_cigi3_hat_hot_extended_response_hat = -1;
2145 static int hf_cigi3_hat_hot_extended_response_hot = -1;
2146 static int hf_cigi3_hat_hot_extended_response_material_code = -1;
2147 static int hf_cigi3_hat_hot_extended_response_normal_vector_azimuth = -1;
2148 static int hf_cigi3_hat_hot_extended_response_normal_vector_elevation = -1;
2150 /* CIGI3_2 HAT/HOT Extended Response */
2151 #define CIGI3_2_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE 40
2152 static int hf_cigi3_2_hat_hot_extended_response = -1;
2153 static int hf_cigi3_2_hat_hot_extended_response_hat_hot_id = -1;
2154 static int hf_cigi3_2_hat_hot_extended_response_valid = -1;
2155 static int hf_cigi3_2_hat_hot_extended_response_host_frame_number_lsn = -1;
2156 static int hf_cigi3_2_hat_hot_extended_response_hat = -1;
2157 static int hf_cigi3_2_hat_hot_extended_response_hot = -1;
2158 static int hf_cigi3_2_hat_hot_extended_response_material_code = -1;
2159 static int hf_cigi3_2_hat_hot_extended_response_normal_vector_azimuth = -1;
2160 static int hf_cigi3_2_hat_hot_extended_response_normal_vector_elevation = -1;
2162 /* CIGI3 Line of Sight Response */
2163 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE 16
2164 static int hf_cigi3_line_of_sight_response = -1;
2165 static int hf_cigi3_line_of_sight_response_los_id = -1;
2166 static int hf_cigi3_line_of_sight_response_valid = -1;
2167 static int hf_cigi3_line_of_sight_response_entity_id_valid = -1;
2168 static int hf_cigi3_line_of_sight_response_visible = -1;
2169 static int hf_cigi3_line_of_sight_response_count = -1;
2170 static int hf_cigi3_line_of_sight_response_entity_id = -1;
2171 static int hf_cigi3_line_of_sight_response_range = -1;
2173 static const true_false_string cigi3_line_of_sight_response_visible_tfs = {
2178 /* CIGI3_2 Line of Sight Response */
2179 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE 16
2180 static int hf_cigi3_2_line_of_sight_response = -1;
2181 static int hf_cigi3_2_line_of_sight_response_los_id = -1;
2182 static int hf_cigi3_2_line_of_sight_response_valid = -1;
2183 static int hf_cigi3_2_line_of_sight_response_entity_id_valid = -1;
2184 static int hf_cigi3_2_line_of_sight_response_visible = -1;
2185 static int hf_cigi3_2_line_of_sight_response_host_frame_number_lsn = -1;
2186 static int hf_cigi3_2_line_of_sight_response_count = -1;
2187 static int hf_cigi3_2_line_of_sight_response_entity_id = -1;
2188 static int hf_cigi3_2_line_of_sight_response_range = -1;
2190 static const true_false_string cigi3_2_line_of_sight_response_visible_tfs = {
2195 /* CIGI3 Line of Sight Extended Response */
2196 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE 56
2197 static int hf_cigi3_line_of_sight_extended_response = -1;
2198 static int hf_cigi3_line_of_sight_extended_response_los_id = -1;
2199 static int hf_cigi3_line_of_sight_extended_response_valid = -1;
2200 static int hf_cigi3_line_of_sight_extended_response_entity_id_valid = -1;
2201 static int hf_cigi3_line_of_sight_extended_response_range_valid = -1;
2202 static int hf_cigi3_line_of_sight_extended_response_visible = -1;
2203 static int hf_cigi3_line_of_sight_extended_response_intersection_coord = -1;
2204 static int hf_cigi3_line_of_sight_extended_response_response_count = -1;
2205 static int hf_cigi3_line_of_sight_extended_response_entity_id = -1;
2206 static int hf_cigi3_line_of_sight_extended_response_range = -1;
2207 static int hf_cigi3_line_of_sight_extended_response_lat_xoff = -1;
2208 static int hf_cigi3_line_of_sight_extended_response_lon_yoff = -1;
2209 static int hf_cigi3_line_of_sight_extended_response_alt_zoff = -1;
2210 static int hf_cigi3_line_of_sight_extended_response_red = -1;
2211 static int hf_cigi3_line_of_sight_extended_response_green = -1;
2212 static int hf_cigi3_line_of_sight_extended_response_blue = -1;
2213 static int hf_cigi3_line_of_sight_extended_response_alpha = -1;
2214 static int hf_cigi3_line_of_sight_extended_response_material_code = -1;
2215 static int hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth = -1;
2216 static int hf_cigi3_line_of_sight_extended_response_normal_vector_elevation = -1;
2218 static const true_false_string cigi3_line_of_sight_extended_response_visible_tfs = {
2223 static const true_false_string cigi3_line_of_sight_extended_response_intersection_coord_tfs = {
2228 /* CIGI3_2 Line of Sight Extended Response */
2229 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE 56
2230 static int hf_cigi3_2_line_of_sight_extended_response = -1;
2231 static int hf_cigi3_2_line_of_sight_extended_response_los_id = -1;
2232 static int hf_cigi3_2_line_of_sight_extended_response_valid = -1;
2233 static int hf_cigi3_2_line_of_sight_extended_response_entity_id_valid = -1;
2234 static int hf_cigi3_2_line_of_sight_extended_response_range_valid = -1;
2235 static int hf_cigi3_2_line_of_sight_extended_response_visible = -1;
2236 static int hf_cigi3_2_line_of_sight_extended_response_host_frame_number_lsn = -1;
2237 static int hf_cigi3_2_line_of_sight_extended_response_response_count = -1;
2238 static int hf_cigi3_2_line_of_sight_extended_response_entity_id = -1;
2239 static int hf_cigi3_2_line_of_sight_extended_response_range = -1;
2240 static int hf_cigi3_2_line_of_sight_extended_response_lat_xoff = -1;
2241 static int hf_cigi3_2_line_of_sight_extended_response_lon_yoff = -1;
2242 static int hf_cigi3_2_line_of_sight_extended_response_alt_zoff = -1;
2243 static int hf_cigi3_2_line_of_sight_extended_response_red = -1;
2244 static int hf_cigi3_2_line_of_sight_extended_response_green = -1;
2245 static int hf_cigi3_2_line_of_sight_extended_response_blue = -1;
2246 static int hf_cigi3_2_line_of_sight_extended_response_alpha = -1;
2247 static int hf_cigi3_2_line_of_sight_extended_response_material_code = -1;
2248 static int hf_cigi3_2_line_of_sight_extended_response_normal_vector_azimuth = -1;
2249 static int hf_cigi3_2_line_of_sight_extended_response_normal_vector_elevation = -1;
2251 static const true_false_string cigi3_2_line_of_sight_extended_response_visible_tfs = {
2256 /* CIGI3 Sensor Response */
2257 #define CIGI3_PACKET_SIZE_SENSOR_RESPONSE 24
2258 static int hf_cigi3_sensor_response = -1;
2259 static int hf_cigi3_sensor_response_view_id = -1;
2260 static int hf_cigi3_sensor_response_sensor_id = -1;
2261 static int hf_cigi3_sensor_response_sensor_status = -1;
2262 static int hf_cigi3_sensor_response_gate_x_size = -1;
2263 static int hf_cigi3_sensor_response_gate_y_size = -1;
2264 static int hf_cigi3_sensor_response_gate_x_pos = -1;
2265 static int hf_cigi3_sensor_response_gate_y_pos = -1;
2266 static int hf_cigi3_sensor_response_frame_ctr = -1;
2268 static const value_string cigi3_sensor_response_sensor_status_vals[] = {
2269 {0, "Searching for target"},
2270 {1, "Tracking target"},
2271 {2, "Impending breaklock"},
2276 /* CIGI3 Sensor Extended Response */
2277 #define CIGI3_PACKET_SIZE_SENSOR_EXTENDED_RESPONSE 48
2278 static int hf_cigi3_sensor_extended_response = -1;
2279 static int hf_cigi3_sensor_extended_response_view_id = -1;
2280 static int hf_cigi3_sensor_extended_response_sensor_id = -1;
2281 static int hf_cigi3_sensor_extended_response_sensor_status = -1;
2282 static int hf_cigi3_sensor_extended_response_entity_id_valid = -1;
2283 static int hf_cigi3_sensor_extended_response_entity_id = -1;
2284 static int hf_cigi3_sensor_extended_response_gate_x_size = -1;
2285 static int hf_cigi3_sensor_extended_response_gate_y_size = -1;
2286 static int hf_cigi3_sensor_extended_response_gate_x_pos = -1;
2287 static int hf_cigi3_sensor_extended_response_gate_y_pos = -1;
2288 static int hf_cigi3_sensor_extended_response_frame_ctr = -1;
2289 static int hf_cigi3_sensor_extended_response_track_lat = -1;
2290 static int hf_cigi3_sensor_extended_response_track_lon = -1;
2291 static int hf_cigi3_sensor_extended_response_track_alt = -1;
2293 static const value_string cigi3_sensor_extended_response_sensor_status_vals[] = {
2294 {0, "Searching for target"},
2295 {1, "Tracking target"},
2296 {2, "Impending breaklock"},
2301 /* CIGI3 Position Response */
2302 #define CIGI3_PACKET_SIZE_POSITION_RESPONSE 48
2303 static int hf_cigi3_position_response = -1;
2304 static int hf_cigi3_position_response_object_id = -1;
2305 static int hf_cigi3_position_response_part_id = -1;
2306 static int hf_cigi3_position_response_object_class = -1;
2307 static int hf_cigi3_position_response_coord_system = -1;
2308 static int hf_cigi3_position_response_lat_xoff = -1;
2309 static int hf_cigi3_position_response_lon_yoff = -1;
2310 static int hf_cigi3_position_response_alt_zoff = -1;
2311 static int hf_cigi3_position_response_roll = -1;
2312 static int hf_cigi3_position_response_pitch = -1;
2313 static int hf_cigi3_position_response_yaw = -1;
2315 static const value_string cigi3_position_response_object_class_vals[] = {
2317 {1, "Articulated Part"},
2320 {4, "Motion Tracker"},
2324 static const value_string cigi3_position_response_coord_system_vals[] = {
2326 {1, "Parent Entity"},
2331 /* CIGI3 Weather Conditions Response */
2332 #define CIGI3_PACKET_SIZE_WEATHER_CONDITIONS_RESPONSE 32
2333 static int hf_cigi3_weather_conditions_response = -1;
2334 static int hf_cigi3_weather_conditions_response_request_id = -1;
2335 static int hf_cigi3_weather_conditions_response_humidity = -1;
2336 static int hf_cigi3_weather_conditions_response_air_temp = -1;
2337 static int hf_cigi3_weather_conditions_response_visibility_range = -1;
2338 static int hf_cigi3_weather_conditions_response_horiz_speed = -1;
2339 static int hf_cigi3_weather_conditions_response_vert_speed = -1;
2340 static int hf_cigi3_weather_conditions_response_wind_direction = -1;
2341 static int hf_cigi3_weather_conditions_response_barometric_pressure = -1;
2343 /* CIGI3 Aerosol Concentration Response */
2344 #define CIGI3_PACKET_SIZE_AEROSOL_CONCENTRATION_RESPONSE 8
2345 static int hf_cigi3_aerosol_concentration_response = -1;
2346 static int hf_cigi3_aerosol_concentration_response_request_id = -1;
2347 static int hf_cigi3_aerosol_concentration_response_layer_id = -1;
2348 static int hf_cigi3_aerosol_concentration_response_aerosol_concentration = -1;
2350 /* CIGI3 Maritime Surface Conditions Response */
2351 #define CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_RESPONSE 16
2352 static int hf_cigi3_maritime_surface_conditions_response = -1;
2353 static int hf_cigi3_maritime_surface_conditions_response_request_id = -1;
2354 static int hf_cigi3_maritime_surface_conditions_response_sea_surface_height = -1;
2355 static int hf_cigi3_maritime_surface_conditions_response_surface_water_temp = -1;
2356 static int hf_cigi3_maritime_surface_conditions_response_surface_clarity = -1;
2358 /* CIGI3 Terrestrial Surface Conditions Response */
2359 #define CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE 8
2360 static int hf_cigi3_terrestrial_surface_conditions_response = -1;
2361 static int hf_cigi3_terrestrial_surface_conditions_response_request_id = -1;
2362 static int hf_cigi3_terrestrial_surface_conditions_response_surface_id = -1;
2364 /* CIGI3 Collision Detection Segment Notification */
2365 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_NOTIFICATION 16
2366 static int hf_cigi3_collision_detection_segment_notification = -1;
2367 static int hf_cigi3_collision_detection_segment_notification_entity_id = -1;
2368 static int hf_cigi3_collision_detection_segment_notification_segment_id = -1;
2369 static int hf_cigi3_collision_detection_segment_notification_type = -1;
2370 static int hf_cigi3_collision_detection_segment_notification_contacted_entity_id = -1;
2371 static int hf_cigi3_collision_detection_segment_notification_material_code = -1;
2372 static int hf_cigi3_collision_detection_segment_notification_intersection_distance = -1;
2374 static const true_false_string cigi3_collision_detection_segment_notification_type_tfs = {
2379 /* CIGI3 Collision Detection Volume Notification */
2380 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_NOTIFICATION 16
2381 static int hf_cigi3_collision_detection_volume_notification = -1;
2382 static int hf_cigi3_collision_detection_volume_notification_entity_id = -1;
2383 static int hf_cigi3_collision_detection_volume_notification_volume_id = -1;
2384 static int hf_cigi3_collision_detection_volume_notification_type = -1;
2385 static int hf_cigi3_collision_detection_volume_notification_contacted_entity_id = -1;
2386 static int hf_cigi3_collision_detection_volume_notification_contacted_volume_id = -1;
2388 static const true_false_string cigi3_collision_detection_volume_notification_type_tfs = {
2393 /* CIGI3 Animation Stop Notification */
2394 #define CIGI3_PACKET_SIZE_ANIMATION_STOP_NOTIFICATION 8
2395 static int hf_cigi3_animation_stop_notification = -1;
2396 static int hf_cigi3_animation_stop_notification_entity_id = -1;
2398 /* CIGI3 Event Notification */
2399 #define CIGI3_PACKET_SIZE_EVENT_NOTIFICATION 16
2400 static int hf_cigi3_event_notification = -1;
2401 static int hf_cigi3_event_notification_event_id = -1;
2402 static int hf_cigi3_event_notification_data_1 = -1;
2403 static int hf_cigi3_event_notification_data_2 = -1;
2404 static int hf_cigi3_event_notification_data_3 = -1;
2406 /* CIGI3 Image Generator Message */
2407 static int hf_cigi3_image_generator_message = -1;
2408 static int hf_cigi3_image_generator_message_id = -1;
2409 static int hf_cigi3_image_generator_message_message = -1;
2411 /* CIGI3 User-Defined Packets */
2412 static int hf_cigi3_user_defined = -1;
2415 /* Global preferences */
2416 #define CIGI_VERSION_FROM_PACKET 0
2417 #define CIGI_VERSION_1 1
2418 #define CIGI_VERSION_2 2
2419 #define CIGI_VERSION_3 3
2421 static gint global_cigi_version = CIGI_VERSION_FROM_PACKET;
2423 #define CIGI_BYTE_ORDER_FROM_PACKET -1
2424 #define CIGI_BYTE_ORDER_BIG_ENDIAN FALSE
2425 #define CIGI_BYTE_ORDER_LITTLE_ENDIAN TRUE
2427 static gint global_cigi_byte_order = CIGI_BYTE_ORDER_FROM_PACKET;
2429 static const char *global_host_ip;
2430 static const char *global_ig_ip;
2433 /* Initialize the subtree pointers */
2434 static gint ett_cigi = -1;
2436 /* The version of cigi to use */
2437 static gint cigi_version = 0;
2438 static gint cigi_minor_version = 0;
2440 /* The byte order of cigi to use; our default is big-endian */
2441 static gint cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN;
2444 * Check whether this looks like a CIGI packet or not.
2447 packet_is_cigi(tvbuff_t *tvb)
2451 guint8 cigi_version_local;
2457 if (tvb_length(tvb) < 3) {
2458 /* Not enough data available to check */
2461 packet_id = tvb_get_guint8(tvb, 0);
2462 packet_size = tvb_get_guint8(tvb, 1);
2463 cigi_version_local = tvb_get_guint8(tvb, 2);
2465 if ( packet_size > tvb_reported_length(tvb) ) {
2469 /* Currently there are only 3 versions of CIGI */
2470 switch ( cigi_version_local ) {
2472 case CIGI_VERSION_1:
2473 /* CIGI 1 requires that the first packet is always the IG Control or SOF */
2474 switch ( packet_id ) {
2476 if ( packet_size != 16 ) {
2480 if (!tvb_bytes_exist(tvb, 4, 1)) {
2481 /* Not enough data available to check */
2484 ig_mode = (tvb_get_guint8(tvb, 4) & 0xc0) >> 6;
2485 if ( ig_mode > 2 ) {
2490 if ( packet_size != 12 ) {
2499 case CIGI_VERSION_2:
2500 /* CIGI 2 requires that the first packet is always the IG Control or SOF */
2501 switch ( packet_id ) {
2502 case CIGI2_PACKET_ID_IG_CONTROL:
2503 if ( packet_size != CIGI2_PACKET_SIZE_IG_CONTROL ) {
2507 if (!tvb_bytes_exist(tvb, 4, 1)) {
2508 /* Not enough data available to check */
2511 ig_mode = (tvb_get_guint8(tvb, 4) & 0xc0) >> 6;
2512 if ( ig_mode > 2 ) {
2516 case CIGI2_PACKET_ID_START_OF_FRAME:
2517 if ( packet_size != CIGI2_PACKET_SIZE_START_OF_FRAME ) {
2526 case CIGI_VERSION_3:
2527 if (!tvb_bytes_exist(tvb, 6, 1)) {
2528 /* Not enough data available to check */
2532 /* CIGI 3 requires that the first packet is always the IG Control or SOF */
2533 switch ( packet_id ) {
2534 case CIGI3_PACKET_ID_IG_CONTROL:
2535 if ( packet_size != CIGI3_PACKET_SIZE_IG_CONTROL ) {
2536 if ( packet_size != CIGI3_2_PACKET_SIZE_IG_CONTROL ) {
2541 if (!tvb_bytes_exist(tvb, 4, 2)) {
2542 /* Not enough data available to check */
2546 ig_mode = (tvb_get_guint8(tvb, 4) & 0x03);
2547 if ( ig_mode > 2 ) {
2552 case CIGI3_PACKET_ID_START_OF_FRAME:
2553 if ( packet_size != CIGI3_PACKET_SIZE_START_OF_FRAME ) {
2554 if ( packet_size != CIGI3_2_PACKET_SIZE_START_OF_FRAME) {
2559 if (!tvb_bytes_exist(tvb, 5, 1)) {
2560 /* Not enough data available to check */
2569 /* CIGI 3 has the byte swap field which only allows two values. */
2570 byte_swap = tvb_get_ntohs(tvb, 6);
2572 if ( byte_swap != CIGI3_BYTE_SWAP_BIG_ENDIAN && byte_swap != CIGI3_BYTE_SWAP_LITTLE_ENDIAN ) {
2581 /* If we made it here, then this is probably CIGI */
2586 * The heuristic dissector
2589 dissect_cigi_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2591 /* Does this look like CIGI? */
2592 if ( !packet_is_cigi(tvb) ) {
2595 dissect_cigi_pdu(tvb, pinfo, tree);
2600 * The non-heuristic dissector.
2603 dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2605 /* Make sure this looks like CIGI */
2606 if ( !packet_is_cigi(tvb) ) {
2609 dissect_cigi_pdu(tvb, pinfo, tree);
2610 /* We probably ate the entire packet. */
2611 return tvb_length(tvb);
2614 /* Code to actually dissect the CIGI packets */
2616 dissect_cigi_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2618 /* Set up structures needed to add the protocol subtree and manage it */
2619 guint8 packet_id = 0;
2621 proto_item *ti, *hidden_item;
2622 proto_tree *cigi_tree;
2624 const char* src_str;
2625 const char* dest_str;
2626 const char* info_str;
2628 packet_id = tvb_get_guint8(tvb, 0);
2631 /* Make entries in Protocol column and Info column on summary display */
2632 if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
2633 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CIGI");
2636 /* If we have the start of frame or IG Control packet set the version
2637 * XXX - If another version of cigi is added to this dissector be sure to
2638 * place the IG Control and SOF packet id's in this comparison. */
2639 if ( ( packet_id == CIGI2_PACKET_ID_IG_CONTROL || packet_id == CIGI2_PACKET_ID_START_OF_FRAME || packet_id == CIGI3_PACKET_ID_IG_CONTROL || packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
2640 cigi_version = tvb_get_guint8(tvb, 2);
2643 /* Format the Info String */
2644 src_str = ip_to_str(pinfo->src.data);
2645 if ( !g_ascii_strcasecmp(global_host_ip, src_str) ) {
2647 } else if ( !g_ascii_strcasecmp(global_ig_ip, src_str) ) {
2651 dest_str = ip_to_str(pinfo->dst.data);
2652 if ( !g_ascii_strcasecmp(global_host_ip, dest_str) ) {
2654 } else if ( !g_ascii_strcasecmp(global_ig_ip, dest_str) ) {
2658 info_str = g_strdup_printf("%s => %s (%u bytes)", src_str, dest_str,
2659 tvb_reported_length(tvb));
2661 if (check_col(pinfo->cinfo, COL_INFO)) {
2662 col_clear(pinfo->cinfo, COL_INFO);
2663 col_add_str(pinfo->cinfo, COL_INFO, info_str);
2668 ti = proto_tree_add_protocol_format(tree, proto_cigi, tvb, 0, tvb_length(tvb), "Common Image Generator Interface (%i), %s", cigi_version, info_str);
2670 cigi_tree = proto_item_add_subtree(ti, ett_cigi);
2673 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_src_port, tvb, 0, 0, pinfo->srcport);
2674 PROTO_ITEM_SET_HIDDEN(hidden_item);
2675 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_dest_port, tvb, 0, 0, pinfo->destport);
2676 PROTO_ITEM_SET_HIDDEN(hidden_item);
2677 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_port, tvb, 0, 0, pinfo->srcport);
2678 PROTO_ITEM_SET_HIDDEN(hidden_item);
2679 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_port, tvb, 0, 0, pinfo->destport);
2680 PROTO_ITEM_SET_HIDDEN(hidden_item);
2683 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_frame_size, tvb, 0, 0, tvb_reported_length(tvb));
2684 PROTO_ITEM_SET_HIDDEN(hidden_item);
2686 /* Since the versions of CIGI are not backwards compatible,
2687 * dissection is different for each version.
2688 * XXX - If another version of cigi is added to this dissector be
2689 * sure to place the version in this statement.*/
2690 if ( cigi_version == CIGI_VERSION_2 ) {
2691 cigi2_add_tree(tvb, cigi_tree);
2692 } else if ( cigi_version == CIGI_VERSION_3 ) {
2693 cigi3_add_tree(tvb, cigi_tree);
2695 /* Since there exists no dissector to dissect this version
2696 * just put the data into a tree using an unknown version */
2697 cigi_add_tree(tvb, cigi_tree);
2702 /* Create the tree for CIGI (Unknown Version)
2703 * Note: If we have no version then we assume network order bytes (big endian). */
2705 cigi_add_tree(tvbuff_t *tvb, proto_tree *cigi_tree)
2710 gint packet_size = 0;
2713 proto_tree* cigi_packet_tree = NULL;
2714 proto_item* tipacket;
2716 length = tvb_length(tvb);
2718 /* Each iteration through this loop is meant to be a separate cigi packet
2719 * therefore it is okay to assume that at the top of this look we are given
2720 * a new packet to dissect. */
2721 while ( offset < length ) {
2723 packet_id = tvb_get_guint8(tvb, offset);
2724 packet_size = tvb_get_guint8(tvb, offset + 1);
2725 data_size = packet_size;
2727 /* if the second byte of the packet carries a value that is less than
2728 * then we know we have a malformed packet because every cigi packet
2729 * at minimal must be a least 2 bytes ( 1 - packet_id; 2 - packet_size ). */
2730 if ( packet_size < 2 ) {
2731 THROW(ReportedBoundsError);
2734 /* If we have the start of frame or IG Control packet set the version.
2735 * Since we have no cigi version we assume that packet id 1 is the
2736 * IG Control and packet id 101 is the Start of Frame. */
2737 if ( ( packet_id == 1 || packet_id == 101 ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
2738 cigi_version = tvb_get_guint8(tvb, 2);
2741 /* Add the subtree for the packet */
2742 tipacket = proto_tree_add_string_format(cigi_tree, hf_cigi_unknown, tvb, offset, packet_size, NULL, "Unknown (%i bytes)", packet_size);
2744 cigi_packet_tree = proto_item_add_subtree(tipacket, ett_cigi);
2746 /* In all CIGI versions the first byte of a packet is the packet ID.
2747 * The second byte is the size of the packet (in bytes). */
2748 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_id, tvb, offset, 1, cigi_byte_order);
2752 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_size, tvb, offset, 1, cigi_byte_order);
2756 /* If the packet ID is for the SOF or IG Control, which are usually 101
2757 * and 1 respectively then also print the version that we are using. */
2758 if ( packet_id == 1 || packet_id == 101 ) {
2759 proto_tree_add_item(cigi_packet_tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
2764 proto_tree_add_text(cigi_packet_tree, tvb, offset, data_size, "Data (%i bytes)", data_size );
2765 offset += data_size;
2770 /* offset is the position past the packet_id and packet_size */
2772 cigi_add_data(tvbuff_t *tvb, proto_tree *tree, gint offset)
2774 gint8 packet_size = 0;
2776 packet_size = tvb_get_guint8(tvb, offset-1);
2778 /* A cigi packet cannot be less than 2 bytes ( because every cigi packet
2779 * has a packet id (1 byte) and a packet size (1 byte) ). */
2780 if ( packet_size < 2 ) {
2781 THROW(ReportedBoundsError);
2784 proto_tree_add_text(tree, tvb, offset, packet_size-2, "Data (%i bytes)", packet_size-2 );
2785 offset += packet_size-2;
2790 /* Create the tree for CIGI 2
2791 * Note: CIGI 2 guarantee's that the byte order will be big endian. */
2793 cigi2_add_tree(tvbuff_t *tvb, proto_tree *cigi_tree)
2797 gint init_offset = 0;
2800 gint packet_size = 0;
2801 gint packet_length = 0;
2803 proto_tree* cigi_packet_tree = NULL;
2804 proto_item* tipacket;
2805 int hf_cigi2_packet = -1;
2807 length = tvb_length(tvb);
2809 /* Each iteration through this loop is meant to be a separate cigi packet
2810 * therefore it is okay to assume that at the top of this look we are given
2811 * a new packet to dissect. */
2812 while ( offset < length ) {
2814 packet_id = tvb_get_guint8(tvb, offset);
2815 packet_size = tvb_get_guint8(tvb, offset + 1);
2817 /* If we have the start of frame or IG Control packet set the version */
2818 if ( ( packet_id == CIGI2_PACKET_ID_IG_CONTROL || packet_id == CIGI2_PACKET_ID_START_OF_FRAME ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
2819 cigi_version = tvb_get_guint8(tvb, 2);
2822 /* Add the subtree for the packet */
2823 if ( packet_id == CIGI2_PACKET_ID_IG_CONTROL ) {
2824 hf_cigi2_packet = hf_cigi2_ig_control;
2825 packet_length = CIGI2_PACKET_SIZE_IG_CONTROL;
2826 } else if ( packet_id == CIGI2_PACKET_ID_ENTITY_CONTROL ) {
2827 hf_cigi2_packet = hf_cigi2_entity_control;
2828 packet_length = CIGI2_PACKET_SIZE_ENTITY_CONTROL;
2829 } else if ( packet_id == CIGI2_PACKET_ID_COMPONENT_CONTROL ) {
2830 hf_cigi2_packet = hf_cigi2_component_control;
2831 packet_length = CIGI2_PACKET_SIZE_COMPONENT_CONTROL;
2832 } else if ( packet_id == CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL ) {
2833 hf_cigi2_packet = hf_cigi2_articulated_parts_control;
2834 packet_length = CIGI2_PACKET_SIZE_ARTICULATED_PARTS_CONTROL;
2835 } else if ( packet_id == CIGI2_PACKET_ID_RATE_CONTROL ) {
2836 hf_cigi2_packet = hf_cigi2_rate_control;
2837 packet_length = CIGI2_PACKET_SIZE_RATE_CONTROL;
2838 } else if ( packet_id == CIGI2_PACKET_ID_ENVIRONMENT_CONTROL ) {
2839 hf_cigi2_packet = hf_cigi2_environment_control;
2840 packet_length = CIGI2_PACKET_SIZE_ENVIRONMENT_CONTROL;
2841 } else if ( packet_id == CIGI2_PACKET_ID_WEATHER_CONTROL ) {
2842 hf_cigi2_packet = hf_cigi2_weather_control;
2843 packet_length = CIGI2_PACKET_SIZE_WEATHER_CONTROL;
2844 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_CONTROL ) {
2845 hf_cigi2_packet = hf_cigi2_view_control;
2846 packet_length = CIGI2_PACKET_SIZE_VIEW_CONTROL;
2847 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_CONTROL ) {
2848 hf_cigi2_packet = hf_cigi2_sensor_control;
2849 packet_length = CIGI2_PACKET_SIZE_SENSOR_CONTROL;
2850 } else if ( packet_id == CIGI2_PACKET_ID_TRAJECTORY_DEFINITION ) {
2851 hf_cigi2_packet = hf_cigi2_trajectory_definition;
2852 packet_length = CIGI2_PACKET_SIZE_TRAJECTORY_DEFINITION;
2853 } else if ( packet_id == CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION ) {
2854 hf_cigi2_packet = hf_cigi2_special_effect_definition;
2855 packet_length = CIGI2_PACKET_SIZE_SPECIAL_EFFECT_DEFINITION;
2856 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_DEFINITION ) {
2857 hf_cigi2_packet = hf_cigi2_view_definition;
2858 packet_length = CIGI2_PACKET_SIZE_VIEW_DEFINITION;
2859 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
2860 hf_cigi2_packet = hf_cigi2_collision_detection_segment_definition;
2861 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION;
2862 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
2863 hf_cigi2_packet = hf_cigi2_collision_detection_volume_definition;
2864 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION;
2865 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST ) {
2866 hf_cigi2_packet = hf_cigi2_height_above_terrain_request;
2867 packet_length = CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_REQUEST;
2868 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST ) {
2869 hf_cigi2_packet = hf_cigi2_line_of_sight_occult_request;
2870 packet_length = CIGI2_PACKET_SIZE_LINE_OF_SIGHT_OCCULT_REQUEST;
2871 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST ) {
2872 hf_cigi2_packet = hf_cigi2_line_of_sight_range_request;
2873 packet_length = CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RANGE_REQUEST;
2874 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST ) {
2875 hf_cigi2_packet = hf_cigi2_height_of_terrain_request;
2876 packet_length = CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_REQUEST;
2877 } else if ( packet_id == CIGI2_PACKET_ID_START_OF_FRAME ) {
2878 hf_cigi2_packet = hf_cigi2_start_of_frame;
2879 packet_length = CIGI2_PACKET_SIZE_START_OF_FRAME;
2880 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE ) {
2881 hf_cigi2_packet = hf_cigi2_height_above_terrain_response;
2882 packet_length = CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_RESPONSE;
2883 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
2884 hf_cigi2_packet = hf_cigi2_line_of_sight_response;
2885 packet_length = CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE;
2886 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE ) {
2887 hf_cigi2_packet = hf_cigi2_collision_detection_segment_response;
2888 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_RESPONSE;
2889 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_RESPONSE ) {
2890 hf_cigi2_packet = hf_cigi2_sensor_response;
2891 packet_length = CIGI2_PACKET_SIZE_SENSOR_RESPONSE;
2892 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE ) {
2893 hf_cigi2_packet = hf_cigi2_height_of_terrain_response;
2894 packet_length = CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_RESPONSE;
2895 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE ) {
2896 hf_cigi2_packet = hf_cigi2_collision_detection_volume_response;
2897 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_RESPONSE;
2898 } else if ( packet_id == CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
2899 hf_cigi2_packet = hf_cigi2_image_generator_message;
2900 packet_length = packet_size;
2901 } else if ( packet_id >= CIGI2_PACKET_ID_USER_DEFINABLE_MIN && packet_id <= CIGI2_PACKET_ID_USER_DEFINABLE_MAX ) {
2902 hf_cigi2_packet = hf_cigi2_user_definable;
2903 packet_length = packet_size;
2905 hf_cigi2_packet = hf_cigi_unknown;
2906 packet_length = packet_size;
2908 tipacket = proto_tree_add_string_format(cigi_tree, hf_cigi2_packet, tvb, offset, packet_length, NULL, "%s (%i bytes)", val_to_str(packet_id, cigi2_packet_id_vals, "Unknown"), packet_length);
2910 cigi_packet_tree = proto_item_add_subtree(tipacket, ett_cigi);
2912 /* In all CIGI versions the first byte of a packet is the packet ID.
2913 * The second byte is the size of the packet (in bytes). */
2914 init_offset = offset;
2915 proto_tree_add_item(cigi_packet_tree, hf_cigi2_packet_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
2918 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_size, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
2921 if ( packet_id == CIGI2_PACKET_ID_IG_CONTROL ) {
2922 offset = cigi2_add_ig_control(tvb, cigi_packet_tree, offset);
2923 } else if ( packet_id == CIGI2_PACKET_ID_ENTITY_CONTROL ) {
2924 offset = cigi2_add_entity_control(tvb, cigi_packet_tree, offset);
2925 } else if ( packet_id == CIGI2_PACKET_ID_COMPONENT_CONTROL ) {
2926 offset = cigi2_add_component_control(tvb, cigi_packet_tree, offset);
2927 } else if ( packet_id == CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL ) {
2928 offset = cigi2_add_articulated_parts_control(tvb, cigi_packet_tree, offset);
2929 } else if ( packet_id == CIGI2_PACKET_ID_RATE_CONTROL ) {
2930 offset = cigi2_add_rate_control(tvb, cigi_packet_tree, offset);
2931 } else if ( packet_id == CIGI2_PACKET_ID_ENVIRONMENT_CONTROL ) {
2932 offset = cigi2_add_environment_control(tvb, cigi_packet_tree, offset);
2933 } else if ( packet_id == CIGI2_PACKET_ID_WEATHER_CONTROL ) {
2934 offset = cigi2_add_weather_control(tvb, cigi_packet_tree, offset);
2935 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_CONTROL ) {
2936 offset = cigi2_add_view_control(tvb, cigi_packet_tree, offset);
2937 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_CONTROL ) {
2938 offset = cigi2_add_sensor_control(tvb, cigi_packet_tree, offset);
2939 } else if ( packet_id == CIGI2_PACKET_ID_TRAJECTORY_DEFINITION ) {
2940 offset = cigi2_add_trajectory_definition(tvb, cigi_packet_tree, offset);
2941 } else if ( packet_id == CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION ) {
2942 offset = cigi2_add_special_effect_definition(tvb, cigi_packet_tree, offset);
2943 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_DEFINITION ) {
2944 offset = cigi2_add_view_definition(tvb, cigi_packet_tree, offset);
2945 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
2946 offset = cigi2_add_collision_detection_segment_definition(tvb, cigi_packet_tree, offset);
2947 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
2948 offset = cigi2_add_collision_detection_volume_definition(tvb, cigi_packet_tree, offset);
2949 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST ) {
2950 offset = cigi2_add_height_above_terrain_request(tvb, cigi_packet_tree, offset);
2951 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST ) {
2952 offset = cigi2_add_line_of_sight_occult_request(tvb, cigi_packet_tree, offset);
2953 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST ) {
2954 offset = cigi2_add_line_of_sight_range_request(tvb, cigi_packet_tree, offset);
2955 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST ) {
2956 offset = cigi2_add_height_of_terrain_request(tvb, cigi_packet_tree, offset);
2957 } else if ( packet_id == CIGI2_PACKET_ID_START_OF_FRAME ) {
2958 offset = cigi2_add_start_of_frame(tvb, cigi_packet_tree, offset);
2959 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE ) {
2960 offset = cigi2_add_height_above_terrain_response(tvb, cigi_packet_tree, offset);
2961 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
2962 offset = cigi2_add_line_of_sight_response(tvb, cigi_packet_tree, offset);
2963 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE ) {
2964 offset = cigi2_add_collision_detection_segment_response(tvb, cigi_packet_tree, offset);
2965 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_RESPONSE ) {
2966 offset = cigi2_add_sensor_response(tvb, cigi_packet_tree, offset);
2967 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE ) {
2968 offset = cigi2_add_height_of_terrain_response(tvb, cigi_packet_tree, offset);
2969 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE ) {
2970 offset = cigi2_add_collision_detection_volume_response(tvb, cigi_packet_tree, offset);
2971 } else if ( packet_id == CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
2972 offset = cigi2_add_image_generator_message(tvb, cigi_packet_tree, offset);
2973 } else if ( packet_id >= CIGI2_PACKET_ID_USER_DEFINABLE_MIN && packet_id <= CIGI2_PACKET_ID_USER_DEFINABLE_MAX ) {
2974 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
2976 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
2979 /* Does the packet offset match the supposed length of the packet? */
2980 DISSECTOR_ASSERT((offset - init_offset == packet_length) && "Packet offset does not match packet length");
2984 /* Create the tree for CIGI 3 */
2986 cigi3_add_tree(tvbuff_t *tvb, proto_tree *cigi_tree)
2990 gint init_offset = 0;
2993 gint packet_size = 0;
2994 gint packet_length = 0;
2995 guint16 byte_swap = 0;
2997 proto_tree* cigi_packet_tree = NULL;
2998 proto_item* tipacket;
2999 int hf_cigi3_packet = -1;
3001 length = tvb_length(tvb);
3003 /* Each iteration through this loop is meant to be a separate cigi packet
3004 * therefore it is okay to assume that at the top of this look we are given
3005 * a new packet to dissect. */
3006 while ( offset < length ) {
3008 packet_id = tvb_get_guint8(tvb, offset);
3009 packet_size = tvb_get_guint8(tvb, offset + 1);
3010 byte_swap = tvb_get_ntohs(tvb, offset + 6);
3012 /* If we have the start of frame or IG Control packet set the version */
3013 if ( ( packet_id == CIGI3_PACKET_ID_IG_CONTROL || packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
3014 cigi_version = tvb_get_guint8(tvb, 2);
3015 if ( packet_size == CIGI3_2_PACKET_SIZE_IG_CONTROL || packet_size == CIGI3_2_PACKET_SIZE_START_OF_FRAME ) {
3016 cigi_minor_version = tvb_get_guint8(tvb, 4) >> 4;
3018 cigi_minor_version = 0;
3022 /* If we have the SOF or IG Control packet set the byte order */
3023 if ( ( packet_id == CIGI3_PACKET_ID_IG_CONTROL || packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) && global_cigi_byte_order == CIGI_BYTE_ORDER_FROM_PACKET ) {
3024 if ( byte_swap == CIGI3_BYTE_SWAP_BIG_ENDIAN ) {
3025 cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN;
3026 } else if ( byte_swap == CIGI3_BYTE_SWAP_LITTLE_ENDIAN ) {
3027 cigi_byte_order = CIGI_BYTE_ORDER_LITTLE_ENDIAN;
3029 /* Assume we want Big-Endian byte order */
3030 cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN;
3034 /* Add the subtree for the packet */
3035 if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 2 ) {
3036 hf_cigi3_packet = hf_cigi3_2_ig_control;
3037 packet_length = CIGI3_2_PACKET_SIZE_IG_CONTROL;
3038 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 3 ) {
3039 hf_cigi3_packet = hf_cigi3_3_ig_control;
3040 packet_length = CIGI3_3_PACKET_SIZE_IG_CONTROL;
3041 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL ) {
3042 hf_cigi3_packet = hf_cigi3_ig_control;
3043 packet_length = CIGI3_PACKET_SIZE_IG_CONTROL;
3044 } else if ( packet_id == CIGI3_PACKET_ID_ENTITY_CONTROL ) {
3045 hf_cigi3_packet = hf_cigi3_entity_control;
3046 packet_length = CIGI3_PACKET_SIZE_ENTITY_CONTROL;
3047 } else if ( packet_id == CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL ) {
3048 hf_cigi3_packet = hf_cigi3_conformal_clamped_entity_control;
3049 packet_length = CIGI3_PACKET_SIZE_CONFORMAL_CLAMPED_ENTITY_CONTROL;
3050 } else if ( packet_id == CIGI3_PACKET_ID_COMPONENT_CONTROL ) {
3051 hf_cigi3_packet = hf_cigi3_component_control;
3052 packet_length = CIGI3_PACKET_SIZE_COMPONENT_CONTROL;
3053 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL ) {
3054 hf_cigi3_packet = hf_cigi3_short_component_control;
3055 packet_length = CIGI3_PACKET_SIZE_SHORT_COMPONENT_CONTROL;
3056 } else if ( packet_id == CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL ) {
3057 hf_cigi3_packet = hf_cigi3_articulated_part_control;
3058 packet_length = CIGI3_PACKET_SIZE_ARTICULATED_PART_CONTROL;
3059 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL ) {
3060 hf_cigi3_packet = hf_cigi3_short_articulated_part_control;
3061 packet_length = CIGI3_PACKET_SIZE_SHORT_ARTICULATED_PART_CONTROL;
3062 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3063 hf_cigi3_packet = hf_cigi3_2_rate_control;
3064 packet_length = CIGI3_2_PACKET_SIZE_RATE_CONTROL;
3065 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL ) {
3066 hf_cigi3_packet = hf_cigi3_rate_control;
3067 packet_length = CIGI3_PACKET_SIZE_RATE_CONTROL;
3068 } else if ( packet_id == CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL ) {
3069 hf_cigi3_packet = hf_cigi3_celestial_sphere_control;
3070 packet_length = CIGI3_PACKET_SIZE_CELESTIAL_SPHERE_CONTROL;
3071 } else if ( packet_id == CIGI3_PACKET_ID_ATMOSPHERE_CONTROL ) {
3072 hf_cigi3_packet = hf_cigi3_atmosphere_control;
3073 packet_length = CIGI3_PACKET_SIZE_ATMOSPHERE_CONTROL;
3074 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL ) {
3075 hf_cigi3_packet = hf_cigi3_environmental_region_control;
3076 packet_length = CIGI3_PACKET_SIZE_ENVIRONMENTAL_REGION_CONTROL;
3077 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONTROL ) {
3078 hf_cigi3_packet = hf_cigi3_weather_control;
3079 packet_length = CIGI3_PACKET_SIZE_WEATHER_CONTROL;
3080 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL ) {
3081 hf_cigi3_packet = hf_cigi3_maritime_surface_conditions_control;
3082 packet_length = CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_CONTROL;
3083 } else if ( packet_id == CIGI3_PACKET_ID_WAVE_CONTROL ) {
3084 hf_cigi3_packet = hf_cigi3_wave_control;
3085 packet_length = CIGI3_PACKET_SIZE_WAVE_CONTROL;
3086 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL ) {
3087 hf_cigi3_packet = hf_cigi3_terrestrial_surface_conditions_control;
3088 packet_length = CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL;
3089 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_CONTROL ) {
3090 hf_cigi3_packet = hf_cigi3_view_control;
3091 packet_length = CIGI3_PACKET_SIZE_VIEW_CONTROL;
3092 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_CONTROL ) {
3093 hf_cigi3_packet = hf_cigi3_sensor_control;
3094 packet_length = CIGI3_PACKET_SIZE_SENSOR_CONTROL;
3095 } else if ( packet_id == CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL ) {
3096 hf_cigi3_packet = hf_cigi3_motion_tracker_control;
3097 packet_length = CIGI3_PACKET_SIZE_MOTION_TRACKER_CONTROL;
3098 } else if ( packet_id == CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION ) {
3099 hf_cigi3_packet = hf_cigi3_earth_reference_model_definition;
3100 packet_length = CIGI3_PACKET_SIZE_EARTH_REFERENCE_MODEL_DEFINITION;
3101 } else if ( packet_id == CIGI3_PACKET_ID_TRAJECTORY_DEFINITION ) {
3102 hf_cigi3_packet = hf_cigi3_trajectory_definition;
3103 packet_length = CIGI3_PACKET_SIZE_TRAJECTORY_DEFINITION;
3104 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_DEFINITION ) {
3105 hf_cigi3_packet = hf_cigi3_view_definition;
3106 packet_length = CIGI3_PACKET_SIZE_VIEW_DEFINITION;
3107 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
3108 hf_cigi3_packet = hf_cigi3_collision_detection_segment_definition;
3109 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION;
3110 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
3111 hf_cigi3_packet = hf_cigi3_collision_detection_volume_definition;
3112 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION;
3113 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3114 hf_cigi3_packet = hf_cigi3_2_hat_hot_request;
3115 packet_length = CIGI3_2_PACKET_SIZE_HAT_HOT_REQUEST;
3116 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST ) {
3117 hf_cigi3_packet = hf_cigi3_hat_hot_request;
3118 packet_length = CIGI3_PACKET_SIZE_HAT_HOT_REQUEST;
3119 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3120 hf_cigi3_packet = hf_cigi3_2_line_of_sight_segment_request;
3121 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST;
3122 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST ) {
3123 hf_cigi3_packet = hf_cigi3_line_of_sight_segment_request;
3124 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST;
3125 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3126 hf_cigi3_packet = hf_cigi3_2_line_of_sight_vector_request;
3127 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST;
3128 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST ) {
3129 hf_cigi3_packet = hf_cigi3_line_of_sight_vector_request;
3130 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST;
3131 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_REQUEST ) {
3132 hf_cigi3_packet = hf_cigi3_position_request;
3133 packet_length = CIGI3_PACKET_SIZE_POSITION_REQUEST;
3134 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST ) {
3135 hf_cigi3_packet = hf_cigi3_environmental_conditions_request;
3136 packet_length = CIGI3_PACKET_SIZE_ENVIRONMENTAL_CONDITIONS_REQUEST;
3137 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION ) {
3138 hf_cigi3_packet = hf_cigi3_3_symbol_surface_definition;
3139 packet_length = CIGI3_PACKET_SIZE_SYMBOL_SURFACE_DEFINITION;
3140 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3141 hf_cigi3_packet = hf_cigi3_2_start_of_frame;
3142 packet_length = CIGI3_2_PACKET_SIZE_START_OF_FRAME;
3143 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) {
3144 hf_cigi3_packet = hf_cigi3_start_of_frame;
3145 packet_length = CIGI3_PACKET_SIZE_START_OF_FRAME;
3146 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3147 hf_cigi3_packet = hf_cigi3_2_hat_hot_response;
3148 packet_length = CIGI3_2_PACKET_SIZE_HAT_HOT_RESPONSE;
3149 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE ) {
3150 hf_cigi3_packet = hf_cigi3_hat_hot_response;
3151 packet_length = CIGI3_PACKET_SIZE_HAT_HOT_RESPONSE;
3152 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3153 hf_cigi3_packet = hf_cigi3_2_hat_hot_extended_response;
3154 packet_length = CIGI3_2_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE;
3155 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE ) {
3156 hf_cigi3_packet = hf_cigi3_hat_hot_extended_response;
3157 packet_length = CIGI3_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE;
3158 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3159 hf_cigi3_packet = hf_cigi3_2_line_of_sight_response;
3160 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE;
3161 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
3162 hf_cigi3_packet = hf_cigi3_line_of_sight_response;
3163 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE;
3164 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3165 hf_cigi3_packet = hf_cigi3_2_line_of_sight_extended_response;
3166 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE;
3167 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE ) {
3168 hf_cigi3_packet = hf_cigi3_line_of_sight_extended_response;
3169 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE;
3170 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_RESPONSE ) {
3171 hf_cigi3_packet = hf_cigi3_sensor_response;
3172 packet_length = CIGI3_PACKET_SIZE_SENSOR_RESPONSE;
3173 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE ) {
3174 hf_cigi3_packet = hf_cigi3_sensor_extended_response;
3175 packet_length = CIGI3_PACKET_SIZE_SENSOR_EXTENDED_RESPONSE;
3176 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_RESPONSE ) {
3177 hf_cigi3_packet = hf_cigi3_position_response;
3178 packet_length = CIGI3_PACKET_SIZE_POSITION_RESPONSE;
3179 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE ) {
3180 hf_cigi3_packet = hf_cigi3_weather_conditions_response;
3181 packet_length = CIGI3_PACKET_SIZE_WEATHER_CONDITIONS_RESPONSE;
3182 } else if ( packet_id == CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE ) {
3183 hf_cigi3_packet = hf_cigi3_aerosol_concentration_response;
3184 packet_length = CIGI3_PACKET_SIZE_AEROSOL_CONCENTRATION_RESPONSE;
3185 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE ) {
3186 hf_cigi3_packet = hf_cigi3_maritime_surface_conditions_response;
3187 packet_length = CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_RESPONSE;
3188 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE ) {
3189 hf_cigi3_packet = hf_cigi3_terrestrial_surface_conditions_response;
3190 packet_length = CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE;
3191 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION ) {
3192 hf_cigi3_packet = hf_cigi3_collision_detection_segment_notification;
3193 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_NOTIFICATION;
3194 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION ) {
3195 hf_cigi3_packet = hf_cigi3_collision_detection_volume_notification;
3196 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_NOTIFICATION;
3197 } else if ( packet_id == CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION ) {
3198 hf_cigi3_packet = hf_cigi3_animation_stop_notification;
3199 packet_length = CIGI3_PACKET_SIZE_ANIMATION_STOP_NOTIFICATION;
3200 } else if ( packet_id == CIGI3_PACKET_ID_EVENT_NOTIFICATION ) {
3201 hf_cigi3_packet = hf_cigi3_event_notification;
3202 packet_length = CIGI3_PACKET_SIZE_EVENT_NOTIFICATION;
3203 } else if ( packet_id == CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
3204 hf_cigi3_packet = hf_cigi3_image_generator_message;
3205 packet_length = packet_size;
3206 } else if ( packet_id >= CIGI3_PACKET_ID_USER_DEFINED_MIN && packet_id <= CIGI3_PACKET_ID_USER_DEFINED_MAX ) {
3207 hf_cigi3_packet = hf_cigi3_user_defined;
3208 packet_length = packet_size;
3210 hf_cigi3_packet = hf_cigi_unknown;
3211 packet_length = packet_size;
3213 tipacket = proto_tree_add_string_format(cigi_tree, hf_cigi3_packet, tvb, offset, packet_length, NULL, "%s (%i bytes)", val_to_str(packet_id, cigi3_packet_id_vals, "Unknown"), packet_length);
3215 cigi_packet_tree = proto_item_add_subtree(tipacket, ett_cigi);
3217 /* In all CIGI versions the first byte of a packet is the packet ID.
3218 * The second byte is the size of the packet (in bytes). */
3219 init_offset = offset;
3220 proto_tree_add_item(cigi_packet_tree, hf_cigi3_packet_id, tvb, offset, 1, cigi_byte_order);
3223 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_size, tvb, offset, 1, cigi_byte_order);
3226 if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 2 ) {
3227 offset = cigi3_2_add_ig_control(tvb, cigi_packet_tree, offset);
3228 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 3 ) {
3229 offset = cigi3_3_add_ig_control(tvb, cigi_packet_tree, offset);
3230 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL ) {
3231 offset = cigi3_add_ig_control(tvb, cigi_packet_tree, offset);
3232 } else if ( packet_id == CIGI3_PACKET_ID_ENTITY_CONTROL && cigi_minor_version == 3 ) {
3233 offset = cigi3_3_add_entity_control(tvb, cigi_packet_tree, offset);
3234 } else if ( packet_id == CIGI3_PACKET_ID_ENTITY_CONTROL ) {
3235 offset = cigi3_add_entity_control(tvb, cigi_packet_tree, offset);
3236 } else if ( packet_id == CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL ) {
3237 offset = cigi3_add_conformal_clamped_entity_control(tvb, cigi_packet_tree, offset);
3238 } else if ( packet_id == CIGI3_PACKET_ID_COMPONENT_CONTROL && cigi_minor_version == 3) {
3239 offset = cigi3_3_add_component_control(tvb, cigi_packet_tree, offset);
3240 } else if ( packet_id == CIGI3_PACKET_ID_COMPONENT_CONTROL ) {
3241 offset = cigi3_add_component_control(tvb, cigi_packet_tree, offset);
3242 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL && cigi_minor_version == 3 ) {
3243 offset = cigi3_3_add_short_component_control(tvb, cigi_packet_tree, offset);
3244 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL ) {
3245 offset = cigi3_add_short_component_control(tvb, cigi_packet_tree, offset);
3246 } else if ( packet_id == CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL ) {
3247 offset = cigi3_add_articulated_part_control(tvb, cigi_packet_tree, offset);
3248 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL ) {
3249 offset = cigi3_add_short_articulated_part_control(tvb, cigi_packet_tree, offset);
3250 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3251 offset = cigi3_2_add_rate_control(tvb, cigi_packet_tree, offset);
3252 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL ) {
3253 offset = cigi3_add_rate_control(tvb, cigi_packet_tree, offset);
3254 } else if ( packet_id == CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL ) {
3255 offset = cigi3_add_celestial_sphere_control(tvb, cigi_packet_tree, offset);
3256 } else if ( packet_id == CIGI3_PACKET_ID_ATMOSPHERE_CONTROL ) {
3257 offset = cigi3_add_atmosphere_control(tvb, cigi_packet_tree, offset);
3258 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL ) {
3259 offset = cigi3_add_environmental_region_control(tvb, cigi_packet_tree, offset);
3260 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONTROL ) {
3261 offset = cigi3_add_weather_control(tvb, cigi_packet_tree, offset);
3262 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL ) {
3263 offset = cigi3_add_maritime_surface_conditions_control(tvb, cigi_packet_tree, offset);
3264 } else if ( packet_id == CIGI3_PACKET_ID_WAVE_CONTROL ) {
3265 offset = cigi3_add_wave_control(tvb, cigi_packet_tree, offset);
3266 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL ) {
3267 offset = cigi3_add_terrestrial_surface_conditions_control(tvb, cigi_packet_tree, offset);
3268 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_CONTROL ) {
3269 offset = cigi3_add_view_control(tvb, cigi_packet_tree, offset);
3270 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_CONTROL ) {
3271 offset = cigi3_add_sensor_control(tvb, cigi_packet_tree, offset);
3272 } else if ( packet_id == CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL ) {
3273 offset = cigi3_add_motion_tracker_control(tvb, cigi_packet_tree, offset);
3274 } else if ( packet_id == CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION ) {
3275 offset = cigi3_add_earth_reference_model_definition(tvb, cigi_packet_tree, offset);
3276 } else if ( packet_id == CIGI3_PACKET_ID_TRAJECTORY_DEFINITION ) {
3277 offset = cigi3_add_trajectory_definition(tvb, cigi_packet_tree, offset);
3278 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_DEFINITION ) {
3279 offset = cigi3_add_view_definition(tvb, cigi_packet_tree, offset);
3280 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
3281 offset = cigi3_add_collision_detection_segment_definition(tvb, cigi_packet_tree, offset);
3282 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
3283 offset = cigi3_add_collision_detection_volume_definition(tvb, cigi_packet_tree, offset);
3284 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3285 offset = cigi3_2_add_hat_hot_request(tvb, cigi_packet_tree, offset);
3286 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST ) {
3287 offset = cigi3_add_hat_hot_request(tvb, cigi_packet_tree, offset);
3288 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3289 offset = cigi3_2_add_line_of_sight_segment_request(tvb, cigi_packet_tree, offset);
3290 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST ) {
3291 offset = cigi3_add_line_of_sight_segment_request(tvb, cigi_packet_tree, offset);
3292 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3293 offset = cigi3_2_add_line_of_sight_vector_request(tvb, cigi_packet_tree, offset);
3294 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST ) {
3295 offset = cigi3_add_line_of_sight_vector_request(tvb, cigi_packet_tree, offset);
3296 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_REQUEST ) {
3297 offset = cigi3_add_position_request(tvb, cigi_packet_tree, offset);
3298 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST ) {
3299 offset = cigi3_add_environmental_conditions_request(tvb, cigi_packet_tree, offset);
3300 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION && cigi_minor_version == 3 ) {
3301 offset = cigi3_3_add_symbol_surface_definition(tvb, cigi_packet_tree, offset);
3302 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_TEXT_DEFINITION && cigi_minor_version == 3 ) {
3303 offset = cigi3_3_add_symbol_text_definition(tvb, cigi_packet_tree, offset);
3304 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_CIRCLE_DEFINITION && cigi_minor_version == 3 ) {
3305 offset = cigi3_3_add_symbol_circle_definition(tvb, cigi_packet_tree, offset);
3306 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_LINE_DEFINITION && cigi_minor_version == 3 ) {
3307 offset = cigi3_3_add_symbol_line_definition(tvb, cigi_packet_tree, offset);
3308 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_CLONE && cigi_minor_version == 3 ) {
3309 offset = cigi3_3_add_symbol_clone(tvb, cigi_packet_tree, offset);
3310 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_CONTROL && cigi_minor_version == 3 ) {
3311 offset = cigi3_3_add_symbol_control(tvb, cigi_packet_tree, offset);
3312 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_SYMBOL_CONTROL && cigi_minor_version == 3 ) {
3313 offset = cigi3_3_add_short_symbol_control(tvb, cigi_packet_tree, offset);
3314 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3315 offset = cigi3_2_add_start_of_frame(tvb, cigi_packet_tree, offset);
3316 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) {
3317 offset = cigi3_add_start_of_frame(tvb, cigi_packet_tree, offset);
3318 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3319 offset = cigi3_2_add_hat_hot_response(tvb, cigi_packet_tree, offset);
3320 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE ) {
3321 offset = cigi3_add_hat_hot_response(tvb, cigi_packet_tree, offset);
3322 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3323 offset = cigi3_2_add_hat_hot_extended_response(tvb, cigi_packet_tree, offset);
3324 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE ) {
3325 offset = cigi3_add_hat_hot_extended_response(tvb, cigi_packet_tree, offset);
3326 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3327 offset = cigi3_2_add_line_of_sight_response(tvb, cigi_packet_tree, offset);
3328 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
3329 offset = cigi3_add_line_of_sight_response(tvb, cigi_packet_tree, offset);
3330 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3331 offset = cigi3_2_add_line_of_sight_extended_response(tvb, cigi_packet_tree, offset);
3332 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE ) {
3333 offset = cigi3_add_line_of_sight_extended_response(tvb, cigi_packet_tree, offset);
3334 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_RESPONSE ) {
3335 offset = cigi3_add_sensor_response(tvb, cigi_packet_tree, offset);
3336 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE ) {
3337 offset = cigi3_add_sensor_extended_response(tvb, cigi_packet_tree, offset);
3338 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_RESPONSE ) {
3339 offset = cigi3_add_position_response(tvb, cigi_packet_tree, offset);
3340 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE ) {
3341 offset = cigi3_add_weather_conditions_response(tvb, cigi_packet_tree, offset);
3342 } else if ( packet_id == CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE ) {
3343 offset = cigi3_add_aerosol_concentration_response(tvb, cigi_packet_tree, offset);
3344 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE ) {
3345 offset = cigi3_add_maritime_surface_conditions_response(tvb, cigi_packet_tree, offset);
3346 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE ) {
3347 offset = cigi3_add_terrestrial_surface_conditions_response(tvb, cigi_packet_tree, offset);
3348 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION ) {
3349 offset = cigi3_add_collision_detection_segment_notification(tvb, cigi_packet_tree, offset);
3350 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION ) {
3351 offset = cigi3_add_collision_detection_volume_notification(tvb, cigi_packet_tree, offset);
3352 } else if ( packet_id == CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION ) {
3353 offset = cigi3_add_animation_stop_notification(tvb, cigi_packet_tree, offset);
3354 } else if ( packet_id == CIGI3_PACKET_ID_EVENT_NOTIFICATION ) {
3355 offset = cigi3_add_event_notification(tvb, cigi_packet_tree, offset);
3356 } else if ( packet_id == CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
3357 offset = cigi3_add_image_generator_message(tvb, cigi_packet_tree, offset);
3358 } else if ( packet_id >= CIGI3_PACKET_ID_USER_DEFINED_MIN && packet_id <= CIGI3_PACKET_ID_USER_DEFINED_MAX ) {
3359 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
3361 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
3364 /* Does the packet offset match the supposed length of the packet? */
3365 DISSECTOR_ASSERT((offset - init_offset == packet_length) && "Packet offset does not match packet length");
3369 /* CIGI2 IG Control */
3371 cigi2_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3373 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3376 proto_tree_add_item(tree, hf_cigi2_ig_control_db_number, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3379 proto_tree_add_item(tree, hf_cigi2_ig_control_ig_mode, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3380 proto_tree_add_item(tree, hf_cigi2_ig_control_tracking_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3381 proto_tree_add_item(tree, hf_cigi2_ig_control_boresight, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3384 proto_tree_add_item(tree, hf_cigi2_ig_control_frame_ctr, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3387 proto_tree_add_item(tree, hf_cigi2_ig_control_time_tag, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3393 /* CIGI2 Entity Control */
3395 cigi2_add_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3397 proto_tree_add_item(tree, hf_cigi2_entity_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3400 proto_tree_add_item(tree, hf_cigi2_entity_control_entity_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3401 proto_tree_add_item(tree, hf_cigi2_entity_control_attach_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3402 proto_tree_add_item(tree, hf_cigi2_entity_control_collision_detect, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3403 proto_tree_add_item(tree, hf_cigi2_entity_control_effect_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3406 proto_tree_add_item(tree, hf_cigi2_entity_control_type, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3409 proto_tree_add_item(tree, hf_cigi2_entity_control_parent_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3412 proto_tree_add_item(tree, hf_cigi2_entity_control_opacity, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3415 proto_tree_add_item(tree, hf_cigi2_entity_control_internal_temp, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3418 proto_tree_add_item(tree, hf_cigi2_entity_control_roll, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3421 proto_tree_add_item(tree, hf_cigi2_entity_control_pitch, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3424 proto_tree_add_item(tree, hf_cigi2_entity_control_heading, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3427 proto_tree_add_item(tree, hf_cigi2_entity_control_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3430 proto_tree_add_item(tree, hf_cigi2_entity_control_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3433 proto_tree_add_item(tree, hf_cigi2_entity_control_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3439 /* CIGI2 Component Control */
3441 cigi2_add_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3443 proto_tree_add_item(tree, hf_cigi2_component_control_instance_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3446 proto_tree_add_item(tree, hf_cigi2_component_control_component_class, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3449 proto_tree_add_item(tree, hf_cigi2_component_control_component_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3452 proto_tree_add_item(tree, hf_cigi2_component_control_component_state, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3455 proto_tree_add_item(tree, hf_cigi2_component_control_component_val1, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3458 proto_tree_add_item(tree, hf_cigi2_component_control_component_val2, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3464 /* CIGI2 Articulated Part Control */
3466 cigi2_add_articulated_parts_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3468 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3471 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_part_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3474 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_part_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3475 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_xoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3476 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_yoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3477 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_zoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3478 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_roll_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3479 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_pitch_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3480 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_yaw_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3483 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_x_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3486 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_y_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3489 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_z_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3492 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_roll, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3495 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_pitch, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3498 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_yaw, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3504 /* CIGI2 Rate Control */
3506 cigi2_add_rate_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3508 proto_tree_add_item(tree, hf_cigi2_rate_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3511 proto_tree_add_item(tree, hf_cigi2_rate_control_part_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3514 proto_tree_add_item(tree, hf_cigi2_rate_control_x_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3517 proto_tree_add_item(tree, hf_cigi2_rate_control_y_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3520 proto_tree_add_item(tree, hf_cigi2_rate_control_z_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3523 proto_tree_add_item(tree, hf_cigi2_rate_control_roll_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3526 proto_tree_add_item(tree, hf_cigi2_rate_control_pitch_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3529 proto_tree_add_item(tree, hf_cigi2_rate_control_yaw_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3535 /* CIGI2 Environment Control */
3537 cigi2_add_environment_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3539 proto_tree_add_item(tree, hf_cigi2_environment_control_hour, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3542 proto_tree_add_item(tree, hf_cigi2_environment_control_minute, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3545 proto_tree_add_item(tree, hf_cigi2_environment_control_ephemeris_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3546 proto_tree_add_item(tree, hf_cigi2_environment_control_humidity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3549 proto_tree_add_item(tree, hf_cigi2_environment_control_modtran_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3552 proto_tree_add_item(tree, hf_cigi2_environment_control_date, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3555 proto_tree_add_item(tree, hf_cigi2_environment_control_air_temp, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3558 proto_tree_add_item(tree, hf_cigi2_environment_control_global_visibility, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3561 proto_tree_add_item(tree, hf_cigi2_environment_control_wind_speed, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3564 proto_tree_add_item(tree, hf_cigi2_environment_control_wind_direction, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3567 proto_tree_add_item(tree, hf_cigi2_environment_control_pressure, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3570 proto_tree_add_item(tree, hf_cigi2_environment_control_aerosol, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3576 /* CIGI2 Weather Control */
3578 cigi2_add_weather_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3580 proto_tree_add_item(tree, hf_cigi2_weather_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3583 proto_tree_add_item(tree, hf_cigi2_weather_control_weather_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3584 proto_tree_add_item(tree, hf_cigi2_weather_control_scud_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3585 proto_tree_add_item(tree, hf_cigi2_weather_control_random_winds, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3586 proto_tree_add_item(tree, hf_cigi2_weather_control_severity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3589 proto_tree_add_item(tree, hf_cigi2_weather_control_phenomenon_type, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3592 proto_tree_add_item(tree, hf_cigi2_weather_control_air_temp, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3595 proto_tree_add_item(tree, hf_cigi2_weather_control_opacity, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3598 proto_tree_add_item(tree, hf_cigi2_weather_control_scud_frequency, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3601 proto_tree_add_item(tree, hf_cigi2_weather_control_coverage, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3604 proto_tree_add_item(tree, hf_cigi2_weather_control_elevation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3607 proto_tree_add_item(tree, hf_cigi2_weather_control_thickness, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3610 proto_tree_add_item(tree, hf_cigi2_weather_control_transition_band, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3613 proto_tree_add_item(tree, hf_cigi2_weather_control_wind_speed, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3616 proto_tree_add_item(tree, hf_cigi2_weather_control_wind_direction, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3622 /* CIGI2 View Control */
3624 cigi2_add_view_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3626 proto_tree_add_item(tree, hf_cigi2_view_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3629 proto_tree_add_item(tree, hf_cigi2_view_control_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3630 proto_tree_add_item(tree, hf_cigi2_view_control_view_group, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3633 proto_tree_add_item(tree, hf_cigi2_view_control_xoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3634 proto_tree_add_item(tree, hf_cigi2_view_control_yoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3635 proto_tree_add_item(tree, hf_cigi2_view_control_zoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3636 proto_tree_add_item(tree, hf_cigi2_view_control_roll_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3637 proto_tree_add_item(tree, hf_cigi2_view_control_pitch_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3638 proto_tree_add_item(tree, hf_cigi2_view_control_yaw_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3641 proto_tree_add_item(tree, hf_cigi2_view_control_x_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3644 proto_tree_add_item(tree, hf_cigi2_view_control_y_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3647 proto_tree_add_item(tree, hf_cigi2_view_control_z_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3650 proto_tree_add_item(tree, hf_cigi2_view_control_roll, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3653 proto_tree_add_item(tree, hf_cigi2_view_control_pitch, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3656 proto_tree_add_item(tree, hf_cigi2_view_control_yaw, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3662 /* CIGI2 Sensor Control */
3664 cigi2_add_sensor_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3666 proto_tree_add_item(tree, hf_cigi2_sensor_control_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3667 proto_tree_add_item(tree, hf_cigi2_sensor_control_sensor_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3668 proto_tree_add_item(tree, hf_cigi2_sensor_control_polarity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3669 proto_tree_add_item(tree, hf_cigi2_sensor_control_line_dropout, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3672 proto_tree_add_item(tree, hf_cigi2_sensor_control_sensor_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3675 proto_tree_add_item(tree, hf_cigi2_sensor_control_track_mode, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3676 proto_tree_add_item(tree, hf_cigi2_sensor_control_auto_gain, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3677 proto_tree_add_item(tree, hf_cigi2_sensor_control_track_polarity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3680 proto_tree_add_item(tree, hf_cigi2_sensor_control_gain, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3683 proto_tree_add_item(tree, hf_cigi2_sensor_control_level, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3686 proto_tree_add_item(tree, hf_cigi2_sensor_control_ac_coupling, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3689 proto_tree_add_item(tree, hf_cigi2_sensor_control_noise, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3695 /* CIGI2 Trajectory Definition */
3697 cigi2_add_trajectory_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3699 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3702 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_acceleration, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3705 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_retardation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3708 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_terminal_velocity, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3714 /* CIGI2 Special Effect Definition */
3716 cigi2_add_special_effect_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3718 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3721 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_seq_direction, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3722 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_color_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3725 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_red, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3728 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_green, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3731 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_blue, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3734 proto_tree_add_float(tree, hf_cigi2_special_effect_definition_x_scale, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3737 proto_tree_add_float(tree, hf_cigi2_special_effect_definition_y_scale, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3740 proto_tree_add_float(tree, hf_cigi2_special_effect_definition_z_scale, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3743 proto_tree_add_float(tree, hf_cigi2_special_effect_definition_time_scale, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3746 proto_tree_add_text(tree, tvb, offset, 2, "Spare");
3749 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_effect_count, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3752 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_separation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3755 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_burst_interval, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3758 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_duration, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3764 /* CIGI2 View Definition */
3766 cigi2_add_view_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3768 proto_tree_add_item(tree, hf_cigi2_view_definition_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3769 proto_tree_add_item(tree, hf_cigi2_view_definition_view_group, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3772 proto_tree_add_item(tree, hf_cigi2_view_definition_view_type, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3773 proto_tree_add_item(tree, hf_cigi2_view_definition_pixel_rep, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3774 proto_tree_add_item(tree, hf_cigi2_view_definition_mirror, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3777 proto_tree_add_item(tree, hf_cigi2_view_definition_tracker_assign, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3778 proto_tree_add_item(tree, hf_cigi2_view_definition_near_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3779 proto_tree_add_item(tree, hf_cigi2_view_definition_far_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3780 proto_tree_add_item(tree, hf_cigi2_view_definition_left_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3781 proto_tree_add_item(tree, hf_cigi2_view_definition_right_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3782 proto_tree_add_item(tree, hf_cigi2_view_definition_top_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3783 proto_tree_add_item(tree, hf_cigi2_view_definition_bottom_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3786 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_near, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3789 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_far, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3792 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_left, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3795 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_right, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3798 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_top, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3801 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_bottom, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3807 /* CIGI2 Collision Detection Segment Definition */
3809 cigi2_add_collision_detection_segment_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3811 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3814 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_segment_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3815 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_segment_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3818 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_collision_mask, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3821 proto_tree_add_float(tree, hf_cigi2_collision_detection_segment_definition_x_start, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3824 proto_tree_add_float(tree, hf_cigi2_collision_detection_segment_definition_y_start, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3827 proto_tree_add_float(tree, hf_cigi2_collision_detection_segment_definition_z_start, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3830 proto_tree_add_float(tree, hf_cigi2_collision_detection_segment_definition_x_end, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3833 proto_tree_add_float(tree, hf_cigi2_collision_detection_segment_definition_y_end, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3836 proto_tree_add_float(tree, hf_cigi2_collision_detection_segment_definition_z_end, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3842 /* CIGI2 Collision Detection Volume Definition*/
3844 cigi2_add_collision_detection_volume_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3846 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3849 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_definition_volume_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3850 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_definition_volume_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3853 proto_tree_add_float(tree, hf_cigi2_collision_detection_volume_definition_x_offset, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3856 proto_tree_add_float(tree, hf_cigi2_collision_detection_volume_definition_y_offset, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3859 proto_tree_add_float(tree, hf_cigi2_collision_detection_volume_definition_z_offset, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3862 proto_tree_add_float(tree, hf_cigi2_collision_detection_volume_definition_height, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3865 proto_tree_add_float(tree, hf_cigi2_collision_detection_volume_definition_width, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3868 proto_tree_add_float(tree, hf_cigi2_collision_detection_volume_definition_depth, tvb, offset, 2, tvb_get_fixed_point(tvb, offset, CIGI_BYTE_ORDER_BIG_ENDIAN));
3874 /* CIGI2 Height Above Terrain Request*/
3876 cigi2_add_height_above_terrain_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3878 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_hat_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3881 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3884 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3887 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3893 /* CIGI2 Line of Sight Occult Request */
3895 cigi2_add_line_of_sight_occult_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3897 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_los_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3900 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_source_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3903 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_source_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3906 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_source_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3909 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_dest_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3912 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_dest_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3915 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_dest_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3921 /* CIGI2 Line of Sight Range Request */
3923 cigi2_add_line_of_sight_range_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3925 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_los_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3928 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_azimuth, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3931 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_elevation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3934 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_min_range, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3937 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_max_range, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3940 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_source_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3943 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_source_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3946 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_source_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3952 /* CIGI2 Height of Terrain Request */
3954 cigi2_add_height_of_terrain_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3956 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_request_hot_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3959 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_request_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3962 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_request_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3968 /* CIGI2 Start of Frame */
3970 cigi2_add_start_of_frame(tvbuff_t *tvb, proto_tree *tree, gint offset)
3972 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3975 proto_tree_add_item(tree, hf_cigi2_start_of_frame_db_number, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3978 proto_tree_add_item(tree, hf_cigi2_start_of_frame_ig_status_code, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3981 proto_tree_add_item(tree, hf_cigi2_start_of_frame_ig_mode, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3984 proto_tree_add_item(tree, hf_cigi2_start_of_frame_frame_ctr, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3987 proto_tree_add_item(tree, hf_cigi2_start_of_frame_time_tag, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3993 /* CIGI2 Height Above Terrain Response */
3995 cigi2_add_height_above_terrain_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
3997 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_hat_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4000 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_valid, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4003 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4006 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4012 /* CIGI2 Line of Sight Response */
4014 cigi2_add_line_of_sight_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4016 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_los_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4019 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_valid, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4020 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_occult_response, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4023 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4026 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_range, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4029 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4032 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4035 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4041 /* CIGI2 Collision Detection Segment Response */
4043 cigi2_add_collision_detection_segment_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4045 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4048 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_segment_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4049 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_contact, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4052 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_contacted_entity, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4055 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4058 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_collision_x, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4061 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_collision_y, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4064 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_collision_z, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4070 /* CIGI2 Sensor Response */
4072 cigi2_add_sensor_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4074 proto_tree_add_item(tree, hf_cigi2_sensor_response_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4075 proto_tree_add_item(tree, hf_cigi2_sensor_response_status, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4078 proto_tree_add_item(tree, hf_cigi2_sensor_response_sensor_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4081 proto_tree_add_item(tree, hf_cigi2_sensor_response_x_offset, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4084 proto_tree_add_item(tree, hf_cigi2_sensor_response_y_offset, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4087 proto_tree_add_item(tree, hf_cigi2_sensor_response_x_size, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4090 proto_tree_add_item(tree, hf_cigi2_sensor_response_y_size, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4096 /* CIGI2 Height of Terrain Response */
4098 cigi2_add_height_of_terrain_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4100 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_hot_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4103 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_valid, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4106 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4109 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4115 /* CIGI2 Collision Detection Volume Response */
4117 cigi2_add_collision_detection_volume_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4119 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4122 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_volume_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4123 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_contact, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4126 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_contact_entity, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4132 /* CIGI2 Image Generator Message */
4134 cigi2_add_image_generator_message(tvbuff_t *tvb, proto_tree *tree, gint offset)
4136 guint8 packet_size = 0;
4138 packet_size = tvb_get_guint8(tvb, offset-1);
4140 /* An image generator packet cannot be less than 4 bytes ( because every cigi packet
4141 * has a packet id (1 byte) and a packet size (1 byte) ). */
4142 if ( packet_size < 4 ) {
4143 THROW(ReportedBoundsError);
4146 proto_tree_add_item(tree, hf_cigi2_image_generator_message_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4149 proto_tree_add_item(tree, hf_cigi2_image_generator_message_message, tvb, offset, packet_size-4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4150 offset += packet_size-4;
4155 /* CIGI3 IG Control */
4157 cigi3_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4159 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
4162 proto_tree_add_item(tree, hf_cigi3_ig_control_db_number, tvb, offset, 1, cigi_byte_order);
4165 proto_tree_add_item(tree, hf_cigi3_ig_control_ig_mode, tvb, offset, 1, cigi_byte_order);
4166 proto_tree_add_item(tree, hf_cigi3_ig_control_timestamp_valid, tvb, offset, 1, cigi_byte_order);
4169 /* Get the Byte Swap in Big-Endian so that we can display whether the value
4170 * is big-endian or little-endian to the user */
4171 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4174 proto_tree_add_item(tree, hf_cigi3_ig_control_frame_ctr, tvb, offset, 4, cigi_byte_order);
4177 proto_tree_add_item(tree, hf_cigi3_ig_control_timestamp, tvb, offset, 4, cigi_byte_order);
4183 /* CIGI3_2 IG Control */
4185 cigi3_2_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4187 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
4190 proto_tree_add_item(tree, hf_cigi3_2_ig_control_db_number, tvb, offset, 1, cigi_byte_order);
4193 proto_tree_add_item(tree, hf_cigi3_2_ig_control_ig_mode, tvb, offset, 1, cigi_byte_order);
4194 proto_tree_add_item(tree, hf_cigi3_2_ig_control_timestamp_valid, tvb, offset, 1, cigi_byte_order);
4197 /* Get the Byte Swap in Big-Endian so that we can display whether the value
4198 * is big-endian or little-endian to the user */
4199 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4202 proto_tree_add_item(tree, hf_cigi3_2_ig_control_host_frame_number, tvb, offset, 4, cigi_byte_order);
4205 proto_tree_add_item(tree, hf_cigi3_2_ig_control_timestamp, tvb, offset, 4, cigi_byte_order);
4208 proto_tree_add_item(tree, hf_cigi3_2_ig_control_last_ig_frame_number, tvb, offset, 4, cigi_byte_order);
4214 /* CIGI3_3 IG Control */
4216 cigi3_3_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4218 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
4221 proto_tree_add_item(tree, hf_cigi3_3_ig_control_db_number, tvb, offset, 1, cigi_byte_order);
4224 proto_tree_add_item(tree, hf_cigi3_3_ig_control_ig_mode, tvb, offset, 1, cigi_byte_order);
4225 proto_tree_add_item(tree, hf_cigi3_3_ig_control_timestamp_valid, tvb, offset, 1, cigi_byte_order);
4226 proto_tree_add_item(tree, hf_cigi3_3_ig_control_extrapolation_enable, tvb, offset, 1, cigi_byte_order);
4227 proto_tree_add_item(tree, hf_cigi3_3_ig_control_minor_version, tvb, offset, 1, cigi_byte_order);
4230 /* Get the Byte Swap in Big-Endian so that we can display whether the value
4231 * is big-endian or little-endian to the user */
4232 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4235 proto_tree_add_item(tree, hf_cigi3_2_ig_control_host_frame_number, tvb, offset, 4, cigi_byte_order);
4238 proto_tree_add_item(tree, hf_cigi3_2_ig_control_timestamp, tvb, offset, 4, cigi_byte_order);
4241 proto_tree_add_item(tree, hf_cigi3_2_ig_control_last_ig_frame_number, tvb, offset, 4, cigi_byte_order);
4247 /* CIGI3 Entity Control */
4249 cigi3_add_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4251 proto_tree_add_item(tree, hf_cigi3_entity_control_entity_id, tvb, offset, 2, cigi_byte_order);
4254 proto_tree_add_item(tree, hf_cigi3_entity_control_entity_state, tvb, offset, 1, cigi_byte_order);
4255 proto_tree_add_item(tree, hf_cigi3_entity_control_attach_state, tvb, offset, 1, cigi_byte_order);
4256 proto_tree_add_item(tree, hf_cigi3_entity_control_collision_detection_request, tvb, offset, 1, cigi_byte_order);
4257 proto_tree_add_item(tree, hf_cigi3_entity_control_inherit_alpha, tvb, offset, 1, cigi_byte_order);
4258 proto_tree_add_item(tree, hf_cigi3_entity_control_ground_ocean_clamp, tvb, offset, 1, cigi_byte_order);
4261 proto_tree_add_item(tree, hf_cigi3_entity_control_animation_direction, tvb, offset, 1, cigi_byte_order);
4262 proto_tree_add_item(tree, hf_cigi3_entity_control_animation_loop_mode, tvb, offset, 1, cigi_byte_order);
4263 proto_tree_add_item(tree, hf_cigi3_entity_control_animation_state, tvb, offset, 1, cigi_byte_order);
4266 proto_tree_add_item(tree, hf_cigi3_entity_control_alpha, tvb, offset, 1, cigi_byte_order);
4269 proto_tree_add_item(tree, hf_cigi3_entity_control_entity_type, tvb, offset, 2, cigi_byte_order);
4272 proto_tree_add_item(tree, hf_cigi3_entity_control_parent_id, tvb, offset, 2, cigi_byte_order);
4275 proto_tree_add_item(tree, hf_cigi3_entity_control_roll, tvb, offset, 4, cigi_byte_order);
4278 proto_tree_add_item(tree, hf_cigi3_entity_control_pitch, tvb, offset, 4, cigi_byte_order);
4281 proto_tree_add_item(tree, hf_cigi3_entity_control_yaw, tvb, offset, 4, cigi_byte_order);
4284 proto_tree_add_item(tree, hf_cigi3_entity_control_lat_xoff, tvb, offset, 8, cigi_byte_order);
4287 proto_tree_add_item(tree, hf_cigi3_entity_control_lon_yoff, tvb, offset, 8, cigi_byte_order);
4290 proto_tree_add_item(tree, hf_cigi3_entity_control_alt_zoff, tvb, offset, 8, cigi_byte_order);
4296 /* CIGI3_3 Entity Control */
4298 cigi3_3_add_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4300 proto_tree_add_item(tree, hf_cigi3_3_entity_control_entity_id, tvb, offset, 2, cigi_byte_order);
4303 proto_tree_add_item(tree, hf_cigi3_3_entity_control_entity_state, tvb, offset, 1, cigi_byte_order);
4304 proto_tree_add_item(tree, hf_cigi3_3_entity_control_attach_state, tvb, offset, 1, cigi_byte_order);
4305 proto_tree_add_item(tree, hf_cigi3_3_entity_control_collision_detection_request, tvb, offset, 1, cigi_byte_order);
4306 proto_tree_add_item(tree, hf_cigi3_3_entity_control_inherit_alpha, tvb, offset, 1, cigi_byte_order);
4307 proto_tree_add_item(tree, hf_cigi3_3_entity_control_ground_ocean_clamp, tvb, offset, 1, cigi_byte_order);
4310 proto_tree_add_item(tree, hf_cigi3_3_entity_control_animation_direction, tvb, offset, 1, cigi_byte_order);
4311 proto_tree_add_item(tree, hf_cigi3_3_entity_control_animation_loop_mode, tvb, offset, 1, cigi_byte_order);
4312 proto_tree_add_item(tree, hf_cigi3_3_entity_control_animation_state, tvb, offset, 1, cigi_byte_order);
4313 proto_tree_add_item(tree, hf_cigi3_3_entity_control_extrapolation_enable, tvb, offset, 1, cigi_byte_order);
4316 proto_tree_add_item(tree, hf_cigi3_3_entity_control_alpha, tvb, offset, 1, cigi_byte_order);
4319 proto_tree_add_item(tree, hf_cigi3_3_entity_control_entity_type, tvb, offset, 2, cigi_byte_order);
4322 proto_tree_add_item(tree, hf_cigi3_3_entity_control_parent_id, tvb, offset, 2, cigi_byte_order);
4325 proto_tree_add_item(tree, hf_cigi3_3_entity_control_roll, tvb, offset, 4, cigi_byte_order);
4328 proto_tree_add_item(tree, hf_cigi3_3_entity_control_pitch, tvb, offset, 4, cigi_byte_order);
4331 proto_tree_add_item(tree, hf_cigi3_3_entity_control_yaw, tvb, offset, 4, cigi_byte_order);
4334 proto_tree_add_item(tree, hf_cigi3_3_entity_control_lat_xoff, tvb, offset, 8, cigi_byte_order);
4337 proto_tree_add_item(tree, hf_cigi3_3_entity_control_lon_yoff, tvb, offset, 8, cigi_byte_order);
4340 proto_tree_add_item(tree, hf_cigi3_3_entity_control_alt_zoff, tvb, offset, 8, cigi_byte_order);
4346 /* CIGI3 Conformal Clamped Entity Control */
4348 cigi3_add_conformal_clamped_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4350 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_entity_id, tvb, offset, 2, cigi_byte_order);
4353 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_yaw, tvb, offset, 4, cigi_byte_order);
4356 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_lat, tvb, offset, 8, cigi_byte_order);
4359 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_lon, tvb, offset, 8, cigi_byte_order);
4365 /* CIGI3 Component Control */
4367 cigi3_add_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4369 proto_tree_add_item(tree, hf_cigi3_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4372 proto_tree_add_item(tree, hf_cigi3_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4375 proto_tree_add_item(tree, hf_cigi3_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4378 proto_tree_add_item(tree, hf_cigi3_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4381 proto_tree_add_item(tree, hf_cigi3_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4384 proto_tree_add_item(tree, hf_cigi3_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4387 proto_tree_add_item(tree, hf_cigi3_component_control_data_3, tvb, offset, 4, cigi_byte_order);
4390 proto_tree_add_item(tree, hf_cigi3_component_control_data_4, tvb, offset, 4, cigi_byte_order);
4393 proto_tree_add_item(tree, hf_cigi3_component_control_data_5, tvb, offset, 4, cigi_byte_order);
4396 proto_tree_add_item(tree, hf_cigi3_component_control_data_6, tvb, offset, 4, cigi_byte_order);
4402 /* CIGI3_3 Component Control */
4404 cigi3_3_add_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4406 proto_tree_add_item(tree, hf_cigi3_3_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4409 proto_tree_add_item(tree, hf_cigi3_3_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4412 proto_tree_add_item(tree, hf_cigi3_3_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4415 proto_tree_add_item(tree, hf_cigi3_3_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4418 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4421 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4424 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_3, tvb, offset, 4, cigi_byte_order);
4427 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_4, tvb, offset, 4, cigi_byte_order);
4430 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_5, tvb, offset, 4, cigi_byte_order);
4433 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_6, tvb, offset, 4, cigi_byte_order);
4439 /* CIGI3 Short Component Control */
4441 cigi3_add_short_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4443 proto_tree_add_item(tree, hf_cigi3_short_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4446 proto_tree_add_item(tree, hf_cigi3_short_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4449 proto_tree_add_item(tree, hf_cigi3_short_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4452 proto_tree_add_item(tree, hf_cigi3_short_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4455 proto_tree_add_item(tree, hf_cigi3_short_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4458 proto_tree_add_item(tree, hf_cigi3_short_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4464 /* CIGI3_3 Short Component Control */
4466 cigi3_3_add_short_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4468 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4471 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4474 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4477 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4480 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4483 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4489 /* CIGI3 Articulated Part Control */
4491 cigi3_add_articulated_part_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4493 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_entity_id, tvb, offset, 2, cigi_byte_order);
4496 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_part_id, tvb, offset, 1, cigi_byte_order);
4499 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_part_enable, tvb, offset, 1, cigi_byte_order);
4500 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_xoff_enable, tvb, offset, 1, cigi_byte_order);
4501 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yoff_enable, tvb, offset, 1, cigi_byte_order);
4502 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_zoff_enable, tvb, offset, 1, cigi_byte_order);
4503 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_roll_enable, tvb, offset, 1, cigi_byte_order);
4504 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_pitch_enable, tvb, offset, 1, cigi_byte_order);
4505 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yaw_enable, tvb, offset, 1, cigi_byte_order);
4508 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_xoff, tvb, offset, 4, cigi_byte_order);
4511 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yoff, tvb, offset, 4, cigi_byte_order);
4514 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_zoff, tvb, offset, 4, cigi_byte_order);
4517 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_roll, tvb, offset, 4, cigi_byte_order);
4520 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_pitch, tvb, offset, 4, cigi_byte_order);
4523 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yaw, tvb, offset, 4, cigi_byte_order);
4529 /* CIGI3 Short Articulated Part Control */
4531 cigi3_add_short_articulated_part_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4533 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_entity_id, tvb, offset, 2, cigi_byte_order);
4536 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_id_1, tvb, offset, 1, cigi_byte_order);
4539 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_id_2, tvb, offset, 1, cigi_byte_order);
4542 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_select_1, tvb, offset, 1, cigi_byte_order);
4543 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_select_2, tvb, offset, 1, cigi_byte_order);
4544 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_enable_1, tvb, offset, 1, cigi_byte_order);
4545 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_enable_2, tvb, offset, 1, cigi_byte_order);
4548 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_1, tvb, offset, 4, cigi_byte_order);
4551 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_2, tvb, offset, 4, cigi_byte_order);
4557 /* CIGI3 Rate Control */
4559 cigi3_add_rate_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4561 proto_tree_add_item(tree, hf_cigi3_rate_control_entity_id, tvb, offset, 2, cigi_byte_order);
4564 proto_tree_add_item(tree, hf_cigi3_rate_control_part_id, tvb, offset, 1, cigi_byte_order);
4567 proto_tree_add_item(tree, hf_cigi3_rate_control_apply_to_part, tvb, offset, 1, cigi_byte_order);
4570 proto_tree_add_item(tree, hf_cigi3_rate_control_x_rate, tvb, offset, 4, cigi_byte_order);
4573 proto_tree_add_item(tree, hf_cigi3_rate_control_y_rate, tvb, offset, 4, cigi_byte_order);
4576 proto_tree_add_item(tree, hf_cigi3_rate_control_z_rate, tvb, offset, 4, cigi_byte_order);
4579 proto_tree_add_item(tree, hf_cigi3_rate_control_roll_rate, tvb, offset, 4, cigi_byte_order);
4582 proto_tree_add_item(tree, hf_cigi3_rate_control_pitch_rate, tvb, offset, 4, cigi_byte_order);
4585 proto_tree_add_item(tree, hf_cigi3_rate_control_yaw_rate, tvb, offset, 4, cigi_byte_order);
4591 /* CIGI3_2 Rate Control */
4593 cigi3_2_add_rate_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4595 proto_tree_add_item(tree, hf_cigi3_2_rate_control_entity_id, tvb, offset, 2, cigi_byte_order);
4598 proto_tree_add_item(tree, hf_cigi3_2_rate_control_part_id, tvb, offset, 1, cigi_byte_order);
4601 proto_tree_add_item(tree, hf_cigi3_2_rate_control_apply_to_part, tvb, offset, 1, cigi_byte_order);
4602 proto_tree_add_item(tree, hf_cigi3_2_rate_control_coordinate_system, tvb, offset, 1, cigi_byte_order);
4605 proto_tree_add_item(tree, hf_cigi3_2_rate_control_x_rate, tvb, offset, 4, cigi_byte_order);
4608 proto_tree_add_item(tree, hf_cigi3_2_rate_control_y_rate, tvb, offset, 4, cigi_byte_order);
4611 proto_tree_add_item(tree, hf_cigi3_2_rate_control_z_rate, tvb, offset, 4, cigi_byte_order);
4614 proto_tree_add_item(tree, hf_cigi3_2_rate_control_roll_rate, tvb, offset, 4, cigi_byte_order);
4617 proto_tree_add_item(tree, hf_cigi3_2_rate_control_pitch_rate, tvb, offset, 4, cigi_byte_order);
4620 proto_tree_add_item(tree, hf_cigi3_2_rate_control_yaw_rate, tvb, offset, 4, cigi_byte_order);
4626 /* CIGI3 Celestial Sphere Control */
4628 cigi3_add_celestial_sphere_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4630 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_hour, tvb, offset, 1, cigi_byte_order);
4633 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_minute, tvb, offset, 1, cigi_byte_order);
4636 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_ephemeris_enable, tvb, offset, 1, cigi_byte_order);
4637 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_sun_enable, tvb, offset, 1, cigi_byte_order);
4638 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_moon_enable, tvb, offset, 1, cigi_byte_order);
4639 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_star_enable, tvb, offset, 1, cigi_byte_order);
4640 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_date_time_valid, tvb, offset, 1, cigi_byte_order);
4643 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_date, tvb, offset, 4, cigi_byte_order);
4646 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_star_intensity, tvb, offset, 4, cigi_byte_order);
4652 /* CIGI3 Atmosphere Control */
4654 cigi3_add_atmosphere_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4656 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_atmospheric_model_enable, tvb, offset, 1, cigi_byte_order);
4659 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_humidity, tvb, offset, 1, cigi_byte_order);
4662 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_air_temp, tvb, offset, 4, cigi_byte_order);
4665 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_visibility_range, tvb, offset, 4, cigi_byte_order);
4668 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_horiz_wind, tvb, offset, 4, cigi_byte_order);
4671 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_vert_wind, tvb, offset, 4, cigi_byte_order);
4674 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_wind_direction, tvb, offset, 4, cigi_byte_order);
4677 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_barometric_pressure, tvb, offset, 4, cigi_byte_order);
4683 /* CIGI3 Environmental Region Control */
4685 cigi3_add_environmental_region_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4687 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_region_id, tvb, offset, 2, cigi_byte_order);
4690 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_region_state, tvb, offset, 1, cigi_byte_order);
4691 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_weather, tvb, offset, 1, cigi_byte_order);
4692 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_aerosol, tvb, offset, 1, cigi_byte_order);
4693 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_maritime, tvb, offset, 1, cigi_byte_order);
4694 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_terrestrial, tvb, offset, 1, cigi_byte_order);
4697 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_lat, tvb, offset, 8, cigi_byte_order);
4700 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_lon, tvb, offset, 8, cigi_byte_order);
4703 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_size_x, tvb, offset, 4, cigi_byte_order);
4706 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_size_y, tvb, offset, 4, cigi_byte_order);
4709 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_corner_radius, tvb, offset, 4, cigi_byte_order);
4712 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_rotation, tvb, offset, 4, cigi_byte_order);
4715 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_transition_perimeter, tvb, offset, 4, cigi_byte_order);
4721 /* CIGI3 Weather Control */
4723 cigi3_add_weather_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4725 proto_tree_add_item(tree, hf_cigi3_weather_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4728 proto_tree_add_item(tree, hf_cigi3_weather_control_layer_id, tvb, offset, 1, cigi_byte_order);
4731 proto_tree_add_item(tree, hf_cigi3_weather_control_humidity, tvb, offset, 1, cigi_byte_order);
4734 proto_tree_add_item(tree, hf_cigi3_weather_control_weather_enable, tvb, offset, 1, cigi_byte_order);
4735 proto_tree_add_item(tree, hf_cigi3_weather_control_scud_enable, tvb, offset, 1, cigi_byte_order);
4736 proto_tree_add_item(tree, hf_cigi3_weather_control_random_winds_enable, tvb, offset, 1, cigi_byte_order);
4737 proto_tree_add_item(tree, hf_cigi3_weather_control_random_lightning_enable, tvb, offset, 1, cigi_byte_order);
4738 proto_tree_add_item(tree, hf_cigi3_weather_control_cloud_type, tvb, offset, 1, cigi_byte_order);
4741 proto_tree_add_item(tree, hf_cigi3_weather_control_scope, tvb, offset, 1, cigi_byte_order);
4742 proto_tree_add_item(tree, hf_cigi3_weather_control_severity, tvb, offset, 1, cigi_byte_order);
4745 proto_tree_add_item(tree, hf_cigi3_weather_control_air_temp, tvb, offset, 4, cigi_byte_order);
4748 proto_tree_add_item(tree, hf_cigi3_weather_control_visibility_range, tvb, offset, 4, cigi_byte_order);
4751 proto_tree_add_item(tree, hf_cigi3_weather_control_scud_frequency, tvb, offset, 4, cigi_byte_order);
4754 proto_tree_add_item(tree, hf_cigi3_weather_control_coverage, tvb, offset, 4, cigi_byte_order);
4757 proto_tree_add_item(tree, hf_cigi3_weather_control_base_elevation, tvb, offset, 4, cigi_byte_order);
4760 proto_tree_add_item(tree, hf_cigi3_weather_control_thickness, tvb, offset, 4, cigi_byte_order);
4763 proto_tree_add_item(tree, hf_cigi3_weather_control_transition_band, tvb, offset, 4, cigi_byte_order);
4766 proto_tree_add_item(tree, hf_cigi3_weather_control_horiz_wind, tvb, offset, 4, cigi_byte_order);
4769 proto_tree_add_item(tree, hf_cigi3_weather_control_vert_wind, tvb, offset, 4, cigi_byte_order);
4772 proto_tree_add_item(tree, hf_cigi3_weather_control_wind_direction, tvb, offset, 4, cigi_byte_order);
4775 proto_tree_add_item(tree, hf_cigi3_weather_control_barometric_pressure, tvb, offset, 4, cigi_byte_order);
4778 proto_tree_add_item(tree, hf_cigi3_weather_control_aerosol_concentration, tvb, offset, 4, cigi_byte_order);
4784 /* CIGI3 Maritime Surface Conditions Control */
4786 cigi3_add_maritime_surface_conditions_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4788 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4791 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable, tvb, offset, 1, cigi_byte_order);
4792 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_whitecap_enable, tvb, offset, 1, cigi_byte_order);
4793 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_scope, tvb, offset, 1, cigi_byte_order);
4796 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_sea_surface_height, tvb, offset, 4, cigi_byte_order);
4799 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_surface_water_temp, tvb, offset, 4, cigi_byte_order);
4802 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_surface_clarity, tvb, offset, 4, cigi_byte_order);
4808 /* CIGI3 Wave Control */
4810 cigi3_add_wave_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4812 proto_tree_add_item(tree, hf_cigi3_wave_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4815 proto_tree_add_item(tree, hf_cigi3_wave_control_wave_id, tvb, offset, 1, cigi_byte_order);
4818 proto_tree_add_item(tree, hf_cigi3_wave_control_wave_enable, tvb, offset, 1, cigi_byte_order);
4819 proto_tree_add_item(tree, hf_cigi3_wave_control_scope, tvb, offset, 1, cigi_byte_order);
4820 proto_tree_add_item(tree, hf_cigi3_wave_control_breaker_type, tvb, offset, 1, cigi_byte_order);
4823 proto_tree_add_item(tree, hf_cigi3_wave_control_height, tvb, offset, 4, cigi_byte_order);
4826 proto_tree_add_item(tree, hf_cigi3_wave_control_wavelength, tvb, offset, 4, cigi_byte_order);
4829 proto_tree_add_item(tree, hf_cigi3_wave_control_period, tvb, offset, 4, cigi_byte_order);
4832 proto_tree_add_item(tree, hf_cigi3_wave_control_direction, tvb, offset, 4, cigi_byte_order);
4835 proto_tree_add_item(tree, hf_cigi3_wave_control_phase_offset, tvb, offset, 4, cigi_byte_order);
4838 proto_tree_add_item(tree, hf_cigi3_wave_control_leading, tvb, offset, 4, cigi_byte_order);
4844 /* CIGI3 Terrestrial Surface Conditions Control */
4846 cigi3_add_terrestrial_surface_conditions_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4848 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4851 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_surface_condition_id, tvb, offset, 2, cigi_byte_order);
4854 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable, tvb, offset, 1, cigi_byte_order);
4855 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_scope, tvb, offset, 1, cigi_byte_order);
4856 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_severity, tvb, offset, 1, cigi_byte_order);
4859 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_coverage, tvb, offset, 1, cigi_byte_order);
4865 /* CIGI3 View Control */
4867 cigi3_add_view_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4869 proto_tree_add_item(tree, hf_cigi3_view_control_view_id, tvb, offset, 2, cigi_byte_order);
4872 proto_tree_add_item(tree, hf_cigi3_view_control_group_id, tvb, offset, 1, cigi_byte_order);
4875 proto_tree_add_item(tree, hf_cigi3_view_control_xoff_enable, tvb, offset, 1, cigi_byte_order);
4876 proto_tree_add_item(tree, hf_cigi3_view_control_yoff_enable, tvb, offset, 1, cigi_byte_order);
4877 proto_tree_add_item(tree, hf_cigi3_view_control_zoff_enable, tvb, offset, 1, cigi_byte_order);
4878 proto_tree_add_item(tree, hf_cigi3_view_control_roll_enable, tvb, offset, 1, cigi_byte_order);
4879 proto_tree_add_item(tree, hf_cigi3_view_control_pitch_enable, tvb, offset, 1, cigi_byte_order);
4880 proto_tree_add_item(tree, hf_cigi3_view_control_yaw_enable, tvb, offset, 1, cigi_byte_order);
4883 proto_tree_add_item(tree, hf_cigi3_view_control_entity_id, tvb, offset, 2, cigi_byte_order);
4886 proto_tree_add_item(tree, hf_cigi3_view_control_xoff, tvb, offset, 4, cigi_byte_order);
4889 proto_tree_add_item(tree, hf_cigi3_view_control_yoff, tvb, offset, 4, cigi_byte_order);
4892 proto_tree_add_item(tree, hf_cigi3_view_control_zoff, tvb, offset, 4, cigi_byte_order);
4895 proto_tree_add_item(tree, hf_cigi3_view_control_roll, tvb, offset, 4, cigi_byte_order);
4898 proto_tree_add_item(tree, hf_cigi3_view_control_pitch, tvb, offset, 4, cigi_byte_order);
4901 proto_tree_add_item(tree, hf_cigi3_view_control_yaw, tvb, offset, 4, cigi_byte_order);
4907 /* CIGI3 Sensor Control */
4909 cigi3_add_sensor_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4911 proto_tree_add_item(tree, hf_cigi3_sensor_control_view_id, tvb, offset, 2, cigi_byte_order);
4914 proto_tree_add_item(tree, hf_cigi3_sensor_control_sensor_id, tvb, offset, 1, cigi_byte_order);
4917 proto_tree_add_item(tree, hf_cigi3_sensor_control_sensor_on_off, tvb, offset, 1, cigi_byte_order);
4918 proto_tree_add_item(tree, hf_cigi3_sensor_control_polarity, tvb, offset, 1, cigi_byte_order);
4919 proto_tree_add_item(tree, hf_cigi3_sensor_control_line_dropout_enable, tvb, offset, 1, cigi_byte_order);
4920 proto_tree_add_item(tree, hf_cigi3_sensor_control_auto_gain, tvb, offset, 1, cigi_byte_order);
4921 proto_tree_add_item(tree, hf_cigi3_sensor_control_track_white_black, tvb, offset, 1, cigi_byte_order);
4922 proto_tree_add_item(tree, hf_cigi3_sensor_control_track_mode, tvb, offset, 1, cigi_byte_order);
4925 proto_tree_add_item(tree, hf_cigi3_sensor_control_response_type, tvb, offset, 1, cigi_byte_order);
4928 proto_tree_add_item(tree, hf_cigi3_sensor_control_gain, tvb, offset, 4, cigi_byte_order);
4931 proto_tree_add_item(tree, hf_cigi3_sensor_control_level, tvb, offset, 4, cigi_byte_order);
4934 proto_tree_add_item(tree, hf_cigi3_sensor_control_ac_coupling, tvb, offset, 4, cigi_byte_order);
4937 proto_tree_add_item(tree, hf_cigi3_sensor_control_noise, tvb, offset, 4, cigi_byte_order);
4943 /* CIGI3 Motion Tracker Control */
4945 cigi3_add_motion_tracker_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4947 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_view_group_id, tvb, offset, 2, cigi_byte_order);
4950 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_tracker_id, tvb, offset, 1, cigi_byte_order);
4953 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_tracker_enable, tvb, offset, 1, cigi_byte_order);
4954 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_boresight_enable, tvb, offset, 1, cigi_byte_order);
4955 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_x_enable, tvb, offset, 1, cigi_byte_order);
4956 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_y_enable, tvb, offset, 1, cigi_byte_order);
4957 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_z_enable, tvb, offset, 1, cigi_byte_order);
4958 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_roll_enable, tvb, offset, 1, cigi_byte_order);
4959 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_pitch_enable, tvb, offset, 1, cigi_byte_order);
4960 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_yaw_enable, tvb, offset, 1, cigi_byte_order);
4963 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_view_group_select, tvb, offset, 1, cigi_byte_order);
4969 /* CIGI3 Earth Reference Model Definition */
4971 cigi3_add_earth_reference_model_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
4973 proto_tree_add_item(tree, hf_cigi3_earth_reference_model_definition_erm_enable, tvb, offset, 1, cigi_byte_order);
4976 proto_tree_add_item(tree, hf_cigi3_earth_reference_model_definition_equatorial_radius, tvb, offset, 8, cigi_byte_order);
4979 proto_tree_add_item(tree, hf_cigi3_earth_reference_model_definition_flattening, tvb, offset, 8, cigi_byte_order);
4985 /* CIGI3 Trajectory Definition */
4987 cigi3_add_trajectory_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
4989 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_entity_id, tvb, offset, 2, cigi_byte_order);
4992 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_acceleration_x, tvb, offset, 4, cigi_byte_order);
4995 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_acceleration_y, tvb, offset, 4, cigi_byte_order);
4998 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_acceleration_z, tvb, offset, 4, cigi_byte_order);
5001 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_retardation_rate, tvb, offset, 4, cigi_byte_order);
5004 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_terminal_velocity, tvb, offset, 4, cigi_byte_order);
5010 /* CIGI3 View Definition */
5012 cigi3_add_view_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5014 proto_tree_add_item(tree, hf_cigi3_view_definition_view_id, tvb, offset, 2, cigi_byte_order);
5017 proto_tree_add_item(tree, hf_cigi3_view_definition_group_id, tvb, offset, 1, cigi_byte_order);
5020 proto_tree_add_item(tree, hf_cigi3_view_definition_near_enable, tvb, offset, 1, cigi_byte_order);
5021 proto_tree_add_item(tree, hf_cigi3_view_definition_far_enable, tvb, offset, 1, cigi_byte_order);
5022 proto_tree_add_item(tree, hf_cigi3_view_definition_left_enable, tvb, offset, 1, cigi_byte_order);
5023 proto_tree_add_item(tree, hf_cigi3_view_definition_right_enable, tvb, offset, 1, cigi_byte_order);
5024 proto_tree_add_item(tree, hf_cigi3_view_definition_top_enable, tvb, offset, 1, cigi_byte_order);
5025 proto_tree_add_item(tree, hf_cigi3_view_definition_bottom_enable, tvb, offset, 1, cigi_byte_order);
5026 proto_tree_add_item(tree, hf_cigi3_view_definition_mirror_mode, tvb, offset, 1, cigi_byte_order);
5029 proto_tree_add_item(tree, hf_cigi3_view_definition_pixel_replication, tvb, offset, 1, cigi_byte_order);
5030 proto_tree_add_item(tree, hf_cigi3_view_definition_projection_type, tvb, offset, 1, cigi_byte_order);
5031 proto_tree_add_item(tree, hf_cigi3_view_definition_reorder, tvb, offset, 1, cigi_byte_order);
5032 proto_tree_add_item(tree, hf_cigi3_view_definition_view_type, tvb, offset, 1, cigi_byte_order);
5035 proto_tree_add_item(tree, hf_cigi3_view_definition_near, tvb, offset, 4, cigi_byte_order);
5038 proto_tree_add_item(tree, hf_cigi3_view_definition_far, tvb, offset, 4, cigi_byte_order);
5041 proto_tree_add_item(tree, hf_cigi3_view_definition_left, tvb, offset, 4, cigi_byte_order);
5044 proto_tree_add_item(tree, hf_cigi3_view_definition_right, tvb, offset, 4, cigi_byte_order);
5047 proto_tree_add_item(tree, hf_cigi3_view_definition_top, tvb, offset, 4, cigi_byte_order);
5050 proto_tree_add_item(tree, hf_cigi3_view_definition_bottom, tvb, offset, 4, cigi_byte_order);
5056 /* CIGI3 Collision Detection Segment Definition */
5058 cigi3_add_collision_detection_segment_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5060 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_entity_id, tvb, offset, 2, cigi_byte_order);
5063 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_segment_id, tvb, offset, 1, cigi_byte_order);
5066 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_segment_enable, tvb, offset, 1, cigi_byte_order);
5069 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_x1, tvb, offset, 4, cigi_byte_order);
5072 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_y1, tvb, offset, 4, cigi_byte_order);
5075 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_z1, tvb, offset, 4, cigi_byte_order);
5078 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_x2, tvb, offset, 4, cigi_byte_order);
5081 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_y2, tvb, offset, 4, cigi_byte_order);
5084 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_z2, tvb, offset, 4, cigi_byte_order);
5087 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_material_mask, tvb, offset, 4, cigi_byte_order);
5093 /* CIGI3 Collision Detection Volume Definition */
5095 cigi3_add_collision_detection_volume_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5097 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_entity_id, tvb, offset, 2, cigi_byte_order);
5100 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_volume_id, tvb, offset, 1, cigi_byte_order);
5103 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_volume_enable, tvb, offset, 1, cigi_byte_order);
5104 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_volume_type, tvb, offset, 1, cigi_byte_order);
5107 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_x, tvb, offset, 4, cigi_byte_order);
5110 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_y, tvb, offset, 4, cigi_byte_order);
5113 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_z, tvb, offset, 4, cigi_byte_order);
5116 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_radius_height, tvb, offset, 4, cigi_byte_order);
5119 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_width, tvb, offset, 4, cigi_byte_order);
5122 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_depth, tvb, offset, 4, cigi_byte_order);
5125 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_roll, tvb, offset, 4, cigi_byte_order);
5128 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_pitch, tvb, offset, 4, cigi_byte_order);
5131 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_yaw, tvb, offset, 4, cigi_byte_order);
5137 /* CIGI3 HAT/HOT Request */
5139 cigi3_add_hat_hot_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5141 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5144 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_type, tvb, offset, 1, cigi_byte_order);
5145 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_coordinate_system, tvb, offset, 1, cigi_byte_order);
5148 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_entity_id, tvb, offset, 2, cigi_byte_order);
5151 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_lat_xoff, tvb, offset, 8, cigi_byte_order);
5154 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_lon_yoff, tvb, offset, 8, cigi_byte_order);
5157 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_alt_zoff, tvb, offset, 8, cigi_byte_order);
5163 /* CIGI3_2 HAT/HOT Request */
5165 cigi3_2_add_hat_hot_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5167 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5170 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_type, tvb, offset, 1, cigi_byte_order);
5171 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_coordinate_system, tvb, offset, 1, cigi_byte_order);
5174 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_update_period, tvb, offset, 1, cigi_byte_order);
5177 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_entity_id, tvb, offset, 2, cigi_byte_order);
5180 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_lat_xoff, tvb, offset, 8, cigi_byte_order);
5183 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_lon_yoff, tvb, offset, 8, cigi_byte_order);
5186 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_alt_zoff, tvb, offset, 8, cigi_byte_order);
5192 /* CIGI3 Line of Sight Segment Request */
5194 cigi3_add_line_of_sight_segment_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5196 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_los_id, tvb, offset, 2, cigi_byte_order);
5199 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_type, tvb, offset, 1, cigi_byte_order);
5200 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_coord, tvb, offset, 1, cigi_byte_order);
5201 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_coord, tvb, offset, 1, cigi_byte_order);
5202 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_response_coord, tvb, offset, 1, cigi_byte_order);
5205 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_alpha_threshold, tvb, offset, 1, cigi_byte_order);
5208 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_entity_id, tvb, offset, 2, cigi_byte_order);
5211 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5214 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5217 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5220 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_lat_xoff, tvb, offset, 8, cigi_byte_order);
5223 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_lon_yoff, tvb, offset, 8, cigi_byte_order);
5226 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_alt_zoff, tvb, offset, 8, cigi_byte_order);
5229 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_material_mask, tvb, offset, 4, cigi_byte_order);
5235 /* CIGI3_2 Line of Sight Segment Request */
5237 cigi3_2_add_line_of_sight_segment_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5239 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_los_id, tvb, offset, 2, cigi_byte_order);
5242 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_type, tvb, offset, 1, cigi_byte_order);
5243 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_coord, tvb, offset, 1, cigi_byte_order);
5244 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_coord, tvb, offset, 1, cigi_byte_order);
5245 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_response_coord, tvb, offset, 1, cigi_byte_order);
5246 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5249 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_alpha_threshold, tvb, offset, 1, cigi_byte_order);
5252 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_entity_id, tvb, offset, 2, cigi_byte_order);
5255 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5258 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5261 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5264 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_lat_xoff, tvb, offset, 8, cigi_byte_order);
5267 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_lon_yoff, tvb, offset, 8, cigi_byte_order);
5270 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_alt_zoff, tvb, offset, 8, cigi_byte_order);
5273 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_material_mask, tvb, offset, 4, cigi_byte_order);
5276 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_update_period, tvb, offset, 1, cigi_byte_order);
5279 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_entity_id, tvb, offset, 2, cigi_byte_order);
5285 /* CIGI3 Line of Sight Vector Request */
5287 cigi3_add_line_of_sight_vector_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5289 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_los_id, tvb, offset, 2, cigi_byte_order);
5292 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_type, tvb, offset, 1, cigi_byte_order);
5293 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_coord, tvb, offset, 1, cigi_byte_order);
5294 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_response_coord, tvb, offset, 1, cigi_byte_order);
5297 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_alpha, tvb, offset, 1, cigi_byte_order);
5300 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_entity_id, tvb, offset, 2, cigi_byte_order);
5303 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_azimuth, tvb, offset, 4, cigi_byte_order);
5306 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_elevation, tvb, offset, 4, cigi_byte_order);
5309 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_min_range, tvb, offset, 4, cigi_byte_order);
5312 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_max_range, tvb, offset, 4, cigi_byte_order);
5315 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5318 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5321 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5324 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_material_mask, tvb, offset, 4, cigi_byte_order);
5330 /* CIGI3_2 Line of Sight Vector Request */
5332 cigi3_2_add_line_of_sight_vector_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5334 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_los_id, tvb, offset, 2, cigi_byte_order);
5337 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_type, tvb, offset, 1, cigi_byte_order);
5338 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_coord, tvb, offset, 1, cigi_byte_order);
5339 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_response_coord, tvb, offset, 1, cigi_byte_order);
5342 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_alpha, tvb, offset, 1, cigi_byte_order);
5345 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_entity_id, tvb, offset, 2, cigi_byte_order);
5348 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_azimuth, tvb, offset, 4, cigi_byte_order);
5351 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_elevation, tvb, offset, 4, cigi_byte_order);
5354 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_min_range, tvb, offset, 4, cigi_byte_order);
5357 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_max_range, tvb, offset, 4, cigi_byte_order);
5360 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5363 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5366 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5369 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_material_mask, tvb, offset, 4, cigi_byte_order);
5372 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_update_period, tvb, offset, 1, cigi_byte_order);
5378 /* CIGI3 Position Request */
5380 cigi3_add_position_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5382 proto_tree_add_item(tree, hf_cigi3_position_request_object_id, tvb, offset, 2, cigi_byte_order);
5385 proto_tree_add_item(tree, hf_cigi3_position_request_part_id, tvb, offset, 1, cigi_byte_order);
5388 proto_tree_add_item(tree, hf_cigi3_position_request_update_mode, tvb, offset, 1, cigi_byte_order);
5389 proto_tree_add_item(tree, hf_cigi3_position_request_object_class, tvb, offset, 1, cigi_byte_order);
5390 proto_tree_add_item(tree, hf_cigi3_position_request_coord_system, tvb, offset, 1, cigi_byte_order);
5396 /* CIGI3 Environmental Conditions Request */
5398 cigi3_add_environmental_conditions_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5400 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_type, tvb, offset, 1, cigi_byte_order);
5403 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_id, tvb, offset, 1, cigi_byte_order);
5406 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_lat, tvb, offset, 8, cigi_byte_order);
5409 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_lon, tvb, offset, 8, cigi_byte_order);
5412 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_alt, tvb, offset, 8, cigi_byte_order);
5418 /* CIGI3_3 Symbol Surface Definition */
5420 cigi3_3_add_symbol_surface_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5422 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_surface_id, tvb, offset, 2, cigi_byte_order);
5425 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_surface_state, tvb, offset, 1, cigi_byte_order);
5426 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_attach_type, tvb, offset, 1, cigi_byte_order);
5427 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_billboard, tvb, offset, 1, cigi_byte_order);
5428 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_perspective_growth_enable, tvb, offset, 1, cigi_byte_order);
5431 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_entity_view_id, tvb, offset, 2, cigi_byte_order);
5434 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_xoff_left, tvb, offset, 4, cigi_byte_order);
5437 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_yoff_right, tvb, offset, 4, cigi_byte_order);
5440 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_zoff_top, tvb, offset, 4, cigi_byte_order);
5443 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_yaw_bottom, tvb, offset, 4, cigi_byte_order);
5446 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_pitch, tvb, offset, 4, cigi_byte_order);
5449 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_roll, tvb, offset, 4, cigi_byte_order);
5452 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_width, tvb, offset, 4, cigi_byte_order);
5455 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_height, tvb, offset, 4, cigi_byte_order);
5458 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_min_u, tvb, offset, 4, cigi_byte_order);
5461 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_max_u, tvb, offset, 4, cigi_byte_order);
5464 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_min_v, tvb, offset, 4, cigi_byte_order);
5467 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_max_v, tvb, offset, 4, cigi_byte_order);
5473 /* CIGI3_3 Symbol Text Definition */
5475 cigi3_3_add_symbol_text_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5477 guint8 packet_size = 0;
5479 packet_size = tvb_get_guint8(tvb, offset-1);
5481 /* A symbol text definition packet cannot be less than 16 bytes. */
5482 if ( packet_size < 16 ) {
5483 THROW(ReportedBoundsError);
5486 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_symbol_id, tvb, offset, 2, cigi_byte_order);
5489 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_alignment, tvb, offset, 1, cigi_byte_order);
5490 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_orientation, tvb, offset, 1, cigi_byte_order);
5493 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_font_ident, tvb, offset, 1, cigi_byte_order);
5496 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_font_size, tvb, offset, 4, cigi_byte_order);
5499 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_text, tvb, offset, packet_size-12, cigi_byte_order);
5500 offset += packet_size-12;
5505 /* CIGI3_3 Symbol Circle Definition */
5507 cigi3_3_add_symbol_circle_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5509 guint8 packet_size = 0;
5512 packet_size = tvb_get_guint8(tvb, offset-1);
5514 /* A symbol text definition packet cannot be less than 16 bytes. */
5515 if ( packet_size < 16 ) {
5516 THROW(ReportedBoundsError);
5519 ncircles = (packet_size - 16) / 24;
5521 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_symbol_id, tvb, offset, 2, cigi_byte_order);
5524 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_drawing_style, tvb, offset, 1, cigi_byte_order);
5527 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_stipple_pattern, tvb, offset, 2, cigi_byte_order);
5530 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_line_width, tvb, offset, 4, cigi_byte_order);
5533 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_stipple_pattern_length, tvb, offset, 4, cigi_byte_order);
5536 for (c = 0; c< ncircles; c++) {
5537 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_center_u[c], tvb, offset, 4, cigi_byte_order);
5540 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_center_v[c], tvb, offset, 4, cigi_byte_order);
5543 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_radius[c], tvb, offset, 4, cigi_byte_order);
5546 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_inner_radius[c], tvb, offset, 4, cigi_byte_order);
5549 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_start_angle[c], tvb, offset, 4, cigi_byte_order);
5552 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_end_angle[c], tvb, offset, 4, cigi_byte_order);
5559 /* CIGI3_3 Symbol Line Definition */
5561 cigi3_3_add_symbol_line_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5563 guint8 packet_size = 0;
5566 packet_size = tvb_get_guint8(tvb, offset-1);
5568 /* A symbol text definition packet cannot be less than 16 bytes. */
5569 if ( packet_size < 16 ) {
5570 THROW(ReportedBoundsError);
5573 nvertices = (packet_size - 16) / 8;
5575 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_symbol_id, tvb, offset, 2, cigi_byte_order);
5578 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_primitive_type, tvb, offset, 1, cigi_byte_order);
5581 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_stipple_pattern, tvb, offset, 2, cigi_byte_order);
5584 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_line_width, tvb, offset, 4, cigi_byte_order);;
5587 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_stipple_pattern_length, tvb, offset, 4, cigi_byte_order);
5590 for(v=0; v<nvertices; v++) {
5591 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_vertex_u[v], tvb, offset, 4, cigi_byte_order);
5594 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_vertex_v[v], tvb, offset, 4, cigi_byte_order);
5601 /* CIGI3_3 Symbol Clone */
5603 cigi3_3_add_symbol_clone(tvbuff_t *tvb, proto_tree *tree, gint offset)
5605 proto_tree_add_item(tree, hf_cigi3_3_symbol_clone_symbol_id, tvb, offset, 2, cigi_byte_order);
5608 proto_tree_add_item(tree, hf_cigi3_3_symbol_clone_source_type, tvb, offset, 1, cigi_byte_order);
5611 proto_tree_add_item(tree, hf_cigi3_3_symbol_clone_source_id, tvb, offset, 2, cigi_byte_order);
5617 /* CIGI3_3 Symbol Control */
5619 cigi3_3_add_symbol_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
5621 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_symbol_id, tvb, offset, 2, cigi_byte_order);
5624 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_symbol_state, tvb, offset, 1, cigi_byte_order);
5625 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_attach_state, tvb, offset, 1, cigi_byte_order);
5626 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_flash_control, tvb, offset, 1, cigi_byte_order);
5627 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_inherit_color, tvb, offset, 1, cigi_byte_order);
5630 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_parent_symbol_ident, tvb, offset, 2, cigi_byte_order);
5633 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_surface_ident, tvb, offset, 2, cigi_byte_order);
5636 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_layer, tvb, offset, 1, cigi_byte_order);
5639 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_flash_duty_cycle, tvb, offset, 1, cigi_byte_order);
5642 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_flash_period, tvb, offset, 4, cigi_byte_order);
5645 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_position_u, tvb, offset, 4, cigi_byte_order);
5648 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_position_v, tvb, offset, 4, cigi_byte_order);
5651 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_rotation, tvb, offset, 4, cigi_byte_order);
5654 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_red, tvb, offset, 1, cigi_byte_order);
5657 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_green, tvb, offset, 1, cigi_byte_order);
5660 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_blue, tvb, offset, 1, cigi_byte_order);
5663 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_alpha, tvb, offset, 1, cigi_byte_order);
5666 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_scale_u, tvb, offset, 4, cigi_byte_order);
5669 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_scale_v, tvb, offset, 4, cigi_byte_order);
5675 /* CIGI3_3 Short Symbol Control */
5677 cigi3_3_add_short_symbol_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
5682 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_symbol_id, tvb, offset, 2, cigi_byte_order);
5685 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_symbol_state, tvb, offset, 1, cigi_byte_order);
5686 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attach_state, tvb, offset, 1, cigi_byte_order);
5687 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_flash_control, tvb, offset, 1, cigi_byte_order);
5688 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_inherit_color, tvb, offset, 1, cigi_byte_order);
5691 select1 = tvb_get_guint8(tvb, offset);
5692 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_select1, tvb, offset, 1, cigi_byte_order);
5695 select2 = tvb_get_guint8(tvb, offset);
5696 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_select2, tvb, offset, 1, cigi_byte_order);
5700 if (cigi_byte_order == CIGI_BYTE_ORDER_BIG_ENDIAN) {
5701 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red1, tvb, offset, 1, cigi_byte_order);
5704 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green1, tvb, offset, 1, cigi_byte_order);
5707 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue1, tvb, offset, 1, cigi_byte_order);
5710 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha1, tvb, offset, 1, cigi_byte_order);
5713 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha1, tvb, offset, 1, cigi_byte_order);
5716 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue1, tvb, offset, 1, cigi_byte_order);
5719 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green1, tvb, offset, 1, cigi_byte_order);
5722 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red1, tvb, offset, 1, cigi_byte_order);
5726 if (select1 >= 5 && select1 <= 11) {
5727 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value1f, tvb, offset, 4, cigi_byte_order);
5729 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value1, tvb, offset, 4, cigi_byte_order);
5735 if (cigi_byte_order == CIGI_BYTE_ORDER_BIG_ENDIAN) {
5736 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red2, tvb, offset, 1, cigi_byte_order);
5739 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green2, tvb, offset, 1, cigi_byte_order);
5742 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue2, tvb, offset, 1, cigi_byte_order);
5745 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha2, tvb, offset, 1, cigi_byte_order);
5748 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha2, tvb, offset, 1, cigi_byte_order);
5751 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue2, tvb, offset, 1, cigi_byte_order);
5754 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green2, tvb, offset, 1, cigi_byte_order);
5757 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red2, tvb, offset, 1, cigi_byte_order);
5762 if (select2 >= 5 && select2 <= 11) {
5763 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value2f, tvb, offset, 4, cigi_byte_order);
5765 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value2, tvb, offset, 4, cigi_byte_order);
5773 /* CIGI3 Start of Frame */
5775 cigi3_add_start_of_frame(tvbuff_t *tvb, proto_tree *tree, gint offset)
5777 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
5780 proto_tree_add_item(tree, hf_cigi3_start_of_frame_db_number, tvb, offset, 1, cigi_byte_order);
5783 proto_tree_add_item(tree, hf_cigi3_start_of_frame_ig_status, tvb, offset, 1, cigi_byte_order);
5786 proto_tree_add_item(tree, hf_cigi3_start_of_frame_ig_mode, tvb, offset, 1, cigi_byte_order);
5787 proto_tree_add_item(tree, hf_cigi3_start_of_frame_timestamp_valid, tvb, offset, 1, cigi_byte_order);
5788 proto_tree_add_item(tree, hf_cigi3_start_of_frame_earth_reference_model, tvb, offset, 1, cigi_byte_order);
5791 /* Get the Byte Swap in Big-Endian so that we can display whether the value
5792 * is big-endian or little-endian to the user */
5793 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
5796 proto_tree_add_item(tree, hf_cigi3_start_of_frame_frame_ctr, tvb, offset, 4, cigi_byte_order);
5799 proto_tree_add_item(tree, hf_cigi3_start_of_frame_timestamp, tvb, offset, 4, cigi_byte_order);
5805 /* CIGI3_2 Start of Frame */
5807 cigi3_2_add_start_of_frame(tvbuff_t *tvb, proto_tree *tree, gint offset)
5809 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
5812 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_db_number, tvb, offset, 1, cigi_byte_order);
5815 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_ig_status, tvb, offset, 1, cigi_byte_order);
5818 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_ig_mode, tvb, offset, 1, cigi_byte_order);
5819 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_timestamp_valid, tvb, offset, 1, cigi_byte_order);
5820 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_earth_reference_model, tvb, offset, 1, cigi_byte_order);
5823 /* Get the Byte Swap in Big-Endian so that we can display whether the value
5824 * is big-endian or little-endian to the user */
5825 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
5828 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_ig_frame_number, tvb, offset, 4, cigi_byte_order);
5831 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_timestamp, tvb, offset, 4, cigi_byte_order);
5834 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_last_host_frame_number, tvb, offset, 4, cigi_byte_order);
5840 /* CIGI3 HAT/HOT Response */
5842 cigi3_add_hat_hot_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5844 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5847 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_valid, tvb, offset, 1, cigi_byte_order);
5848 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_type, tvb, offset, 1, cigi_byte_order);
5851 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_height, tvb, offset, 8, cigi_byte_order);
5857 /* CIGI3_2 HAT/HOT Response */
5859 cigi3_2_add_hat_hot_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5861 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5864 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_valid, tvb, offset, 1, cigi_byte_order);
5865 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_type, tvb, offset, 1, cigi_byte_order);
5866 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
5869 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_height, tvb, offset, 8, cigi_byte_order);
5875 /* CIGI3 HAT/HOT Extended Response */
5877 cigi3_add_hat_hot_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5879 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5882 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_valid, tvb, offset, 1, cigi_byte_order);
5885 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_hat, tvb, offset, 8, cigi_byte_order);
5888 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_hot, tvb, offset, 8, cigi_byte_order);
5891 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
5894 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
5897 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
5903 /* CIGI3_2 HAT/HOT Extended Response */
5905 cigi3_2_add_hat_hot_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5907 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5910 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_valid, tvb, offset, 1, cigi_byte_order);
5911 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
5914 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_hat, tvb, offset, 8, cigi_byte_order);
5917 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_hot, tvb, offset, 8, cigi_byte_order);
5920 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
5923 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
5926 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
5932 /* CIGI3 Line of Sight Response */
5934 cigi3_add_line_of_sight_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5936 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_los_id, tvb, offset, 2, cigi_byte_order);
5939 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_valid, tvb, offset, 1, cigi_byte_order);
5940 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5941 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_visible, tvb, offset, 1, cigi_byte_order);
5944 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_count, tvb, offset, 1, cigi_byte_order);
5947 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_entity_id, tvb, offset, 2, cigi_byte_order);
5950 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_range, tvb, offset, 8, cigi_byte_order);
5956 /* CIGI3_2 Line of Sight Response */
5958 cigi3_2_add_line_of_sight_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5960 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_los_id, tvb, offset, 2, cigi_byte_order);
5963 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_valid, tvb, offset, 1, cigi_byte_order);
5964 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5965 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_visible, tvb, offset, 1, cigi_byte_order);
5966 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
5969 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_count, tvb, offset, 1, cigi_byte_order);
5972 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_entity_id, tvb, offset, 2, cigi_byte_order);
5975 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_range, tvb, offset, 8, cigi_byte_order);
5981 /* CIGI3 Line of Sight Extended Response */
5983 cigi3_add_line_of_sight_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5985 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_los_id, tvb, offset, 2, cigi_byte_order);
5988 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_valid, tvb, offset, 1, cigi_byte_order);
5989 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5990 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_range_valid, tvb, offset, 1, cigi_byte_order);
5991 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_visible, tvb, offset, 1, cigi_byte_order);
5992 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_intersection_coord, tvb, offset, 1, cigi_byte_order);
5995 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_response_count, tvb, offset, 1, cigi_byte_order);
5998 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_entity_id, tvb, offset, 2, cigi_byte_order);
6001 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_range, tvb, offset, 8, cigi_byte_order);
6004 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_lat_xoff, tvb, offset, 8, cigi_byte_order);
6007 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_lon_yoff, tvb, offset, 8, cigi_byte_order);
6010 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_alt_zoff, tvb, offset, 8, cigi_byte_order);
6013 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_red, tvb, offset, 1, cigi_byte_order);
6016 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_green, tvb, offset, 1, cigi_byte_order);
6019 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_blue, tvb, offset, 1, cigi_byte_order);
6022 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_alpha, tvb, offset, 1, cigi_byte_order);
6025 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
6028 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
6031 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
6037 /* CIGI3_2 Line of Sight Extended Response */
6039 cigi3_2_add_line_of_sight_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6041 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_los_id, tvb, offset, 2, cigi_byte_order);
6044 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_valid, tvb, offset, 1, cigi_byte_order);
6045 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
6046 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_range_valid, tvb, offset, 1, cigi_byte_order);
6047 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_visible, tvb, offset, 1, cigi_byte_order);
6048 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
6051 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_response_count, tvb, offset, 1, cigi_byte_order);
6054 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_entity_id, tvb, offset, 2, cigi_byte_order);
6057 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_range, tvb, offset, 8, cigi_byte_order);
6060 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_lat_xoff, tvb, offset, 8, cigi_byte_order);
6063 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_lon_yoff, tvb, offset, 8, cigi_byte_order);
6066 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_alt_zoff, tvb, offset, 8, cigi_byte_order);
6069 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_red, tvb, offset, 1, cigi_byte_order);
6072 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_green, tvb, offset, 1, cigi_byte_order);
6075 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_blue, tvb, offset, 1, cigi_byte_order);
6078 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_alpha, tvb, offset, 1, cigi_byte_order);
6081 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
6084 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
6087 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
6093 /* CIGI3 Sensor Response */
6095 cigi3_add_sensor_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6097 proto_tree_add_item(tree, hf_cigi3_sensor_response_view_id, tvb, offset, 2, cigi_byte_order);
6100 proto_tree_add_item(tree, hf_cigi3_sensor_response_sensor_id, tvb, offset, 1, cigi_byte_order);
6103 proto_tree_add_item(tree, hf_cigi3_sensor_response_sensor_status, tvb, offset, 1, cigi_byte_order);
6106 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_x_size, tvb, offset, 2, cigi_byte_order);
6109 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_y_size, tvb, offset, 2, cigi_byte_order);
6112 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_x_pos, tvb, offset, 4, cigi_byte_order);
6115 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_y_pos, tvb, offset, 4, cigi_byte_order);
6118 proto_tree_add_item(tree, hf_cigi3_sensor_response_frame_ctr, tvb, offset, 4, cigi_byte_order);
6124 /* CIGI3 Sensor Extended Response */
6126 cigi3_add_sensor_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6128 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_view_id, tvb, offset, 2, cigi_byte_order);
6131 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_sensor_id, tvb, offset, 1, cigi_byte_order);
6134 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_sensor_status, tvb, offset, 1, cigi_byte_order);
6135 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
6138 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_entity_id, tvb, offset, 2, cigi_byte_order);
6141 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_x_size, tvb, offset, 2, cigi_byte_order);
6144 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_y_size, tvb, offset, 2, cigi_byte_order);
6147 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_x_pos, tvb, offset, 4, cigi_byte_order);
6150 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_y_pos, tvb, offset, 4, cigi_byte_order);
6153 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_frame_ctr, tvb, offset, 4, cigi_byte_order);
6156 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_track_lat, tvb, offset, 8, cigi_byte_order);
6159 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_track_lon, tvb, offset, 8, cigi_byte_order);
6162 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_track_alt, tvb, offset, 8, cigi_byte_order);
6168 /* CIGI3 Position Response */
6170 cigi3_add_position_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6172 proto_tree_add_item(tree, hf_cigi3_position_response_object_id, tvb, offset, 2, cigi_byte_order);
6175 proto_tree_add_item(tree, hf_cigi3_position_response_part_id, tvb, offset, 1, cigi_byte_order);
6178 proto_tree_add_item(tree, hf_cigi3_position_response_object_class, tvb, offset, 1, cigi_byte_order);
6179 proto_tree_add_item(tree, hf_cigi3_position_response_coord_system, tvb, offset, 1, cigi_byte_order);
6182 proto_tree_add_item(tree, hf_cigi3_position_response_lat_xoff, tvb, offset, 8, cigi_byte_order);
6185 proto_tree_add_item(tree, hf_cigi3_position_response_lon_yoff, tvb, offset, 8, cigi_byte_order);
6188 proto_tree_add_item(tree, hf_cigi3_position_response_alt_zoff, tvb, offset, 8, cigi_byte_order);
6191 proto_tree_add_item(tree, hf_cigi3_position_response_roll, tvb, offset, 4, cigi_byte_order);
6194 proto_tree_add_item(tree, hf_cigi3_position_response_pitch, tvb, offset, 4, cigi_byte_order);
6197 proto_tree_add_item(tree, hf_cigi3_position_response_yaw, tvb, offset, 4, cigi_byte_order);
6203 /* CIGI3 Weather Conditions Response */
6205 cigi3_add_weather_conditions_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6207 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_request_id, tvb, offset, 1, cigi_byte_order);
6210 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_humidity, tvb, offset, 1, cigi_byte_order);
6213 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_air_temp, tvb, offset, 4, cigi_byte_order);
6216 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_visibility_range, tvb, offset, 4, cigi_byte_order);
6219 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_horiz_speed, tvb, offset, 4, cigi_byte_order);
6222 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_vert_speed, tvb, offset, 4, cigi_byte_order);
6225 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_wind_direction, tvb, offset, 4, cigi_byte_order);
6228 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_barometric_pressure, tvb, offset, 4, cigi_byte_order);
6234 /* CIGI3 Aerosol Concentration Response */
6236 cigi3_add_aerosol_concentration_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6238 proto_tree_add_item(tree, hf_cigi3_aerosol_concentration_response_request_id, tvb, offset, 1, cigi_byte_order);
6241 proto_tree_add_item(tree, hf_cigi3_aerosol_concentration_response_layer_id, tvb, offset, 1, cigi_byte_order);
6244 proto_tree_add_item(tree, hf_cigi3_aerosol_concentration_response_aerosol_concentration, tvb, offset, 4, cigi_byte_order);
6250 /* CIGI3 Maritime Surface Conditions Response */
6252 cigi3_add_maritime_surface_conditions_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6254 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_request_id, tvb, offset, 1, cigi_byte_order);
6257 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_sea_surface_height, tvb, offset, 4, cigi_byte_order);
6260 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_surface_water_temp, tvb, offset, 4, cigi_byte_order);
6263 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_surface_clarity, tvb, offset, 4, cigi_byte_order);
6269 /* CIGI3 Terrestrial Surface Conditions Response */
6271 cigi3_add_terrestrial_surface_conditions_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6273 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_response_request_id, tvb, offset, 1, cigi_byte_order);
6276 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_response_surface_id, tvb, offset, 4, cigi_byte_order);
6282 /* CIGI3 Collision Detection Segment Notification */
6284 cigi3_add_collision_detection_segment_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6286 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_entity_id, tvb, offset, 2, cigi_byte_order);
6289 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_segment_id, tvb, offset, 1, cigi_byte_order);
6292 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_type, tvb, offset, 1, cigi_byte_order);
6295 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_contacted_entity_id, tvb, offset, 2, cigi_byte_order);
6298 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_material_code, tvb, offset, 4, cigi_byte_order);
6301 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_intersection_distance, tvb, offset, 4, cigi_byte_order);
6307 /* CIGI3 Collision Detection Volume Notification */
6309 cigi3_add_collision_detection_volume_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6311 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_entity_id, tvb, offset, 2, cigi_byte_order);
6314 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_volume_id, tvb, offset, 1, cigi_byte_order);
6317 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_type, tvb, offset, 1, cigi_byte_order);
6320 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_contacted_entity_id, tvb, offset, 2, cigi_byte_order);
6323 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_contacted_volume_id, tvb, offset, 1, cigi_byte_order);
6329 /* CIGI3 Animation Stop Notification */
6331 cigi3_add_animation_stop_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6333 proto_tree_add_item(tree, hf_cigi3_animation_stop_notification_entity_id, tvb, offset, 2, cigi_byte_order);
6339 /* CIGI3 Event Notification */
6341 cigi3_add_event_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6343 proto_tree_add_item(tree, hf_cigi3_event_notification_event_id, tvb, offset, 2, cigi_byte_order);
6346 proto_tree_add_item(tree, hf_cigi3_event_notification_data_1, tvb, offset, 4, cigi_byte_order);
6349 proto_tree_add_item(tree, hf_cigi3_event_notification_data_2, tvb, offset, 4, cigi_byte_order);
6352 proto_tree_add_item(tree, hf_cigi3_event_notification_data_3, tvb, offset, 4, cigi_byte_order);
6358 /* CIGI3 Image Generator Message */
6360 cigi3_add_image_generator_message(tvbuff_t *tvb, proto_tree *tree, gint offset)
6362 guint8 packet_size = 0;
6364 packet_size = tvb_get_guint8(tvb, offset-1);
6366 /* An image generator packet cannot be less than 4 bytes ( because every cigi packet
6367 * has a packet id (1 byte) and a packet size (1 byte) ). */
6368 if ( packet_size < 4 ) {
6369 THROW(ReportedBoundsError);
6372 proto_tree_add_item(tree, hf_cigi3_image_generator_message_id, tvb, offset, 2, cigi_byte_order);
6375 proto_tree_add_item(tree, hf_cigi3_image_generator_message_message, tvb, offset, packet_size-4, cigi_byte_order);
6376 offset += packet_size-4;
6382 * Extract a 16-bit fixed-point value and convert it to a float.
6385 tvb_get_fixed_point(tvbuff_t *tvb, int offset, gint byte_order)
6389 switch (byte_order) {
6391 case CIGI_BYTE_ORDER_BIG_ENDIAN:
6392 fixed = tvb_get_ntohs(tvb, offset);
6395 case CIGI_BYTE_ORDER_LITTLE_ENDIAN:
6396 fixed = tvb_get_letohs(tvb, offset);
6400 DISSECTOR_ASSERT_NOT_REACHED();
6403 return fixed / 128.0F;
6406 /* Register the protocol with Wireshark */
6408 proto_register_cigi(void)
6410 module_t *cigi_module;
6412 static hf_register_info hf[] = {
6413 /* All Versions of CIGI */
6414 { &hf_cigi_src_port,
6415 { "Source Port", "cigi.srcport",
6416 FT_UINT16, BASE_DEC, NULL, 0x0,
6419 { &hf_cigi_dest_port,
6420 { "Destination Port", "cigi.destport",
6421 FT_UINT16, BASE_DEC, NULL, 0x0,
6425 { "Source or Destination Port", "cigi.port",
6426 FT_UINT16, BASE_DEC, NULL, 0x0,
6430 { &hf_cigi_frame_size,
6431 { "Frame Size (bytes)", "cigi.frame_size",
6432 FT_UINT8, BASE_DEC, NULL, 0x0,
6433 "Number of bytes sent with all cigi packets in this frame", HFILL }
6436 { &hf_cigi_packet_id,
6437 { "Packet ID", "cigi.packet_id",
6438 FT_UINT8, BASE_DEC, NULL, 0x0,
6439 "Identifies the packet's id", HFILL }
6441 { &hf_cigi_packet_size,
6442 { "Packet Size (bytes)", "cigi.packet_size",
6443 FT_UINT8, BASE_DEC, NULL, 0x0,
6444 "Identifies the number of bytes in this type of packet", HFILL }
6447 { "CIGI Version", "cigi.version",
6448 FT_UINT8, BASE_DEC, NULL, 0x0,
6449 "Identifies the version of CIGI interface that is currently running on the host", HFILL }
6453 { "Unknown", "cigi.unknown",
6454 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6455 "Unknown Packet", HFILL }
6459 { &hf_cigi2_packet_id,
6460 { "Packet ID", "cigi.packet_id",
6461 FT_UINT8, BASE_DEC, VALS(cigi2_packet_id_vals), 0x0,
6462 "Identifies the packet's ID", HFILL }
6466 { &hf_cigi3_packet_id,
6467 { "Packet ID", "cigi.packet_id",
6468 FT_UINT8, BASE_DEC, VALS(cigi3_packet_id_vals), 0x0,
6469 "Identifies the packet's ID", HFILL }
6471 { &hf_cigi3_byte_swap,
6472 { "Byte Swap", "cigi.byte_swap",
6473 FT_UINT16, BASE_HEX, VALS(cigi3_byte_swap_vals), 0x0,
6474 "Used to determine whether the incoming data should be byte-swapped", HFILL }
6477 /* CIGI2 IG Control */
6478 { &hf_cigi2_ig_control,
6479 { "IG Control", "cigi.ig_control",
6480 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6481 "IG Control Packet", HFILL }
6483 { &hf_cigi2_ig_control_db_number,
6484 { "Database Number", "cigi.ig_control.db_number",
6485 FT_INT8, BASE_DEC, NULL, 0x0,
6486 "Identifies the number associated with the database requiring loading", HFILL }
6488 { &hf_cigi2_ig_control_ig_mode,
6489 { "IG Mode Change Request", "cigi.ig_control.ig_mode",
6490 FT_UINT8, BASE_DEC, VALS(cigi2_ig_control_ig_mode_vals), 0xc0,
6491 "Commands the IG to enter its various modes", HFILL }
6493 { &hf_cigi2_ig_control_tracking_enable,
6494 { "Tracking Device Enable", "cigi.ig_control.tracking_enable",
6495 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
6496 "Identifies the state of an external tracking device", HFILL }
6498 { &hf_cigi2_ig_control_boresight,
6499 { "Tracking Device Boresight", "cigi.ig_control.boresight",
6500 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x10,
6501 "Used by the host to enable boresight mode", HFILL }
6503 { &hf_cigi2_ig_control_frame_ctr,
6504 { "Frame Counter", "cigi.ig_control.frame_ctr",
6505 FT_UINT32, BASE_DEC, NULL, 0x0,
6506 "Identifies a particular frame", HFILL }
6508 { &hf_cigi2_ig_control_time_tag,
6509 { "Timing Value (microseconds)", "cigi.ig_control.time_tag",
6510 FT_FLOAT, BASE_DEC, NULL, 0x0,
6511 "Identifies synchronous operation", HFILL }
6514 /* CIGI3 IG Control */
6515 { &hf_cigi3_ig_control,
6516 { "IG Control", "cigi.ig_control",
6517 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6518 "IG Control Packet", HFILL }
6520 { &hf_cigi3_ig_control_db_number,
6521 { "Database Number", "cigi.ig_control.db_number",
6522 FT_INT8, BASE_DEC, NULL, 0x0,
6523 "Used to initiate a database load on the IG", HFILL }
6525 { &hf_cigi3_ig_control_ig_mode,
6526 { "IG Mode", "cigi.ig_control.ig_mode",
6527 FT_UINT8, BASE_DEC, VALS(cigi3_ig_control_ig_mode_vals), 0x03,
6528 "Dictates the IG's operational mode", HFILL }
6530 { &hf_cigi3_ig_control_timestamp_valid,
6531 { "Timestamp Valid", "cigi.ig_control.timestamp_valid",
6532 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
6533 "Indicates whether the timestamp contains a valid value", HFILL }
6535 { &hf_cigi3_ig_control_frame_ctr,
6536 { "Frame Counter", "cigi.ig_control.frame_ctr",
6537 FT_UINT32, BASE_DEC, NULL, 0x0,
6538 "Contains a number that identifying the frame", HFILL }
6540 { &hf_cigi3_ig_control_timestamp,
6541 { "Timestamp (microseconds)", "cigi.ig_control.timestamp",
6542 FT_UINT32, BASE_DEC, NULL, 0x0,
6543 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
6546 /* CIGI3_2 IG Control */
6547 { &hf_cigi3_2_ig_control,
6548 { "IG Control", "cigi.ig_control",
6549 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6550 "IG Control Packet", HFILL }
6552 { &hf_cigi3_2_ig_control_db_number,
6553 { "Database Number", "cigi.ig_control.db_number",
6554 FT_INT8, BASE_DEC, NULL, 0x0,
6555 "Used to initiate a database load on the IG", HFILL }
6557 { &hf_cigi3_2_ig_control_ig_mode,
6558 { "IG Mode", "cigi.ig_control.ig_mode",
6559 FT_UINT8, BASE_DEC, VALS(cigi3_2_ig_control_ig_mode_vals), 0x03,
6560 "Dictates the IG's operational mode", HFILL }
6562 { &hf_cigi3_2_ig_control_timestamp_valid,
6563 { "Timestamp Valid", "cigi.ig_control.timestamp_valid",
6564 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
6565 "Indicates whether the timestamp contains a valid value", HFILL }
6567 { &hf_cigi3_2_ig_control_host_frame_number,
6568 { "Host Frame Number", "cigi.ig_control.host_frame_number",
6569 FT_UINT32, BASE_DEC, NULL, 0x0,
6570 "Uniquely identifies a data frame on the host", HFILL }
6572 { &hf_cigi3_2_ig_control_timestamp,
6573 { "Timestamp (microseconds)", "cigi.ig_control.timestamp",
6574 FT_UINT32, BASE_DEC, NULL, 0x0,
6575 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
6577 { &hf_cigi3_2_ig_control_last_ig_frame_number,
6578 { "IG Frame Number", "cigi.ig_control.last_ig_frame_number",
6579 FT_UINT32, BASE_DEC, NULL, 0x0,
6580 "Contains the value of the IG Frame Number parameter in the last Start of Frame packet received from the IG", HFILL }
6583 /* CIGI3_3 IG Control */
6584 { &hf_cigi3_3_ig_control,
6585 { "IG Control", "cigi.ig_control",
6586 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6587 "IG Control Packet", HFILL }
6589 { &hf_cigi3_3_ig_control_db_number,
6590 { "Database Number", "cigi.ig_control.db_number",
6591 FT_INT8, BASE_DEC, NULL, 0x0,
6592 "Used to initiate a database load on the IG", HFILL }
6594 { &hf_cigi3_3_ig_control_ig_mode,
6595 { "IG Mode", "cigi.ig_control.ig_mode",
6596 FT_UINT8, BASE_DEC, VALS(cigi3_3_ig_control_ig_mode_vals), 0x03,
6597 "Dictates the IG's operational mode", HFILL }
6599 { &hf_cigi3_3_ig_control_timestamp_valid,
6600 { "Timestamp Valid", "cigi.ig_control.timestamp_valid",
6601 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
6602 "Indicates whether the timestamp contains a valid value", HFILL }
6604 { &hf_cigi3_3_ig_control_extrapolation_enable,
6605 { "Extrapolation/Interpolation Enable", "cigi.ig_control.extrapolation_enable",
6606 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
6607 "Indicates whether any dead reckoning is enabled.", HFILL }
6609 { &hf_cigi3_3_ig_control_minor_version,
6610 { "Minor Version", "cigi.ig_control.extrapolation_enable",
6611 FT_UINT8, BASE_DEC, NULL, 0xF0,
6612 "Indicates the minor version of the CIGI interface", HFILL }
6614 { &hf_cigi3_3_ig_control_host_frame_number,
6615 { "Host Frame Number", "cigi.ig_control.host_frame_number",
6616 FT_UINT32, BASE_DEC, NULL, 0x0,
6617 "Uniquely identifies a data frame on the host", HFILL }
6619 { &hf_cigi3_3_ig_control_timestamp,
6620 { "Timestamp (microseconds)", "cigi.ig_control.timestamp",
6621 FT_UINT32, BASE_DEC, NULL, 0x0,
6622 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
6624 { &hf_cigi3_3_ig_control_last_ig_frame_number,
6625 { "IG Frame Number", "cigi.ig_control.last_ig_frame_number",
6626 FT_UINT32, BASE_DEC, NULL, 0x0,
6627 "Contains the value of the IG Frame Number parameter in the last Start of Frame packet received from the IG", HFILL }
6630 /* CIGI2 Entity Control */
6631 { &hf_cigi2_entity_control,
6632 { "Entity Control", "cigi.entity_control",
6633 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6634 "Entity Control Packet", HFILL }
6636 { &hf_cigi2_entity_control_entity_id,
6637 { "Entity ID", "cigi.entity_control.entity_id",
6638 FT_UINT16, BASE_DEC, NULL, 0x0,
6639 "Identifies the entity motion system", HFILL }
6641 { &hf_cigi2_entity_control_entity_state,
6642 { "Entity State", "cigi.entity_control.entity_state",
6643 FT_UINT8, BASE_DEC, VALS(cigi2_entity_control_entity_state_vals), 0xc0,
6644 "Identifies the entity's geometry state", HFILL }
6646 { &hf_cigi2_entity_control_attach_state,
6647 { "Attach State", "cigi.entity_control.attach_state",
6648 FT_BOOLEAN, 8, TFS(&cigi2_entity_control_attach_state_tfs), 0x20,
6649 "Identifies whether the entity should be attach as a child to a parent", HFILL }
6651 { &hf_cigi2_entity_control_collision_detect,
6652 { "Collision Detection Request", "cigi.entity_control.collision_detect",
6653 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
6654 "Identifies if collision detection is enabled for the entity", HFILL }
6656 { &hf_cigi2_entity_control_effect_state,
6657 { "Effect Animation State", "cigi.entity_control.effect_state",
6658 FT_UINT8, BASE_DEC, VALS(cigi2_entity_control_effect_state_vals), 0x0c,
6659 "Identifies the animation state of a special effect", HFILL }
6661 { &hf_cigi2_entity_control_type,
6662 { "Entity Type", "cigi.entity_control.type",
6663 FT_UINT16, BASE_DEC, NULL, 0x0,
6664 "Identifies the type of the entity", HFILL }
6666 { &hf_cigi2_entity_control_parent_id,
6667 { "Parent Entity ID", "cigi.entity_control.parent_id",
6668 FT_UINT16, BASE_DEC, NULL, 0x0,
6669 "Identifies the parent to which the entity should be attached", HFILL }
6671 { &hf_cigi2_entity_control_opacity,
6672 { "Percent Opacity", "cigi.entity_control.opacity",
6673 FT_FLOAT, BASE_DEC, NULL, 0x0,
6674 "Specifies the degree of opacity of the entity", HFILL }
6676 { &hf_cigi2_entity_control_internal_temp,
6677 { "Internal Temperature (degrees C)", "cigi.entity_control.internal_temp",
6678 FT_FLOAT, BASE_DEC, NULL, 0x0,
6679 "Specifies the internal temperature of the entity in degrees Celsius", HFILL }
6681 { &hf_cigi2_entity_control_roll,
6682 { "Roll (degrees)", "cigi.entity_control.roll",
6683 FT_FLOAT, BASE_DEC, NULL, 0x0,
6684 "Identifies the roll angle of the entity in degrees", HFILL }
6686 { &hf_cigi2_entity_control_pitch,
6687 { "Pitch (degrees)", "cigi.entity_control",
6688 FT_FLOAT, BASE_DEC, NULL, 0x0,
6689 "Identifies the pitch of the entity in degrees", HFILL }
6691 { &hf_cigi2_entity_control_heading,
6692 { "Heading (degrees)", "cigi.entity_control",
6693 FT_FLOAT, BASE_DEC, NULL, 0x0,
6694 "Identifies the heading of the entity in degrees", HFILL }
6696 { &hf_cigi2_entity_control_alt,
6697 { "Altitude (m)", "cigi.entity_control.alt",
6698 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6699 "Identifies the altitude position of the reference point of the entity in meters", HFILL }
6701 { &hf_cigi2_entity_control_lat,
6702 { "Latitude (degrees)", "cigi.entity_control.lat",
6703 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6704 "Identifies the latitude position of the reference point of the entity in degrees", HFILL }
6706 { &hf_cigi2_entity_control_lon,
6707 { "Longitude (degrees)", "cigi.entity_control.lon",
6708 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6709 "Identifies the longitude position of the reference point of the entity in degrees", HFILL }
6712 /* CIGI3 Entity Control */
6713 { &hf_cigi3_entity_control,
6714 { "Entity Control", "cigi.entity_control",
6715 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6716 "Entity Control Packet", HFILL }
6718 { &hf_cigi3_entity_control_entity_id,
6719 { "Entity ID", "cigi.entity_control.entity_id",
6720 FT_UINT16, BASE_DEC, NULL, 0x0,
6721 "Specifies the entity to which this packet is applied", HFILL }
6723 { &hf_cigi3_entity_control_entity_state,
6724 { "Entity State", "cigi.entity_control.entity_state",
6725 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_entity_state_vals), 0x03,
6726 "Specifies whether the entity should be active or destroyed", HFILL }
6728 { &hf_cigi3_entity_control_attach_state,
6729 { "Attach State", "cigi.entity_control.attach_state",
6730 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_attach_state_tfs), 0x04,
6731 "Specifies whether the entity should be attached as a child to a parent", HFILL }
6733 { &hf_cigi3_entity_control_collision_detection_request,
6734 { "Collision Detection Request", "cigi.entity_control.coll_det_request",
6735 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_collision_detection_request_tfs), 0x08,
6736 "Determines whether any collision detection segments and volumes associated with this entity are used as the source in collision testing", HFILL }
6738 { &hf_cigi3_entity_control_inherit_alpha,
6739 { "Inherit Alpha", "cigi.entity_control.inherit_alpha",
6740 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10,
6741 "Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL }
6743 { &hf_cigi3_entity_control_ground_ocean_clamp,
6744 { "Ground/Ocean Clamp", "cigi.entity_control.ground_ocean_clamp",
6745 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_ground_ocean_clamp_vals), 0x60,
6746 "Specifies whether the entity should be clamped to the ground or water surface", HFILL }
6748 { &hf_cigi3_entity_control_animation_direction,
6749 { "Animation Direction", "cigi.entity_control.animation_dir",
6750 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_direction_tfs), 0x01,
6751 "Specifies the direction in which an animation plays", HFILL }
6753 { &hf_cigi3_entity_control_animation_loop_mode,
6754 { "Animation Loop Mode", "cigi.entity_control.animation_loop_mode",
6755 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_loop_mode_tfs), 0x02,
6756 "Specifies whether an animation should be a one-shot", HFILL }
6758 { &hf_cigi3_entity_control_animation_state,
6759 { "Animation State", "cigi.entity_control.animation_state",
6760 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_animation_state_vals), 0x0c,
6761 "Specifies the state of an animation", HFILL }
6763 { &hf_cigi3_entity_control_alpha,
6764 { "Alpha", "cigi.entity_control.alpha",
6765 FT_UINT8, BASE_DEC, NULL, 0x0,
6766 "Specifies the explicit alpha to be applied to the entity's geometry", HFILL }
6768 { &hf_cigi3_entity_control_entity_type,
6769 { "Entity Type", "cigi.entity_control.entity_type",
6770 FT_UINT16, BASE_DEC, NULL, 0x0,
6771 "Specifies the type for the entity", HFILL }
6773 { &hf_cigi3_entity_control_parent_id,
6774 { "Parent ID", "cigi.entity_control.parent_id",
6775 FT_UINT16, BASE_DEC, NULL, 0x0,
6776 "Specifies the parent for the entity", HFILL }
6778 { &hf_cigi3_entity_control_roll,
6779 { "Roll (degrees)", "cigi.entity_control.roll",
6780 FT_FLOAT, BASE_DEC, NULL, 0x0,
6781 "Specifies the roll angle of the entity", HFILL }
6783 { &hf_cigi3_entity_control_pitch,
6784 { "Pitch (degrees)", "cigi.entity_control.pitch",
6785 FT_FLOAT, BASE_DEC, NULL, 0x0,
6786 "Specifies the pitch angle of the entity", HFILL }
6788 { &hf_cigi3_entity_control_yaw,
6789 { "Yaw (degrees)", "cigi.entity_control.yaw",
6790 FT_FLOAT, BASE_DEC, NULL, 0x0,
6791 "Specifies the instantaneous heading of the entity", HFILL }
6793 { &hf_cigi3_entity_control_lat_xoff,
6794 { "Latitude (degrees)/X Offset (m)", "cigi.entity_control.lat_xoff",
6795 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6796 "Specifies the entity's geodetic latitude or the distance from the parent's reference point along its parent's X axis", HFILL }
6798 { &hf_cigi3_entity_control_lon_yoff,
6799 { "Longitude (degrees)/Y Offset (m)", "cigi.entity_control.lon_yoff",
6800 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6801 "Specifies the entity's geodetic longitude or the distance from the parent's reference point along its parent's Y axis", HFILL }
6803 { &hf_cigi3_entity_control_alt_zoff,
6804 { "Altitude (m)/Z Offset (m)", "cigi.entity_control.alt_zoff",
6805 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6806 "Specifies the entity's altitude or the distance from the parent's reference point along its parent's Z axis", HFILL }
6809 /* CIGI3_3 Entity Control */
6810 { &hf_cigi3_3_entity_control,
6811 { "Entity Control", "cigi.entity_control",
6812 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6813 "Entity Control Packet", HFILL }
6815 { &hf_cigi3_3_entity_control_entity_id,
6816 { "Entity ID", "cigi.entity_control.entity_id",
6817 FT_UINT16, BASE_DEC, NULL, 0x0,
6818 "Specifies the entity to which this packet is applied", HFILL }
6820 { &hf_cigi3_3_entity_control_entity_state,
6821 { "Entity State", "cigi.entity_control.entity_state",
6822 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_entity_state_vals), 0x03,
6823 "Specifies whether the entity should be active or destroyed", HFILL }
6825 { &hf_cigi3_3_entity_control_attach_state,
6826 { "Attach State", "cigi.entity_control.attach_state",
6827 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_attach_state_tfs), 0x04,
6828 "Specifies whether the entity should be attached as a child to a parent", HFILL }
6830 { &hf_cigi3_3_entity_control_collision_detection_request,
6831 { "Collision Detection Request", "cigi.entity_control.coll_det_request",
6832 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_collision_detection_request_tfs), 0x08,
6833 "Determines whether any collision detection segments and volumes associated with this entity are used as the source in collision testing", HFILL }
6835 { &hf_cigi3_3_entity_control_inherit_alpha,
6836 { "Inherit Alpha", "cigi.entity_control.inherit_alpha",
6837 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10,
6838 "Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL }
6840 { &hf_cigi3_3_entity_control_ground_ocean_clamp,
6841 { "Ground/Ocean Clamp", "cigi.entity_control.ground_ocean_clamp",
6842 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_ground_ocean_clamp_vals), 0x60,
6843 "Specifies whether the entity should be clamped to the ground or water surface", HFILL }
6845 { &hf_cigi3_3_entity_control_animation_direction,
6846 { "Animation Direction", "cigi.entity_control.animation_dir",
6847 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_direction_tfs), 0x01,
6848 "Specifies the direction in which an animation plays", HFILL }
6850 { &hf_cigi3_3_entity_control_animation_loop_mode,
6851 { "Animation Loop Mode", "cigi.entity_control.animation_loop_mode",
6852 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_loop_mode_tfs), 0x02,
6853 "Specifies whether an animation should be a one-shot", HFILL }
6855 { &hf_cigi3_3_entity_control_animation_state,
6856 { "Animation State", "cigi.entity_control.animation_state",
6857 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_animation_state_vals), 0x0c,
6858 "Specifies the state of an animation", HFILL }
6860 { &hf_cigi3_3_entity_control_extrapolation_enable,
6861 { "Linear Extrapolation/Interpolation Enable", "cigi.entity_control.extrapolation_enable",
6862 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
6863 "Indicates whether the entity's motion may be smoothed by extrapolation or interpolation.", HFILL }
6865 { &hf_cigi3_3_entity_control_alpha,
6866 { "Alpha", "cigi.entity_control.alpha",
6867 FT_UINT8, BASE_DEC, NULL, 0x0,
6868 "Specifies the explicit alpha to be applied to the entity's geometry", HFILL }
6870 { &hf_cigi3_3_entity_control_entity_type,
6871 { "Entity Type", "cigi.entity_control.entity_type",
6872 FT_UINT16, BASE_DEC, NULL, 0x0,
6873 "Specifies the type for the entity", HFILL }
6875 { &hf_cigi3_3_entity_control_parent_id,
6876 { "Parent ID", "cigi.entity_control.parent_id",
6877 FT_UINT16, BASE_DEC, NULL, 0x0,
6878 "Specifies the parent for the entity", HFILL }
6880 { &hf_cigi3_3_entity_control_roll,
6881 { "Roll (degrees)", "cigi.entity_control.roll",
6882 FT_FLOAT, BASE_DEC, NULL, 0x0,
6883 "Specifies the roll angle of the entity", HFILL }
6885 { &hf_cigi3_3_entity_control_pitch,
6886 { "Pitch (degrees)", "cigi.entity_control.pitch",
6887 FT_FLOAT, BASE_DEC, NULL, 0x0,
6888 "Specifies the pitch angle of the entity", HFILL }
6890 { &hf_cigi3_3_entity_control_yaw,
6891 { "Yaw (degrees)", "cigi.entity_control.yaw",
6892 FT_FLOAT, BASE_DEC, NULL, 0x0,
6893 "Specifies the instantaneous heading of the entity", HFILL }
6895 { &hf_cigi3_3_entity_control_lat_xoff,
6896 { "Latitude (degrees)/X Offset (m)", "cigi.entity_control.lat_xoff",
6897 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6898 "Specifies the entity's geodetic latitude or the distance from the parent's reference point along its parent's X axis", HFILL }
6900 { &hf_cigi3_3_entity_control_lon_yoff,
6901 { "Longitude (degrees)/Y Offset (m)", "cigi.entity_control.lon_yoff",
6902 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6903 "Specifies the entity's geodetic longitude or the distance from the parent's reference point along its parent's Y axis", HFILL }
6905 { &hf_cigi3_3_entity_control_alt_zoff,
6906 { "Altitude (m)/Z Offset (m)", "cigi.entity_control.alt_zoff",
6907 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6908 "Specifies the entity's altitude or the distance from the parent's reference point along its parent's Z axis", HFILL }
6911 /* CIGI3 Conformal Clamped Entity Control */
6912 { &hf_cigi3_conformal_clamped_entity_control,
6913 { "Conformal Clamped Entity Control", "cigi.conformal_clamped_entity_control",
6914 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6915 "Conformal Clamped Entity Control Packet", HFILL }
6917 { &hf_cigi3_conformal_clamped_entity_control_entity_id,
6918 { "Entity ID", "cigi.conformal_clamped_entity_control.entity_id",
6919 FT_UINT16, BASE_DEC, NULL, 0x0,
6920 "Specifies the entity to which this packet is applied", HFILL }
6922 { &hf_cigi3_conformal_clamped_entity_control_yaw,
6923 { "Yaw (degrees)", "cigi.conformal_clamped_entity_control.yaw",
6924 FT_FLOAT, BASE_DEC, NULL, 0x0,
6925 "Specifies the instantaneous heading of the entity", HFILL }
6927 { &hf_cigi3_conformal_clamped_entity_control_lat,
6928 { "Latitude (degrees)", "cigi.conformal_clamped_entity_control.lat",
6929 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6930 "Specifies the entity's geodetic latitude", HFILL }
6932 { &hf_cigi3_conformal_clamped_entity_control_lon,
6933 { "Longitude (degrees)", "cigi.conformal_clamped_entity_control.lon",
6934 FT_DOUBLE, BASE_DEC, NULL, 0x0,
6935 "Specifies the entity's geodetic longitude", HFILL }
6938 /* CIGI2 Component Control */
6939 { &hf_cigi2_component_control,
6940 { "Component Control", "cigi.component_control",
6941 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6942 "Component Control Packet", HFILL }
6944 { &hf_cigi2_component_control_instance_id,
6945 { "Instance ID", "cigi.component_control.instance_id",
6946 FT_UINT16, BASE_DEC, NULL, 0x0,
6947 "Identifies the instance of the a class the component being controlled belongs to", HFILL }
6949 { &hf_cigi2_component_control_component_class,
6950 { "Component Class", "cigi.component_control.component_class",
6951 FT_UINT8, BASE_DEC, VALS(cigi2_component_control_component_class_vals), 0x0,
6952 "Identifies the class the component being controlled is in", HFILL }
6954 { &hf_cigi2_component_control_component_id,
6955 { "Component ID", "cigi.component_control.component_id",
6956 FT_UINT16, BASE_DEC, NULL, 0x0,
6957 "Identifies the component of a component class and instance ID this packet will be applied to", HFILL }
6959 { &hf_cigi2_component_control_component_state,
6960 { "Component State", "cigi.component_control.component_state",
6961 FT_UINT16, BASE_DEC, NULL, 0x0,
6962 "Identifies the commanded state of a component", HFILL }
6964 { &hf_cigi2_component_control_component_val1,
6965 { "Component Value 1", "cigi.component_control.component_val1",
6966 FT_FLOAT, BASE_DEC, NULL, 0x0,
6967 "Identifies a continuous value to be applied to a component", HFILL }
6969 { &hf_cigi2_component_control_component_val2,
6970 { "Component Value 2", "cigi.component_control.component_val2",
6971 FT_FLOAT, BASE_DEC, NULL, 0x0,
6972 "Identifies a continuous value to be applied to a component", HFILL }
6975 /* CIGI3 Component Control */
6976 { &hf_cigi3_component_control,
6977 { "Component Control", "cigi.component_control",
6978 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6979 "Component Control Packet", HFILL }
6981 { &hf_cigi3_component_control_component_id,
6982 { "Component ID", "cigi.component_control.component_id",
6983 FT_UINT16, BASE_DEC, NULL, 0x0,
6984 "Identifies the component to which the data in this packet should be applied", HFILL }
6986 { &hf_cigi3_component_control_instance_id,
6987 { "Instance ID", "cigi.component_control.instance_id",
6988 FT_UINT16, BASE_DEC, NULL, 0x0,
6989 "Identifies the object to which the component belongs", HFILL }
6991 { &hf_cigi3_component_control_component_class,
6992 { "Component Class", "cigi.component_control.component_class",
6993 FT_UINT8, BASE_DEC, VALS(cigi3_component_control_component_class_vals), 0x0f,
6994 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
6996 { &hf_cigi3_component_control_component_state,
6997 { "Component State", "cigi.component_control.component_state",
6998 FT_UINT8, BASE_DEC, NULL, 0x0,
6999 "Specifies a discrete state for the component", HFILL }
7001 { &hf_cigi3_component_control_data_1,
7002 { "Component Data 1", "cigi.component_control.data_1",
7003 FT_BYTES, BASE_NONE, NULL, 0x0,
7004 "User-defined component data", HFILL }
7006 { &hf_cigi3_component_control_data_2,
7007 { "Component Data 2", "cigi.component_control.data_2",
7008 FT_BYTES, BASE_NONE, NULL, 0x0,
7009 "User-defined component data", HFILL }
7011 { &hf_cigi3_component_control_data_3,
7012 { "Component Data 3", "cigi.component_control.data_3",
7013 FT_BYTES, BASE_NONE, NULL, 0x0,
7014 "User-defined component data", HFILL }
7016 { &hf_cigi3_component_control_data_4,
7017 { "Component Data 4", "cigi.component_control.data_4",
7018 FT_BYTES, BASE_NONE, NULL, 0x0,
7019 "User-defined component data", HFILL }
7021 { &hf_cigi3_component_control_data_5,
7022 { "Component Data 5", "cigi.component_control.data_5",
7023 FT_BYTES, BASE_NONE, NULL, 0x0,
7024 "User-defined component data", HFILL }
7026 { &hf_cigi3_component_control_data_6,
7027 { "Component Data 6", "cigi.component_control.data_6",
7028 FT_BYTES, BASE_NONE, NULL, 0x0,
7029 "User-defined component data", HFILL }
7032 /* CIGI3_3 Component Control */
7033 { &hf_cigi3_3_component_control,
7034 { "Component Control", "cigi.component_control",
7035 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7036 "Component Control Packet", HFILL }
7038 { &hf_cigi3_3_component_control_component_id,
7039 { "Component ID", "cigi.component_control.component_id",
7040 FT_UINT16, BASE_DEC, NULL, 0x0,
7041 "Identifies the component to which the data in this packet should be applied", HFILL }
7043 { &hf_cigi3_3_component_control_instance_id,
7044 { "Instance ID", "cigi.component_control.instance_id",
7045 FT_UINT16, BASE_DEC, NULL, 0x0,
7046 "Identifies the object to which the component belongs", HFILL }
7048 { &hf_cigi3_3_component_control_component_class,
7049 { "Component Class", "cigi.component_control.component_class",
7050 FT_UINT8, BASE_DEC, VALS(cigi3_3_component_control_component_class_vals), 0x3f,
7051 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
7053 { &hf_cigi3_3_component_control_component_state,
7054 { "Component State", "cigi.component_control.component_state",
7055 FT_UINT8, BASE_DEC, NULL, 0x0,
7056 "Specifies a discrete state for the component", HFILL }
7058 { &hf_cigi3_3_component_control_data_1,
7059 { "Component Data 1", "cigi.component_control.data_1",
7060 FT_BYTES, BASE_NONE, NULL, 0x0,
7061 "User-defined component data", HFILL }
7063 { &hf_cigi3_3_component_control_data_2,
7064 { "Component Data 2", "cigi.component_control.data_2",
7065 FT_BYTES, BASE_NONE, NULL, 0x0,
7066 "User-defined component data", HFILL }
7068 { &hf_cigi3_3_component_control_data_3,
7069 { "Component Data 3", "cigi.component_control.data_3",
7070 FT_BYTES, BASE_NONE, NULL, 0x0,
7071 "User-defined component data", HFILL }
7073 { &hf_cigi3_3_component_control_data_4,
7074 { "Component Data 4", "cigi.component_control.data_4",
7075 FT_BYTES, BASE_NONE, NULL, 0x0,
7076 "User-defined component data", HFILL }
7078 { &hf_cigi3_3_component_control_data_5,
7079 { "Component Data 5", "cigi.component_control.data_5",
7080 FT_BYTES, BASE_NONE, NULL, 0x0,
7081 "User-defined component data", HFILL }
7083 { &hf_cigi3_3_component_control_data_6,
7084 { "Component Data 6", "cigi.component_control.data_6",
7085 FT_BYTES, BASE_NONE, NULL, 0x0,
7086 "User-defined component data", HFILL }
7089 /* CIGI3 Short Component Control */
7090 { &hf_cigi3_short_component_control,
7091 { "Short Component Control", "cigi.short_component_control",
7092 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7093 "Short Component Control Packet", HFILL }
7095 { &hf_cigi3_short_component_control_component_id,
7096 { "Component ID", "cigi.short_component_control.component_id",
7097 FT_UINT16, BASE_DEC, NULL, 0x0,
7098 "Identifies the component to which the data in this packet should be applied", HFILL }
7100 { &hf_cigi3_short_component_control_instance_id,
7101 { "Instance ID", "cigi.short_component_control.instance_id",
7102 FT_UINT16, BASE_DEC, NULL, 0x0,
7103 "Identifies the object to which the component belongs", HFILL }
7105 { &hf_cigi3_short_component_control_component_class,
7106 { "Component Class", "cigi.short_component_control.component_class",
7107 FT_UINT8, BASE_DEC, VALS(cigi3_short_component_control_component_class_vals), 0x0f,
7108 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
7110 { &hf_cigi3_short_component_control_component_state,
7111 { "Component State", "cigi.short_component_control.component_state",
7112 FT_UINT8, BASE_DEC, NULL, 0x0,
7113 "Specifies a discrete state for the component", HFILL }
7115 { &hf_cigi3_short_component_control_data_1,
7116 { "Component Data 1", "cigi.short_component_control.data_1",
7117 FT_BYTES, BASE_NONE, NULL, 0x0,
7118 "User-defined component data", HFILL }
7120 { &hf_cigi3_short_component_control_data_2,
7121 { "Component Data 2", "cigi.short_component_control.data_2",
7122 FT_BYTES, BASE_NONE, NULL, 0x0,
7123 "User-defined component data", HFILL }
7126 /* CIGI3_3 Short Component Control */
7127 { &hf_cigi3_3_short_component_control,
7128 { "Short Component Control", "cigi.short_component_control",
7129 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7130 "Short Component Control Packet", HFILL }
7132 { &hf_cigi3_3_short_component_control_component_id,
7133 { "Component ID", "cigi.short_component_control.component_id",
7134 FT_UINT16, BASE_DEC, NULL, 0x0,
7135 "Identifies the component to which the data in this packet should be applied", HFILL }
7137 { &hf_cigi3_3_short_component_control_instance_id,
7138 { "Instance ID", "cigi.short_component_control.instance_id",
7139 FT_UINT16, BASE_DEC, NULL, 0x0,
7140 "Identifies the object to which the component belongs", HFILL }
7142 { &hf_cigi3_3_short_component_control_component_class,
7143 { "Component Class", "cigi.short_component_control.component_class",
7144 FT_UINT8, BASE_DEC, VALS(cigi3_3_short_component_control_component_class_vals), 0x3f,
7145 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
7147 { &hf_cigi3_3_short_component_control_component_state,
7148 { "Component State", "cigi.short_component_control.component_state",
7149 FT_UINT8, BASE_DEC, NULL, 0x0,
7150 "Specifies a discrete state for the component", HFILL }
7152 { &hf_cigi3_3_short_component_control_data_1,
7153 { "Component Data 1", "cigi.short_component_control.data_1",
7154 FT_BYTES, BASE_NONE, NULL, 0x0,
7155 "User-defined component data", HFILL }
7157 { &hf_cigi3_3_short_component_control_data_2,
7158 { "Component Data 2", "cigi.short_component_control.data_2",
7159 FT_BYTES, BASE_NONE, NULL, 0x0,
7160 "User-defined component data", HFILL }
7163 /* CIGI2 Articulated Parts Control */
7164 { &hf_cigi2_articulated_parts_control,
7165 { "Articulated Parts Control", "cigi.art_part_control",
7166 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7167 "Articulated Parts Control Packet", HFILL }
7169 { &hf_cigi2_articulated_parts_control_entity_id,
7170 { "Entity ID", "cigi.art_part_control.entity_id",
7171 FT_UINT16, BASE_DEC, NULL, 0x0,
7172 "Identifies the entity to which this data packet will be applied", HFILL }
7174 { &hf_cigi2_articulated_parts_control_part_id,
7175 { "Articulated Part ID", "cigi.art_part_control.part_id",
7176 FT_UINT8, BASE_DEC, NULL, 0x0,
7177 "Identifies which articulated part is controlled with this data packet", HFILL }
7179 { &hf_cigi2_articulated_parts_control_part_state,
7180 { "Articulated Part State", "cigi.art_part_control.part_state",
7181 FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x80,
7182 "Indicates whether an articulated part is to be shown in the display", HFILL }
7184 { &hf_cigi2_articulated_parts_control_xoff_enable,
7185 { "X Offset Enable", "cigi.art_part_control.xoff_enable",
7186 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7187 "Identifies whether the articulated part x offset in this data packet is manipulated from the host", HFILL }
7189 { &hf_cigi2_articulated_parts_control_yoff_enable,
7190 { "Y Offset Enable", "cigi.art_part_control.yoff_enable",
7191 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
7192 "Identifies whether the articulated part y offset in this data packet is manipulated from the host", HFILL }
7194 { &hf_cigi2_articulated_parts_control_zoff_enable,
7195 { "Z Offset Enable", "cigi.art_part_control.zoff_enable",
7196 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
7197 "Identifies whether the articulated part z offset in this data packet is manipulated from the host", HFILL }
7199 { &hf_cigi2_articulated_parts_control_roll_enable,
7200 { "Roll Enable", "cigi.art_part_control.roll_enable",
7201 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
7202 "Identifies whether the articulated part roll enable in this data packet is manipulated from the host", HFILL }
7204 { &hf_cigi2_articulated_parts_control_pitch_enable,
7205 { "Pitch Enable", "cigi.art_part_control.pitch_enable",
7206 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7207 "Identifies whether the articulated part pitch enable in this data packet is manipulated from the host", HFILL }
7209 { &hf_cigi2_articulated_parts_control_yaw_enable,
7210 { "Yaw Enable", "cigi.art_part_control.yaw_enable",
7211 FT_UINT8, BASE_DEC, NULL, 0x02,
7212 "Identifies whether the articulated part yaw enable in this data packet is manipulated from the host", HFILL }
7214 { &hf_cigi2_articulated_parts_control_x_offset,
7215 { "X Offset (m)", "cigi.art_part_control.x_offset",
7216 FT_FLOAT, BASE_DEC, NULL, 0x0,
7217 "Identifies the distance along the X axis by which the articulated part should be moved", HFILL }
7219 { &hf_cigi2_articulated_parts_control_y_offset,
7220 { "Y Offset (m)", "cigi.art_part_control.y_offset",
7221 FT_FLOAT, BASE_DEC, NULL, 0x0,
7222 "Identifies the distance along the Y axis by which the articulated part should be moved", HFILL }
7224 { &hf_cigi2_articulated_parts_control_z_offset,
7225 { "Z Offset (m)", "cigi.art_part_control.z_offset",
7226 FT_FLOAT, BASE_DEC, NULL, 0x0,
7227 "Identifies the distance along the Z axis by which the articulated part should be moved", HFILL }
7229 { &hf_cigi2_articulated_parts_control_roll,
7230 { "Roll (degrees)", "cigi.art_part_control.roll",
7231 FT_FLOAT, BASE_DEC, NULL, 0x0,
7232 "Specifies the roll of this part with respect to the submodel coordinate system", HFILL }
7234 { &hf_cigi2_articulated_parts_control_pitch,
7235 { "Pitch (degrees)", "cigi.art_part_control.pitch",
7236 FT_FLOAT, BASE_DEC, NULL, 0x0,
7237 "Specifies the pitch of this part with respect to the submodel coordinate system", HFILL }
7239 { &hf_cigi2_articulated_parts_control_yaw,
7240 { "Yaw (degrees)", "cigi.art_part_control.yaw",
7241 FT_FLOAT, BASE_DEC, NULL, 0x0,
7242 "Specifies the yaw of this part with respect to the submodel coordinate system", HFILL }
7245 /* CIGI3 Articulated Part Control */
7246 { &hf_cigi3_articulated_part_control,
7247 { "Articulated Part Control", "cigi.art_part_control",
7248 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7249 "Articulated Part Control Packet", HFILL }
7251 { &hf_cigi3_articulated_part_control_entity_id,
7252 { "Entity ID", "cigi.art_part_control.entity_id",
7253 FT_UINT16, BASE_DEC, NULL, 0x0,
7254 "Specifies the entity to which the articulated part belongs", HFILL }
7256 { &hf_cigi3_articulated_part_control_part_id,
7257 { "Articulated Part ID", "cigi.art_part_control.part_id",
7258 FT_UINT8, BASE_DEC, NULL, 0x0,
7259 "Specifies the articulated part to which the data in this packet should be applied", HFILL }
7261 { &hf_cigi3_articulated_part_control_part_enable,
7262 { "Articulated Part Enable", "cigi.art_part_control.part_enable",
7263 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7264 "Determines whether the articulated part submodel should be enabled or disabled within the scene graph", HFILL }
7266 { &hf_cigi3_articulated_part_control_xoff_enable,
7267 { "X Offset Enable", "cigi.art_part_control.xoff_enable",
7268 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7269 "Determines whether the X Offset parameter of the current packet should be applied to the articulated part", HFILL }
7271 { &hf_cigi3_articulated_part_control_yoff_enable,
7272 { "Y Offset Enable", "cigi.art_part_control.yoff_enable",
7273 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7274 "Determines whether the Y Offset parameter of the current packet should be applied to the articulated part", HFILL }
7276 { &hf_cigi3_articulated_part_control_zoff_enable,
7277 { "Z Offset Enable", "cigi.art_part_control.zoff_enable",
7278 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
7279 "Determines whether the Z Offset parameter of the current packet should be applied to the articulated part", HFILL }
7281 { &hf_cigi3_articulated_part_control_roll_enable,
7282 { "Roll Enable", "cigi.art_part_control.roll_enable",
7283 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
7284 "Determines whether the Roll parameter of the current packet should be applied to the articulated part", HFILL }
7286 { &hf_cigi3_articulated_part_control_pitch_enable,
7287 { "Pitch Enable", "cigi.art_part_control.pitch_enable",
7288 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
7289 "Determines whether the Pitch parameter of the current packet should be applied to the articulated part", HFILL }
7291 { &hf_cigi3_articulated_part_control_yaw_enable,
7292 { "Yaw Enable", "cigi.art_part_control.yaw_enable",
7293 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7294 "Determines whether the Yaw parameter of the current packet should be applied to the articulated part", HFILL }
7296 { &hf_cigi3_articulated_part_control_xoff,
7297 { "X Offset (m)", "cigi.art_part_control.xoff",
7298 FT_FLOAT, BASE_DEC, NULL, 0x0,
7299 "Specifies the distance of the articulated part along its X axis", HFILL }
7301 { &hf_cigi3_articulated_part_control_yoff,
7302 { "Y Offset (m)", "cigi.art_part_control.yoff",
7303 FT_FLOAT, BASE_DEC, NULL, 0x0,
7304 "Specifies the distance of the articulated part along its Y axis", HFILL }
7306 { &hf_cigi3_articulated_part_control_zoff,
7307 { "Z Offset (m)", "cigi.art_part_control.zoff",
7308 FT_FLOAT, BASE_DEC, NULL, 0x0,
7309 "Specifies the distance of the articulated part along its Z axis", HFILL }
7311 { &hf_cigi3_articulated_part_control_roll,
7312 { "Roll (degrees)", "cigi.art_part_control.roll",
7313 FT_FLOAT, BASE_DEC, NULL, 0x0,
7314 "Specifies the angle of rotation of the articulated part submodel about its X axis after yaw and pitch have been applied", HFILL }
7316 { &hf_cigi3_articulated_part_control_pitch,
7317 { "Pitch (degrees)", "cigi.art_part_control.pitch",
7318 FT_FLOAT, BASE_DEC, NULL, 0x0,
7319 "Specifies the angle of rotation of the articulated part submodel about its Y axis after yaw has been applied", HFILL }
7321 { &hf_cigi3_articulated_part_control_yaw,
7322 { "Yaw (degrees)", "cigi.art_part_control.yaw",
7323 FT_FLOAT, BASE_DEC, NULL, 0x0,
7324 "Specifies the angle of rotation of the articulated part about its Z axis", HFILL }
7327 /* CIGI3 Short Articulated Part Control */
7328 { &hf_cigi3_short_articulated_part_control,
7329 { "Short Articulated Part Control", "cigi.short_art_part_control",
7330 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7331 "Short Articulated Part Control Packet", HFILL }
7333 { &hf_cigi3_short_articulated_part_control_entity_id,
7334 { "Entity ID", "cigi.short_art_part_control.entity_id",
7335 FT_UINT16, BASE_DEC, NULL, 0x0,
7336 "Specifies the entity to which the articulated part(s) belongs", HFILL }
7338 { &hf_cigi3_short_articulated_part_control_part_id_1,
7339 { "Articulated Part ID 1", "cigi.short_art_part_control.part_id_1",
7340 FT_UINT8, BASE_DEC, NULL, 0x0,
7341 "Specifies an articulated part to which the data in this packet should be applied", HFILL }
7343 { &hf_cigi3_short_articulated_part_control_part_id_2,
7344 { "Articulated Part ID 2", "cigi.short_art_part_control.part_id_2",
7345 FT_UINT8, BASE_DEC, NULL, 0x0,
7346 "Specifies an articulated part to which the data in this packet should be applied", HFILL }
7348 { &hf_cigi3_short_articulated_part_control_dof_select_1,
7349 { "DOF Select 1", "cigi.short_art_part_control.dof_select_1",
7350 FT_UINT8, BASE_DEC, VALS(cigi3_short_articulated_part_control_dof_select_vals), 0x07,
7351 "Specifies the degree of freedom to which the value of DOF 1 is applied", HFILL }
7353 { &hf_cigi3_short_articulated_part_control_dof_select_2,
7354 { "DOF Select 2", "cigi.short_art_part_control.dof_select_2",
7355 FT_UINT8, BASE_DEC, VALS(cigi3_short_articulated_part_control_dof_select_vals), 0x38,
7356 "Specifies the degree of freedom to which the value of DOF 2 is applied", HFILL }
7358 { &hf_cigi3_short_articulated_part_control_part_enable_1,
7359 { "Articulated Part Enable 1", "cigi.short_art_part_control.part_enable_1",
7360 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7361 "Determines whether the articulated part submodel specified by Articulated Part ID 1 should be enabled or disabled within the scene graph", HFILL }
7363 { &hf_cigi3_short_articulated_part_control_part_enable_2,
7364 { "Articulated Part Enable 2", "cigi.short_art_part_control.part_enable_2",
7365 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
7366 "Determines whether the articulated part submodel specified by Articulated Part ID 2 should be enabled or disabled within the scene graph", HFILL }
7368 { &hf_cigi3_short_articulated_part_control_dof_1,
7369 { "DOF 1", "cigi.short_art_part_control.dof_1",
7370 FT_FLOAT, BASE_DEC, NULL, 0x0,
7371 "Specifies either an offset or an angular position for the part identified by Articulated Part ID 1", HFILL }
7373 { &hf_cigi3_short_articulated_part_control_dof_2,
7374 { "DOF 2", "cigi.short_art_part_control.dof_2",
7375 FT_FLOAT, BASE_DEC, NULL, 0x0,
7376 "Specifies either an offset or an angular position for the part identified by Articulated Part ID 2", HFILL }
7379 /* CIGI2 Rate Control */
7380 { &hf_cigi2_rate_control,
7381 { "Rate Control", "cigi.rate_control",
7382 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7383 "Rate Control Packet", HFILL }
7385 { &hf_cigi2_rate_control_entity_id,
7386 { "Entity ID", "cigi.rate_control.entity_id",
7387 FT_UINT16, BASE_DEC, NULL, 0x0,
7388 "Specifies the entity to which this data packet will be applied", HFILL }
7390 { &hf_cigi2_rate_control_part_id,
7391 { "Articulated Part ID", "cigi.rate_control.part_id",
7392 FT_INT8, BASE_DEC, NULL, 0x0,
7393 "Identifies which articulated part is controlled with this data packet", HFILL }
7395 { &hf_cigi2_rate_control_x_rate,
7396 { "X Linear Rate (m/s)", "cigi.rate_control.x_rate",
7397 FT_FLOAT, BASE_DEC, NULL, 0x0,
7398 "Specifies the x component of the velocity vector for the entity being represented", HFILL }
7400 { &hf_cigi2_rate_control_y_rate,
7401 { "Y Linear Rate (m/s)", "cigi.rate_control.y_rate",
7402 FT_FLOAT, BASE_DEC, NULL, 0x0,
7403 "Specifies the y component of the velocity vector for the entity being represented", HFILL }
7405 { &hf_cigi2_rate_control_z_rate,
7406 { "Z Linear Rate (m/s)", "cigi.rate_control.z_rate",
7407 FT_FLOAT, BASE_DEC, NULL, 0x0,
7408 "Specifies the z component of the velocity vector for the entity being represented", HFILL }
7410 { &hf_cigi2_rate_control_roll_rate,
7411 { "Roll Angular Rate (degrees/s)", "cigi.rate_control.roll_rate",
7412 FT_FLOAT, BASE_DEC, NULL, 0x0,
7413 "Specifies the roll angular rate for the entity being represented", HFILL }
7415 { &hf_cigi2_rate_control_pitch_rate,
7416 { "Pitch Angular Rate (degrees/s)", "cigi.rate_control.pitch_rate",
7417 FT_FLOAT, BASE_DEC, NULL, 0x0,
7418 "Specifies the pitch angular rate for the entity being represented", HFILL }
7420 { &hf_cigi2_rate_control_yaw_rate,
7421 { "Yaw Angular Rate (degrees/s)", "cigi.rate_control.yaw_rate",
7422 FT_FLOAT, BASE_DEC, NULL, 0x0,
7423 "Specifies the yaw angular rate for the entity being represented", HFILL }
7426 /* CIGI3 Rate Control */
7427 { &hf_cigi3_rate_control,
7428 { "Rate Control", "cigi.rate_control",
7429 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7430 "Rate Control Packet", HFILL }
7432 { &hf_cigi3_rate_control_entity_id,
7433 { "Entity ID", "cigi.rate_control.entity_id",
7434 FT_UINT16, BASE_DEC, NULL, 0x0,
7435 "Specifies the entity to which the rate should be applied", HFILL }
7437 { &hf_cigi3_rate_control_part_id,
7438 { "Articulated Part ID", "cigi.rate_control.part_id",
7439 FT_UINT8, BASE_DEC, NULL, 0x0,
7440 "Specifies the articulated part to which the rate should be applied", HFILL }
7442 { &hf_cigi3_rate_control_apply_to_part,
7443 { "Apply to Articulated Part", "cigi.rate_control.apply_to_part",
7444 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x01,
7445 "Determines whether the rate is applied to the articulated part specified by the Articulated Part ID parameter", HFILL }
7447 { &hf_cigi3_rate_control_x_rate,
7448 { "X Linear Rate (m/s)", "cigi.rate_control.x_rate",
7449 FT_FLOAT, BASE_DEC, NULL, 0x0,
7450 "Specifies the X component of a linear velocity vector", HFILL }
7452 { &hf_cigi3_rate_control_y_rate,
7453 { "Y Linear Rate (m/s)", "cigi.rate_control.y_rate",
7454 FT_FLOAT, BASE_DEC, NULL, 0x0,
7455 "Specifies the Y component of a linear velocity vector", HFILL }
7457 { &hf_cigi3_rate_control_z_rate,
7458 { "Z Linear Rate (m/s)", "cigi.rate_control.z_rate",
7459 FT_FLOAT, BASE_DEC, NULL, 0x0,
7460 "Specifies the Z component of a linear velocity vector", HFILL }
7462 { &hf_cigi3_rate_control_roll_rate,
7463 { "Roll Angular Rate (degrees/s)", "cigi.rate_control.roll_rate",
7464 FT_FLOAT, BASE_DEC, NULL, 0x0,
7465 "Specifies the angle of rotation of the articulated part submodel about its X axis after yaw and pitch have been applied", HFILL }
7467 { &hf_cigi3_rate_control_pitch_rate,
7468 { "Pitch Angular Rate (degrees/s)", "cigi.rate_control.pitch_rate",
7469 FT_FLOAT, BASE_DEC, NULL, 0x0,
7470 "Specifies the angle of rotation of the articulated part submodel about its Y axis after yaw has been applied", HFILL }
7472 { &hf_cigi3_rate_control_yaw_rate,
7473 { "Yaw Angular Rate (degrees/s)", "cigi.rate_control.yaw_rate",
7474 FT_FLOAT, BASE_DEC, NULL, 0x0,
7475 "Specifies the angle of rotation of the articulated part about its Z axis when its X axis is parallel to that of the entity", HFILL }
7478 /* CIGI3_2 Rate Control */
7479 { &hf_cigi3_2_rate_control,
7480 { "Rate Control", "cigi.rate_control",
7481 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7482 "Rate Control Packet", HFILL }
7484 { &hf_cigi3_2_rate_control_entity_id,
7485 { "Entity ID", "cigi.rate_control.entity_id",
7486 FT_UINT16, BASE_DEC, NULL, 0x0,
7487 "Specifies the entity to which the rate should be applied", HFILL }
7489 { &hf_cigi3_2_rate_control_part_id,
7490 { "Articulated Part ID", "cigi.rate_control.part_id",
7491 FT_UINT8, BASE_DEC, NULL, 0x0,
7492 "Specifies the articulated part to which the rate should be applied", HFILL }
7494 { &hf_cigi3_2_rate_control_apply_to_part,
7495 { "Apply to Articulated Part", "cigi.rate_control.apply_to_part",
7496 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x01,
7497 "Determines whether the rate is applied to the articulated part specified by the Articulated Part ID parameter", HFILL }
7499 { &hf_cigi3_2_rate_control_coordinate_system,
7500 { "Coordinate System", "cigi.rate_control.coordinate_system",
7501 FT_BOOLEAN, 8, TFS(&cigi3_2_rate_control_coord_sys_select_vals), 0x02,
7502 "Specifies the reference coordinate system to which the linear and angular rates are applied", HFILL }
7504 { &hf_cigi3_2_rate_control_x_rate,
7505 { "X Linear Rate (m/s)", "cigi.rate_control.x_rate",
7506 FT_FLOAT, BASE_DEC, NULL, 0x0,
7507 "Specifies the X component of a linear velocity vector", HFILL }
7509 { &hf_cigi3_2_rate_control_y_rate,
7510 { "Y Linear Rate (m/s)", "cigi.rate_control.y_rate",
7511 FT_FLOAT, BASE_DEC, NULL, 0x0,
7512 "Specifies the Y component of a linear velocity vector", HFILL }
7514 { &hf_cigi3_2_rate_control_z_rate,
7515 { "Z Linear Rate (m/s)", "cigi.rate_control.z_rate",
7516 FT_FLOAT, BASE_DEC, NULL, 0x0,
7517 "Specifies the Z component of a linear velocity vector", HFILL }
7519 { &hf_cigi3_2_rate_control_roll_rate,
7520 { "Roll Angular Rate (degrees/s)", "cigi.rate_control.roll_rate",
7521 FT_FLOAT, BASE_DEC, NULL, 0x0,
7522 "Specifies the angle of rotation of the articulated part submodel about its X axis after yaw and pitch have been applied", HFILL }
7524 { &hf_cigi3_2_rate_control_pitch_rate,
7525 { "Pitch Angular Rate (degrees/s)", "cigi.rate_control.pitch_rate",
7526 FT_FLOAT, BASE_DEC, NULL, 0x0,
7527 "Specifies the angle of rotation of the articulated part submodel about its Y axis after yaw has been applied", HFILL }
7529 { &hf_cigi3_2_rate_control_yaw_rate,
7530 { "Yaw Angular Rate (degrees/s)", "cigi.rate_control.yaw_rate",
7531 FT_FLOAT, BASE_DEC, NULL, 0x0,
7532 "Specifies the angle of rotation of the articulated part about its Z axis when its X axis is parallel to that of the entity", HFILL }
7535 /* CIGI3 Celestial Sphere Control */
7536 { &hf_cigi3_celestial_sphere_control,
7537 { "Celestial Sphere Control", "cigi.celestial_sphere_control",
7538 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7539 "Celestial Sphere Control Packet", HFILL }
7541 { &hf_cigi3_celestial_sphere_control_hour,
7542 { "Hour (h)", "cigi.celestial_sphere_control.hour",
7543 FT_UINT8, BASE_DEC, NULL, 0x0,
7544 "Specifies the current hour of the day within the simulation", HFILL }
7546 { &hf_cigi3_celestial_sphere_control_minute,
7547 { "Minute (min)", "cigi.celestial_sphere_control.minute",
7548 FT_UINT8, BASE_DEC, NULL, 0x0,
7549 "Specifies the current minute of the day within the simulation", HFILL }
7551 { &hf_cigi3_celestial_sphere_control_ephemeris_enable,
7552 { "Ephemeris Model Enable", "cigi.celestial_sphere_control.ephemeris_enable",
7553 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7554 "Controls whether the time of day is static or continuous", HFILL }
7556 { &hf_cigi3_celestial_sphere_control_sun_enable,
7557 { "Sun Enable", "cigi.celestial_sphere_control.sun_enable",
7558 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7559 "Specifies whether the sun is enabled in the sky model", HFILL }
7561 { &hf_cigi3_celestial_sphere_control_moon_enable,
7562 { "Moon Enable", "cigi.celestial_sphere_control.moon_enable",
7563 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7564 "Specifies whether the moon is enabled in the sky model", HFILL }
7566 { &hf_cigi3_celestial_sphere_control_star_enable,
7567 { "Star Field Enable", "cigi.celestial_sphere_control.star_enable",
7568 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
7569 "Specifies whether the start field is enabled in the sky model", HFILL }
7571 { &hf_cigi3_celestial_sphere_control_date_time_valid,
7572 { "Date/Time Valid", "cigi.celestial_sphere_control.date_time_valid",
7573 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
7574 "Specifies whether the Hour, Minute, and Date parameters are valid", HFILL }
7576 { &hf_cigi3_celestial_sphere_control_date,
7577 { "Date (MMDDYYYY)", "cigi.celestial_sphere_control.date",
7578 FT_UINT32, BASE_DEC, NULL, 0x0,
7579 "Specifies the current date within the simulation", HFILL }
7581 { &hf_cigi3_celestial_sphere_control_star_intensity,
7582 { "Star Field Intensity (%)", "cigi.celestial_sphere_control.star_intensity",
7583 FT_FLOAT, BASE_DEC, NULL, 0x0,
7584 "Specifies the intensity of the star field within the sky model", HFILL }
7587 /* CIGI3 Atmosphere Control */
7588 { &hf_cigi3_atmosphere_control,
7589 { "Atmosphere Control", "cigi.atmosphere_control",
7590 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7591 "Atmosphere Control Packet", HFILL }
7593 { &hf_cigi3_atmosphere_control_atmospheric_model_enable,
7594 { "Atmospheric Model Enable", "cigi.atmosphere_control.atmospheric_model_enable",
7595 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7596 "Specifies whether the IG should use an atmospheric model to determine spectral radiances for sensor applications", HFILL }
7598 { &hf_cigi3_atmosphere_control_humidity,
7599 { "Global Humidity (%)", "cigi.atmosphere_control.humidity",
7600 FT_UINT8, BASE_DEC, NULL, 0x0,
7601 "Specifies the global humidity of the environment", HFILL }
7603 { &hf_cigi3_atmosphere_control_air_temp,
7604 { "Global Air Temperature (degrees C)", "cigi.atmosphere_control.air_temp",
7605 FT_FLOAT, BASE_DEC, NULL, 0x0,
7606 "Specifies the global air temperature of the environment", HFILL }
7608 { &hf_cigi3_atmosphere_control_visibility_range,
7609 { "Global Visibility Range (m)", "cigi.atmosphere_control.visibility_range",
7610 FT_FLOAT, BASE_DEC, NULL, 0x0,
7611 "Specifies the global visibility range through the atmosphere", HFILL }
7613 { &hf_cigi3_atmosphere_control_horiz_wind,
7614 { "Global Horizontal Wind Speed (m/s)", "cigi.atmosphere_control.horiz_wind",
7615 FT_FLOAT, BASE_DEC, NULL, 0x0,
7616 "Specifies the global wind speed parallel to the ellipsoid-tangential reference plane", HFILL }
7618 { &hf_cigi3_atmosphere_control_vert_wind,
7619 { "Global Vertical Wind Speed (m/s)", "cigi.atmosphere_control.vert_wind",
7620 FT_FLOAT, BASE_DEC, NULL, 0x0,
7621 "Specifies the global vertical wind speed", HFILL }
7623 { &hf_cigi3_atmosphere_control_wind_direction,
7624 { "Global Wind Direction (degrees)", "cigi.atmosphere_control.wind_direction",
7625 FT_FLOAT, BASE_DEC, NULL, 0x0,
7626 "Specifies the global wind direction", HFILL }
7628 { &hf_cigi3_atmosphere_control_barometric_pressure,
7629 { "Global Barometric Pressure (mb or hPa)", "cigi.atmosphere_control.barometric_pressure",
7630 FT_FLOAT, BASE_DEC, NULL, 0x0,
7631 "Specifies the global atmospheric pressure", HFILL }
7634 /* CIGI2 Environmental Control */
7635 { &hf_cigi2_environment_control,
7636 { "Environment Control", "cigi.env_control",
7637 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7638 "Environment Control Packet", HFILL }
7640 { &hf_cigi2_environment_control_hour,
7641 { "Hour (h)", "cigi.env_control.hour",
7642 FT_UINT8, BASE_DEC, NULL, 0x0,
7643 "Identifies the hour of the day for the ephemeris program within the image generator", HFILL }
7645 { &hf_cigi2_environment_control_minute,
7646 { "Minute (min)", "cigi.env_control.minute",
7647 FT_UINT8, BASE_DEC, NULL, 0x0,
7648 "Identifies the minute of the hour for the ephemeris program within the image generator", HFILL }
7650 { &hf_cigi2_environment_control_ephemeris_enable,
7651 { "Ephemeris Enable", "cigi.env_control.ephemeris_enable",
7652 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
7653 "Identifies whether a continuous time of day or static time of day is used", HFILL }
7655 { &hf_cigi2_environment_control_humidity,
7656 { "Humidity (%)", "cigi.env_control.humidity",
7657 FT_UINT8, BASE_DEC, NULL, 0x7f,
7658 "Specifies the global humidity of the environment", HFILL }
7660 { &hf_cigi2_environment_control_modtran_enable,
7661 { "MODTRAN", "cigi.env_control.modtran_enable",
7662 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x80,
7663 "Identifies whether atmospherics will be included in the calculations", HFILL }
7665 { &hf_cigi2_environment_control_date,
7666 { "Date (MMDDYYYY)", "cigi.env_control.date",
7667 FT_INT32, BASE_DEC, NULL, 0x0,
7668 "Specifies the desired date for use by the ephemeris program within the image generator", HFILL }
7670 { &hf_cigi2_environment_control_air_temp,
7671 { "Air Temperature (degrees C)", "cigi.env_control.air_temp",
7672 FT_FLOAT, BASE_DEC, NULL, 0x0,
7673 "Identifies the global temperature of the environment", HFILL }
7675 { &hf_cigi2_environment_control_global_visibility,
7676 { "Global Visibility (m)", "cigi.env_control.global_visibility",
7677 FT_FLOAT, BASE_DEC, NULL, 0x0,
7678 "Identifies the global visibility", HFILL }
7680 { &hf_cigi2_environment_control_wind_speed,
7681 { "Wind Speed (m/s)", "cigi.env_control.wind_speed",
7682 FT_FLOAT, BASE_DEC, NULL, 0x0,
7683 "Identifies the global wind speed", HFILL }
7685 { &hf_cigi2_environment_control_wind_direction,
7686 { "Wind Direction (degrees)", "cigi.env_control.wind_direction",
7687 FT_FLOAT, BASE_DEC, NULL, 0x0,
7688 "Identifies the global wind direction", HFILL }
7690 { &hf_cigi2_environment_control_pressure,
7691 { "Barometric Pressure (mb)", "cigi.env_control.pressure",
7692 FT_FLOAT, BASE_DEC, NULL, 0x0,
7693 "Controls the atmospheric pressure input into MODTRAN", HFILL }
7695 { &hf_cigi2_environment_control_aerosol,
7696 { "Aerosol (gm/m^3)", "cigi.env_control.aerosol",
7697 FT_FLOAT, BASE_DEC, NULL, 0x0,
7698 "Controls the liquid water content for the defined atmosphere", HFILL }
7701 /* CIGI3 Environmental Region Control */
7702 { &hf_cigi3_environmental_region_control,
7703 { "Environmental Region Control", "cigi.env_region_control",
7704 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7705 "Environmental Region Control Packet", HFILL }
7707 { &hf_cigi3_environmental_region_control_region_id,
7708 { "Region ID", "cigi.env_region_control.region_id",
7709 FT_UINT16, BASE_DEC, NULL, 0x0,
7710 "Specifies the environmental region to which the data in this packet will be applied", HFILL }
7712 { &hf_cigi3_environmental_region_control_region_state,
7713 { "Region State", "cigi.env_region_control.region_state",
7714 FT_UINT8, BASE_DEC, VALS(cigi3_environmental_region_control_region_state_vals), 0x03,
7715 "Specifies whether the region should be active or destroyed", HFILL }
7717 { &hf_cigi3_environmental_region_control_merge_weather,
7718 { "Merge Weather Properties", "cigi.env_region_control.merge_weather",
7719 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x04,
7720 "Specifies whether atmospheric conditions within this region should be merged with those of other regions within areas of overlap", HFILL }
7722 { &hf_cigi3_environmental_region_control_merge_aerosol,
7723 { "Merge Aerosol Concentrations", "cigi.env_region_control.merge_aerosol",
7724 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x08,
7725 "Specifies whether the concentrations of aerosols found within this region should be merged with those of other regions within areas of overlap", HFILL }
7727 { &hf_cigi3_environmental_region_control_merge_maritime,
7728 { "Merge Maritime Surface Conditions", "cigi.env_region_control.merge_maritime",
7729 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x10,
7730 "Specifies whether the maritime surface conditions found within this region should be merged with those of other regions within areas of overlap", HFILL }
7732 { &hf_cigi3_environmental_region_control_merge_terrestrial,
7733 { "Merge Terrestrial Surface Conditions", "cigi.env_region_control.merge_terrestrial",
7734 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x20,
7735 "Specifies whether the terrestrial surface conditions found within this region should be merged with those of other regions within areas of overlap", HFILL }
7737 { &hf_cigi3_environmental_region_control_lat,
7738 { "Latitude (degrees)", "cigi.env_region_control.lat",
7739 FT_DOUBLE, BASE_DEC, NULL, 0x0,
7740 "Specifies the geodetic latitude of the center of the rounded rectangle", HFILL }
7742 { &hf_cigi3_environmental_region_control_lon,
7743 { "Longitude (degrees)", "cigi.env_region_control.lon",
7744 FT_DOUBLE, BASE_DEC, NULL, 0x0,
7745 "Specifies the geodetic longitude of the center of the rounded rectangle", HFILL }
7747 { &hf_cigi3_environmental_region_control_size_x,
7748 { "Size X (m)", "cigi.env_region_control.size_x",
7749 FT_FLOAT, BASE_DEC, NULL, 0x0,
7750 "Specifies the length of the environmental region along its X axis at the geoid surface", HFILL }
7752 { &hf_cigi3_environmental_region_control_size_y,
7753 { "Size Y (m)", "cigi.env_region_control.size_y",
7754 FT_FLOAT, BASE_DEC, NULL, 0x0,
7755 "Specifies the length of the environmental region along its Y axis at the geoid surface", HFILL }
7757 { &hf_cigi3_environmental_region_control_corner_radius,
7758 { "Corner Radius (m)", "cigi.env_region_control.corner_radius",
7759 FT_FLOAT, BASE_DEC, NULL, 0x0,
7760 "Specifies the radius of the corner of the rounded rectangle", HFILL }
7762 { &hf_cigi3_environmental_region_control_rotation,
7763 { "Rotation (degrees)", "cigi.env_region_control.rotation",
7764 FT_FLOAT, BASE_DEC, NULL, 0x0,
7765 "Specifies the yaw angle of the rounded rectangle", HFILL }
7767 { &hf_cigi3_environmental_region_control_transition_perimeter,
7768 { "Transition Perimeter (m)", "cigi.env_region_control.transition_perimeter",
7769 FT_FLOAT, BASE_DEC, NULL, 0x0,
7770 "Specifies the width of the transition perimeter around the environmental region", HFILL }
7773 /* CIGI2 Weather Control */
7774 { &hf_cigi2_weather_control,
7775 { "Weather Control", "cigi.weather_control",
7776 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7777 "Weather Control Packet", HFILL }
7779 { &hf_cigi2_weather_control_entity_id,
7780 { "Entity ID", "cigi.weather_control.entity_id",
7781 FT_UINT16, BASE_DEC, NULL, 0x0,
7782 "Identifies the entity's ID", HFILL }
7784 { &hf_cigi2_weather_control_weather_enable,
7785 { "Weather Enable", "cigi.weather_control.weather_enable",
7786 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
7787 "Indicates whether the phenomena specified by this data packet is visible", HFILL }
7789 { &hf_cigi2_weather_control_scud_enable,
7790 { "Scud Enable", "cigi.weather_control.scud_enable",
7791 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7792 "Indicates whether there will be scud effects applied to the phenomenon specified by this data packet", HFILL }
7794 { &hf_cigi2_weather_control_random_winds,
7795 { "Random Winds Aloft", "cigi.weather_control.random_winds",
7796 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
7797 "Indicates whether a random frequency and duration should be applied to the winds aloft value", HFILL }
7799 { &hf_cigi2_weather_control_severity,
7800 { "Severity", "cigi.weather_control.severity",
7801 FT_UINT8, BASE_DEC, NULL, 0x1c,
7802 "Indicates the severity of the weather phenomenon", HFILL }
7804 { &hf_cigi2_weather_control_phenomenon_type,
7805 { "Phenomenon Type", "cigi.weather_control.phenomenon_type",
7806 FT_UINT16, BASE_DEC, VALS(cigi2_weather_control_phenomenon_type_vals), 0x0,
7807 "Identifies the type of weather described by this data packet", HFILL }
7809 { &hf_cigi2_weather_control_air_temp,
7810 { "Air Temperature (degrees C)", "cigi.weather_control.air_temp",
7811 FT_FLOAT, BASE_DEC, NULL, 0x0,
7812 "Identifies the local temperature inside the weather phenomenon", HFILL }
7814 { &hf_cigi2_weather_control_opacity,
7815 { "Opacity (%)", "cigi.weather_control.opacity",
7816 FT_FLOAT, BASE_DEC, NULL, 0x0,
7817 "Identifies the opacity of the weather phenomenon", HFILL }
7819 { &hf_cigi2_weather_control_scud_frequency,
7820 { "Scud Frequency (%)", "cigi.weather_control.scud_frequency",
7821 FT_FLOAT, BASE_DEC, NULL, 0x0,
7822 "Identifies the frequency for the scud effect", HFILL }
7824 { &hf_cigi2_weather_control_coverage,
7825 { "Coverage (%)", "cigi.weather_control.coverage",
7826 FT_FLOAT, BASE_DEC, NULL, 0x0,
7827 "Indicates the amount of area coverage a particular phenomenon has over the specified global visibility range given in the environment control data packet", HFILL }
7829 { &hf_cigi2_weather_control_elevation,
7830 { "Elevation (m)", "cigi.weather_control.elevation",
7831 FT_FLOAT, BASE_DEC, NULL, 0x0,
7832 "Indicates the base altitude of the weather phenomenon", HFILL }
7834 { &hf_cigi2_weather_control_thickness,
7835 { "Thickness (m)", "cigi.weather_control.thickness",
7836 FT_FLOAT, BASE_DEC, NULL, 0x0,
7837 "Indicates the vertical thickness of the weather phenomenon", HFILL }
7839 { &hf_cigi2_weather_control_transition_band,
7840 { "Transition Band (m)", "cigi.weather_control.transition_band",
7841 FT_FLOAT, BASE_DEC, NULL, 0x0,
7842 "Indicates a vertical transition band both above and below a phenomenon", HFILL }
7844 { &hf_cigi2_weather_control_wind_speed,
7845 { "Winds Aloft Speed", "cigi.weather_control.wind_speed",
7846 FT_FLOAT, BASE_DEC, NULL, 0x0,
7847 "Identifies the local wind speed applied to the phenomenon", HFILL }
7849 { &hf_cigi2_weather_control_wind_direction,
7850 { "Winds Aloft Direction (degrees)", "cigi.weather_control.wind_direction",
7851 FT_FLOAT, BASE_DEC, NULL, 0x0,
7852 "Indicates local direction of the wind applied to the phenomenon", HFILL }
7855 /* CIGI3 Weather Control */
7856 { &hf_cigi3_weather_control,
7857 { "Weather Control", "cigi.weather_control",
7858 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7859 "Weather Control Packet", HFILL }
7861 { &hf_cigi3_weather_control_entity_region_id,
7862 { "Entity ID/Region ID", "cigi.weather_control.entity_region_id",
7863 FT_UINT16, BASE_DEC, NULL, 0x0,
7864 "Specifies the entity to which the weather attributes in this packet are applied", HFILL }
7866 { &hf_cigi3_weather_control_layer_id,
7867 { "Layer ID", "cigi.weather_control.layer_id",
7868 FT_UINT8, BASE_DEC, VALS(cigi3_weather_control_layer_id_vals), 0x0,
7869 "Specifies the weather layer to which the data in this packet are applied", HFILL }
7871 { &hf_cigi3_weather_control_humidity,
7872 { "Humidity (%)", "cigi.weather_control.humidity",
7873 FT_UINT8, BASE_DEC, NULL, 0x0,
7874 "Specifies the humidity within the weather layer", HFILL }
7876 { &hf_cigi3_weather_control_weather_enable,
7877 { "Weather Enable", "cigi.weather_control.weather_enable",
7878 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7879 "Specifies whether a weather layer and its atmospheric effects are enabled", HFILL }
7881 { &hf_cigi3_weather_control_scud_enable,
7882 { "Scud Enable", "cigi.weather_control.scud_enable",
7883 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7884 "Specifies whether weather layer produces scud effects within its transition bands", HFILL }
7886 { &hf_cigi3_weather_control_random_winds_enable,
7887 { "Random Winds Enable", "cigi.weather_control.random_winds_enable",
7888 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7889 "Specifies whether a random frequency and duration should be applied to the local wind effects", HFILL }
7891 { &hf_cigi3_weather_control_random_lightning_enable,
7892 { "Random Lightning Enable", "cigi.weather_control.random_lightning_enable",
7893 FT_UINT8, BASE_DEC, NULL, 0x08,
7894 "Specifies whether the weather layer exhibits random lightning effects", HFILL }
7896 { &hf_cigi3_weather_control_cloud_type,
7897 { "Cloud Type", "cigi.weather_control.cloud_type",
7898 FT_UINT8, BASE_DEC, VALS(cigi3_weather_control_cloud_type_vals), 0xf0,
7899 "Specifies the type of clouds contained within the weather layer", HFILL }
7901 { &hf_cigi3_weather_control_scope,
7902 { "Scope", "cigi.weather_control.scope",
7903 FT_UINT8, BASE_DEC, VALS(cigi3_weather_control_scope_vals), 0x03,
7904 "Specifies whether the weather is global, regional, or assigned to an entity", HFILL }
7906 { &hf_cigi3_weather_control_severity,
7907 { "Severity", "cigi.weather_control.severity",
7908 FT_UINT8, BASE_DEC, NULL, 0x1c,
7909 "Specifies the severity of the weather layer", HFILL }
7911 { &hf_cigi3_weather_control_air_temp,
7912 { "Air Temperature (degrees C)", "cigi.weather_control.air_temp",
7913 FT_FLOAT, BASE_DEC, NULL, 0x0,
7914 "Specifies the temperature within the weather layer", HFILL }
7916 { &hf_cigi3_weather_control_visibility_range,
7917 { "Visibility Range (m)", "cigi.weather_control.visibility_range",
7918 FT_FLOAT, BASE_DEC, NULL, 0x0,
7919 "Specifies the visibility range through the weather layer", HFILL }
7921 { &hf_cigi3_weather_control_scud_frequency,
7922 { "Scud Frequency (%)", "cigi.weather_control.scud_frequency",
7923 FT_FLOAT, BASE_DEC, NULL, 0x0,
7924 "Specifies the frequency of scud within the transition bands above and/or below a cloud or fog layer", HFILL }
7926 { &hf_cigi3_weather_control_coverage,
7927 { "Coverage (%)", "cigi.weather_control.coverage",
7928 FT_FLOAT, BASE_DEC, NULL, 0x0,
7929 "Specifies the amount of area coverage for the weather layer", HFILL }
7931 { &hf_cigi3_weather_control_base_elevation,
7932 { "Base Elevation (m)", "cigi.weather_control.base_elevation",
7933 FT_FLOAT, BASE_DEC, NULL, 0x0,
7934 "Specifies the altitude of the base of the weather layer", HFILL }
7936 { &hf_cigi3_weather_control_thickness,
7937 { "Thickness (m)", "cigi.weather_control.thickness",
7938 FT_FLOAT, BASE_DEC, NULL, 0x0,
7939 "Specifies the vertical thickness of the weather layer", HFILL }
7941 { &hf_cigi3_weather_control_transition_band,
7942 { "Transition Band (m)", "cigi.weather_control.transition_band",
7943 FT_FLOAT, BASE_DEC, NULL, 0x0,
7944 "Specifies the height of a vertical transition band both above and below the weather layer", HFILL }
7946 { &hf_cigi3_weather_control_horiz_wind,
7947 { "Horizontal Wind Speed (m/s)", "cigi.weather_control.horiz_wind",
7948 FT_FLOAT, BASE_DEC, NULL, 0x0,
7949 "Specifies the local wind speed parallel to the ellipsoid-tangential reference plane", HFILL }
7951 { &hf_cigi3_weather_control_vert_wind,
7952 { "Vertical Wind Speed (m/s)", "cigi.weather_control.vert_wind",
7953 FT_FLOAT, BASE_DEC, NULL, 0x0,
7954 "Specifies the local vertical wind speed", HFILL }
7956 { &hf_cigi3_weather_control_wind_direction,
7957 { "Wind Direction (degrees)", "cigi.weather_control.wind_direction",
7958 FT_FLOAT, BASE_DEC, NULL, 0x0,
7959 "Specifies the local wind direction", HFILL }
7961 { &hf_cigi3_weather_control_barometric_pressure,
7962 { "Barometric Pressure (mb or hPa)", "cigi.weather_control.barometric_pressure",
7963 FT_FLOAT, BASE_DEC, NULL, 0x0,
7964 "Specifies the atmospheric pressure within the weather layer", HFILL }
7966 { &hf_cigi3_weather_control_aerosol_concentration,
7967 { "Aerosol Concentration (g/m^3)", "cigi.weather_control.aerosol_concentration",
7968 FT_FLOAT, BASE_DEC, NULL, 0x0,
7969 "Specifies the concentration of water, smoke, dust, or other particles suspended in the air", HFILL }
7972 /* CIGI3 Maritime Surface Conditions Control */
7973 { &hf_cigi3_maritime_surface_conditions_control,
7974 { "Maritime Surface Conditions Control", "cigi.maritime_surface_conditions_control",
7975 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7976 "Maritime Surface Conditions Control Packet", HFILL }
7978 { &hf_cigi3_maritime_surface_conditions_control_entity_region_id,
7979 { "Entity ID/Region ID", "cigi.maritime_surface_conditions_control.entity_region_id",
7980 FT_UINT16, BASE_DEC, NULL, 0x0,
7981 "Specifies the entity to which the surface attributes in this packet are applied or specifies the region to which the surface attributes are confined", HFILL }
7983 { &hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable,
7984 { "Surface Conditions Enable", "cigi.maritime_surface_conditions_control.surface_conditions_enable",
7985 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7986 "Determines the state of the specified surface conditions", HFILL }
7988 { &hf_cigi3_maritime_surface_conditions_control_whitecap_enable,
7989 { "Whitecap Enable", "cigi.maritime_surface_conditions_control.whitecap_enable",
7990 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7991 "Determines whether whitecaps are enabled", HFILL }
7993 { &hf_cigi3_maritime_surface_conditions_control_scope,
7994 { "Scope", "cigi.maritime_surface_conditions_control.scope",
7995 FT_UINT8, BASE_DEC, VALS(cigi3_maritime_surface_conditions_control_scope_vals), 0x0c,
7996 "Specifies whether this packet is applied globally, applied to region, or assigned to an entity", HFILL }
7998 { &hf_cigi3_maritime_surface_conditions_control_sea_surface_height,
7999 { "Sea Surface Height (m)", "cigi.maritime_surface_conditions_control.sea_surface_height",
8000 FT_FLOAT, BASE_DEC, NULL, 0x0,
8001 "Specifies the height of the water above MSL at equilibrium", HFILL }
8003 { &hf_cigi3_maritime_surface_conditions_control_surface_water_temp,
8004 { "Surface Water Temperature (degrees C)", "cigi.maritime_surface_conditions_control.surface_water_temp",
8005 FT_FLOAT, BASE_DEC, NULL, 0x0,
8006 "Specifies the water temperature at the surface", HFILL }
8008 { &hf_cigi3_maritime_surface_conditions_control_surface_clarity,
8009 { "Surface Clarity (%)", "cigi.maritime_surface_conditions_control.surface_clarity",
8010 FT_FLOAT, BASE_DEC, NULL, 0x0,
8011 "Specifies the clarity of the water at its surface", HFILL }
8014 /* CIGI3 Wave Control */
8015 { &hf_cigi3_wave_control,
8016 { "Wave Control", "cigi.wave_control",
8017 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8018 "Wave Control Packet", HFILL }
8020 { &hf_cigi3_wave_control_entity_region_id,
8021 { "Entity ID/Region ID", "cigi.wave_control.entity_region_id",
8022 FT_UINT16, BASE_DEC, NULL, 0x0,
8023 "Specifies the surface entity for which the wave is defined or specifies the environmental region for which the wave is defined", HFILL }
8025 { &hf_cigi3_wave_control_wave_id,
8026 { "Wave ID", "cigi.wave_control.wave_id",
8027 FT_UINT8, BASE_DEC, NULL, 0x0,
8028 "Specifies the wave to which the attributes in this packet are applied", HFILL }
8030 { &hf_cigi3_wave_control_wave_enable,
8031 { "Wave Enable", "cigi.wave_control.wave_enable",
8032 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8033 "Determines whether the wave is enabled or disabled", HFILL }
8035 { &hf_cigi3_wave_control_scope,
8036 { "Scope", "cigi.wave_control.scope",
8037 FT_UINT8, BASE_DEC, VALS(cigi3_wave_control_scope_vals), 0x06,
8038 "Specifies whether the wave is defined for global, regional, or entity-controlled maritime surface conditions", HFILL }
8040 { &hf_cigi3_wave_control_breaker_type,
8041 { "Breaker Type", "cigi.wave_control.breaker_type",
8042 FT_UINT8, BASE_DEC, VALS(cigi3_wave_control_breaker_type_vals), 0x18,
8043 "Specifies the type of breaker within the surf zone", HFILL }
8045 { &hf_cigi3_wave_control_height,
8046 { "Wave Height (m)", "cigi.wave_control.height",
8047 FT_FLOAT, BASE_DEC, NULL, 0x0,
8048 "Specifies the average vertical distance from trough to crest produced by the wave", HFILL }
8050 { &hf_cigi3_wave_control_wavelength,
8051 { "Wavelength (m)", "cigi.wave_control.wavelength",
8052 FT_FLOAT, BASE_DEC, NULL, 0x0,
8053 "Specifies the distance from a particular phase on a wave to the same phase on an adjacent wave", HFILL }
8055 { &hf_cigi3_wave_control_period,
8056 { "Period (s)", "cigi.wave_control.period",
8057 FT_FLOAT, BASE_DEC, NULL, 0x0,
8058 "Specifies the time required for one complete oscillation of the wave", HFILL }
8060 { &hf_cigi3_wave_control_direction,
8061 { "Direction (degrees)", "cigi.wave_control.direction",
8062 FT_FLOAT, BASE_DEC, NULL, 0x0,
8063 "Specifies the direction in which the wave propagates", HFILL }
8065 { &hf_cigi3_wave_control_phase_offset,
8066 { "Phase Offset (degrees)", "cigi.wave_control.phase_offset",
8067 FT_FLOAT, BASE_DEC, NULL, 0x0,
8068 "Specifies a phase offset for the wave", HFILL }
8070 { &hf_cigi3_wave_control_leading,
8071 { "Leading (degrees)", "cigi.wave_control.leading",
8072 FT_FLOAT, BASE_DEC, NULL, 0x0,
8073 "Specifies the phase angle at which the crest occurs", HFILL }
8076 /* Terrestrial Surface Conditions Control */
8077 { &hf_cigi3_terrestrial_surface_conditions_control,
8078 { "Terrestrial Surface Conditions Control", "cigi.terrestrial_surface_conditions_control",
8079 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8080 "Terrestrial Surface Conditions Control Packet", HFILL }
8082 { &hf_cigi3_terrestrial_surface_conditions_control_entity_region_id,
8083 { "Entity ID/Region ID", "cigi.terrestrial_surface_conditions_control.entity_region_id",
8084 FT_UINT16, BASE_DEC, NULL, 0x0,
8085 "Specifies the environmental entity to which the surface condition attributes in this packet are applied", HFILL }
8087 { &hf_cigi3_terrestrial_surface_conditions_control_surface_condition_id,
8088 { "Surface Condition ID", "cigi.terrestrial_surface_conditions_control.surface_condition_id",
8089 FT_UINT16, BASE_DEC, NULL, 0x0,
8090 "Identifies a surface condition or contaminant", HFILL }
8092 { &hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable,
8093 { "Surface Condition Enable", "cigi.terrestrial_surface_conditions_control.surface_condition_enable",
8094 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8095 "Specifies whether the surface condition attribute identified by the Surface Condition ID parameter should be enabled", HFILL }
8097 { &hf_cigi3_terrestrial_surface_conditions_control_scope,
8098 { "Scope", "cigi.terrestrial_surface_conditions_control.scope",
8099 FT_UINT8, BASE_DEC, VALS(cigi3_terrestrial_surface_conditions_control_scope_vals), 0x06,
8100 "Determines whether the specified surface conditions are applied globally, regionally, or to an environmental entity", HFILL }
8102 { &hf_cigi3_terrestrial_surface_conditions_control_severity,
8103 { "Severity", "cigi.terrestrial_surface_conditions_control.severity",
8104 FT_UINT8, BASE_DEC, NULL, 0xf8,
8105 "Determines the degree of severity for the specified surface contaminant(s)", HFILL }
8107 { &hf_cigi3_terrestrial_surface_conditions_control_coverage,
8108 { "Coverage (%)", "cigi.terrestrial_surface_conditions_control.coverage",
8109 FT_UINT8, BASE_DEC, NULL, 0x0,
8110 "Determines the degree of coverage of the specified surface contaminant", HFILL }
8113 /* CIGI2 View Control */
8114 { &hf_cigi2_view_control,
8115 { "View Control", "cigi.view_control",
8116 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8117 "View Control Packet", HFILL }
8119 { &hf_cigi2_view_control_entity_id,
8120 { "Entity ID", "cigi.view_control.entity_id",
8121 FT_UINT16, BASE_DEC, NULL, 0x0,
8122 "Indicates the entity to which this view should be attached", HFILL }
8124 { &hf_cigi2_view_control_view_id,
8125 { "View ID", "cigi.view_control.view_id",
8126 FT_UINT8, BASE_DEC, NULL, 0xf8,
8127 "Specifies which view position is associated with offsets and rotation specified by this data packet", HFILL }
8129 { &hf_cigi2_view_control_view_group,
8130 { "View Group Select", "cigi.view_control.view_group",
8131 FT_UINT8, BASE_DEC, NULL, 0x07,
8132 "Specifies which view group is to be controlled by the offsets", HFILL }
8134 { &hf_cigi2_view_control_xoff_enable,
8135 { "X Offset Enable", "cigi.view_control.xoff_enable",
8136 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8137 "Identifies whether the x offset parameter should be applied to the specified view or view group", HFILL }
8139 { &hf_cigi2_view_control_yoff_enable,
8140 { "Y Offset Enable", "cigi.view_control.yoff_enable",
8141 FT_UINT8, BASE_DEC, NULL, 0x40,
8142 "Identifies whether the y offset parameter should be applied to the specified view or view group", HFILL }
8144 { &hf_cigi2_view_control_zoff_enable,
8145 { "Z Offset Enable", "cigi.view_control.zoff_enable",
8146 FT_UINT8, BASE_DEC, NULL, 0x20,
8147 "Identifies whether the z offset parameter should be applied to the specified view or view group", HFILL }
8149 { &hf_cigi2_view_control_roll_enable,
8150 { "Roll Enable", "cigi.view_control.roll_enable",
8151 FT_UINT8, BASE_DEC, NULL, 0x10,
8152 "Identifies whether the roll parameter should be applied to the specified view or view group", HFILL }
8154 { &hf_cigi2_view_control_pitch_enable,
8155 { "Pitch Enable", "cigi.view_control.pitch_enable",
8156 FT_UINT8, BASE_DEC, NULL, 0x08,
8157 "Identifies whether the pitch parameter should be applied to the specified view or view group", HFILL }
8159 { &hf_cigi2_view_control_yaw_enable,
8160 { "Yaw Enable", "cigi.view_control.yaw_enable",
8161 FT_UINT8, BASE_DEC, NULL, 0x04,
8162 "Identifies whether the yaw parameter should be applied to the specified view or view group", HFILL }
8164 { &hf_cigi2_view_control_x_offset,
8165 { "X Offset (m)", "cigi.view_control.x_offset",
8166 FT_FLOAT, BASE_DEC, NULL, 0x0,
8167 "Defines the X component of the view offset vector along the entity's longitudinal axis", HFILL }
8169 { &hf_cigi2_view_control_y_offset,
8170 { "Y Offset", "cigi.view_control.y_offset",
8171 FT_FLOAT, BASE_DEC, NULL, 0x0,
8172 "Defines the Y component of the view offset vector along the entity's lateral axis", HFILL }
8174 { &hf_cigi2_view_control_z_offset,
8175 { "Z Offset", "cigi.view_control.z_offset",
8176 FT_FLOAT, BASE_DEC, NULL, 0x0,
8177 "Defines the Z component of the view offset vector along the entity's vertical axis", HFILL }
8179 { &hf_cigi2_view_control_roll,
8180 { "Roll (degrees)", "cigi.view_control.roll",
8181 FT_FLOAT, BASE_DEC, NULL, 0x0,
8182 "The rotation about the view's X axis", HFILL }
8184 { &hf_cigi2_view_control_pitch,
8185 { "Pitch (degrees)", "cigi.view_control.pitch",
8186 FT_FLOAT, BASE_DEC, NULL, 0x0,
8187 "The rotation about the view's Y axis", HFILL }
8189 { &hf_cigi2_view_control_yaw,
8190 { "Yaw (degrees)", "cigi.view_control.yaw",
8191 FT_FLOAT, BASE_DEC, NULL, 0x0,
8192 "The rotation about the view's Z axis", HFILL }
8195 /* CIGI3 View Control */
8196 { &hf_cigi3_view_control,
8197 { "View Control", "cigi.view_control",
8198 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8199 "View Control Packet", HFILL }
8201 { &hf_cigi3_view_control_view_id,
8202 { "View ID", "cigi.view_control.view_id",
8203 FT_UINT16, BASE_DEC, NULL, 0x0,
8204 "Specifies the view to which the contents of this packet should be applied", HFILL }
8206 { &hf_cigi3_view_control_group_id,
8207 { "Group ID", "cigi.view_control.group_id",
8208 FT_UINT8, BASE_DEC, NULL, 0x0,
8209 "Specifies the view group to which the contents of this packet are applied", HFILL }
8211 { &hf_cigi3_view_control_xoff_enable,
8212 { "X Offset Enable", "cigi.view_control.xoff_enable",
8213 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8214 "Determines whether the X Offset parameter should be applied to the specified view or view group", HFILL }
8216 { &hf_cigi3_view_control_yoff_enable,
8217 { "Y Offset Enable", "cigi.view_control.yoff_enable",
8218 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8219 "Determines whether the Y Offset parameter should be applied to the specified view or view group", HFILL }
8221 { &hf_cigi3_view_control_zoff_enable,
8222 { "Z Offset Enable", "cigi.view_control.zoff_enable",
8223 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8224 "Determines whether the Z Offset parameter should be applied to the specified view or view group", HFILL }
8226 { &hf_cigi3_view_control_roll_enable,
8227 { "Roll Enable", "cigi.view_control.roll_enable",
8228 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8229 "Determines whether the Roll parameter should be applied to the specified view or view group", HFILL }
8231 { &hf_cigi3_view_control_pitch_enable,
8232 { "Pitch Enable", "cigi.view_control.pitch_enable",
8233 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8234 "Determines whether the Pitch parameter should be applied to the specified view or view group", HFILL }
8236 { &hf_cigi3_view_control_yaw_enable,
8237 { "Yaw Enable", "cigi.view_control.yaw_enable",
8238 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8239 "Determines whether the Yaw parameter should be applied to the specified view or view group", HFILL }
8241 { &hf_cigi3_view_control_entity_id,
8242 { "Entity ID", "cigi.view_control.entity_id",
8243 FT_UINT16, BASE_DEC, NULL, 0x0,
8244 "Specifies the entity to which the view or view group should be attached", HFILL }
8246 { &hf_cigi3_view_control_xoff,
8247 { "X Offset (m)", "cigi.view_control.xoff",
8248 FT_FLOAT, BASE_DEC, NULL, 0x0,
8249 "Specifies the position of the view eyepoint along the X axis of the entity specified by the Entity ID parameter", HFILL }
8251 { &hf_cigi3_view_control_yoff,
8252 { "Y Offset (m)", "cigi.view_control.yoff",
8253 FT_FLOAT, BASE_DEC, NULL, 0x0,
8254 "Specifies the position of the view eyepoint along the Y axis of the entity specified by the Entity ID parameter", HFILL }
8256 { &hf_cigi3_view_control_zoff,
8257 { "Z Offset (m)", "cigi.view_control.zoff",
8258 FT_FLOAT, BASE_DEC, NULL, 0x0,
8259 "Specifies the position of the view eyepoint along the Z axis of the entity specified by the Entity ID parameter", HFILL }
8261 { &hf_cigi3_view_control_roll,
8262 { "Roll (degrees)", "cigi.view_control.roll",
8263 FT_FLOAT, BASE_DEC, NULL, 0x0,
8264 "Specifies the angle of rotation of the view or view group about its X axis after yaw and pitch have been applied", HFILL }
8266 { &hf_cigi3_view_control_pitch,
8267 { "Pitch (degrees)", "cigi.view_control.pitch",
8268 FT_FLOAT, BASE_DEC, NULL, 0x0,
8269 "Specifies the angle of rotation of the view or view group about its Y axis after yaw has been applied", HFILL }
8271 { &hf_cigi3_view_control_yaw,
8272 { "Yaw (degrees)", "cigi.view_control.yaw",
8273 FT_FLOAT, BASE_DEC, NULL, 0x0,
8274 "Specifies the angle of rotation of the view or view group about its Z axis", HFILL }
8277 /* CIGI2 Sensor Control */
8278 { &hf_cigi2_sensor_control,
8279 { "Sensor Control", "cigi.sensor_control",
8280 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8281 "Sensor Control Packet", HFILL }
8283 { &hf_cigi2_sensor_control_view_id,
8284 { "View ID", "cigi.sensor_control.view_id",
8285 FT_UINT8, BASE_DEC, NULL, 0xf8,
8286 "Dictates to which view the corresponding sensor is assigned, regardless of the view group", HFILL }
8288 { &hf_cigi2_sensor_control_sensor_enable,
8289 { "Sensor On/Off", "cigi.sensor_control.sensor_enable",
8290 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x04,
8291 "Indicates whether the sensor is turned on or off", HFILL }
8293 { &hf_cigi2_sensor_control_polarity,
8294 { "Polarity", "cigi.sensor_control.polarity",
8295 FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x02,
8296 "Indicates whether this sensor is showing white hot or black hot", HFILL }
8298 { &hf_cigi2_sensor_control_line_dropout,
8299 { "Line-by-Line Dropout", "cigi.sensor_control.line_dropout",
8300 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x01,
8301 "Indicates whether the line-by-line dropout feature is enabled", HFILL }
8303 { &hf_cigi2_sensor_control_sensor_id,
8304 { "Sensor ID", "cigi.sensor_control.sensor_id",
8305 FT_UINT8, BASE_DEC, NULL, 0x0,
8306 "Identifies the sensor to which this packet should be applied", HFILL }
8308 { &hf_cigi2_sensor_control_track_mode,
8309 { "Track Mode", "cigi.sensor_control.track_mode",
8310 FT_UINT8, BASE_DEC, VALS(cigi2_sensor_control_track_mode_vals), 0xf0,
8311 "Indicates which track mode the sensor should be", HFILL }
8313 { &hf_cigi2_sensor_control_auto_gain,
8314 { "Automatic Gain", "cigi.sensor_control.auto_gain",
8315 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x08,
8316 "When set to \"on,\" cause the weapons sensor to automatically adjust the gain value to optimize the brightness and contrast of the sensor display", HFILL }
8318 { &hf_cigi2_sensor_control_track_polarity,
8319 { "Track White/Black", "cigi.sensor_control.track_polarity",
8320 FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x04,
8321 "Identifies whether the weapons sensor will track wither white or black", HFILL }
8323 { &hf_cigi2_sensor_control_gain,
8324 { "Gain", "cigi.sensor_control.gain",
8325 FT_FLOAT, BASE_DEC, NULL, 0x0,
8326 "Indicates the gain value for the weapon sensor option", HFILL }
8328 { &hf_cigi2_sensor_control_level,
8329 { "Level", "cigi.sensor_control.level",
8330 FT_FLOAT, BASE_DEC, NULL, 0x0,
8331 "Indicates the level value for the weapon sensor option", HFILL }
8333 { &hf_cigi2_sensor_control_ac_coupling,
8334 { "AC Coupling", "cigi.sensor_control.ac_coupling",
8335 FT_FLOAT, BASE_DEC, NULL, 0x0,
8336 "Indicates the AC Coupling decay rate for the weapon sensor option", HFILL }
8338 { &hf_cigi2_sensor_control_noise,
8339 { "Noise", "cigi.sensor_control.noise",
8340 FT_FLOAT, BASE_DEC, NULL, 0x0,
8341 "Indicates the detector-noise gain for the weapon sensor option", HFILL }
8344 /* CIGI3 Sensor Control */
8345 { &hf_cigi3_sensor_control,
8346 { "Sensor Control", "cigi.sensor_control",
8347 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8348 "Sensor Control Packet", HFILL }
8350 { &hf_cigi3_sensor_control_view_id,
8351 { "View ID", "cigi.sensor_control.view_id",
8352 FT_UINT16, BASE_DEC, NULL, 0x0,
8353 "Identifies the view to which the specified sensor is assigned", HFILL }
8355 { &hf_cigi3_sensor_control_sensor_id,
8356 { "Sensor ID", "cigi.sensor_control.sensor_id",
8357 FT_UINT8, BASE_DEC, NULL, 0x0,
8358 "Specifies the sensor to which the data in this packet are applied", HFILL }
8360 { &hf_cigi3_sensor_control_sensor_on_off,
8361 { "Sensor On/Off", "cigi.sensor_control.sensor_on_off",
8362 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x01,
8363 "Specifies whether the sensor is turned on or off", HFILL }
8365 { &hf_cigi3_sensor_control_polarity,
8366 { "Polarity", "cigi.sensor_control.polarity",
8367 FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_polarity_tfs), 0x02,
8368 "Specifies whether the sensor shows white hot or black hot", HFILL }
8370 { &hf_cigi3_sensor_control_line_dropout_enable,
8371 { "Line-by-Line Dropout Enable", "cigi.sensor_control.line_dropout_enable",
8372 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8373 "Specifies whether line-by-line dropout is enabled", HFILL }
8375 { &hf_cigi3_sensor_control_auto_gain,
8376 { "Automatic Gain", "cigi.sensor_control.auto_gain",
8377 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8378 "Specifies whether the sensor automatically adjusts the gain value to optimize the brightness and contrast of the sensor display", HFILL }
8380 { &hf_cigi3_sensor_control_track_white_black,
8381 { "Track White/Black", "cigi.sensor_control.track_white_black",
8382 FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_track_white_black_tfs), 0x10,
8383 "Specifies whether the sensor tracks white or black", HFILL }
8385 { &hf_cigi3_sensor_control_track_mode,
8386 { "Track Mode", "cigi.sensor_control.track_mode",
8387 FT_UINT8, BASE_DEC, VALS(cigi3_sensor_control_track_mode_vals), 0xe0,
8388 "Specifies which track mode the sensor should use", HFILL }
8390 { &hf_cigi3_sensor_control_response_type,
8391 { "Response Type", "cigi.sensor_control.response_type",
8392 FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_response_type_tfs), 0x01,
8393 "Specifies whether the IG should return a Sensor Response packet or a Sensor Extended Response packet", HFILL }
8395 { &hf_cigi3_sensor_control_gain,
8396 { "Gain", "cigi.sensor_control.gain",
8397 FT_FLOAT, BASE_DEC, NULL, 0x0,
8398 "Specifies the contrast for the sensor display", HFILL }
8400 { &hf_cigi3_sensor_control_level,
8401 { "Level", "cigi.sensor_control.level",
8402 FT_FLOAT, BASE_DEC, NULL, 0x0,
8403 "Specifies the brightness for the sensor display", HFILL }
8405 { &hf_cigi3_sensor_control_ac_coupling,
8406 { "AC Coupling (microseconds)", "cigi.sensor_control.ac_coupling",
8407 FT_FLOAT, BASE_DEC, NULL, 0x0,
8408 "Specifies the AC coupling decay constant for the sensor display", HFILL }
8410 { &hf_cigi3_sensor_control_noise,
8411 { "Noise", "cigi.sensor_control.noise",
8412 FT_FLOAT, BASE_DEC, NULL, 0x0,
8413 "Specifies the amount of detector noise for the sensor", HFILL }
8416 /* Motion Tracker Control */
8417 { &hf_cigi3_motion_tracker_control,
8418 { "Motion Tracker Control", "cigi.motion_tracker_control",
8419 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8420 "Motion Tracker Control Packet", HFILL }
8422 { &hf_cigi3_motion_tracker_control_view_group_id,
8423 { "View/View Group ID", "cigi.motion_tracker_control.view_group_id",
8424 FT_UINT16, BASE_DEC, NULL, 0x0,
8425 "Specifies the view or view group to which the tracking device is attached", HFILL }
8427 { &hf_cigi3_motion_tracker_control_tracker_id,
8428 { "Tracker ID", "cigi.motion_tracker_control.tracker_id",
8429 FT_UINT8, BASE_DEC, NULL, 0x0,
8430 "Specifies the tracker whose state the data in this packet represents", HFILL }
8432 { &hf_cigi3_motion_tracker_control_tracker_enable,
8433 { "Tracker Enable", "cigi.motion_tracker_control.tracker_enable",
8434 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8435 "Specifies whether the tracking device is enabled", HFILL }
8437 { &hf_cigi3_motion_tracker_control_boresight_enable,
8438 { "Boresight Enable", "cigi.motion_tracker_control.boresight_enable",
8439 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8440 "Sets the boresight state of the external tracking device", HFILL }
8442 { &hf_cigi3_motion_tracker_control_x_enable,
8443 { "X Enable", "cigi.motion_tracker_control.x_enable",
8444 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8445 "Used to enable or disable the X-axis position of the motion tracker", HFILL }
8447 { &hf_cigi3_motion_tracker_control_y_enable,
8448 { "Y Enable", "cigi.motion_tracker_control.y_enable",
8449 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8450 "Used to enable or disable the Y-axis position of the motion tracker", HFILL }
8452 { &hf_cigi3_motion_tracker_control_z_enable,
8453 { "Z Enable", "cigi.motion_tracker_control.z_enable",
8454 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8455 "Used to enable or disable the Z-axis position of the motion tracker", HFILL }
8457 { &hf_cigi3_motion_tracker_control_roll_enable,
8458 { "Roll Enable", "cigi.motion_tracker_control.roll_enable",
8459 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8460 "Used to enable or disable the roll of the motion tracker", HFILL }
8462 { &hf_cigi3_motion_tracker_control_pitch_enable,
8463 { "Pitch Enable", "cigi.motion_tracker_control.pitch_enable",
8464 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
8465 "Used to enable or disable the pitch of the motion tracker", HFILL }
8467 { &hf_cigi3_motion_tracker_control_yaw_enable,
8468 { "Yaw Enable", "cigi.motion_tracker_control.yaw_enable",
8469 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8470 "Used to enable or disable the yaw of the motion tracker", HFILL }
8472 { &hf_cigi3_motion_tracker_control_view_group_select,
8473 { "View/View Group Select", "cigi.motion_tracker_control.view_group_select",
8474 FT_BOOLEAN, 8, TFS(&cigi3_motion_tracker_control_view_group_select_tfs), 0x01,
8475 "Specifies whether the tracking device is attached to a single view or a view group", HFILL }
8478 /* CIGI3 Earth Reference Model Definition */
8479 { &hf_cigi3_earth_reference_model_definition,
8480 { "Earth Reference Model Definition", "cigi.earth_ref_model_def",
8481 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8482 "Earth Reference Model Definition Packet", HFILL }
8484 { &hf_cigi3_earth_reference_model_definition_erm_enable,
8485 { "Custom ERM Enable", "cigi.earth_ref_model_def.erm_enable",
8486 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8487 "Specifies whether the IG should use the Earth Reference Model defined by this packet", HFILL }
8489 { &hf_cigi3_earth_reference_model_definition_equatorial_radius,
8490 { "Equatorial Radius (m)", "cigi.earth_ref_model_def.equatorial_radius",
8491 FT_DOUBLE, BASE_DEC, NULL, 0x0,
8492 "Specifies the semi-major axis of the ellipsoid", HFILL }
8494 { &hf_cigi3_earth_reference_model_definition_flattening,
8495 { "Flattening (m)", "cigi.earth_ref_model_def.flattening",
8496 FT_DOUBLE, BASE_DEC, NULL, 0x0,
8497 "Specifies the flattening of the ellipsoid", HFILL }
8500 /* CIGI2 Trajectory Definition */
8501 { &hf_cigi2_trajectory_definition,
8502 { "Trajectory Definition", "cigi.trajectory_def",
8503 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8504 "Trajectory Definition Packet", HFILL }
8506 { &hf_cigi2_trajectory_definition_entity_id,
8507 { "Entity ID", "cigi.trajectory_def.entity_id",
8508 FT_UINT16, BASE_DEC, NULL, 0x0,
8509 "Indicates which entity is being influenced by this trajectory behavior", HFILL }
8511 { &hf_cigi2_trajectory_definition_acceleration,
8512 { "Acceleration Factor (m/s^2)", "cigi.trajectory_def.acceleration",
8513 FT_FLOAT, BASE_DEC, NULL, 0x0,
8514 "Indicates the acceleration factor that will be applied to the Vz component of the velocity vector over time to simulate the effects of gravity on the object", HFILL }
8516 { &hf_cigi2_trajectory_definition_retardation,
8517 { "Retardation Rate (m/s)", "cigi.trajectory_def.retardation",
8518 FT_FLOAT, BASE_DEC, NULL, 0x0,
8519 "Indicates what retardation factor will be applied to the object's motion", HFILL }
8521 { &hf_cigi2_trajectory_definition_terminal_velocity,
8522 { "Terminal Velocity (m/s)", "cigi.trajectory_def.terminal_velocity",
8523 FT_FLOAT, BASE_DEC, NULL, 0x0,
8524 "Indicates what final velocity the object will be allowed to obtain", HFILL }
8527 /* CIGI3 Trajectory Definition */
8528 { &hf_cigi3_trajectory_definition,
8529 { "Trajectory Definition", "cigi.trajectory_def",
8530 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8531 "Trajectory Definition Packet", HFILL }
8533 { &hf_cigi3_trajectory_definition_entity_id,
8534 { "Entity ID", "cigi.trajectory_def.entity_id",
8535 FT_UINT16, BASE_DEC, NULL, 0x0,
8536 "Identifies the entity for which the trajectory is defined", HFILL }
8538 { &hf_cigi3_trajectory_definition_acceleration_x,
8539 { "Acceleration X (m/s^2)", "cigi.trajectory_def.acceleration_x",
8540 FT_FLOAT, BASE_DEC, NULL, 0x0,
8541 "Specifies the X component of the acceleration vector", HFILL }
8543 { &hf_cigi3_trajectory_definition_acceleration_y,
8544 { "Acceleration Y (m/s^2)", "cigi.trajectory_def.acceleration_y",
8545 FT_FLOAT, BASE_DEC, NULL, 0x0,
8546 "Specifies the Y component of the acceleration vector", HFILL }
8548 { &hf_cigi3_trajectory_definition_acceleration_z,
8549 { "Acceleration Z (m/s^2)", "cigi.trajectory_def.acceleration_z",
8550 FT_FLOAT, BASE_DEC, NULL, 0x0,
8551 "Specifies the Z component of the acceleration vector", HFILL }
8553 { &hf_cigi3_trajectory_definition_retardation_rate,
8554 { "Retardation Rate (m/s^2)", "cigi.trajectory_def.retardation_rate",
8555 FT_FLOAT, BASE_DEC, NULL, 0x0,
8556 "Specifies the magnitude of an acceleration applied against the entity's instantaneous linear velocity vector", HFILL }
8558 { &hf_cigi3_trajectory_definition_terminal_velocity,
8559 { "Terminal Velocity (m/s)", "cigi.trajectory_def.terminal_velocity",
8560 FT_FLOAT, BASE_DEC, NULL, 0x0,
8561 "Specifies the maximum velocity the entity can sustain", HFILL }
8564 /* CIGI2 Special Effect Definition */
8565 { &hf_cigi2_special_effect_definition,
8566 { "Special Effect Definition", "cigi.special_effect_def",
8567 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8568 "Special Effect Definition Packet", HFILL }
8570 { &hf_cigi2_special_effect_definition_entity_id,
8571 { "Entity ID", "cigi.special_effect_def.entity_id",
8572 FT_UINT16, BASE_DEC, NULL, 0x0,
8573 "Indicates which effect is being modified", HFILL }
8575 { &hf_cigi2_special_effect_definition_seq_direction,
8576 { "Sequence Direction", "cigi.special_effect_def.seq_direction",
8577 FT_BOOLEAN, 8, TFS(&cigi2_special_effect_definition_seq_direction_tfs), 0x80,
8578 "Indicates whether the effect animation sequence should be sequence from beginning to end or vice versa", HFILL }
8580 { &hf_cigi2_special_effect_definition_color_enable,
8581 { "Color Enable", "cigi.special_effect_def.color_enable",
8582 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x40,
8583 "Indicates whether the red, green, and blue color values will be applied to the special effect", HFILL }
8585 { &hf_cigi2_special_effect_definition_red,
8586 { "Red Color Value", "cigi.special_effect_def.red",
8587 FT_UINT8, BASE_DEC, NULL, 0x0,
8588 "Specifies the red component of a color to be applied to the effect", HFILL }
8590 { &hf_cigi2_special_effect_definition_green,
8591 { "Green Color Value", "cigi.special_effect_def.green",
8592 FT_UINT8, BASE_DEC, NULL, 0x0,
8593 "Specifies the green component of a color to be applied to the effect", HFILL }
8595 { &hf_cigi2_special_effect_definition_blue,
8596 { "Blue Color Value", "cigi.special_effect_def.blue",
8597 FT_UINT8, BASE_DEC, NULL, 0x0,
8598 "Specifies the blue component of a color to be applied to the effect", HFILL }
8600 { &hf_cigi2_special_effect_definition_x_scale,
8601 { "X Scale", "cigi.special_effect_def.x_scale",
8602 FT_FLOAT, BASE_DEC, NULL, 0x0,
8603 "Specifies a scale factor to apply along the effect's X axis", HFILL }
8605 { &hf_cigi2_special_effect_definition_y_scale,
8606 { "Y Scale", "cigi.special_effect_def.y_scale",
8607 FT_FLOAT, BASE_DEC, NULL, 0x0,
8608 "Specifies a scale factor to apply along the effect's Y axis", HFILL }
8610 { &hf_cigi2_special_effect_definition_z_scale,
8611 { "Z Scale", "cigi.special_effect_def.z_scale",
8612 FT_FLOAT, BASE_DEC, NULL, 0x0,
8613 "Specifies a scale factor to apply along the effect's Z axis", HFILL }
8615 { &hf_cigi2_special_effect_definition_time_scale,
8616 { "Time Scale", "cigi.special_effect_def.time_scale",
8617 FT_FLOAT, BASE_DEC, NULL, 0x0,
8618 "Specifies a scale factor to apply to the time period for the effect's animation sequence", HFILL }
8620 { &hf_cigi2_special_effect_definition_effect_count,
8621 { "Effect Count", "cigi.special_effect_def.effect_count",
8622 FT_UINT16, BASE_DEC, NULL, 0x0,
8623 "Indicates how many effects are contained within a single burst", HFILL }
8625 { &hf_cigi2_special_effect_definition_separation,
8626 { "Separation (m)", "cigi.special_effect_def.separation",
8627 FT_FLOAT, BASE_DEC, NULL, 0x0,
8628 "Indicates the distance between particles within a burst", HFILL }
8630 { &hf_cigi2_special_effect_definition_burst_interval,
8631 { "Burst Interval (s)", "cigi.special_effect_def.burst_interval",
8632 FT_FLOAT, BASE_DEC, NULL, 0x0,
8633 "Indicates the time between successive bursts", HFILL }
8635 { &hf_cigi2_special_effect_definition_duration,
8636 { "Duration (s)", "cigi.special_effect_def.duration",
8637 FT_FLOAT, BASE_DEC, NULL, 0x0,
8638 "Indicates how long an effect or sequence of burst will be active", HFILL }
8641 /* CIGI2 View Definition */
8642 { &hf_cigi2_view_definition,
8643 { "View Definition", "cigi.view_def",
8644 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8645 "View Definition Packet", HFILL }
8647 { &hf_cigi2_view_definition_view_id,
8648 { "View ID", "cigi.view_def.view_id",
8649 FT_UINT8, BASE_DEC, NULL, 0xf8,
8650 "Specifies the view to which this packet should be applied", HFILL }
8652 { &hf_cigi2_view_definition_view_group,
8653 { "View Group", "cigi.view_def.view_group",
8654 FT_UINT8, BASE_DEC, NULL, 0x07,
8655 "Specifies the view group to which the view is to be assigned", HFILL }
8657 { &hf_cigi2_view_definition_view_type,
8658 { "View Type", "cigi.view_def.view_type",
8659 FT_UINT8, BASE_DEC, NULL, 0xe0,
8660 "Specifies the view type", HFILL }
8662 { &hf_cigi2_view_definition_pixel_rep,
8663 { "Pixel Replication", "cigi.view_def.pixel_rep",
8664 FT_UINT8, BASE_DEC, VALS(cigi2_view_definition_pixel_rep_vals), 0x1c,
8665 "Specifies what pixel replication function should be applied to the view", HFILL }
8667 { &hf_cigi2_view_definition_mirror,
8668 { "View Mirror", "cigi.view_def.mirror",
8669 FT_UINT8, BASE_DEC, VALS(cigi2_view_definition_mirror_vals), 0x03,
8670 "Specifies what mirroring function should be applied to the view", HFILL }
8672 { &hf_cigi2_view_definition_tracker_assign,
8673 { "Tracker Assign", "cigi.view_def.tracker_assign",
8674 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x80,
8675 "Specifies whether the view should be controlled by an external tracking device", HFILL }
8677 { &hf_cigi2_view_definition_near_enable,
8678 { "Field of View Near Enable", "cigi.view_def.near_enable",
8679 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
8680 "Identifies whether the field of view near value is manipulated from the Host", HFILL }
8682 { &hf_cigi2_view_definition_far_enable,
8683 { "Field of View Far Enable", "cigi.view_def.far_enable",
8684 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8685 "Identifies whether the field of view far value is manipulated from the Host", HFILL }
8687 { &hf_cigi2_view_definition_left_enable,
8688 { "Field of View Left Enable", "cigi.view_def.left_enable",
8689 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8690 "Identifies whether the field of view left value is manipulated from the Host", HFILL }
8692 { &hf_cigi2_view_definition_right_enable,
8693 { "Field of View Right Enable", "cigi.view_def.right_enable",
8694 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8695 "Identifies whether the field of view right value is manipulated from the Host", HFILL }
8697 { &hf_cigi2_view_definition_top_enable,
8698 { "Field of View Top Enable", "cigi.view_def.top_enable",
8699 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8700 "Identifies whether the field of view top value is manipulated from the Host", HFILL }
8702 { &hf_cigi2_view_definition_bottom_enable,
8703 { "Field of View Bottom Enable", "cigi.view_def.bottom_enable",
8704 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8705 "Identifies whether the field of view bottom value is manipulated from the Host", HFILL }
8707 { &hf_cigi2_view_definition_fov_near,
8708 { "Field of View Near (m)", "cigi.view_def.fov_near",
8709 FT_FLOAT, BASE_DEC, NULL, 0x0,
8710 "Defines the near clipping plane for the view", HFILL }
8712 { &hf_cigi2_view_definition_fov_far,
8713 { "Field of View Far (m)", "cigi.view_def.fov_far",
8714 FT_FLOAT, BASE_DEC, NULL, 0x0,
8715 "Defines the far clipping plane for the view", HFILL }
8717 { &hf_cigi2_view_definition_fov_left,
8718 { "Field of View Left (degrees)", "cigi.view_def.fov_left",
8719 FT_FLOAT, BASE_DEC, NULL, 0x0,
8720 "Defines the left clipping plane for the view", HFILL }
8722 { &hf_cigi2_view_definition_fov_right,
8723 { "Field of View Right (degrees)", "cigi.view_def.fov_right",
8724 FT_FLOAT, BASE_DEC, NULL, 0x0,
8725 "Defines the right clipping plane for the view", HFILL }
8727 { &hf_cigi2_view_definition_fov_top,
8728 { "Field of View Top (degrees)", "cigi.view_def.fov_top",
8729 FT_FLOAT, BASE_DEC, NULL, 0x0,
8730 "Defines the top clipping plane for the view", HFILL }
8732 { &hf_cigi2_view_definition_fov_bottom,
8733 { "Field of View Bottom (degrees)", "cigi.view_def.fov_bottom",
8734 FT_FLOAT, BASE_DEC, NULL, 0x0,
8735 "Defines the bottom clipping plane for the view", HFILL }
8738 /* CIGI3 View Definition */
8739 { &hf_cigi3_view_definition,
8740 { "View Definition", "cigi.view_def",
8741 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8742 "View Definition Packet", HFILL }
8744 { &hf_cigi3_view_definition_view_id,
8745 { "View ID", "cigi.view_def.view_id",
8746 FT_UINT16, BASE_DEC, NULL, 0x0,
8747 "Specifies the view to which the data in this packet will be applied", HFILL }
8749 { &hf_cigi3_view_definition_group_id,
8750 { "Group ID", "cigi.view_def.group_id",
8751 FT_UINT8, BASE_DEC, NULL, 0x0,
8752 "Specifies the group to which the view is to be assigned", HFILL }
8754 { &hf_cigi3_view_definition_near_enable,
8755 { "Near Enable", "cigi.view_def.near_enable",
8756 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8757 "Specifies whether the near clipping plane will be set to the value of the Near parameter within this packet", HFILL }
8759 { &hf_cigi3_view_definition_far_enable,
8760 { "Far Enable", "cigi.view_def.far_enable",
8761 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8762 "Specifies whether the far clipping plane will be set to the value of the Far parameter within this packet", HFILL }
8764 { &hf_cigi3_view_definition_left_enable,
8765 { "Left Enable", "cigi.view_def.left_enable",
8766 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8767 "Specifies whether the left half-angle of the view frustum will be set according to the value of the Left parameter within this packet", HFILL }
8769 { &hf_cigi3_view_definition_right_enable,
8770 { "Right Enable", "cigi.view_def.right_enable",
8771 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8772 "Specifies whether the right half-angle of the view frustum will be set according to the value of the Right parameter within this packet", HFILL }
8774 { &hf_cigi3_view_definition_top_enable,
8775 { "Top Enable", "cigi.view_def.top_enable",
8776 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8777 "Specifies whether the top half-angle of the view frustum will be set according to the value of the Top parameter within this packet", HFILL }
8779 { &hf_cigi3_view_definition_bottom_enable,
8780 { "Bottom Enable", "cigi.view_def.bottom_enable",
8781 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8782 "Specifies whether the bottom half-angle of the view frustum will be set according to the value of the Bottom parameter within this packet", HFILL }
8784 { &hf_cigi3_view_definition_mirror_mode,
8785 { "Mirror Mode", "cigi.view_def.mirror_mode",
8786 FT_UINT8, BASE_DEC, VALS(cigi3_view_definition_mirror_mode_vals), 0xc0,
8787 "Specifies the mirroring function to be performed on the view", HFILL }
8789 { &hf_cigi3_view_definition_pixel_replication,
8790 { "Pixel Replication Mode", "cigi.view_def.pixel_replication",
8791 FT_UINT8, BASE_DEC, VALS(cigi3_view_definition_pixel_replication_vals), 0x07,
8792 "Specifies the pixel replication function to be performed on the view", HFILL }
8794 { &hf_cigi3_view_definition_projection_type,
8795 { "Projection Type", "cigi.view_def.projection_type",
8796 FT_BOOLEAN, 8, TFS(&cigi3_view_definition_projection_type_tfs), 0x08,
8797 "Specifies whether the view projection should be perspective or orthographic parallel", HFILL }
8799 { &hf_cigi3_view_definition_reorder,
8800 { "Reorder", "cigi.view_def.reorder",
8801 FT_BOOLEAN, 8, TFS(&cigi3_view_definition_reorder_tfs), 0x10,
8802 "Specifies whether the view should be moved to the top of any overlapping views", HFILL }
8804 { &hf_cigi3_view_definition_view_type,
8805 { "View Type", "cigi.view_def.view_type",
8806 FT_UINT8, BASE_DEC, NULL, 0xe0,
8807 "Specifies an IG-defined type for the indicated view", HFILL }
8809 { &hf_cigi3_view_definition_near,
8810 { "Near (m)", "cigi.view_def.near",
8811 FT_FLOAT, BASE_DEC, NULL, 0x0,
8812 "Specifies the position of the view's near clipping plane", HFILL }
8814 { &hf_cigi3_view_definition_far,
8815 { "Far (m)", "cigi.view_def.far",
8816 FT_FLOAT, BASE_DEC, NULL, 0x0,
8817 "Specifies the position of the view's far clipping plane", HFILL }
8819 { &hf_cigi3_view_definition_left,
8820 { "Left (degrees)", "cigi.view_def.left",
8821 FT_FLOAT, BASE_DEC, NULL, 0x0,
8822 "Specifies the left half-angle of the view frustum", HFILL }
8824 { &hf_cigi3_view_definition_right,
8825 { "Right (degrees)", "cigi.view_def.right",
8826 FT_FLOAT, BASE_DEC, NULL, 0x0,
8827 "Specifies the right half-angle of the view frustum", HFILL }
8829 { &hf_cigi3_view_definition_top,
8830 { "Top (degrees)", "cigi.view_def.top",
8831 FT_FLOAT, BASE_DEC, NULL, 0x0,
8832 "Specifies the top half-angle of the view frustum", HFILL }
8834 { &hf_cigi3_view_definition_bottom,
8835 { "Bottom (degrees)", "cigi.view_def.bottom",
8836 FT_FLOAT, BASE_DEC, NULL, 0x0,
8837 "Specifies the bottom half-angle of the view frustum", HFILL }
8840 /* CIGI2 Collision Detection Segment Definition */
8841 { &hf_cigi2_collision_detection_segment_definition,
8842 { "Collision Detection Segment Definition", "cigi.coll_det_seg_def",
8843 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8844 "Collision Detection Segment Definition Packet", HFILL }
8846 { &hf_cigi2_collision_detection_segment_definition_entity_id,
8847 { "Entity ID", "cigi.coll_det_seg_def.entity_id",
8848 FT_UINT16, BASE_DEC, NULL, 0x0,
8849 "Indicates the entity to which this collision detection definition is assigned", HFILL }
8851 { &hf_cigi2_collision_detection_segment_definition_segment_enable,
8852 { "Segment Enable", "cigi.coll_det_seg_def.segment_enable",
8853 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8854 "Indicates whether the defined segment is enabled for collision testing", HFILL }
8856 { &hf_cigi2_collision_detection_segment_definition_segment_id,
8857 { "Segment ID", "cigi.coll_det_seg_def.segment_id",
8858 FT_UINT8, BASE_DEC, NULL, 0x7f,
8859 "Indicates which segment is being uniquely defined for the given entity", HFILL }
8861 { &hf_cigi2_collision_detection_segment_definition_collision_mask,
8862 { "Collision Mask", "cigi.coll_det_seg_def.collision_mask",
8863 FT_BYTES, BASE_NONE, NULL, 0x0,
8864 "Indicates which environment features will be included in or excluded from consideration for collision detection testing", HFILL }
8866 { &hf_cigi2_collision_detection_segment_definition_x_start,
8867 { "Segment X Start (m)", "cigi.coll_det_seg_def.x_start",
8868 FT_FLOAT, BASE_DEC, NULL, 0x0,
8869 "Specifies the starting point of the collision segment in the X-axis with respect to the entity's reference point", HFILL }
8871 { &hf_cigi2_collision_detection_segment_definition_y_start,
8872 { "Segment Y Start (m)", "cigi.coll_det_seg_def.y_start",
8873 FT_FLOAT, BASE_DEC, NULL, 0x0,
8874 "Specifies the starting point of the collision segment in the Y-axis with respect to the entity's reference point", HFILL }
8876 { &hf_cigi2_collision_detection_segment_definition_z_start,
8877 { "Segment Z Start (m)", "cigi.coll_det_seg_def.z_start",
8878 FT_FLOAT, BASE_DEC, NULL, 0x0,
8879 "Specifies the starting point of the collision segment in the Z-axis with respect to the entity's reference point", HFILL }
8881 { &hf_cigi2_collision_detection_segment_definition_x_end,
8882 { "Segment X End (m)", "cigi.coll_det_seg_def.x_end",
8883 FT_FLOAT, BASE_DEC, NULL, 0x0,
8884 "Specifies the ending point of the collision segment in the X-axis with respect to the entity's reference point", HFILL }
8886 { &hf_cigi2_collision_detection_segment_definition_y_end,
8887 { "Segment Y End (m)", "cigi.coll_det_seg_def.y_end",
8888 FT_FLOAT, BASE_DEC, NULL, 0x0,
8889 "Specifies the ending point of the collision segment in the Y-axis with respect to the entity's reference point", HFILL }
8891 { &hf_cigi2_collision_detection_segment_definition_z_end,
8892 { "Segment Z End (m)", "cigi.coll_det_seg_def.z_end",
8893 FT_FLOAT, BASE_DEC, NULL, 0x0,
8894 "Specifies the ending point of the collision segment in the Z-axis with respect to the entity's reference point", HFILL }
8897 /* CIGI3 Collision Detection Segment Definition */
8898 { &hf_cigi3_collision_detection_segment_definition,
8899 { "Collision Detection Segment Definition", "cigi.coll_det_seg_def",
8900 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8901 "Collision Detection Segment Definition Packet", HFILL }
8903 { &hf_cigi3_collision_detection_segment_definition_entity_id,
8904 { "Entity ID", "cigi.coll_det_seg_def.entity_id",
8905 FT_UINT16, BASE_DEC, NULL, 0x0,
8906 "Specifies the entity for which the segment is defined", HFILL }
8908 { &hf_cigi3_collision_detection_segment_definition_segment_id,
8909 { "Segment ID", "cigi.coll_det_seg_def.segment_id",
8910 FT_UINT8, BASE_DEC, NULL, 0x0,
8911 "Specifies the ID of the segment", HFILL }
8913 { &hf_cigi3_collision_detection_segment_definition_segment_enable,
8914 { "Segment Enable", "cigi.coll_det_seg_def.segment_enable",
8915 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8916 "Specifies whether the segment is enabled or disabled", HFILL }
8918 { &hf_cigi3_collision_detection_segment_definition_x1,
8919 { "X1 (m)", "cigi.coll_det_seg_def.x1",
8920 FT_FLOAT, BASE_DEC, NULL, 0x0,
8921 "Specifies the X offset of one endpoint of the collision segment", HFILL }
8923 { &hf_cigi3_collision_detection_segment_definition_y1,
8924 { "Y1 (m)", "cigi.coll_det_seg_def.y1",
8925 FT_FLOAT, BASE_DEC, NULL, 0x0,
8926 "Specifies the Y offset of one endpoint of the collision segment", HFILL }
8928 { &hf_cigi3_collision_detection_segment_definition_z1,
8929 { "Z1 (m)", "cigi.coll_det_seg_def.z1",
8930 FT_FLOAT, BASE_DEC, NULL, 0x0,
8931 "Specifies the Z offset of one endpoint of the collision segment", HFILL }
8933 { &hf_cigi3_collision_detection_segment_definition_x2,
8934 { "X2 (m)", "cigi.coll_det_seg_def.x2",
8935 FT_FLOAT, BASE_DEC, NULL, 0x0,
8936 "Specifies the X offset of one endpoint of the collision segment", HFILL }
8938 { &hf_cigi3_collision_detection_segment_definition_y2,
8939 { "Y2 (m)", "cigi.coll_det_seg_def.y2",
8940 FT_FLOAT, BASE_DEC, NULL, 0x0,
8941 "Specifies the Y offset of one endpoint of the collision segment", HFILL }
8943 { &hf_cigi3_collision_detection_segment_definition_z2,
8944 { "Z2 (m)", "cigi.coll_det_seg_def.z2",
8945 FT_FLOAT, BASE_DEC, NULL, 0x0,
8946 "Specifies the Z offset of one endpoint of the collision segment", HFILL }
8948 { &hf_cigi3_collision_detection_segment_definition_material_mask,
8949 { "Material Mask", "cigi.coll_det_seg_def.material_mask",
8950 FT_UINT32, BASE_DEC, NULL, 0x0,
8951 "Specifies the environmental and cultural features to be included in or excluded from consideration for collision testing", HFILL }
8954 /* CIGI2 Collision Detection Volume Definition */
8955 { &hf_cigi2_collision_detection_volume_definition,
8956 { "Collision Detection Volume Definition", "cigi.coll_det_vol_def",
8957 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8958 "Collision Detection Volume Definition Packet", HFILL }
8960 { &hf_cigi2_collision_detection_volume_definition_entity_id,
8961 { "Entity ID", "cigi.coll_det_vol_def.entity_id",
8962 FT_UINT16, BASE_DEC, NULL, 0x0,
8963 "Indicates the entity to which this collision detection definition is assigned", HFILL }
8965 { &hf_cigi2_collision_detection_volume_definition_volume_enable,
8966 { "Volume Enable", "cigi.coll_det_vol_def.volume_enable",
8967 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8968 "Indicates whether the defined volume is enabled for collision testing", HFILL }
8970 { &hf_cigi2_collision_detection_volume_definition_volume_id,
8971 { "Volume ID", "cigi.coll_det_vol_def.volume_id",
8972 FT_UINT8, BASE_DEC, NULL, 0x7f,
8973 "Indicates which volume is being uniquely defined for a given entity", HFILL }
8975 { &hf_cigi2_collision_detection_volume_definition_x_offset,
8976 { "Centroid X Offset (m)", "cigi.coll_det_vol_def.x_offset",
8977 FT_FLOAT, BASE_DEC, NULL, 0x0,
8978 "Specifies the offset of the volume's centroid along the X axis with respect to the entity's reference point", HFILL }
8980 { &hf_cigi2_collision_detection_volume_definition_y_offset,
8981 { "Centroid Y Offset (m)", "cigi.coll_det_vol_def.y_offset",
8982 FT_FLOAT, BASE_DEC, NULL, 0x0,
8983 "Specifies the offset of the volume's centroid along the Y axis with respect to the entity's reference point", HFILL }
8985 { &hf_cigi2_collision_detection_volume_definition_z_offset,
8986 { "Centroid Z Offset (m)", "cigi.coll_det_vol_def.z_offset",
8987 FT_FLOAT, BASE_DEC, NULL, 0x0,
8988 "Specifies the offset of the volume's centroid along the Z axis with respect to the entity's reference point", HFILL }
8990 { &hf_cigi2_collision_detection_volume_definition_height,
8991 { "Height (m)", "cigi.coll_det_vol_def.height",
8992 FT_FLOAT, BASE_DEC, NULL, 0x0,
8993 "Specifies the height of the volume", HFILL }
8995 { &hf_cigi2_collision_detection_volume_definition_width,
8996 { "Width (m)", "cigi.coll_det_vol_def.width",
8997 FT_FLOAT, BASE_DEC, NULL, 0x0,
8998 "Specifies the width of the volume", HFILL }
9000 { &hf_cigi2_collision_detection_volume_definition_depth,
9001 { "Depth (m)", "cigi.coll_det_vol_def.depth",
9002 FT_FLOAT, BASE_DEC, NULL, 0x0,
9003 "Specifies the depth of the volume", HFILL }
9006 /* CIGI3 Collision Detection Volume Definition */
9007 { &hf_cigi3_collision_detection_volume_definition,
9008 { "Collision Detection Volume Definition", "cigi.coll_det_vol_def",
9009 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9010 "Collision Detection Volume Definition Packet", HFILL }
9012 { &hf_cigi3_collision_detection_volume_definition_entity_id,
9013 { "Entity ID", "cigi.coll_det_vol_def.entity_id",
9014 FT_UINT16, BASE_DEC, NULL, 0x0,
9015 "Specifies the entity for which the volume is defined", HFILL }
9017 { &hf_cigi3_collision_detection_volume_definition_volume_id,
9018 { "Volume ID", "cigi.coll_det_vol_def.volume_id",
9019 FT_UINT8, BASE_DEC, NULL, 0x0,
9020 "Specifies the ID of the volume", HFILL }
9022 { &hf_cigi3_collision_detection_volume_definition_volume_enable,
9023 { "Volume Enable", "cigi.coll_det_vol_def.volume_enable",
9024 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
9025 "Specifies whether the volume is enabled or disabled", HFILL }
9027 { &hf_cigi3_collision_detection_volume_definition_volume_type,
9028 { "Volume Type", "cigi.coll_det_vol_def.volume_type",
9029 FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_volume_definition_volume_type_tfs), 0x02,
9030 "Specified whether the volume is spherical or cuboid", HFILL }
9032 { &hf_cigi3_collision_detection_volume_definition_x,
9033 { "X (m)", "cigi.coll_det_vol_def.x",
9034 FT_FLOAT, BASE_DEC, NULL, 0x0,
9035 "Specifies the X offset of the center of the volume", HFILL }
9037 { &hf_cigi3_collision_detection_volume_definition_y,
9038 { "Y (m)", "cigi.coll_det_vol_def.y",
9039 FT_FLOAT, BASE_DEC, NULL, 0x0,
9040 "Specifies the Y offset of the center of the volume", HFILL }
9042 { &hf_cigi3_collision_detection_volume_definition_z,
9043 { "Z (m)", "cigi.coll_det_vol_def.z",
9044 FT_FLOAT, BASE_DEC, NULL, 0x0,
9045 "Specifies the Z offset of the center of the volume", HFILL }
9047 { &hf_cigi3_collision_detection_volume_definition_radius_height,
9048 { "Radius (m)/Height (m)", "cigi.coll_det_vol_def.radius_height",
9049 FT_FLOAT, BASE_DEC, NULL, 0x0,
9050 "Specifies the radius of the sphere or specifies the length of the cuboid along its Z axis", HFILL }
9052 { &hf_cigi3_collision_detection_volume_definition_width,
9053 { "Width (m)", "cigi.coll_det_vol_def.width",
9054 FT_FLOAT, BASE_DEC, NULL, 0x0,
9055 "Specifies the length of the cuboid along its Y axis", HFILL }
9057 { &hf_cigi3_collision_detection_volume_definition_depth,
9058 { "Depth (m)", "cigi.coll_det_vol_def.depth",
9059 FT_FLOAT, BASE_DEC, NULL, 0x0,
9060 "Specifies the length of the cuboid along its X axis", HFILL }
9062 { &hf_cigi3_collision_detection_volume_definition_roll,
9063 { "Roll (degrees)", "cigi.coll_det_vol_def.roll",
9064 FT_FLOAT, BASE_DEC, NULL, 0x0,
9065 "Specifies the roll of the cuboid with respect to the entity's coordinate system", HFILL }
9067 { &hf_cigi3_collision_detection_volume_definition_pitch,
9068 { "Pitch (degrees)", "cigi.coll_det_vol_def.pitch",
9069 FT_FLOAT, BASE_DEC, NULL, 0x0,
9070 "Specifies the pitch of the cuboid with respect to the entity's coordinate system", HFILL }
9072 { &hf_cigi3_collision_detection_volume_definition_yaw,
9073 { "Yaw (degrees)", "cigi.coll_det_vol_def.yaw",
9074 FT_FLOAT, BASE_DEC, NULL, 0x0,
9075 "Specifies the yaw of the cuboid with respect to the entity's coordinate system", HFILL }
9078 /* CIGI2 Height Above Terrain Request */
9079 { &hf_cigi2_height_above_terrain_request,
9080 { "Height Above Terrain Request", "cigi.hat_request",
9081 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9082 "Height Above Terrain Request Packet", HFILL }
9084 { &hf_cigi2_height_above_terrain_request_hat_id,
9085 { "HAT ID", "cigi.hat_request.hat_id",
9086 FT_UINT16, BASE_DEC, NULL, 0x0,
9087 "Identifies the HAT request", HFILL }
9089 { &hf_cigi2_height_above_terrain_request_alt,
9090 { "Altitude (m)", "cigi.hat_request.alt",
9091 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9092 "Specifies the altitude from which the HAT request is being made", HFILL }
9094 { &hf_cigi2_height_above_terrain_request_lat,
9095 { "Latitude (degrees)", "cigi.hat_request.lat",
9096 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9097 "Specifies the latitudinal position from which the HAT request is being made", HFILL }
9099 { &hf_cigi2_height_above_terrain_request_lon,
9100 { "Longitude (degrees)", "cigi.hat_request.lon",
9101 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9102 "Specifies the longitudinal position from which the HAT request is being made", HFILL }
9105 /* CIGI2 Line of Sight Occult Request */
9106 { &hf_cigi2_line_of_sight_occult_request,
9107 { "Line of Sight Occult Request", "cigi.los_occult_request",
9108 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9109 "Line of Sight Occult Request Packet", HFILL }
9111 { &hf_cigi2_line_of_sight_occult_request_los_id,
9112 { "LOS ID", "cigi.los_occult_request.los_id",
9113 FT_UINT16, BASE_DEC, NULL, 0x0,
9114 "Identifies the LOS request", HFILL }
9116 { &hf_cigi2_line_of_sight_occult_request_source_alt,
9117 { "Source Altitude (m)", "cigi.los_occult_request.source_alt",
9118 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9119 "Specifies the altitude of the source point for the LOS request segment", HFILL }
9121 { &hf_cigi2_line_of_sight_occult_request_source_lat,
9122 { "Source Latitude (degrees)", "cigi.los_occult_request.source_lat",
9123 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9124 "Specifies the latitudinal position of the source point for the LOS request segment", HFILL }
9126 { &hf_cigi2_line_of_sight_occult_request_source_lon,
9127 { "Source Longitude (degrees)", "cigi.los_occult_request.source_lon",
9128 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9129 "Specifies the longitudinal position of the source point for the LOS request segment", HFILL }
9131 { &hf_cigi2_line_of_sight_occult_request_dest_alt,
9132 { "Destination Altitude (m)", "cigi.los_occult_request.dest_alt",
9133 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9134 "Specifies the altitude of the destination point for the LOS request segment", HFILL }
9136 { &hf_cigi2_line_of_sight_occult_request_dest_lat,
9137 { "Destination Latitude (degrees)", "cigi.los_occult_request.dest_lat",
9138 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9139 "Specifies the latitudinal position for the destination point for the LOS request segment", HFILL }
9141 { &hf_cigi2_line_of_sight_occult_request_dest_lon,
9142 { "Destination Longitude (degrees)", "cigi.los_occult_request.dest_lon",
9143 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9144 "Specifies the longitudinal position of the destination point for the LOS request segment", HFILL }
9147 /* CIGI2 Line of Sight Range Request */
9148 { &hf_cigi2_line_of_sight_range_request,
9149 { "Line of Sight Range Request", "cigi.los_range_request",
9150 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9151 "Line of Sight Range Request Packet", HFILL }
9153 { &hf_cigi2_line_of_sight_range_request_los_id,
9154 { "LOS ID", "cigi.los_range_request.los_id",
9155 FT_UINT16, BASE_DEC, NULL, 0x0,
9156 "Identifies the LOS request", HFILL }
9158 { &hf_cigi2_line_of_sight_range_request_azimuth,
9159 { "Azimuth (degrees)", "cigi.los_range_request.azimuth",
9160 FT_FLOAT, BASE_DEC, NULL, 0x0,
9161 "Specifies the azimuth of the LOS vector", HFILL }
9163 { &hf_cigi2_line_of_sight_range_request_elevation,
9164 { "Elevation (degrees)", "cigi.los_range_request.elevation",
9165 FT_FLOAT, BASE_DEC, NULL, 0x0,
9166 "Specifies the elevation for the LOS vector", HFILL }
9168 { &hf_cigi2_line_of_sight_range_request_min_range,
9169 { "Minimum Range (m)", "cigi.los_range_request.min_range",
9170 FT_FLOAT, BASE_DEC, NULL, 0x0,
9171 "Specifies the distance from the source position specified in this data packet to a point along the LOS vector where intersection testing will begin", HFILL }
9173 { &hf_cigi2_line_of_sight_range_request_max_range,
9174 { "Maximum Range (m)", "cigi.los_range_request.max_range",
9175 FT_FLOAT, BASE_DEC, NULL, 0x0,
9176 "Specifies the maximum extent from the source position specified in this data packet to a point along the LOS vector where intersection testing will end", HFILL }
9178 { &hf_cigi2_line_of_sight_range_request_source_alt,
9179 { "Source Altitude (m)", "cigi.los_range_request.source_alt",
9180 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9181 "Specifies the altitude of the source point of the LOS request vector", HFILL }
9183 { &hf_cigi2_line_of_sight_range_request_source_lat,
9184 { "Source Latitude (degrees)", "cigi.los_range_request.source_lat",
9185 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9186 "Specifies the latitudinal position of the source point of the LOS request vector", HFILL }
9188 { &hf_cigi2_line_of_sight_range_request_source_lon,
9189 { "Source Longitude (degrees)", "cigi.los_range_request.source_lon",
9190 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9191 "Specifies the longitudinal position of the source point of the LOS request vector", HFILL }
9194 /* CIGI2 Height of Terrain Request */
9195 { &hf_cigi2_height_of_terrain_request,
9196 { "Height of Terrain Request", "cigi.hot_request",
9197 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9198 "Height of Terrain Request Packet", HFILL }
9200 { &hf_cigi2_height_of_terrain_request_hot_id,
9201 { "HOT ID", "cigi.hot_request.hot_id",
9202 FT_UINT16, BASE_DEC, NULL, 0x0,
9203 "Identifies the HOT request", HFILL }
9205 { &hf_cigi2_height_of_terrain_request_lat,
9206 { "Latitude (degrees)", "cigi.hot_request.lat",
9207 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9208 "Specifies the latitudinal position from which the HOT request is made", HFILL }
9210 { &hf_cigi2_height_of_terrain_request_lon,
9211 { "Longitude (degrees)", "cigi.hot_request.lon",
9212 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9213 "Specifies the longitudinal position from which the HOT request is made", HFILL }
9216 /* CIGI3 HAT/HOT Request */
9217 { &hf_cigi3_hat_hot_request,
9218 { "HAT/HOT Request", "cigi.hat_hot_request",
9219 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9220 "HAT/HOT Request Packet", HFILL }
9222 { &hf_cigi3_hat_hot_request_hat_hot_id,
9223 { "HAT/HOT ID", "cigi.hat_hot_request.hat_hot_id",
9224 FT_UINT16, BASE_DEC, NULL, 0x0,
9225 "Identifies the HAT/HOT request", HFILL }
9227 { &hf_cigi3_hat_hot_request_type,
9228 { "Request Type", "cigi.hat_hot_request.type",
9229 FT_UINT8, BASE_DEC, VALS(cigi3_hat_hot_request_type_vals), 0x03,
9230 "Determines the type of response packet the IG should return for this packet", HFILL }
9232 { &hf_cigi3_hat_hot_request_coordinate_system,
9233 { "Coordinate System", "cigi.hat_hot_request.coordinate_system",
9234 FT_BOOLEAN, 8, TFS(&cigi3_hat_hot_request_coordinate_system_tfs), 0x04,
9235 "Specifies the coordinate system within which the test point is defined", HFILL }
9237 { &hf_cigi3_hat_hot_request_entity_id,
9238 { "Entity ID", "cigi.hat_hot_request.entity_id",
9239 FT_UINT16, BASE_DEC, NULL, 0x0,
9240 "Specifies the entity relative to which the test point is defined", HFILL }
9242 { &hf_cigi3_hat_hot_request_lat_xoff,
9243 { "Latitude (degrees)/X Offset (m)", "cigi.hat_hot_request.lat_xoff",
9244 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9245 "Specifies the latitude from which the HAT/HOT request is being made or specifies the X offset of the point from which the HAT/HOT request is being made", HFILL }
9247 { &hf_cigi3_hat_hot_request_lon_yoff,
9248 { "Longitude (degrees)/Y Offset (m)", "cigi.hat_hot_request.lon_yoff",
9249 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9250 "Specifies the longitude from which the HAT/HOT request is being made or specifies the Y offset of the point from which the HAT/HOT request is being made", HFILL }
9252 { &hf_cigi3_hat_hot_request_alt_zoff,
9253 { "Altitude (m)/Z Offset (m)", "cigi.hat_hot_request.alt_zoff",
9254 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9255 "Specifies the altitude from which the HAT/HOT request is being made or specifies the Z offset of the point from which the HAT/HOT request is being made", HFILL }
9258 /* CIGI3_2 HAT/HOT Request */
9259 { &hf_cigi3_2_hat_hot_request,
9260 { "HAT/HOT Request", "cigi.hat_hot_request",
9261 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9262 "HAT/HOT Request Packet", HFILL }
9264 { &hf_cigi3_2_hat_hot_request_hat_hot_id,
9265 { "HAT/HOT ID", "cigi.hat_hot_request.hat_hot_id",
9266 FT_UINT16, BASE_DEC, NULL, 0x0,
9267 "Identifies the HAT/HOT request", HFILL }
9269 { &hf_cigi3_2_hat_hot_request_type,
9270 { "Request Type", "cigi.hat_hot_request.type",
9271 FT_UINT8, BASE_DEC, VALS(cigi3_2_hat_hot_request_type_vals), 0x03,
9272 "Determines the type of response packet the IG should return for this packet", HFILL }
9274 { &hf_cigi3_2_hat_hot_request_coordinate_system,
9275 { "Coordinate System", "cigi.hat_hot_request.coordinate_system",
9276 FT_BOOLEAN, 8, TFS(&cigi3_2_hat_hot_request_coordinate_system_tfs), 0x04,
9277 "Specifies the coordinate system within which the test point is defined", HFILL }
9279 { &hf_cigi3_2_hat_hot_request_update_period,
9280 { "Update Period", "cigi.hat_hot_request.update_period",
9281 FT_UINT8, BASE_DEC, NULL, 0x0,
9282 "Specifies interval between successive responses to this request. A zero indicates one responses a value n > 0 the IG should respond every nth frame", HFILL }
9284 { &hf_cigi3_2_hat_hot_request_entity_id,
9285 { "Entity ID", "cigi.hat_hot_request.entity_id",
9286 FT_UINT16, BASE_DEC, NULL, 0x0,
9287 "Specifies the entity relative to which the test point is defined", HFILL }
9289 { &hf_cigi3_2_hat_hot_request_lat_xoff,
9290 { "Latitude (degrees)/X Offset (m)", "cigi.hat_hot_request.lat_xoff",
9291 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9292 "Specifies the latitude from which the HAT/HOT request is being made or specifies the X offset of the point from which the HAT/HOT request is being made", HFILL }
9294 { &hf_cigi3_2_hat_hot_request_lon_yoff,
9295 { "Longitude (degrees)/Y Offset (m)", "cigi.hat_hot_request.lon_yoff",
9296 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9297 "Specifies the longitude from which the HAT/HOT request is being made or specifies the Y offset of the point from which the HAT/HOT request is being made", HFILL }
9299 { &hf_cigi3_2_hat_hot_request_alt_zoff,
9300 { "Altitude (m)/Z Offset (m)", "cigi.hat_hot_request.alt_zoff",
9301 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9302 "Specifies the altitude from which the HAT/HOT request is being made or specifies the Z offset of the point from which the HAT/HOT request is being made", HFILL }
9305 /* CIGI3 Line of Sight Segment Request */
9306 { &hf_cigi3_line_of_sight_segment_request,
9307 { "Line of Sight Segment Request", "cigi.los_segment_request",
9308 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9309 "Line of Sight Segment Request Packet", HFILL }
9311 { &hf_cigi3_line_of_sight_segment_request_los_id,
9312 { "LOS ID", "cigi.los_segment_request.los_id",
9313 FT_UINT16, BASE_DEC, NULL, 0x0,
9314 "Identifies the LOS request", HFILL }
9316 { &hf_cigi3_line_of_sight_segment_request_type,
9317 { "Request Type", "cigi.los_segment_request.type",
9318 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_type_tfs), 0x01,
9319 "Determines what type of response the IG should return for this request", HFILL }
9321 { &hf_cigi3_line_of_sight_segment_request_source_coord,
9322 { "Source Point Coordinate System", "cigi.los_segment_request.source_coord",
9323 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x02,
9324 "Indicates the coordinate system relative to which the test segment source endpoint is specified", HFILL }
9326 { &hf_cigi3_line_of_sight_segment_request_destination_coord,
9327 { "Destination Point Coordinate System", "cigi.los_segment_request.destination_coord",
9328 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x04,
9329 "Indicates the coordinate system relative to which the test segment destination endpoint is specified", HFILL }
9331 { &hf_cigi3_line_of_sight_segment_request_response_coord,
9332 { "Response Coordinate System", "cigi.los_segment_request.response_coord",
9333 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x08,
9334 "Specifies the coordinate system to be used in the response", HFILL }
9336 { &hf_cigi3_line_of_sight_segment_request_alpha_threshold,
9337 { "Alpha Threshold", "cigi.los_segment_request.alpha_threshold",
9338 FT_UINT8, BASE_DEC, NULL, 0x0,
9339 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9341 { &hf_cigi3_line_of_sight_segment_request_entity_id,
9342 { "Entity ID", "cigi.los_segment_request.entity_id",
9343 FT_UINT16, BASE_DEC, NULL, 0x0,
9344 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9346 { &hf_cigi3_line_of_sight_segment_request_source_lat_xoff,
9347 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_segment_request.source_lat_xoff",
9348 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9349 "Specifies the latitude of the source endpoint of the LOS test segment or specifies the X offset of the source endpoint of the LOS test segment", HFILL }
9351 { &hf_cigi3_line_of_sight_segment_request_source_lon_yoff,
9352 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_segment_request.source_lon_yoff",
9353 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9354 "Specifies the longitude of the source endpoint of the LOS test segment or specifies the Y offset of the source endpoint of the LOS test segment", HFILL }
9356 { &hf_cigi3_line_of_sight_segment_request_source_alt_zoff,
9357 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_segment_request.source_alt_zoff",
9358 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9359 "Specifies the altitude of the source endpoint of the LOS test segment or specifies the Z offset of the source endpoint of the LOS test segment", HFILL }
9361 { &hf_cigi3_line_of_sight_segment_request_destination_lat_xoff,
9362 { "Destination Latitude (degrees)/ Destination X Offset (m)", "cigi.los_segment_request.destination_lat_xoff",
9363 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9364 "Specifies the latitude of the destination endpoint of the LOS test segment or specifies the X offset of the destination endpoint of the LOS test segment", HFILL }
9366 { &hf_cigi3_line_of_sight_segment_request_destination_lon_yoff,
9367 { "Destination Longitude (degrees)/Destination Y Offset (m)", "cigi.los_segment_request.destination_lon_yoff",
9368 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9369 "Specifies the longitude of the destination endpoint of the LOS test segment or specifies the Y offset of the destination endpoint of the LOS test segment", HFILL }
9371 { &hf_cigi3_line_of_sight_segment_request_destination_alt_zoff,
9372 { "Destination Altitude (m)/ Destination Z Offset (m)", "cigi.los_segment_request.destination_alt_zoff",
9373 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9374 "Specifies the altitude of the destination endpoint of the LOS test segment or specifies the Z offset of the destination endpoint of the LOS test segment", HFILL }
9376 { &hf_cigi3_line_of_sight_segment_request_material_mask,
9377 { "Material Mask", "cigi.los_segment_request.material_mask",
9378 FT_UINT32, BASE_DEC, NULL, 0x0,
9379 "Specifies the environmental and cultural features to be included in or excluded from consideration for the LOS segment testing", HFILL }
9382 /* CIGI3_2 Line of Sight Segment Request */
9383 { &hf_cigi3_2_line_of_sight_segment_request,
9384 { "Line of Sight Segment Request", "cigi.los_segment_request",
9385 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9386 "Line of Sight Segment Request Packet", HFILL }
9388 { &hf_cigi3_2_line_of_sight_segment_request_los_id,
9389 { "LOS ID", "cigi.los_segment_request.los_id",
9390 FT_UINT16, BASE_DEC, NULL, 0x0,
9391 "Identifies the LOS request", HFILL }
9393 { &hf_cigi3_2_line_of_sight_segment_request_type,
9394 { "Request Type", "cigi.los_segment_request.type",
9395 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_type_tfs), 0x01,
9396 "Determines what type of response the IG should return for this request", HFILL }
9398 { &hf_cigi3_2_line_of_sight_segment_request_source_coord,
9399 { "Source Point Coordinate System", "cigi.los_segment_request.source_coord",
9400 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_coord_tfs), 0x02,
9401 "Indicates the coordinate system relative to which the test segment source endpoint is specified", HFILL }
9403 { &hf_cigi3_2_line_of_sight_segment_request_destination_coord,
9404 { "Destination Point Coordinate System", "cigi.los_segment_request.destination_coord",
9405 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_coord_tfs), 0x04,
9406 "Indicates the coordinate system relative to which the test segment destination endpoint is specified", HFILL }
9408 { &hf_cigi3_2_line_of_sight_segment_request_response_coord,
9409 { "Response Coordinate System", "cigi.los_segment_request.response_coord",
9410 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_coord_tfs), 0x08,
9411 "Specifies the coordinate system to be used in the response", HFILL }
9413 { &hf_cigi3_2_line_of_sight_segment_request_destination_entity_id_valid,
9414 { "Destination Entity ID Valid", "cigi.los_segment_request.destination_entity_id_valid",
9415 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x10,
9416 "Destination Entity ID is valid.", HFILL }
9418 { &hf_cigi3_2_line_of_sight_segment_request_alpha_threshold,
9419 { "Alpha Threshold", "cigi.los_segment_request.alpha_threshold",
9420 FT_UINT8, BASE_DEC, NULL, 0x0,
9421 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9423 { &hf_cigi3_2_line_of_sight_segment_request_entity_id,
9424 { "Entity ID", "cigi.los_segment_request.entity_id",
9425 FT_UINT16, BASE_DEC, NULL, 0x0,
9426 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9428 { &hf_cigi3_2_line_of_sight_segment_request_source_lat_xoff,
9429 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_segment_request.source_lat_xoff",
9430 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9431 "Specifies the latitude of the source endpoint of the LOS test segment or specifies the X offset of the source endpoint of the LOS test segment", HFILL }
9433 { &hf_cigi3_2_line_of_sight_segment_request_source_lon_yoff,
9434 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_segment_request.source_lon_yoff",
9435 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9436 "Specifies the longitude of the source endpoint of the LOS test segment or specifies the Y offset of the source endpoint of the LOS test segment", HFILL }
9438 { &hf_cigi3_2_line_of_sight_segment_request_source_alt_zoff,
9439 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_segment_request.source_alt_zoff",
9440 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9441 "Specifies the altitude of the source endpoint of the LOS test segment or specifies the Z offset of the source endpoint of the LOS test segment", HFILL }
9443 { &hf_cigi3_2_line_of_sight_segment_request_destination_lat_xoff,
9444 { "Destination Latitude (degrees)/ Destination X Offset (m)", "cigi.los_segment_request.destination_lat_xoff",
9445 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9446 "Specifies the latitude of the destination endpoint of the LOS test segment or specifies the X offset of the destination endpoint of the LOS test segment", HFILL }
9448 { &hf_cigi3_2_line_of_sight_segment_request_destination_lon_yoff,
9449 { "Destination Longitude (degrees)/Destination Y Offset (m)", "cigi.los_segment_request.destination_lon_yoff",
9450 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9451 "Specifies the longitude of the destination endpoint of the LOS test segment or specifies the Y offset of the destination endpoint of the LOS test segment", HFILL }
9453 { &hf_cigi3_2_line_of_sight_segment_request_destination_alt_zoff,
9454 { "Destination Altitude (m)/ Destination Z Offset (m)", "cigi.los_segment_request.destination_alt_zoff",
9455 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9456 "Specifies the altitude of the destination endpoint of the LOS test segment or specifies the Z offset of the destination endpoint of the LOS test segment", HFILL }
9458 { &hf_cigi3_2_line_of_sight_segment_request_material_mask,
9459 { "Material Mask", "cigi.los_segment_request.material_mask",
9460 FT_UINT32, BASE_DEC, NULL, 0x0,
9461 "Specifies the environmental and cultural features to be included in or excluded from consideration for the LOS segment testing", HFILL }
9463 { &hf_cigi3_2_line_of_sight_segment_request_update_period,
9464 { "Update Period", "cigi.los_segment_request.update_period",
9465 FT_UINT8, BASE_DEC, NULL, 0x0,
9466 "Specifies interval between successive responses to this request. A zero indicates one responses a value n > 0 the IG should respond every nth frame", HFILL }
9468 { &hf_cigi3_2_line_of_sight_segment_request_destination_entity_id,
9469 { "Destination Entity ID", "cigi.los_segment_request.destination_entity_id",
9470 FT_UINT16, BASE_DEC, NULL, 0x0,
9471 "Indicates the entity with respect to which the Destination X Offset, Y Offset, and Destination Z Offset parameters are specified", HFILL }
9474 /* CIGI3 Line of Sight Vector Request */
9475 { &hf_cigi3_line_of_sight_vector_request,
9476 { "Line of Sight Vector Request", "cigi.los_vector_request",
9477 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9478 "Line of Sight Vector Request Packet", HFILL }
9480 { &hf_cigi3_line_of_sight_vector_request_los_id,
9481 { "LOS ID", "cigi.los_vector_request.los_id",
9482 FT_UINT16, BASE_DEC, NULL, 0x0,
9483 "Identifies the LOS request", HFILL }
9485 { &hf_cigi3_line_of_sight_vector_request_type,
9486 { "Request Type", "cigi.los_vector_request.type",
9487 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_type_tfs), 0x01,
9488 "Determines what type of response the IG should return for this request", HFILL }
9490 { &hf_cigi3_line_of_sight_vector_request_source_coord,
9491 { "Source Point Coordinate System", "cigi.los_vector_request.source_coord",
9492 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_coord_tfs), 0x02,
9493 "Indicates the coordinate system relative to which the test vector source point is specified", HFILL }
9495 { &hf_cigi3_line_of_sight_vector_request_response_coord,
9496 { "Response Coordinate System", "cigi.los_vector_request.response_coord",
9497 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_coord_tfs), 0x04,
9498 "Specifies the coordinate system to be used in the response", HFILL }
9500 { &hf_cigi3_line_of_sight_vector_request_alpha,
9501 { "Alpha Threshold", "cigi.los_vector_request.alpha",
9502 FT_UINT8, BASE_DEC, NULL, 0x0,
9503 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9505 { &hf_cigi3_line_of_sight_vector_request_entity_id,
9506 { "Entity ID", "cigi.los_vector_request.entity_id",
9507 FT_UINT16, BASE_DEC, NULL, 0x0,
9508 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9510 { &hf_cigi3_line_of_sight_vector_request_azimuth,
9511 { "Azimuth (degrees)", "cigi.los_vector_request.azimuth",
9512 FT_FLOAT, BASE_DEC, NULL, 0x0,
9513 "Specifies the horizontal angle of the LOS test vector", HFILL }
9515 { &hf_cigi3_line_of_sight_vector_request_elevation,
9516 { "Elevation (degrees)", "cigi.los_vector_request.elevation",
9517 FT_FLOAT, BASE_DEC, NULL, 0x0,
9518 "Specifies the vertical angle of the LOS test vector", HFILL }
9520 { &hf_cigi3_line_of_sight_vector_request_min_range,
9521 { "Minimum Range (m)", "cigi.los_vector_request.min_range",
9522 FT_FLOAT, BASE_DEC, NULL, 0x0,
9523 "Specifies the minimum range along the LOS test vector at which intersection testing should occur", HFILL }
9525 { &hf_cigi3_line_of_sight_vector_request_max_range,
9526 { "Maximum Range (m)", "cigi.los_vector_request.max_range",
9527 FT_FLOAT, BASE_DEC, NULL, 0x0,
9528 "Specifies the maximum range along the LOS test vector at which intersection testing should occur", HFILL }
9530 { &hf_cigi3_line_of_sight_vector_request_source_lat_xoff,
9531 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_vector_request.source_lat_xoff",
9532 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9533 "Specifies the latitude of the source point of the LOS test vector", HFILL }
9535 { &hf_cigi3_line_of_sight_vector_request_source_lon_yoff,
9536 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_vector_request.source_lon_yoff",
9537 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9538 "Specifies the longitude of the source point of the LOS test vector", HFILL }
9540 { &hf_cigi3_line_of_sight_vector_request_source_alt_zoff,
9541 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_vector_request.source_alt_zoff",
9542 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9543 "Specifies the altitude of the source point of the LOS test vector or specifies the Z offset of the source point of the LOS test vector", HFILL }
9545 { &hf_cigi3_line_of_sight_vector_request_material_mask,
9546 { "Material Mask", "cigi.los_vector_request.material_mask",
9547 FT_UINT32, BASE_DEC, NULL, 0x0,
9548 "Specifies the environmental and cultural features to be included in LOS segment testing", HFILL }
9551 /* CIGI3_2 Line of Sight Vector Request */
9552 { &hf_cigi3_2_line_of_sight_vector_request,
9553 { "Line of Sight Vector Request", "cigi.los_vector_request",
9554 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9555 "Line of Sight Vector Request Packet", HFILL }
9557 { &hf_cigi3_2_line_of_sight_vector_request_los_id,
9558 { "LOS ID", "cigi.los_vector_request.los_id",
9559 FT_UINT16, BASE_DEC, NULL, 0x0,
9560 "Identifies the LOS request", HFILL }
9562 { &hf_cigi3_2_line_of_sight_vector_request_type,
9563 { "Request Type", "cigi.los_vector_request.type",
9564 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_vector_request_type_tfs), 0x01,
9565 "Determines what type of response the IG should return for this request", HFILL }
9567 { &hf_cigi3_2_line_of_sight_vector_request_source_coord,
9568 { "Source Point Coordinate System", "cigi.los_vector_request.source_coord",
9569 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_vector_request_coord_tfs), 0x02,
9570 "Indicates the coordinate system relative to which the test vector source point is specified", HFILL }
9572 { &hf_cigi3_2_line_of_sight_vector_request_response_coord,
9573 { "Response Coordinate System", "cigi.los_vector_request.response_coord",
9574 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_vector_request_coord_tfs), 0x04,
9575 "Specifies the coordinate system to be used in the response", HFILL }
9577 { &hf_cigi3_2_line_of_sight_vector_request_alpha,
9578 { "Alpha Threshold", "cigi.los_vector_request.alpha",
9579 FT_UINT8, BASE_DEC, NULL, 0x0,
9580 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9582 { &hf_cigi3_2_line_of_sight_vector_request_entity_id,
9583 { "Entity ID", "cigi.los_vector_request.entity_id",
9584 FT_UINT16, BASE_DEC, NULL, 0x0,
9585 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9587 { &hf_cigi3_2_line_of_sight_vector_request_azimuth,
9588 { "Azimuth (degrees)", "cigi.los_vector_request.azimuth",
9589 FT_FLOAT, BASE_DEC, NULL, 0x0,
9590 "Specifies the horizontal angle of the LOS test vector", HFILL }
9592 { &hf_cigi3_2_line_of_sight_vector_request_elevation,
9593 { "Elevation (degrees)", "cigi.los_vector_request.elevation",
9594 FT_FLOAT, BASE_DEC, NULL, 0x0,
9595 "Specifies the vertical angle of the LOS test vector", HFILL }
9597 { &hf_cigi3_2_line_of_sight_vector_request_min_range,
9598 { "Minimum Range (m)", "cigi.los_vector_request.min_range",
9599 FT_FLOAT, BASE_DEC, NULL, 0x0,
9600 "Specifies the minimum range along the LOS test vector at which intersection testing should occur", HFILL }
9602 { &hf_cigi3_2_line_of_sight_vector_request_max_range,
9603 { "Maximum Range (m)", "cigi.los_vector_request.max_range",
9604 FT_FLOAT, BASE_DEC, NULL, 0x0,
9605 "Specifies the maximum range along the LOS test vector at which intersection testing should occur", HFILL }
9607 { &hf_cigi3_2_line_of_sight_vector_request_source_lat_xoff,
9608 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_vector_request.source_lat_xoff",
9609 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9610 "Specifies the latitude of the source point of the LOS test vector", HFILL }
9612 { &hf_cigi3_2_line_of_sight_vector_request_source_lon_yoff,
9613 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_vector_request.source_lon_yoff",
9614 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9615 "Specifies the longitude of the source point of the LOS test vector", HFILL }
9617 { &hf_cigi3_2_line_of_sight_vector_request_source_alt_zoff,
9618 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_vector_request.source_alt_zoff",
9619 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9620 "Specifies the altitude of the source point of the LOS test vector or specifies the Z offset of the source point of the LOS test vector", HFILL }
9622 { &hf_cigi3_2_line_of_sight_vector_request_material_mask,
9623 { "Material Mask", "cigi.los_vector_request.material_mask",
9624 FT_UINT32, BASE_DEC, NULL, 0x0,
9625 "Specifies the environmental and cultural features to be included in LOS segment testing", HFILL }
9627 { &hf_cigi3_2_line_of_sight_vector_request_update_period,
9628 { "Update Period", "cigi.los_vector_request.update_period",
9629 FT_UINT8, BASE_DEC, NULL, 0x0,
9630 "Specifies interval between successive responses to this request. A zero indicates one responses a value n > 0 the IG should respond every nth frame", HFILL }
9633 /* CIGI3 Position Request */
9634 { &hf_cigi3_position_request,
9635 { "Position Request", "cigi.pos_request",
9636 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9637 "Position Request Packet", HFILL }
9639 { &hf_cigi3_position_request_object_id,
9640 { "Object ID", "cigi.pos_request.object_id",
9641 FT_UINT16, BASE_DEC, NULL, 0x0,
9642 "Identifies the entity, view, view group, or motion tracking device whose position is being requested", HFILL }
9644 { &hf_cigi3_position_request_part_id,
9645 { "Articulated Part ID", "cigi.pos_request.part_id",
9646 FT_UINT8, BASE_DEC, NULL, 0x0,
9647 "Identifies the articulated part whose position is being requested", HFILL }
9649 { &hf_cigi3_position_request_update_mode,
9650 { "Update Mode", "cigi.pos_request.update_mode",
9651 FT_BOOLEAN, 8, TFS(&cigi3_position_request_update_mode_tfs), 0x01,
9652 "Specifies whether the IG should report the position of the requested object each frame", HFILL }
9654 { &hf_cigi3_position_request_object_class,
9655 { "Object Class", "cigi.pos_request.object_class",
9656 FT_UINT8, BASE_DEC, VALS(cigi3_position_request_object_class_vals), 0x0e,
9657 "Specifies the type of object whose position is being requested", HFILL }
9659 { &hf_cigi3_position_request_coord_system,
9660 { "Coordinate System", "cigi.pos_request.coord_system",
9661 FT_UINT8, BASE_DEC, VALS(cigi3_position_request_coord_system_vals), 0x30,
9662 "Specifies the desired coordinate system relative to which the position and orientation should be given", HFILL }
9665 /* CIGI3 Environmental Conditions Request */
9666 { &hf_cigi3_environmental_conditions_request,
9667 { "Environmental Conditions Request", "cigi.env_cond_request",
9668 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9669 "Environmental Conditions Request Packet", HFILL }
9671 { &hf_cigi3_environmental_conditions_request_type,
9672 { "Request Type", "cigi.env_cond_request.type",
9673 FT_UINT8, BASE_DEC, VALS(cigi3_environmental_conditions_request_type_vals), 0x0f,
9674 "Specifies the desired response type for the request", HFILL }
9676 { &hf_cigi3_environmental_conditions_request_id,
9677 { "Request ID", "cigi.env_cond_request.id",
9678 FT_UINT8, BASE_DEC, NULL, 0x0,
9679 "Identifies the environmental conditions request", HFILL }
9681 { &hf_cigi3_environmental_conditions_request_lat,
9682 { "Latitude (degrees)", "cigi.env_cond_request.lat",
9683 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9684 "Specifies the geodetic latitude at which the environmental state is requested", HFILL }
9686 { &hf_cigi3_environmental_conditions_request_lon,
9687 { "Longitude (degrees)", "cigi.env_cond_request.lon",
9688 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9689 "Specifies the geodetic longitude at which the environmental state is requested", HFILL }
9691 { &hf_cigi3_environmental_conditions_request_alt,
9692 { "Altitude (m)", "cigi.env_cond_request.alt",
9693 FT_DOUBLE, BASE_DEC, NULL, 0x0,
9694 "Specifies the geodetic altitude at which the environmental state is requested", HFILL }
9697 /* CIGI3_3 Symbol Surface Definition */
9698 { &hf_cigi3_3_symbol_surface_definition,
9699 { "Symbol Surface Definition", "cigi.symbl_srfc_def",
9700 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9701 "Symbol Surface Definition Packet", HFILL }
9703 { &hf_cigi3_3_symbol_surface_definition_surface_id,
9704 { "Surface ID", "cigi.symbl_srfc_def.surface_id",
9705 FT_UINT16, BASE_DEC, NULL, 0x0,
9706 "Identifies the symbol surface to which this packet is applied", HFILL }
9708 { &hf_cigi3_3_symbol_surface_definition_surface_state,
9709 { "Surface State", "cigi.symbl_srfc_def.surface_state",
9710 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_surface_definition_surface_state_tfs), 0x01,
9711 "Specifies whether the symbol surface should be active or destroyed", HFILL }
9713 { &hf_cigi3_3_symbol_surface_definition_attach_type,
9714 { "Attach Type", "cigi.symbl_srfc_def.attach_type",
9715 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_surface_definition_attach_type_tfs), 0x02,
9716 "Specifies whether the surface should be attached to an entity or view", HFILL }
9718 { &hf_cigi3_3_symbol_surface_definition_billboard,
9719 { "Billboard", "cigi.symbl_srfc_def.billboard",
9720 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_surface_definition_billboard_tfs), 0x04,
9721 "Specifies whether the surface is treated as a billboard", HFILL }
9723 { &hf_cigi3_3_symbol_surface_definition_perspective_growth_enable,
9724 { "Perspective Growth Enable", "cigi.symbl_srfc_def.perspective_growth_enable",
9725 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
9726 "Specifies whether the surface appears to maintain a constant size or has perspective growth", HFILL }
9728 { &hf_cigi3_3_symbol_surface_definition_entity_view_id,
9729 { "Entity ID/View ID", "cigi.symbl_srfc_def.entity_view_id",
9730 FT_UINT16, BASE_DEC, NULL, 0x0,
9731 "Specifies the entity or view to which this symbol surface is attached", HFILL }
9733 { &hf_cigi3_3_symbol_surface_definition_xoff_left,
9734 { "X Offset (m)/Left", "cigi.symbl_srfc_def.xoff_left",
9735 FT_FLOAT, BASE_DEC, NULL, 0x0,
9736 "Specifies the x offset or leftmost boundary for the symbol surface", HFILL }
9738 { &hf_cigi3_3_symbol_surface_definition_yoff_right,
9739 { "Y Offset (m)/Right", "cigi.symbl_srfc_def.yoff_right",
9740 FT_FLOAT, BASE_DEC, NULL, 0x0,
9741 "Specifies the y offset or rightmost boundary for the symbol surface", HFILL }
9743 { &hf_cigi3_3_symbol_surface_definition_zoff_top,
9744 { "Z Offset (m)/Top", "cigi.symbl_srfc_def.zoff_top",
9745 FT_FLOAT, BASE_DEC, NULL, 0x0,
9746 "Specifies the z offset or topmost boundary for the symbol surface", HFILL }
9748 { &hf_cigi3_3_symbol_surface_definition_yaw_bottom,
9749 { "Yaw (degrees)/Bottom", "cigi.symbl_srfc_def.yaw_bottom",
9750 FT_FLOAT, BASE_DEC, NULL, 0x0,
9751 "Specifies the rotation about the surface's Z axis or bottommost boundary for the symbol surface", HFILL }
9753 { &hf_cigi3_3_symbol_surface_definition_pitch,
9754 { "Pitch (degrees)", "cigi.symbl_srfc_def.pitch",
9755 FT_FLOAT, BASE_DEC, NULL, 0x0,
9756 "Specifies the rotation about the surface's Y axis", HFILL }
9758 { &hf_cigi3_3_symbol_surface_definition_roll,
9759 { "Roll (degrees)", "cigi.symbl_srfc_def.roll",
9760 FT_FLOAT, BASE_DEC, NULL, 0x0,
9761 "Specifies the rotation about the surface's X axis", HFILL }
9763 { &hf_cigi3_3_symbol_surface_definition_width,
9764 { "Width (m/degrees)", "cigi.symbl_srfc_def.width",
9765 FT_FLOAT, BASE_DEC, NULL, 0x0,
9766 "Specifies the width of the symbol surface", HFILL }
9768 { &hf_cigi3_3_symbol_surface_definition_height,
9769 { "Height (m/degrees)", "cigi.symbl_srfc_def.height",
9770 FT_FLOAT, BASE_DEC, NULL, 0x0,
9771 "Specifies the height of the symbol surface", HFILL }
9773 { &hf_cigi3_3_symbol_surface_definition_min_u,
9774 { "Min U (surface horizontal units)", "cigi.symbl_srfc_def.min_u",
9775 FT_FLOAT, BASE_DEC, NULL, 0x0,
9776 "Specifies the minimum U coordinate of the symbol surface's viewable area", HFILL }
9778 { &hf_cigi3_3_symbol_surface_definition_max_u,
9779 { "Max U (surface horizontal units)", "cigi.symbl_srfc_def.max_u",
9780 FT_FLOAT, BASE_DEC, NULL, 0x0,
9781 "Specifies the maximum U coordinate of the symbol surface's viewable area", HFILL }
9783 { &hf_cigi3_3_symbol_surface_definition_min_v,
9784 { "Min V (surface vertical units)", "cigi.symbl_srfc_def.min_v",
9785 FT_FLOAT, BASE_DEC, NULL, 0x0,
9786 "Specifies the minimum V coordinate of the symbol surface's viewable area", HFILL }
9788 { &hf_cigi3_3_symbol_surface_definition_max_v,
9789 { "Max V (surface vertical units)", "cigi.symbl_srfc_def.max_v",
9790 FT_FLOAT, BASE_DEC, NULL, 0x0,
9791 "Specifies the maximum V coordinate of the symbol surface's viewable area", HFILL }
9794 /* CIGI3_3 Symbol Text Definition */
9795 { &hf_cigi3_3_symbol_text_definition,
9796 { "Symbol Text Definition", "cigi.symbol_text_def",
9797 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9798 "Symbol Text Definition Packet", HFILL }
9800 { &hf_cigi3_3_symbol_text_definition_symbol_id,
9801 { "Symbol ID", "cigi.symbol_text_def.symbol_id",
9802 FT_UINT16, BASE_DEC, NULL, 0x0,
9803 "Specifies the identifier of the symbol that is being defined", HFILL }
9805 { &hf_cigi3_3_symbol_text_definition_alignment,
9806 { "Alignment", "cigi.symbol_text_def.alignment",
9807 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_text_definition_alignment_vals), 0x0f,
9808 "Specifies the position of the symbol's reference point", HFILL }
9810 { &hf_cigi3_3_symbol_text_definition_orientation,
9811 { "Orientation", "cigi.symbol_text_def.orientation",
9812 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_text_definition_orientation_vals), 0x30,
9813 "Specifies the orientation of the text", HFILL }
9815 { &hf_cigi3_3_symbol_text_definition_font_ident,
9816 { "Font ID", "cigi.symbol_text_def.font_ident",
9817 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_text_definition_font_ident_vals), 0x0,
9818 "Specifies the font to be used", HFILL }
9820 { &hf_cigi3_3_symbol_text_definition_font_size,
9821 { "Font Size", "cigi.symbol_text_def.font_size",
9822 FT_FLOAT, BASE_DEC, NULL, 0x0,
9823 "Specifies the font size", HFILL }
9825 { &hf_cigi3_3_symbol_text_definition_text,
9826 { "Text", "cigi.symbol_text_def.text",
9827 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9828 "Symbol text", HFILL }
9831 /* CIGI3_3 Symbol Circle Definition */
9832 { &hf_cigi3_3_symbol_circle_definition,
9833 { "Symbol Circle Definition", "cigi.symbol_circle_def",
9834 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9835 "Symbol Circle Definition Packet", HFILL }
9837 { &hf_cigi3_3_symbol_circle_definition_symbol_id,
9838 { "Symbol ID", "cigi.symbol_circle_def.symbol_id",
9839 FT_UINT16, BASE_DEC, NULL, 0x0,
9840 "Specifies the identifier of the symbol that is being defined", HFILL }
9842 { &hf_cigi3_3_symbol_circle_definition_drawing_style,
9843 { "Drawing Style", "cigi.symbl_circle_def.drawing_style",
9844 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_circle_definition_drawing_style_tfs), 0x01,
9845 "Specifies whether the circles and arcs are curved lines or filled areas", HFILL }
9847 { &hf_cigi3_3_symbol_circle_definition_stipple_pattern,
9848 { "Stipple Pattern", "cigi.symbol_circle_def.stipple_pattern",
9849 FT_UINT16, BASE_HEX, NULL, 0x0,
9850 "Specifies the dash pattern used", HFILL }
9852 { &hf_cigi3_3_symbol_circle_definition_line_width,
9853 { "Line Width (scaled symbol surface units)", "cigi.symbol_circle_def.line_width",
9854 FT_FLOAT, BASE_DEC, NULL, 0x0,
9855 "Specifies the thickness of the line", HFILL }
9857 { &hf_cigi3_3_symbol_circle_definition_stipple_pattern_length,
9858 { "Stipple Pattern Length (scaled symbol surface units)", "cigi.symbol_circle_def.stipple_pattern_length",
9859 FT_FLOAT, BASE_DEC, NULL, 0x0,
9860 "Specifies the length of one complete repetition of the stipple pattern", HFILL }
9862 { &hf_cigi3_3_symbol_circle_definition_center_u[0],
9863 { "Center U 1 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u1",
9864 FT_FLOAT, BASE_DEC, NULL, 0x0,
9865 "Specifies the u position of the center", HFILL }
9867 { &hf_cigi3_3_symbol_circle_definition_center_v[0],
9868 { "Center V 1 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v1",
9869 FT_FLOAT, BASE_DEC, NULL, 0x0,
9870 "Specifies the v position of the center", HFILL }
9872 { &hf_cigi3_3_symbol_circle_definition_radius[0],
9873 { "Radius 1 (scaled symbol surface units)", "cigi.symbol_circle_def.radius1",
9874 FT_FLOAT, BASE_DEC, NULL, 0x0,
9875 "Specifies the radius", HFILL }
9877 { &hf_cigi3_3_symbol_circle_definition_inner_radius[0],
9878 { "Inner Radius 1 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius1",
9879 FT_FLOAT, BASE_DEC, NULL, 0x0,
9880 "Specifies the inner radius", HFILL }
9882 { &hf_cigi3_3_symbol_circle_definition_start_angle[0],
9883 { "Start Angle 1 (degrees)", "cigi.symbol_circle_def.start_angle1",
9884 FT_FLOAT, BASE_DEC, NULL, 0x0,
9885 "Specifies the start angle", HFILL }
9887 { &hf_cigi3_3_symbol_circle_definition_end_angle[0],
9888 { "End Angle 1 (degrees)", "cigi.symbol_circle_def.end_angle1",
9889 FT_FLOAT, BASE_DEC, NULL, 0x0,
9890 "Specifies the end angle", HFILL }
9892 { &hf_cigi3_3_symbol_circle_definition_center_u[1],
9893 { "Center U 2 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u2",
9894 FT_FLOAT, BASE_DEC, NULL, 0x0,
9895 "Specifies the u position of the center", HFILL }
9897 { &hf_cigi3_3_symbol_circle_definition_center_v[1],
9898 { "Center V 2 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v2",
9899 FT_FLOAT, BASE_DEC, NULL, 0x0,
9900 "Specifies the v position of the center", HFILL }
9902 { &hf_cigi3_3_symbol_circle_definition_radius[1],
9903 { "Radius 2 (scaled symbol surface units)", "cigi.symbol_circle_def.radius2",
9904 FT_FLOAT, BASE_DEC, NULL, 0x0,
9905 "Specifies the radius", HFILL }
9907 { &hf_cigi3_3_symbol_circle_definition_inner_radius[1],
9908 { "Inner Radius 2 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius2",
9909 FT_FLOAT, BASE_DEC, NULL, 0x0,
9910 "Specifies the inner radius", HFILL }
9912 { &hf_cigi3_3_symbol_circle_definition_start_angle[1],
9913 { "Start Angle 2 (degrees)", "cigi.symbol_circle_def.start_angle2",
9914 FT_FLOAT, BASE_DEC, NULL, 0x0,
9915 "Specifies the start angle", HFILL }
9917 { &hf_cigi3_3_symbol_circle_definition_end_angle[1],
9918 { "End Angle 2 (degrees)", "cigi.symbol_circle_def.end_angle2",
9919 FT_FLOAT, BASE_DEC, NULL, 0x0,
9920 "Specifies the end angle", HFILL }
9922 { &hf_cigi3_3_symbol_circle_definition_center_u[2],
9923 { "Center U 3 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u3",
9924 FT_FLOAT, BASE_DEC, NULL, 0x0,
9925 "Specifies the u position of the center", HFILL }
9927 { &hf_cigi3_3_symbol_circle_definition_center_v[2],
9928 { "Center V 3 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v3",
9929 FT_FLOAT, BASE_DEC, NULL, 0x0,
9930 "Specifies the v position of the center", HFILL }
9932 { &hf_cigi3_3_symbol_circle_definition_radius[2],
9933 { "Radius 3 (scaled symbol surface units)", "cigi.symbol_circle_def.radius3",
9934 FT_FLOAT, BASE_DEC, NULL, 0x0,
9935 "Specifies the radius", HFILL }
9937 { &hf_cigi3_3_symbol_circle_definition_inner_radius[2],
9938 { "Inner Radius 3 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius3",
9939 FT_FLOAT, BASE_DEC, NULL, 0x0,
9940 "Specifies the inner radius", HFILL }
9942 { &hf_cigi3_3_symbol_circle_definition_start_angle[2],
9943 { "Start Angle 3 (degrees)", "cigi.symbol_circle_def.start_angle3",
9944 FT_FLOAT, BASE_DEC, NULL, 0x0,
9945 "Specifies the start angle", HFILL }
9947 { &hf_cigi3_3_symbol_circle_definition_end_angle[2],
9948 { "End Angle 3 (degrees)", "cigi.symbol_circle_def.end_angle3",
9949 FT_FLOAT, BASE_DEC, NULL, 0x0,
9950 "Specifies the end angle", HFILL }
9952 { &hf_cigi3_3_symbol_circle_definition_center_u[3],
9953 { "Center U 4 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u4",
9954 FT_FLOAT, BASE_DEC, NULL, 0x0,
9955 "Specifies the u position of the center", HFILL }
9957 { &hf_cigi3_3_symbol_circle_definition_center_v[3],
9958 { "Center V 4 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v4",
9959 FT_FLOAT, BASE_DEC, NULL, 0x0,
9960 "Specifies the v position of the center", HFILL }
9962 { &hf_cigi3_3_symbol_circle_definition_radius[3],
9963 { "Radius 4 (scaled symbol surface units)", "cigi.symbol_circle_def.radius4",
9964 FT_FLOAT, BASE_DEC, NULL, 0x0,
9965 "Specifies the radius", HFILL }
9967 { &hf_cigi3_3_symbol_circle_definition_inner_radius[3],
9968 { "Inner Radius 4 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius4",
9969 FT_FLOAT, BASE_DEC, NULL, 0x0,
9970 "Specifies the inner radius", HFILL }
9972 { &hf_cigi3_3_symbol_circle_definition_start_angle[3],
9973 { "Start Angle 4 (degrees)", "cigi.symbol_circle_def.start_angle4",
9974 FT_FLOAT, BASE_DEC, NULL, 0x0,
9975 "Specifies the start angle", HFILL }
9977 { &hf_cigi3_3_symbol_circle_definition_end_angle[3],
9978 { "End Angle 4 (degrees)", "cigi.symbol_circle_def.end_angle4",
9979 FT_FLOAT, BASE_DEC, NULL, 0x0,
9980 "Specifies the end angle", HFILL }
9982 { &hf_cigi3_3_symbol_circle_definition_center_u[4],
9983 { "Center U 5 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u5",
9984 FT_FLOAT, BASE_DEC, NULL, 0x0,
9985 "Specifies the u position of the center", HFILL }
9987 { &hf_cigi3_3_symbol_circle_definition_center_v[4],
9988 { "Center V 5 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v5",
9989 FT_FLOAT, BASE_DEC, NULL, 0x0,
9990 "Specifies the v position of the center", HFILL }
9992 { &hf_cigi3_3_symbol_circle_definition_radius[4],
9993 { "Radius 5 (scaled symbol surface units)", "cigi.symbol_circle_def.radius5",
9994 FT_FLOAT, BASE_DEC, NULL, 0x0,
9995 "Specifies the radius", HFILL }
9997 { &hf_cigi3_3_symbol_circle_definition_inner_radius[4],
9998 { "Inner Radius 5 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius5",
9999 FT_FLOAT, BASE_DEC, NULL, 0x0,
10000 "Specifies the inner radius", HFILL }
10002 { &hf_cigi3_3_symbol_circle_definition_start_angle[4],
10003 { "Start Angle 5 (degrees)", "cigi.symbol_circle_def.start_angle5",
10004 FT_FLOAT, BASE_DEC, NULL, 0x0,
10005 "Specifies the start angle", HFILL }
10007 { &hf_cigi3_3_symbol_circle_definition_end_angle[4],
10008 { "End Angle 5 (degrees)", "cigi.symbol_circle_def.end_angle5",
10009 FT_FLOAT, BASE_DEC, NULL, 0x0,
10010 "Specifies the end angle", HFILL }
10012 { &hf_cigi3_3_symbol_circle_definition_center_u[5],
10013 { "Center U 6 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u6",
10014 FT_FLOAT, BASE_DEC, NULL, 0x0,
10015 "Specifies the u position of the center", HFILL }
10017 { &hf_cigi3_3_symbol_circle_definition_center_v[5],
10018 { "Center V 6 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v6",
10019 FT_FLOAT, BASE_DEC, NULL, 0x0,
10020 "Specifies the v position of the center", HFILL }
10022 { &hf_cigi3_3_symbol_circle_definition_radius[5],
10023 { "Radius 6 (scaled symbol surface units)", "cigi.symbol_circle_def.radius6",
10024 FT_FLOAT, BASE_DEC, NULL, 0x0,
10025 "Specifies the radius", HFILL }
10027 { &hf_cigi3_3_symbol_circle_definition_inner_radius[5],
10028 { "Inner Radius 6 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius6",
10029 FT_FLOAT, BASE_DEC, NULL, 0x0,
10030 "Specifies the inner radius", HFILL }
10032 { &hf_cigi3_3_symbol_circle_definition_start_angle[5],
10033 { "Start Angle 6 (degrees)", "cigi.symbol_circle_def.start_angle6",
10034 FT_FLOAT, BASE_DEC, NULL, 0x0,
10035 "Specifies the start angle", HFILL }
10037 { &hf_cigi3_3_symbol_circle_definition_end_angle[5],
10038 { "End Angle 6 (degrees)", "cigi.symbol_circle_def.end_angle6",
10039 FT_FLOAT, BASE_DEC, NULL, 0x0,
10040 "Specifies the end angle", HFILL }
10042 { &hf_cigi3_3_symbol_circle_definition_center_u[6],
10043 { "Center U 7 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u7",
10044 FT_FLOAT, BASE_DEC, NULL, 0x0,
10045 "Specifies the u position of the center", HFILL }
10047 { &hf_cigi3_3_symbol_circle_definition_center_v[6],
10048 { "Center V 7 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v7",
10049 FT_FLOAT, BASE_DEC, NULL, 0x0,
10050 "Specifies the v position of the center", HFILL }
10052 { &hf_cigi3_3_symbol_circle_definition_radius[6],
10053 { "Radius 7 (scaled symbol surface units)", "cigi.symbol_circle_def.radius7",
10054 FT_FLOAT, BASE_DEC, NULL, 0x0,
10055 "Specifies the radius", HFILL }
10057 { &hf_cigi3_3_symbol_circle_definition_inner_radius[6],
10058 { "Inner Radius 7 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius7",
10059 FT_FLOAT, BASE_DEC, NULL, 0x0,
10060 "Specifies the inner radius", HFILL }
10062 { &hf_cigi3_3_symbol_circle_definition_start_angle[6],
10063 { "Start Angle 7 (degrees)", "cigi.symbol_circle_def.start_angle7",
10064 FT_FLOAT, BASE_DEC, NULL, 0x0,
10065 "Specifies the start angle", HFILL }
10067 { &hf_cigi3_3_symbol_circle_definition_end_angle[6],
10068 { "End Angle 7 (degrees)", "cigi.symbol_circle_def.end_angle7",
10069 FT_FLOAT, BASE_DEC, NULL, 0x0,
10070 "Specifies the end angle", HFILL }
10072 { &hf_cigi3_3_symbol_circle_definition_center_u[7],
10073 { "Center U 8 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u8",
10074 FT_FLOAT, BASE_DEC, NULL, 0x0,
10075 "Specifies the u position of the center", HFILL }
10077 { &hf_cigi3_3_symbol_circle_definition_center_v[7],
10078 { "Center V 8 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v8",
10079 FT_FLOAT, BASE_DEC, NULL, 0x0,
10080 "Specifies the v position of the center", HFILL }
10082 { &hf_cigi3_3_symbol_circle_definition_radius[7],
10083 { "Radius 8 (scaled symbol surface units)", "cigi.symbol_circle_def.radius8",
10084 FT_FLOAT, BASE_DEC, NULL, 0x0,
10085 "Specifies the radius", HFILL }
10087 { &hf_cigi3_3_symbol_circle_definition_inner_radius[7],
10088 { "Inner Radius 8 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius8",
10089 FT_FLOAT, BASE_DEC, NULL, 0x0,
10090 "Specifies the inner radius", HFILL }
10092 { &hf_cigi3_3_symbol_circle_definition_start_angle[7],
10093 { "Start Angle 8 (degrees)", "cigi.symbol_circle_def.start_angle8",
10094 FT_FLOAT, BASE_DEC, NULL, 0x0,
10095 "Specifies the start angle", HFILL }
10097 { &hf_cigi3_3_symbol_circle_definition_end_angle[7],
10098 { "End Angle 8 (degrees)", "cigi.symbol_circle_def.end_angle8",
10099 FT_FLOAT, BASE_DEC, NULL, 0x0,
10100 "Specifies the end angle", HFILL }
10102 { &hf_cigi3_3_symbol_circle_definition_center_u[8],
10103 { "Center U 9 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u9",
10104 FT_FLOAT, BASE_DEC, NULL, 0x0,
10105 "Specifies the u position of the center", HFILL }
10107 { &hf_cigi3_3_symbol_circle_definition_center_v[8],
10108 { "Center V 9 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v9",
10109 FT_FLOAT, BASE_DEC, NULL, 0x0,
10110 "Specifies the v position of the center", HFILL }
10112 { &hf_cigi3_3_symbol_circle_definition_radius[8],
10113 { "Radius 9 (scaled symbol surface units)", "cigi.symbol_circle_def.radius9",
10114 FT_FLOAT, BASE_DEC, NULL, 0x0,
10115 "Specifies the radius", HFILL }
10117 { &hf_cigi3_3_symbol_circle_definition_inner_radius[8],
10118 { "Inner Radius 9 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius9",
10119 FT_FLOAT, BASE_DEC, NULL, 0x0,
10120 "Specifies the inner radius", HFILL }
10122 { &hf_cigi3_3_symbol_circle_definition_start_angle[8],
10123 { "Start Angle 9 (degrees)", "cigi.symbol_circle_def.start_angle9",
10124 FT_FLOAT, BASE_DEC, NULL, 0x0,
10125 "Specifies the start angle", HFILL }
10127 { &hf_cigi3_3_symbol_circle_definition_end_angle[8],
10128 { "End Angle 9 (degrees)", "cigi.symbol_circle_def.end_angle9",
10129 FT_FLOAT, BASE_DEC, NULL, 0x0,
10130 "Specifies the end angle", HFILL }
10133 /* CIGI3_3 Symbol Line Definition */
10134 { &hf_cigi3_3_symbol_line_definition,
10135 { "Symbol Line Definition", "cigi.symbol_line_def",
10136 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10137 "Symbol Line Definition Packet", HFILL }
10139 { &hf_cigi3_3_symbol_line_definition_symbol_id,
10140 { "Symbol ID", "cigi.symbol_line_def.symbol_id",
10141 FT_UINT16, BASE_DEC, NULL, 0x0,
10142 "Specifies the identifier of the symbol that is being defined", HFILL }
10144 { &hf_cigi3_3_symbol_line_definition_primitive_type,
10145 { "Drawing Style", "cigi.symbl_line_def.primitive_type",
10146 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_circle_definition_drawing_style_tfs), 0x01,
10147 "Specifies the type of point or line primitive used", HFILL }
10149 { &hf_cigi3_3_symbol_line_definition_stipple_pattern,
10150 { "Stipple Pattern", "cigi.symbol_line_def.stipple_pattern",
10151 FT_UINT16, BASE_HEX, NULL, 0x0,
10152 "Specifies the dash pattern used", HFILL }
10154 { &hf_cigi3_3_symbol_line_definition_line_width,
10155 { "Line Width (scaled symbol surface units)", "cigi.symbol_line_def.line_width",
10156 FT_FLOAT, BASE_DEC, NULL, 0x0,
10157 "Specifies the thickness of the line", HFILL }
10159 { &hf_cigi3_3_symbol_line_definition_stipple_pattern_length,
10160 { "Stipple Pattern Length (scaled symbol surface units)", "cigi.symbol_line_def.stipple_pattern_length",
10161 FT_FLOAT, BASE_DEC, NULL, 0x0,
10162 "Specifies the length of one complete repetition of the stipple pattern", HFILL }
10164 { &hf_cigi3_3_symbol_line_definition_vertex_u[0],
10165 { "Vertex U 1 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u1",
10166 FT_FLOAT, BASE_DEC, NULL, 0x0,
10167 "Specifies the u position of the vertex", HFILL }
10169 { &hf_cigi3_3_symbol_line_definition_vertex_v[0],
10170 { "Vertex V 1 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v1",
10171 FT_FLOAT, BASE_DEC, NULL, 0x0,
10172 "Specifies the v position of the vertex", HFILL }
10174 { &hf_cigi3_3_symbol_line_definition_vertex_u[1],
10175 { "Vertex U 2 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u2",
10176 FT_FLOAT, BASE_DEC, NULL, 0x0,
10177 "Specifies the u position of the vertex", HFILL }
10179 { &hf_cigi3_3_symbol_line_definition_vertex_v[1],
10180 { "Vertex V 2 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v2",
10181 FT_FLOAT, BASE_DEC, NULL, 0x0,
10182 "Specifies the v position of the vertex", HFILL }
10184 { &hf_cigi3_3_symbol_line_definition_vertex_u[2],
10185 { "Vertex U 3 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u3",
10186 FT_FLOAT, BASE_DEC, NULL, 0x0,
10187 "Specifies the u position of the vertex", HFILL }
10189 { &hf_cigi3_3_symbol_line_definition_vertex_v[2],
10190 { "Vertex V 3 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v3",
10191 FT_FLOAT, BASE_DEC, NULL, 0x0,
10192 "Specifies the v position of the vertex", HFILL }
10194 { &hf_cigi3_3_symbol_line_definition_vertex_u[3],
10195 { "Vertex U 4 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u4",
10196 FT_FLOAT, BASE_DEC, NULL, 0x0,
10197 "Specifies the u position of the vertex", HFILL }
10199 { &hf_cigi3_3_symbol_line_definition_vertex_v[3],
10200 { "Vertex V 4 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v4",
10201 FT_FLOAT, BASE_DEC, NULL, 0x0,
10202 "Specifies the v position of the vertex", HFILL }
10204 { &hf_cigi3_3_symbol_line_definition_vertex_u[4],
10205 { "Vertex U 5 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u5",
10206 FT_FLOAT, BASE_DEC, NULL, 0x0,
10207 "Specifies the u position of the vertex", HFILL }
10209 { &hf_cigi3_3_symbol_line_definition_vertex_v[4],
10210 { "Vertex V 5 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v5",
10211 FT_FLOAT, BASE_DEC, NULL, 0x0,
10212 "Specifies the v position of the vertex", HFILL }
10214 { &hf_cigi3_3_symbol_line_definition_vertex_u[5],
10215 { "Vertex U 6 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u6",
10216 FT_FLOAT, BASE_DEC, NULL, 0x0,
10217 "Specifies the u position of the vertex", HFILL }
10219 { &hf_cigi3_3_symbol_line_definition_vertex_v[5],
10220 { "Vertex V 6 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v6",
10221 FT_FLOAT, BASE_DEC, NULL, 0x0,
10222 "Specifies the v position of the vertex", HFILL }
10224 { &hf_cigi3_3_symbol_line_definition_vertex_u[6],
10225 { "Vertex U 7 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u7",
10226 FT_FLOAT, BASE_DEC, NULL, 0x0,
10227 "Specifies the u position of the vertex", HFILL }
10229 { &hf_cigi3_3_symbol_line_definition_vertex_v[6],
10230 { "Vertex V 7 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v7",
10231 FT_FLOAT, BASE_DEC, NULL, 0x0,
10232 "Specifies the v position of the vertex", HFILL }
10234 { &hf_cigi3_3_symbol_line_definition_vertex_u[7],
10235 { "Vertex U 8 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u8",
10236 FT_FLOAT, BASE_DEC, NULL, 0x0,
10237 "Specifies the u position of the vertex", HFILL }
10239 { &hf_cigi3_3_symbol_line_definition_vertex_v[7],
10240 { "Vertex V 8 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v8",
10241 FT_FLOAT, BASE_DEC, NULL, 0x0,
10242 "Specifies the v position of the vertex", HFILL }
10244 { &hf_cigi3_3_symbol_line_definition_vertex_u[8],
10245 { "Vertex U 9 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u9",
10246 FT_FLOAT, BASE_DEC, NULL, 0x0,
10247 "Specifies the u position of the vertex", HFILL }
10249 { &hf_cigi3_3_symbol_line_definition_vertex_v[8],
10250 { "Vertex V 9 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v9",
10251 FT_FLOAT, BASE_DEC, NULL, 0x0,
10252 "Specifies the v position of the vertex", HFILL }
10254 { &hf_cigi3_3_symbol_line_definition_vertex_u[9],
10255 { "Vertex U 10 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u10",
10256 FT_FLOAT, BASE_DEC, NULL, 0x0,
10257 "Specifies the u position of the vertex", HFILL }
10259 { &hf_cigi3_3_symbol_line_definition_vertex_v[9],
10260 { "Vertex V 10 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v10",
10261 FT_FLOAT, BASE_DEC, NULL, 0x0,
10262 "Specifies the v position of the vertex", HFILL }
10264 { &hf_cigi3_3_symbol_line_definition_vertex_u[10],
10265 { "Vertex U 11 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u11",
10266 FT_FLOAT, BASE_DEC, NULL, 0x0,
10267 "Specifies the u position of the vertex", HFILL }
10269 { &hf_cigi3_3_symbol_line_definition_vertex_v[10],
10270 { "Vertex V 11 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v11",
10271 FT_FLOAT, BASE_DEC, NULL, 0x0,
10272 "Specifies the v position of the vertex", HFILL }
10274 { &hf_cigi3_3_symbol_line_definition_vertex_u[11],
10275 { "Vertex U 12 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u12",
10276 FT_FLOAT, BASE_DEC, NULL, 0x0,
10277 "Specifies the u position of the vertex", HFILL }
10279 { &hf_cigi3_3_symbol_line_definition_vertex_v[11],
10280 { "Vertex V 12 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v12",
10281 FT_FLOAT, BASE_DEC, NULL, 0x0,
10282 "Specifies the v position of the vertex", HFILL }
10284 { &hf_cigi3_3_symbol_line_definition_vertex_u[12],
10285 { "Vertex U 13 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u13",
10286 FT_FLOAT, BASE_DEC, NULL, 0x0,
10287 "Specifies the u position of the vertex", HFILL }
10289 { &hf_cigi3_3_symbol_line_definition_vertex_v[12],
10290 { "Vertex V 13 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v13",
10291 FT_FLOAT, BASE_DEC, NULL, 0x0,
10292 "Specifies the v position of the vertex", HFILL }
10294 { &hf_cigi3_3_symbol_line_definition_vertex_u[13],
10295 { "Vertex U 14 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u14",
10296 FT_FLOAT, BASE_DEC, NULL, 0x0,
10297 "Specifies the u position of the vertex", HFILL }
10299 { &hf_cigi3_3_symbol_line_definition_vertex_v[13],
10300 { "Vertex V 14 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v14",
10301 FT_FLOAT, BASE_DEC, NULL, 0x0,
10302 "Specifies the v position of the vertex", HFILL }
10304 { &hf_cigi3_3_symbol_line_definition_vertex_u[14],
10305 { "Vertex U 15 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u15",
10306 FT_FLOAT, BASE_DEC, NULL, 0x0,
10307 "Specifies the u position of the vertex", HFILL }
10309 { &hf_cigi3_3_symbol_line_definition_vertex_v[14],
10310 { "Vertex V 15 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v15",
10311 FT_FLOAT, BASE_DEC, NULL, 0x0,
10312 "Specifies the v position of the vertex", HFILL }
10314 { &hf_cigi3_3_symbol_line_definition_vertex_u[15],
10315 { "Vertex U 16 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u16",
10316 FT_FLOAT, BASE_DEC, NULL, 0x0,
10317 "Specifies the u position of the vertex", HFILL }
10319 { &hf_cigi3_3_symbol_line_definition_vertex_v[15],
10320 { "Vertex V 16 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v16",
10321 FT_FLOAT, BASE_DEC, NULL, 0x0,
10322 "Specifies the v position of the vertex", HFILL }
10324 { &hf_cigi3_3_symbol_line_definition_vertex_u[16],
10325 { "Vertex U 17 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u17",
10326 FT_FLOAT, BASE_DEC, NULL, 0x0,
10327 "Specifies the u position of the vertex", HFILL }
10329 { &hf_cigi3_3_symbol_line_definition_vertex_v[16],
10330 { "Vertex V 17 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v17",
10331 FT_FLOAT, BASE_DEC, NULL, 0x0,
10332 "Specifies the v position of the vertex", HFILL }
10334 { &hf_cigi3_3_symbol_line_definition_vertex_u[17],
10335 { "Vertex U 18 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u18",
10336 FT_FLOAT, BASE_DEC, NULL, 0x0,
10337 "Specifies the u position of the vertex", HFILL }
10339 { &hf_cigi3_3_symbol_line_definition_vertex_v[17],
10340 { "Vertex V 18 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v18",
10341 FT_FLOAT, BASE_DEC, NULL, 0x0,
10342 "Specifies the v position of the vertex", HFILL }
10344 { &hf_cigi3_3_symbol_line_definition_vertex_u[18],
10345 { "Vertex U 19 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u19",
10346 FT_FLOAT, BASE_DEC, NULL, 0x0,
10347 "Specifies the u position of the vertex", HFILL }
10349 { &hf_cigi3_3_symbol_line_definition_vertex_v[18],
10350 { "Vertex V 19 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v19",
10351 FT_FLOAT, BASE_DEC, NULL, 0x0,
10352 "Specifies the v position of the vertex", HFILL }
10354 { &hf_cigi3_3_symbol_line_definition_vertex_u[19],
10355 { "Vertex U 20 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u20",
10356 FT_FLOAT, BASE_DEC, NULL, 0x0,
10357 "Specifies the u position of the vertex", HFILL }
10359 { &hf_cigi3_3_symbol_line_definition_vertex_v[19],
10360 { "Vertex V 20 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v20",
10361 FT_FLOAT, BASE_DEC, NULL, 0x0,
10362 "Specifies the v position of the vertex", HFILL }
10364 { &hf_cigi3_3_symbol_line_definition_vertex_u[20],
10365 { "Vertex U 21 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u21",
10366 FT_FLOAT, BASE_DEC, NULL, 0x0,
10367 "Specifies the u position of the vertex", HFILL }
10369 { &hf_cigi3_3_symbol_line_definition_vertex_v[20],
10370 { "Vertex V 21 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v21",
10371 FT_FLOAT, BASE_DEC, NULL, 0x0,
10372 "Specifies the v position of the vertex", HFILL }
10374 { &hf_cigi3_3_symbol_line_definition_vertex_u[21],
10375 { "Vertex U 22 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u22",
10376 FT_FLOAT, BASE_DEC, NULL, 0x0,
10377 "Specifies the u position of the vertex", HFILL }
10379 { &hf_cigi3_3_symbol_line_definition_vertex_v[21],
10380 { "Vertex V 22 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v22",
10381 FT_FLOAT, BASE_DEC, NULL, 0x0,
10382 "Specifies the v position of the vertex", HFILL }
10384 { &hf_cigi3_3_symbol_line_definition_vertex_u[22],
10385 { "Vertex U 23 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u23",
10386 FT_FLOAT, BASE_DEC, NULL, 0x0,
10387 "Specifies the u position of the vertex", HFILL }
10389 { &hf_cigi3_3_symbol_line_definition_vertex_v[22],
10390 { "Vertex V 23 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v23",
10391 FT_FLOAT, BASE_DEC, NULL, 0x0,
10392 "Specifies the v position of the vertex", HFILL }
10394 { &hf_cigi3_3_symbol_line_definition_vertex_u[23],
10395 { "Vertex U 24 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u24",
10396 FT_FLOAT, BASE_DEC, NULL, 0x0,
10397 "Specifies the u position of the vertex", HFILL }
10399 { &hf_cigi3_3_symbol_line_definition_vertex_v[23],
10400 { "Vertex V 24 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v24",
10401 FT_FLOAT, BASE_DEC, NULL, 0x0,
10402 "Specifies the v position of the vertex", HFILL }
10404 { &hf_cigi3_3_symbol_line_definition_vertex_u[24],
10405 { "Vertex U 25 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u25",
10406 FT_FLOAT, BASE_DEC, NULL, 0x0,
10407 "Specifies the u position of the vertex", HFILL }
10409 { &hf_cigi3_3_symbol_line_definition_vertex_v[24],
10410 { "Vertex V 25 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v25",
10411 FT_FLOAT, BASE_DEC, NULL, 0x0,
10412 "Specifies the v position of the vertex", HFILL }
10414 { &hf_cigi3_3_symbol_line_definition_vertex_u[25],
10415 { "Vertex U 26 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u26",
10416 FT_FLOAT, BASE_DEC, NULL, 0x0,
10417 "Specifies the u position of the vertex", HFILL }
10419 { &hf_cigi3_3_symbol_line_definition_vertex_v[25],
10420 { "Vertex V 26 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v26",
10421 FT_FLOAT, BASE_DEC, NULL, 0x0,
10422 "Specifies the v position of the vertex", HFILL }
10424 { &hf_cigi3_3_symbol_line_definition_vertex_u[26],
10425 { "Vertex U 27 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u27",
10426 FT_FLOAT, BASE_DEC, NULL, 0x0,
10427 "Specifies the u position of the vertex", HFILL }
10429 { &hf_cigi3_3_symbol_line_definition_vertex_v[26],
10430 { "Vertex V 27 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v27",
10431 FT_FLOAT, BASE_DEC, NULL, 0x0,
10432 "Specifies the v position of the vertex", HFILL }
10434 { &hf_cigi3_3_symbol_line_definition_vertex_u[27],
10435 { "Vertex U 28 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u28",
10436 FT_FLOAT, BASE_DEC, NULL, 0x0,
10437 "Specifies the u position of the vertex", HFILL }
10439 { &hf_cigi3_3_symbol_line_definition_vertex_v[27],
10440 { "Vertex V 28 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v28",
10441 FT_FLOAT, BASE_DEC, NULL, 0x0,
10442 "Specifies the v position of the vertex", HFILL }
10444 { &hf_cigi3_3_symbol_line_definition_vertex_u[28],
10445 { "Vertex U 29 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u29",
10446 FT_FLOAT, BASE_DEC, NULL, 0x0,
10447 "Specifies the u position of the vertex", HFILL }
10449 { &hf_cigi3_3_symbol_line_definition_vertex_v[28],
10450 { "Vertex V 29 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v29",
10451 FT_FLOAT, BASE_DEC, NULL, 0x0,
10452 "Specifies the v position of the vertex", HFILL }
10455 /* CIGI3_3 Symbol Clone */
10456 { &hf_cigi3_3_symbol_clone,
10457 { "Symbol Surface Definition", "cigi.symbol_clone",
10458 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10459 "Symbol Clone Packet", HFILL }
10461 { &hf_cigi3_3_symbol_clone_symbol_id,
10462 { "Symbol ID", "cigi.symbol_clone.symbol_id",
10463 FT_UINT16, BASE_DEC, NULL, 0x0,
10464 "Specifies the identifier of the symbol that is being defined", HFILL }
10466 { &hf_cigi3_3_symbol_clone_source_type,
10467 { "Source Type", "cigi.symbol_clone.source_type",
10468 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_clone_source_type_tfs), 0x04,
10469 "Identifies the source as an existing symbol or symbol template", HFILL }
10471 { &hf_cigi3_3_symbol_clone_source_id,
10472 { "Source ID", "cigi.symbol_clone.source_id",
10473 FT_UINT16, BASE_DEC, NULL, 0x0,
10474 "Identifies the symbol to copy or template to instantiate", HFILL }
10477 /* CIGI3_3 Symbol Control */
10478 { &hf_cigi3_3_symbol_control,
10479 { "Symbol Control", "cigi.symbol_control",
10480 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10481 "Symbol Control Packet", HFILL }
10483 { &hf_cigi3_3_symbol_control_symbol_id,
10484 { "Symbol ID", "cigi.symbol_control.symbol_id",
10485 FT_UINT16, BASE_DEC, NULL, 0x0,
10486 "Specifies the symbol to which this packet is applied", HFILL }
10488 { &hf_cigi3_3_symbol_control_symbol_state,
10489 { "Symbol State", "cigi.symbol_control.symbol_state",
10490 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_control_symbol_state_vals), 0x03,
10491 "Specifies whether the symbol should be hidden, visible, or destroyed", HFILL }
10493 { &hf_cigi3_3_symbol_control_attach_state,
10494 { "Attach State", "cigi.symbol_control.attach_state",
10495 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_attach_state_tfs), 0x04,
10496 "Specifies whether this symbol should be attached to another", HFILL }
10498 { &hf_cigi3_3_symbol_control_flash_control,
10499 { "Flash Control", "cigi.symbol_control.flash_control",
10500 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_flash_control_tfs), 0x08,
10501 "Specifies whether the flash cycle is continued or restarted", HFILL }
10503 { &hf_cigi3_3_symbol_control_inherit_color,
10504 { "Inherit Color", "cigi.symbol_control.inherit_color",
10505 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
10506 "Specifies whether the symbol inherits color from a parent symbol", HFILL }
10508 { &hf_cigi3_3_symbol_control_parent_symbol_ident,
10509 { "Parent Symbol ID", "cigi.symbol_control.parent_symbol_id",
10510 FT_UINT16, BASE_DEC, NULL, 0x0,
10511 "Specifies the parent for the symbol", HFILL }
10513 { &hf_cigi3_3_symbol_control_surface_ident,
10514 { "Surface ID", "cigi.symbol_control.surface_id",
10515 FT_UINT16, BASE_DEC, NULL, 0x0,
10516 "Specifies the symbol surface for the symbol", HFILL }
10518 { &hf_cigi3_3_symbol_control_layer,
10519 { "Layer", "cigi.symbol_control.layer",
10520 FT_UINT8, BASE_DEC, NULL, 0x0,
10521 "Specifies the layer for the symbol", HFILL }
10523 { &hf_cigi3_3_symbol_control_flash_duty_cycle,
10524 { "Flash Duty Cycle (%)", "cigi.symbol_control.flash_duty_cycle",
10525 FT_UINT8, BASE_DEC, NULL, 0x0,
10526 "Specifies the duty cycle for a flashing symbol", HFILL }
10528 { &hf_cigi3_3_symbol_control_flash_period,
10529 { "Flash Period (seconds)", "cigi.symbol_control.flash_period",
10530 FT_FLOAT, BASE_DEC, NULL, 0x0,
10531 "Specifies the duration of a single flash cycle", HFILL }
10533 { &hf_cigi3_3_symbol_control_position_u,
10534 { "Position U (scaled symbol surface units)", "cigi.symbol_control.position_u",
10535 FT_FLOAT, BASE_DEC, NULL, 0x0,
10536 "Specifies the u position", HFILL }
10538 { &hf_cigi3_3_symbol_control_position_v,
10539 { "Position V (scaled symbol surface units)", "cigi.symbol_control.position_v",
10540 FT_FLOAT, BASE_DEC, NULL, 0x0,
10541 "Specifies the v position", HFILL }
10543 { &hf_cigi3_3_symbol_control_rotation,
10544 { "Rotation (degrees)", "cigi.symbol_control.rotation",
10545 FT_FLOAT, BASE_DEC, NULL, 0x0,
10546 "Specifies the rotation", HFILL }
10548 { &hf_cigi3_3_symbol_control_red,
10549 { "Red", "cigi.symbol_control.red",
10550 FT_UINT8, BASE_DEC, NULL, 0x0,
10551 "Specifies the red color component", HFILL }
10553 { &hf_cigi3_3_symbol_control_green,
10554 { "Green", "cigi.symbol_control.green",
10555 FT_UINT8, BASE_DEC, NULL, 0x0,
10556 "Specifies the green color component", HFILL }
10558 { &hf_cigi3_3_symbol_control_blue,
10559 { "Blue", "cigi.symbol_control.blue",
10560 FT_UINT8, BASE_DEC, NULL, 0x0,
10561 "Specifies the blue color component", HFILL }
10563 { &hf_cigi3_3_symbol_control_alpha,
10564 { "Alpha", "cigi.symbol_control.alpha",
10565 FT_UINT8, BASE_DEC, NULL, 0x0,
10566 "Specifies the alpha color component", HFILL }
10568 { &hf_cigi3_3_symbol_control_scale_u,
10569 { "Scale U", "cigi.symbol_control.scale_u",
10570 FT_FLOAT, BASE_DEC, NULL, 0x0,
10571 "Specifies the u scaling factor", HFILL }
10573 { &hf_cigi3_3_symbol_control_scale_v,
10574 { "Scale V", "cigi.symbol_control.scale_v",
10575 FT_FLOAT, BASE_DEC, NULL, 0x0,
10576 "Specifies the v scaling factor", HFILL }
10579 /* CIGI3_3 Short Symbol Control */
10580 { &hf_cigi3_3_short_symbol_control,
10581 { "Short Symbol Control", "cigi.short_symbol_control",
10582 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10583 "Short Symbol Control Packet", HFILL }
10585 { &hf_cigi3_3_short_symbol_control_symbol_id,
10586 { "Symbol ID", "cigi.short_symbol_control.symbol_id",
10587 FT_UINT16, BASE_DEC, NULL, 0x0,
10588 "Specifies the symbol to which this packet is applied", HFILL }
10590 { &hf_cigi3_3_short_symbol_control_symbol_state,
10591 { "Symbol State", "cigi.short_symbol_control.symbol_state",
10592 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_control_symbol_state_vals), 0x03,
10593 "Specifies whether the symbol should be hidden, visible, or destroyed", HFILL }
10595 { &hf_cigi3_3_short_symbol_control_attach_state,
10596 { "Atach State", "cigi.short_symbol_control.attach_state",
10597 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_attach_state_tfs), 0x04,
10598 "Specifies whether this symbol should be attached to another", HFILL }
10600 { &hf_cigi3_3_short_symbol_control_flash_control,
10601 { "Flash Control", "cigi.short_symbol_control.flash_control",
10602 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_flash_control_tfs), 0x08,
10603 "Specifies whether the flash cycle is continued or restarted", HFILL }
10605 { &hf_cigi3_3_short_symbol_control_inherit_color,
10606 { "Inherit Color", "cigi.short_symbol_control.inherit_color",
10607 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
10608 "Specifies whether the symbol inherits color from a parent symbol", HFILL }
10610 { &hf_cigi3_3_short_symbol_control_attribute_select1,
10611 { "Attribute Select 1", "cigi.short_symbol_control.attribute_select1",
10612 FT_UINT8, BASE_DEC, VALS(cigi3_3_short_symbol_control_attribute_select_vals), 0x0,
10613 "Identifies the attribute whose value is specified in Attribute Value 1", HFILL }
10615 { &hf_cigi3_3_short_symbol_control_attribute_select2,
10616 { "Attribute Select 2", "cigi.short_symbol_control.attribute_select2",
10617 FT_UINT8, BASE_DEC, VALS(cigi3_3_short_symbol_control_attribute_select_vals), 0x0,
10618 "Identifies the attribute whose value is specified in Attribute Value 2", HFILL }
10620 { &hf_cigi3_3_short_symbol_control_attribute_value1,
10621 { "Value 1", "cigi.short_symbol_control.value1",
10622 FT_UINT32, BASE_DEC, NULL, 0x0,
10623 "Specifies the value for attribute 1", HFILL }
10625 { &hf_cigi3_3_short_symbol_control_attribute_value2,
10626 { "Value 2", "cigi.short_symbol_control.value2",
10627 FT_UINT32, BASE_DEC, NULL, 0x0,
10628 "Specifies the value for attribute 2", HFILL }
10630 { &hf_cigi3_3_short_symbol_control_attribute_value1f,
10631 { "Value 1", "cigi.short_symbol_control.value1",
10632 FT_FLOAT, BASE_DEC, NULL, 0x0,
10633 "Specifies the value for attribute 1", HFILL }
10635 { &hf_cigi3_3_short_symbol_control_attribute_value2f,
10636 { "Value 2", "cigi.short_symbol_control.value2",
10637 FT_FLOAT, BASE_DEC, NULL, 0x0,
10638 "Specifies the value for attribute 2", HFILL }
10640 { &hf_cigi3_3_short_symbol_control_red1,
10641 { "Red 1", "cigi.short_symbol_control.red1",
10642 FT_UINT8, BASE_DEC, NULL, 0x0,
10643 "Specifies the red color component", HFILL }
10645 { &hf_cigi3_3_short_symbol_control_green1,
10646 { "Green 1", "cigi.short_symbol_control.green1",
10647 FT_UINT8, BASE_DEC, NULL, 0x0,
10648 "Specifies the green color component", HFILL }
10650 { &hf_cigi3_3_short_symbol_control_blue1,
10651 { "Blue 1", "cigi.short_symbol_control.blue1",
10652 FT_UINT8, BASE_DEC, NULL, 0x0,
10653 "Specifies the blue color component", HFILL }
10655 { &hf_cigi3_3_short_symbol_control_alpha1,
10656 { "Alpha 1", "cigi.short_symbol_control.alpha1",
10657 FT_UINT8, BASE_DEC, NULL, 0x0,
10658 "Specifies the alpha color component", HFILL }
10660 { &hf_cigi3_3_short_symbol_control_red2,
10661 { "Red 2", "cigi.short_symbol_control.red2",
10662 FT_UINT8, BASE_DEC, NULL, 0x0,
10663 "Specifies the red color component", HFILL }
10665 { &hf_cigi3_3_short_symbol_control_green2,
10666 { "Green 2", "cigi.short_symbol_control.green2",
10667 FT_UINT8, BASE_DEC, NULL, 0x0,
10668 "Specifies the green color component", HFILL }
10670 { &hf_cigi3_3_short_symbol_control_blue2,
10671 { "Blue 2", "cigi.short_symbol_control.blue2",
10672 FT_UINT8, BASE_DEC, NULL, 0x0,
10673 "Specifies the blue color component", HFILL }
10675 { &hf_cigi3_3_short_symbol_control_alpha2,
10676 { "Alpha 2", "cigi.short_symbol_control.alpha2",
10677 FT_UINT8, BASE_DEC, NULL, 0x0,
10678 "Specifies the alpha color component", HFILL }
10681 /* CIGI2 Start of Frame */
10682 { &hf_cigi2_start_of_frame,
10683 { "Start of Frame", "cigi.sof",
10684 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10685 "Start of Frame Packet", HFILL }
10687 { &hf_cigi2_start_of_frame_db_number,
10688 { "Database Number", "cigi.sof.db_number",
10689 FT_INT8, BASE_DEC, NULL, 0x0,
10690 "Indicates load status of the requested database", HFILL }
10692 { &hf_cigi2_start_of_frame_ig_status_code,
10693 { "IG Status Code", "cigi.sof.ig_status_code",
10694 FT_UINT8, BASE_DEC, NULL, 0x0,
10695 "Indicates the operational status of the IG", HFILL }
10697 { &hf_cigi2_start_of_frame_ig_mode,
10698 { "IG Mode", "cigi.sof.ig_mode",
10699 FT_UINT8, BASE_DEC, VALS(cigi2_start_of_frame_ig_mode_vals), 0xc0,
10700 "Identifies to the host the current operating mode of the IG", HFILL }
10702 { &hf_cigi2_start_of_frame_frame_ctr,
10703 { "IG to Host Frame Counter", "cigi.sof.frame_ctr",
10704 FT_UINT32, BASE_DEC, NULL, 0x0,
10705 "Contains a number representing a particular frame", HFILL }
10707 { &hf_cigi2_start_of_frame_time_tag,
10708 { "Timing Value (microseconds)", "cigi.sof.time_tag",
10709 FT_FLOAT, BASE_DEC, NULL, 0x0,
10710 "Contains a timing value that is used to time-tag the ethernet message during asynchronous operation", HFILL }
10713 /* CIGI3 Start of Frame */
10714 { &hf_cigi3_start_of_frame,
10715 { "Start of Frame", "cigi.sof",
10716 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10717 "Start of Frame Packet", HFILL }
10719 { &hf_cigi3_start_of_frame_db_number,
10720 { "Database Number", "cigi.sof.db_number",
10721 FT_INT8, BASE_DEC, NULL, 0x0,
10722 "Indicates to the Host which database is currently in use and if that database is being loaded into primary memory", HFILL }
10724 { &hf_cigi3_start_of_frame_ig_status,
10725 { "IG Status Code", "cigi.sof.ig_status",
10726 FT_UINT8, BASE_DEC, NULL, 0x0,
10727 "Indicates the error status of the IG", HFILL }
10729 { &hf_cigi3_start_of_frame_ig_mode,
10730 { "IG Mode", "cigi.sof.ig_mode",
10731 FT_UINT8, BASE_DEC, VALS(cigi3_start_of_frame_ig_mode_vals), 0x03,
10732 "Indicates the current IG mode", HFILL }
10734 { &hf_cigi3_start_of_frame_timestamp_valid,
10735 { "Timestamp Valid", "cigi.sof.timestamp_valid",
10736 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
10737 "Indicates whether the Timestamp parameter contains a valid value", HFILL }
10739 { &hf_cigi3_start_of_frame_earth_reference_model,
10740 { "Earth Reference Model", "cigi.sof.earth_reference_model",
10741 FT_BOOLEAN, 8, TFS(&cigi3_start_of_frame_earth_reference_model_tfs), 0x08,
10742 "Indicates whether the IG is using a custom Earth Reference Model or the default WGS 84 reference ellipsoid for coordinate conversion calculations", HFILL }
10744 { &hf_cigi3_start_of_frame_frame_ctr,
10745 { "Frame Counter", "cigi.sof.frame_ctr",
10746 FT_UINT32, BASE_DEC, NULL, 0x0,
10747 "Contains a number that identifies the frame", HFILL }
10749 { &hf_cigi3_start_of_frame_timestamp,
10750 { "Timestamp (microseconds)", "cigi.sof.timestamp",
10751 FT_UINT32, BASE_DEC, NULL, 0x0,
10752 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
10755 /* CIGI3_2 Start of Frame */
10756 { &hf_cigi3_2_start_of_frame,
10757 { "Start of Frame", "cigi.sof",
10758 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10759 "Start of Frame Packet", HFILL }
10761 { &hf_cigi3_2_start_of_frame_db_number,
10762 { "Database Number", "cigi.sof.db_number",
10763 FT_INT8, BASE_DEC, NULL, 0x0,
10764 "Indicates to the Host which database is currently in use and if that database is being loaded into primary memory", HFILL }
10766 { &hf_cigi3_2_start_of_frame_ig_status,
10767 { "IG Status Code", "cigi.sof.ig_status",
10768 FT_UINT8, BASE_DEC, NULL, 0x0,
10769 "Indicates the error status of the IG", HFILL }
10771 { &hf_cigi3_2_start_of_frame_ig_mode,
10772 { "IG Mode", "cigi.sof.ig_mode",
10773 FT_UINT8, BASE_DEC, VALS(cigi3_2_start_of_frame_ig_mode_vals), 0x03,
10774 "Indicates the current IG mode", HFILL }
10776 { &hf_cigi3_2_start_of_frame_timestamp_valid,
10777 { "Timestamp Valid", "cigi.sof.timestamp_valid",
10778 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
10779 "Indicates whether the Timestamp parameter contains a valid value", HFILL }
10781 { &hf_cigi3_2_start_of_frame_earth_reference_model,
10782 { "Earth Reference Model", "cigi.sof.earth_reference_model",
10783 FT_BOOLEAN, 8, TFS(&cigi3_2_start_of_frame_earth_reference_model_tfs), 0x08,
10784 "Indicates whether the IG is using a custom Earth Reference Model or the default WGS 84 reference ellipsoid for coordinate conversion calculations", HFILL }
10786 { &hf_cigi3_2_start_of_frame_ig_frame_number,
10787 { "IG Frame Number", "cigi.sof.ig_frame_number",
10788 FT_UINT32, BASE_DEC, NULL, 0x0,
10789 "Uniquely identifies the IG data frame", HFILL }
10791 { &hf_cigi3_2_start_of_frame_timestamp,
10792 { "Timestamp (microseconds)", "cigi.sof.timestamp",
10793 FT_UINT32, BASE_DEC, NULL, 0x0,
10794 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
10796 { &hf_cigi3_2_start_of_frame_last_host_frame_number,
10797 { "Last Host Frane Number", "cigi.sof.last_host_frame_number",
10798 FT_UINT32, BASE_DEC, NULL, 0x0,
10799 "Contains the value of the Host Frame parameter in the last IG Control packet received from the Host.", HFILL }
10802 /* CIGI2 Height Above Terrain Response */
10803 { &hf_cigi2_height_above_terrain_response,
10804 { "Height Above Terrain Response", "cigi.hat_response",
10805 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10806 "Height Above Terrain Response Packet", HFILL }
10808 { &hf_cigi2_height_above_terrain_response_hat_id,
10809 { "HAT ID", "cigi.hat_response.hat_id",
10810 FT_UINT16, BASE_DEC, NULL, 0x0,
10811 "Identifies the HAT response", HFILL }
10813 { &hf_cigi2_height_above_terrain_response_valid,
10814 { "Valid", "cigi.hat_response.valid",
10815 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80,
10816 "Indicates whether the response is valid or invalid", HFILL }
10818 { &hf_cigi2_height_above_terrain_response_material_type,
10819 { "Material Type", "cigi.hat_response.material_type",
10820 FT_INT32, BASE_DEC, NULL, 0x0,
10821 "Specifies the material type of the object intersected by the HAT test vector", HFILL }
10823 { &hf_cigi2_height_above_terrain_response_alt,
10824 { "Altitude (m)", "cigi.hat_response.alt",
10825 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10826 "Represents the altitude above or below the terrain for the position requested", HFILL }
10829 /* CIGI3 HAT/HOT Response */
10830 { &hf_cigi3_hat_hot_response,
10831 { "HAT/HOT Response", "cigi.hat_hot_response",
10832 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10833 "HAT/HOT Response Packet", HFILL }
10835 { &hf_cigi3_hat_hot_response_hat_hot_id,
10836 { "HAT/HOT ID", "cigi.hat_hot_response.hat_hot_id",
10837 FT_UINT16, BASE_DEC, NULL, 0x0,
10838 "Identifies the HAT or HOT response", HFILL }
10840 { &hf_cigi3_hat_hot_response_valid,
10841 { "Valid", "cigi.hat_hot_response.valid",
10842 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10843 "Indicates whether the Height parameter contains a valid number", HFILL }
10845 { &hf_cigi3_hat_hot_response_type,
10846 { "Response Type", "cigi.hat_hot_response.type",
10847 FT_BOOLEAN, 8, TFS(&cigi3_hat_hot_response_type_tfs), 0x02,
10848 "Indicates whether the Height parameter represent Height Above Terrain or Height Of Terrain", HFILL }
10850 { &hf_cigi3_hat_hot_response_height,
10851 { "Height", "cigi.hat_hot_response.height",
10852 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10853 "Contains the requested height", HFILL }
10856 /* CIGI3_2 HAT/HOT Response */
10857 { &hf_cigi3_2_hat_hot_response,
10858 { "HAT/HOT Response", "cigi.hat_hot_response",
10859 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10860 "HAT/HOT Response Packet", HFILL }
10862 { &hf_cigi3_2_hat_hot_response_hat_hot_id,
10863 { "HAT/HOT ID", "cigi.hat_hot_response.hat_hot_id",
10864 FT_UINT16, BASE_DEC, NULL, 0x0,
10865 "Identifies the HAT or HOT response", HFILL }
10867 { &hf_cigi3_2_hat_hot_response_valid,
10868 { "Valid", "cigi.hat_hot_response.valid",
10869 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10870 "Indicates whether the Height parameter contains a valid number", HFILL }
10872 { &hf_cigi3_2_hat_hot_response_type,
10873 { "Response Type", "cigi.hat_hot_response.type",
10874 FT_BOOLEAN, 8, TFS(&cigi3_2_hat_hot_response_type_tfs), 0x02,
10875 "Indicates whether the Height parameter represent Height Above Terrain or Height Of Terrain", HFILL }
10877 { &hf_cigi3_2_hat_hot_response_host_frame_number_lsn,
10878 { "Host Frame Number LSN", "cigi.hat_hot_response.host_frame_number_lsn",
10879 FT_UINT8, BASE_DEC, NULL, 0xf0,
10880 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
10882 { &hf_cigi3_2_hat_hot_response_height,
10883 { "Height", "cigi.hat_hot_response.height",
10884 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10885 "Contains the requested height", HFILL }
10888 /* CIGI3 HAT/HOT Extended Response */
10889 { &hf_cigi3_hat_hot_extended_response,
10890 { "HAT/HOT Extended Response", "cigi.hat_hot_ext_response",
10891 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10892 "HAT/HOT Extended Response Packet", HFILL }
10894 { &hf_cigi3_hat_hot_extended_response_hat_hot_id,
10895 { "HAT/HOT ID", "cigi.hat_hot_ext_response.hat_hot_id",
10896 FT_UINT16, BASE_DEC, NULL, 0x0,
10897 "Identifies the HAT/HOT response", HFILL }
10899 { &hf_cigi3_hat_hot_extended_response_valid,
10900 { "Valid", "cigi.hat_hot_ext_response.valid",
10901 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10902 "Indicates whether the remaining parameters in this packet contain valid numbers", HFILL }
10904 { &hf_cigi3_hat_hot_extended_response_hat,
10905 { "HAT", "cigi.hat_hot_ext_response.hat",
10906 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10907 "Indicates the height of the test point above the terrain", HFILL }
10909 { &hf_cigi3_hat_hot_extended_response_hot,
10910 { "HOT", "cigi.hat_hot_ext_response.hot",
10911 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10912 "Indicates the height of terrain above or below the test point", HFILL }
10914 { &hf_cigi3_hat_hot_extended_response_material_code,
10915 { "Material Code", "cigi.hat_hot_ext_response.material_code",
10916 FT_UINT32, BASE_DEC, NULL, 0x0,
10917 "Indicates the material code of the terrain surface at the point of intersection with the HAT/HOT test vector", HFILL }
10919 { &hf_cigi3_hat_hot_extended_response_normal_vector_azimuth,
10920 { "Normal Vector Azimuth (degrees)", "cigi.hat_hot_ext_response.normal_vector_azimuth",
10921 FT_FLOAT, BASE_DEC, NULL, 0x0,
10922 "Indicates the azimuth of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10924 { &hf_cigi3_hat_hot_extended_response_normal_vector_elevation,
10925 { "Normal Vector Elevation (degrees)", "cigi.hat_hot_ext_response.normal_vector_elevation",
10926 FT_FLOAT, BASE_DEC, NULL, 0x0,
10927 "Indicates the elevation of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10930 /* CIGI3_2 HAT/HOT Extended Response */
10931 { &hf_cigi3_2_hat_hot_extended_response,
10932 { "HAT/HOT Extended Response", "cigi.hat_hot_ext_response",
10933 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10934 "HAT/HOT Extended Response Packet", HFILL }
10936 { &hf_cigi3_2_hat_hot_extended_response_hat_hot_id,
10937 { "HAT/HOT ID", "cigi.hat_hot_ext_response.hat_hot_id",
10938 FT_UINT16, BASE_DEC, NULL, 0x0,
10939 "Identifies the HAT/HOT response", HFILL }
10941 { &hf_cigi3_2_hat_hot_extended_response_valid,
10942 { "Valid", "cigi.hat_hot_ext_response.valid",
10943 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10944 "Indicates whether the remaining parameters in this packet contain valid numbers", HFILL }
10946 { &hf_cigi3_2_hat_hot_extended_response_host_frame_number_lsn,
10947 { "Host Frame Number LSN", "cigi.hat_hot_ext_response.host_frame_number_lsn",
10948 FT_UINT8, BASE_DEC, NULL, 0xf0,
10949 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
10951 { &hf_cigi3_2_hat_hot_extended_response_hat,
10952 { "HAT", "cigi.hat_hot_ext_response.hat",
10953 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10954 "Indicates the height of the test point above the terrain", HFILL }
10956 { &hf_cigi3_2_hat_hot_extended_response_hot,
10957 { "HOT", "cigi.hat_hot_ext_response.hot",
10958 FT_DOUBLE, BASE_DEC, NULL, 0x0,
10959 "Indicates the height of terrain above or below the test point", HFILL }
10961 { &hf_cigi3_2_hat_hot_extended_response_material_code,
10962 { "Material Code", "cigi.hat_hot_ext_response.material_code",
10963 FT_UINT32, BASE_DEC, NULL, 0x0,
10964 "Indicates the material code of the terrain surface at the point of intersection with the HAT/HOT test vector", HFILL }
10966 { &hf_cigi3_2_hat_hot_extended_response_normal_vector_azimuth,
10967 { "Normal Vector Azimuth (degrees)", "cigi.hat_hot_ext_response.normal_vector_azimuth",
10968 FT_FLOAT, BASE_DEC, NULL, 0x0,
10969 "Indicates the azimuth of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10971 { &hf_cigi3_2_hat_hot_extended_response_normal_vector_elevation,
10972 { "Normal Vector Elevation (degrees)", "cigi.hat_hot_ext_response.normal_vector_elevation",
10973 FT_FLOAT, BASE_DEC, NULL, 0x0,
10974 "Indicates the elevation of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10977 /* CIGI2 Line of Sight Response */
10978 { &hf_cigi2_line_of_sight_response,
10979 { "Line of Sight Response", "cigi.los_response",
10980 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10981 "Line of Sight Response Packet", HFILL }
10983 { &hf_cigi2_line_of_sight_response_los_id,
10984 { "LOS ID", "cigi.los_response.los_id",
10985 FT_UINT16, BASE_DEC, NULL, 0x0,
10986 "Identifies the LOS response corresponding tot he associated LOS request", HFILL }
10988 { &hf_cigi2_line_of_sight_response_valid,
10989 { "Valid", "cigi.los_response.valid",
10990 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80,
10991 "Indicates whether the response is valid or invalid", HFILL }
10993 { &hf_cigi2_line_of_sight_response_occult_response,
10994 { "Occult Response", "cigi.los_response.occult_response",
10995 FT_BOOLEAN, 8, TFS(&cigi2_line_of_sight_occult_response_tfs), 0x40,
10996 "Used to respond to the LOS occult request data packet", HFILL }
10998 { &hf_cigi2_line_of_sight_response_material_type,
10999 { "Material Type", "cigi.los_response.material_type",
11000 FT_INT32, BASE_DEC, NULL, 0x0,
11001 "Specifies the material type of the object intersected by the LOS test segment", HFILL }
11003 { &hf_cigi2_line_of_sight_response_range,
11004 { "Range (m)", "cigi.los_response.range",
11005 FT_FLOAT, BASE_DEC, NULL, 0x0,
11006 "Used to respond to the Line of Sight Range Request data packet", HFILL }
11008 { &hf_cigi2_line_of_sight_response_alt,
11009 { "Intersection Altitude (m)", "cigi.los_response.alt",
11010 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11011 "Specifies the altitude of the point of intersection of the LOS request vector with an object", HFILL }
11013 { &hf_cigi2_line_of_sight_response_lat,
11014 { "Intersection Latitude (degrees)", "cigi.los_response.lat",
11015 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11016 "Specifies the latitudinal position of the intersection point of the LOS request vector with an object", HFILL }
11018 { &hf_cigi2_line_of_sight_response_lon,
11019 { "Intersection Longitude (degrees)", "cigi.los_response.lon",
11020 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11021 "Specifies the longitudinal position of the intersection point of the LOS request vector with an object", HFILL }
11024 /* CIGI3 Line of Sight Response */
11025 { &hf_cigi3_line_of_sight_response,
11026 { "Line of Sight Response", "cigi.los_response",
11027 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11028 "Line of Sight Response Packet", HFILL }
11030 { &hf_cigi3_line_of_sight_response_los_id,
11031 { "LOS ID", "cigi.los_response.los_id",
11032 FT_UINT16, BASE_DEC, NULL, 0x0,
11033 "Identifies the LOS response", HFILL }
11035 { &hf_cigi3_line_of_sight_response_valid,
11036 { "Valid", "cigi.los_response.valid",
11037 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11038 "Indicates whether the Range parameter is valid", HFILL }
11040 { &hf_cigi3_line_of_sight_response_entity_id_valid,
11041 { "Entity ID Valid", "cigi.los_response.entity_id_valid",
11042 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11043 "Indicates whether the LOS test vector or segment intersects with an entity or a non-entity", HFILL }
11045 { &hf_cigi3_line_of_sight_response_visible,
11046 { "Visible", "cigi.los_response.visible",
11047 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_response_visible_tfs), 0x04,
11048 "Indicates whether the destination point is visible from the source point", HFILL }
11050 { &hf_cigi3_line_of_sight_response_count,
11051 { "Response Count", "cigi.los_response.count",
11052 FT_UINT8, BASE_DEC, NULL, 0x0,
11053 "Indicates the total number of Line of Sight Response packets the IG will return for the corresponding request", HFILL }
11055 { &hf_cigi3_line_of_sight_response_entity_id,
11056 { "Entity ID", "cigi.los_response.entity_id",
11057 FT_UINT16, BASE_DEC, NULL, 0x0,
11058 "Indicates the entity with which an LOS test vector or segment intersects", HFILL }
11060 { &hf_cigi3_line_of_sight_response_range,
11061 { "Range (m)", "cigi.los_response.range",
11062 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11063 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with a polygon surface", HFILL }
11066 /* CIGI3_2 Line of Sight Response */
11067 { &hf_cigi3_2_line_of_sight_response,
11068 { "Line of Sight Response", "cigi.los_response",
11069 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11070 "Line of Sight Response Packet", HFILL }
11072 { &hf_cigi3_2_line_of_sight_response_los_id,
11073 { "LOS ID", "cigi.los_response.los_id",
11074 FT_UINT16, BASE_DEC, NULL, 0x0,
11075 "Identifies the LOS response", HFILL }
11077 { &hf_cigi3_2_line_of_sight_response_valid,
11078 { "Valid", "cigi.los_response.valid",
11079 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11080 "Indicates whether the Range parameter is valid", HFILL }
11082 { &hf_cigi3_2_line_of_sight_response_entity_id_valid,
11083 { "Entity ID Valid", "cigi.los_response.entity_id_valid",
11084 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11085 "Indicates whether the LOS test vector or segment intersects with an entity or a non-entity", HFILL }
11087 { &hf_cigi3_2_line_of_sight_response_visible,
11088 { "Visible", "cigi.los_response.visible",
11089 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_response_visible_tfs), 0x04,
11090 "Indicates whether the destination point is visible from the source point", HFILL }
11092 { &hf_cigi3_2_line_of_sight_response_host_frame_number_lsn,
11093 { "Host Frame Number LSN", "cigi.los_response.host_frame_number_lsn",
11094 FT_UINT8, BASE_DEC, NULL, 0xf0,
11095 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
11097 { &hf_cigi3_2_line_of_sight_response_count,
11098 { "Response Count", "cigi.los_response.count",
11099 FT_UINT8, BASE_DEC, NULL, 0x0,
11100 "Indicates the total number of Line of Sight Response packets the IG will return for the corresponding request", HFILL }
11102 { &hf_cigi3_2_line_of_sight_response_entity_id,
11103 { "Entity ID", "cigi.los_response.entity_id",
11104 FT_UINT16, BASE_DEC, NULL, 0x0,
11105 "Indicates the entity with which an LOS test vector or segment intersects", HFILL }
11107 { &hf_cigi3_2_line_of_sight_response_range,
11108 { "Range (m)", "cigi.los_response.range",
11109 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11110 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with a polygon surface", HFILL }
11113 /* CIGI3 Line of Sight Extended Response */
11114 { &hf_cigi3_line_of_sight_extended_response,
11115 { "Line of Sight Extended Response", "cigi.los_ext_response",
11116 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11117 "Line of Sight Extended Response Packet", HFILL }
11119 { &hf_cigi3_line_of_sight_extended_response_los_id,
11120 { "LOS ID", "cigi.los_ext_response.los_id",
11121 FT_UINT16, BASE_DEC, NULL, 0x0,
11122 "Identifies the LOS response", HFILL }
11124 { &hf_cigi3_line_of_sight_extended_response_valid,
11125 { "Valid", "cigi.los_ext_response.valid",
11126 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11127 "Indicates whether this packet contains valid data", HFILL }
11129 { &hf_cigi3_line_of_sight_extended_response_entity_id_valid,
11130 { "Entity ID Valid", "cigi.los_ext_response.entity_id_valid",
11131 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11132 "Indicates whether the LOS test vector or segment intersects with an entity", HFILL }
11134 { &hf_cigi3_line_of_sight_extended_response_range_valid,
11135 { "Range Valid", "cigi.los_ext_response.range_valid",
11136 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
11137 "Indicates whether the Range parameter is valid", HFILL }
11139 { &hf_cigi3_line_of_sight_extended_response_visible,
11140 { "Visible", "cigi.los_ext_response.visible",
11141 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_extended_response_visible_tfs), 0x08,
11142 "Indicates whether the destination point is visible from the source point", HFILL }
11144 { &hf_cigi3_line_of_sight_extended_response_intersection_coord,
11145 { "Intersection Point Coordinate System", "cigi.los_ext_response.intersection_coord",
11146 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_extended_response_intersection_coord_tfs), 0x10,
11147 "Indicates the coordinate system relative to which the intersection point is specified", HFILL }
11149 { &hf_cigi3_line_of_sight_extended_response_response_count,
11150 { "Response Count", "cigi.los_ext_response.response_count",
11151 FT_UINT8, BASE_DEC, NULL, 0x0,
11152 "Indicates the total number of Line of Sight Extended Response packets the IG will return for the corresponding request", HFILL }
11154 { &hf_cigi3_line_of_sight_extended_response_entity_id,
11155 { "Entity ID", "cigi.los_ext_response.entity_id",
11156 FT_UINT16, BASE_DEC, NULL, 0x0,
11157 "Indicates the entity with which a LOS test vector or segment intersects", HFILL }
11159 { &hf_cigi3_line_of_sight_extended_response_range,
11160 { "Range (m)", "cigi.los_ext_response.range",
11161 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11162 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with an object", HFILL }
11164 { &hf_cigi3_line_of_sight_extended_response_lat_xoff,
11165 { "Latitude (degrees)/X Offset (m)", "cigi.los_ext_response.lat_xoff",
11166 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11167 "Indicates the geodetic latitude of the point of intersection along the LOS test segment or vector or specifies the offset of the point of intersection of the LOS test segment or vector along the intersected entity's X axis", HFILL }
11169 { &hf_cigi3_line_of_sight_extended_response_lon_yoff,
11170 { "Longitude (degrees)/Y Offset (m)", "cigi.los_ext_response.lon_yoff",
11171 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11172 "Indicates the geodetic longitude of the point of intersection along the LOS test segment or vector or specifies the offset of the point of intersection of the LOS test segment or vector along the intersected entity's Y axis", HFILL }
11174 { &hf_cigi3_line_of_sight_extended_response_alt_zoff,
11175 { "Altitude (m)/Z Offset(m)", "cigi.los_ext_response.alt_zoff",
11176 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11177 "Indicates the geodetic altitude of the point of intersection along the LOS test segment or vector or specifies the offset of the point of intersection of the LOS test segment or vector along the intersected entity's Z axis", HFILL }
11179 { &hf_cigi3_line_of_sight_extended_response_red,
11180 { "Red", "cigi.los_ext_response.red",
11181 FT_UINT8, BASE_DEC, NULL, 0x0,
11182 "Indicates the red color component of the surface at the point of intersection", HFILL }
11184 { &hf_cigi3_line_of_sight_extended_response_green,
11185 { "Green", "cigi.los_ext_response.green",
11186 FT_UINT8, BASE_DEC, NULL, 0x0,
11187 "Indicates the green color component of the surface at the point of intersection", HFILL }
11189 { &hf_cigi3_line_of_sight_extended_response_blue,
11190 { "Blue", "cigi.los_ext_response.blue",
11191 FT_UINT8, BASE_DEC, NULL, 0x0,
11192 "Indicates the blue color component of the surface at the point of intersection", HFILL }
11194 { &hf_cigi3_line_of_sight_extended_response_alpha,
11195 { "Alpha", "cigi.los_ext_response.alpha",
11196 FT_UINT8, BASE_DEC, NULL, 0x0,
11197 "Indicates the alpha component of the surface at the point of intersection", HFILL }
11199 { &hf_cigi3_line_of_sight_extended_response_material_code,
11200 { "Material Code", "cigi.los_ext_response.material_code",
11201 FT_UINT32, BASE_DEC, NULL, 0x0,
11202 "Indicates the material code of the surface intersected by the LOS test segment of vector", HFILL }
11204 { &hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth,
11205 { "Normal Vector Azimuth (degrees)", "cigi.los_ext_response.normal_vector_azimuth",
11206 FT_FLOAT, BASE_DEC, NULL, 0x0,
11207 "Indicates the azimuth of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11209 { &hf_cigi3_line_of_sight_extended_response_normal_vector_elevation,
11210 { "Normal Vector Elevation (degrees)", "cigi.los_ext_response.normal_vector_elevation",
11211 FT_FLOAT, BASE_DEC, NULL, 0x0,
11212 "Indicates the elevation of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11215 /* CIGI3_2 Line of Sight Extended Response */
11216 { &hf_cigi3_2_line_of_sight_extended_response,
11217 { "Line of Sight Extended Response", "cigi.3_2_los_ext_response",
11218 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11219 "Line of Sight Extended Response Packet", HFILL }
11221 { &hf_cigi3_2_line_of_sight_extended_response_los_id,
11222 { "LOS ID", "cigi.3_2_los_ext_response.los_id",
11223 FT_UINT16, BASE_DEC, NULL, 0x0,
11224 "Identifies the LOS response", HFILL }
11226 { &hf_cigi3_2_line_of_sight_extended_response_valid,
11227 { "Valid", "cigi.3_2_los_ext_response.valid",
11228 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11229 "Indicates whether this packet contains valid data", HFILL }
11231 { &hf_cigi3_2_line_of_sight_extended_response_entity_id_valid,
11232 { "Entity ID Valid", "cigi.3_2_los_ext_response.entity_id_valid",
11233 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11234 "Indicates whether the LOS test vector or segment intersects with an entity", HFILL }
11236 { &hf_cigi3_2_line_of_sight_extended_response_range_valid,
11237 { "Range Valid", "cigi.3_2_los_ext_response.range_valid",
11238 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
11239 "Indicates whether the Range parameter is valid", HFILL }
11241 { &hf_cigi3_2_line_of_sight_extended_response_visible,
11242 { "Visible", "cigi.3_2_los_ext_response.visible",
11243 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_extended_response_visible_tfs), 0x08,
11244 "Indicates whether the destination point is visible from the source point", HFILL }
11246 { &hf_cigi3_2_line_of_sight_extended_response_host_frame_number_lsn,
11247 { "Host Frame Number LSN", "cigi.3_2_los_ext_response.host_frame_number_lsn",
11248 FT_UINT8, BASE_DEC, NULL, 0xf0,
11249 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
11251 { &hf_cigi3_2_line_of_sight_extended_response_response_count,
11252 { "Response Count", "cigi.3_2_los_ext_response.response_count",
11253 FT_UINT8, BASE_DEC, NULL, 0x0,
11254 "Indicates the total number of Line of Sight Extended Response packets the IG will return for the corresponding request", HFILL }
11256 { &hf_cigi3_2_line_of_sight_extended_response_entity_id,
11257 { "Entity ID", "cigi.3_2_los_ext_response.entity_id",
11258 FT_UINT16, BASE_DEC, NULL, 0x0,
11259 "Indicates the entity with which a LOS test vector or segment intersects", HFILL }
11261 { &hf_cigi3_2_line_of_sight_extended_response_range,
11262 { "Range (m)", "cigi.3_2_los_ext_response.range",
11263 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11264 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with an object", HFILL }
11266 { &hf_cigi3_2_line_of_sight_extended_response_lat_xoff,
11267 { "Latitude (degrees)/X Offset (m)", "cigi.3_2_los_ext_response.lat_xoff",
11268 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11269 "Indicates the geodetic latitude of the point of intersection along the LOS test segment or vector or specifies the offset of the point of intersection of the LOS test segment or vector along the intersected entity's X axis", HFILL }
11271 { &hf_cigi3_2_line_of_sight_extended_response_lon_yoff,
11272 { "Longitude (degrees)/Y Offset (m)", "cigi.3_2_los_ext_response.lon_yoff",
11273 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11274 "Indicates the geodetic longitude of the point of intersection along the LOS test segment or vector or specifies the offset of the point of intersection of the LOS test segment or vector along the intersected entity's Y axis", HFILL }
11276 { &hf_cigi3_2_line_of_sight_extended_response_alt_zoff,
11277 { "Altitude (m)/Z Offset(m)", "cigi.3_2_los_ext_response.alt_zoff",
11278 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11279 "Indicates the geodetic altitude of the point of intersection along the LOS test segment or vector or specifies the offset of the point of intersection of the LOS test segment or vector along the intersected entity's Z axis", HFILL }
11281 { &hf_cigi3_2_line_of_sight_extended_response_red,
11282 { "Red", "cigi.3_2_los_ext_response.red",
11283 FT_UINT8, BASE_DEC, NULL, 0x0,
11284 "Indicates the red color component of the surface at the point of intersection", HFILL }
11286 { &hf_cigi3_2_line_of_sight_extended_response_green,
11287 { "Green", "cigi.3_2_los_ext_response.green",
11288 FT_UINT8, BASE_DEC, NULL, 0x0,
11289 "Indicates the green color component of the surface at the point of intersection", HFILL }
11291 { &hf_cigi3_2_line_of_sight_extended_response_blue,
11292 { "Blue", "cigi.3_2_los_ext_response.blue",
11293 FT_UINT8, BASE_DEC, NULL, 0x0,
11294 "Indicates the blue color component of the surface at the point of intersection", HFILL }
11296 { &hf_cigi3_2_line_of_sight_extended_response_alpha,
11297 { "Alpha", "cigi.3_2_los_ext_response.alpha",
11298 FT_UINT8, BASE_DEC, NULL, 0x0,
11299 "Indicates the alpha component of the surface at the point of intersection", HFILL }
11301 { &hf_cigi3_2_line_of_sight_extended_response_material_code,
11302 { "Material Code", "cigi.3_2_los_ext_response.material_code",
11303 FT_UINT32, BASE_DEC, NULL, 0x0,
11304 "Indicates the material code of the surface intersected by the LOS test segment of vector", HFILL }
11306 { &hf_cigi3_2_line_of_sight_extended_response_normal_vector_azimuth,
11307 { "Normal Vector Azimuth (degrees)", "cigi.3_2_los_ext_response.normal_vector_azimuth",
11308 FT_FLOAT, BASE_DEC, NULL, 0x0,
11309 "Indicates the azimuth of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11311 { &hf_cigi3_2_line_of_sight_extended_response_normal_vector_elevation,
11312 { "Normal Vector Elevation (degrees)", "cigi.3_2_los_ext_response.normal_vector_elevation",
11313 FT_FLOAT, BASE_DEC, NULL, 0x0,
11314 "Indicates the elevation of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11317 /* CIGI2 Collision Detection Segment Response */
11318 { &hf_cigi2_collision_detection_segment_response,
11319 { "Collision Detection Segment Response", "cigi.coll_det_seg_response",
11320 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11321 "Collision Detection Segment Response Packet", HFILL }
11323 { &hf_cigi2_collision_detection_segment_response_entity_id,
11324 { "Entity ID", "cigi.coll_det_seg_response.entity_id",
11325 FT_UINT16, BASE_DEC, NULL, 0x0,
11326 "Indicates which entity experienced a collision", HFILL }
11328 { &hf_cigi2_collision_detection_segment_response_segment_id,
11329 { "Segment ID", "cigi.coll_det_seg_response.segment_id",
11330 FT_UINT8, BASE_DEC, NULL, 0xfe,
11331 "Identifies the collision segment", HFILL }
11333 { &hf_cigi2_collision_detection_segment_response_contact,
11334 { "Entity/Non-Entity Contact", "cigi.coll_det_seg_response.contact",
11335 FT_BOOLEAN, 8, TFS(&cigi2_collision_detection_segment_response_contact_tfs), 0x01,
11336 "Indicates whether another entity was contacted during this collision", HFILL }
11338 { &hf_cigi2_collision_detection_segment_response_contacted_entity,
11339 { "Contacted Entity ID", "cigi.coll_det_seg_response.contacted_entity",
11340 FT_UINT16, BASE_DEC, NULL, 0x0,
11341 "Indicates which entity was contacted during the collision", HFILL }
11343 { &hf_cigi2_collision_detection_segment_response_material_type,
11344 { "Material Type", "cigi.coll_det_seg_response.material_type",
11345 FT_INT32, BASE_DEC, NULL, 0x0,
11346 "Specifies the material type of the surface that this collision test segment contacted", HFILL }
11348 { &hf_cigi2_collision_detection_segment_response_collision_x,
11349 { "Collision Point X (m)", "cigi.coll_det_seg_response.collision_x",
11350 FT_FLOAT, BASE_DEC, NULL, 0x0,
11351 "Specifies the X component of a vector, which lies along the defined segment where the segment intersected a surface", HFILL }
11353 { &hf_cigi2_collision_detection_segment_response_collision_y,
11354 { "Collision Point Y (m)", "cigi.coll_det_seg_response.collision_y",
11355 FT_FLOAT, BASE_DEC, NULL, 0x0,
11356 "Specifies the Y component of a vector, which lies along the defined segment where the segment intersected a surface", HFILL }
11358 { &hf_cigi2_collision_detection_segment_response_collision_z,
11359 { "Collision Point Z (m)", "cigi.coll_det_seg_response.collision_z",
11360 FT_FLOAT, BASE_DEC, NULL, 0x0,
11361 "Specifies the Z component of a vector, which lies along the defined segment where the segment intersected a surface", HFILL }
11364 /* CIGI2 Sensor Response */
11365 { &hf_cigi2_sensor_response,
11366 { "Sensor Response", "cigi.sensor_response",
11367 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11368 "Sensor Response Packet", HFILL }
11370 { &hf_cigi2_sensor_response_view_id,
11371 { "View ID", "cigi.sensor_response.view_id",
11372 FT_UINT8, BASE_DEC, NULL, 0xf8,
11373 "Indicates the sensor view", HFILL }
11375 { &hf_cigi2_sensor_response_status,
11376 { "Sensor Status", "cigi.sensor_response.status",
11377 FT_UINT8, BASE_DEC, VALS(cigi2_sensor_response_status_vals), 0x06,
11378 "Indicates the current sensor mode", HFILL }
11380 { &hf_cigi2_sensor_response_sensor_id,
11381 { "Sensor ID", "cigi.sensor_response.sensor_id",
11382 FT_UINT8, BASE_DEC, NULL, 0x0,
11383 "Identifies the sensor response corresponding to the associated sensor control data packet", HFILL }
11385 { &hf_cigi2_sensor_response_x_offset,
11386 { "Gate X Offset (degrees)", "cigi.sensor_response.x_offset",
11387 FT_UINT16, BASE_DEC, NULL, 0x0,
11388 "Specifies the target's horizontal offset from the view plane normal", HFILL }
11390 { &hf_cigi2_sensor_response_y_offset,
11391 { "Gate Y Offset (degrees)", "cigi.sensor_response.y_offset",
11392 FT_UINT16, BASE_DEC, NULL, 0x0,
11393 "Specifies the target's vertical offset from the view plane normal", HFILL }
11395 { &hf_cigi2_sensor_response_x_size,
11396 { "Gate X Size", "cigi.sensor_response.x_size",
11397 FT_UINT16, BASE_DEC, NULL, 0x0,
11398 "Specifies the target size in the X direction (horizontal) in pixels", HFILL }
11400 { &hf_cigi2_sensor_response_y_size,
11401 { "Gate Y Size", "cigi.sensor_response.y_size",
11402 FT_UINT16, BASE_DEC, NULL, 0x0,
11403 "Specifies the target size in the Y direction (vertical) in pixels", HFILL }
11406 /* CIGI3 Sensor Response */
11407 { &hf_cigi3_sensor_response,
11408 { "Sensor Response", "cigi.sensor_response",
11409 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11410 "Sensor Response Packet", HFILL }
11412 { &hf_cigi3_sensor_response_view_id,
11413 { "View ID", "cigi.sensor_response.view_id",
11414 FT_UINT16, BASE_DEC, NULL, 0x0,
11415 "Specifies the view that represents the sensor display", HFILL }
11417 { &hf_cigi3_sensor_response_sensor_id,
11418 { "Sensor ID", "cigi.sensor_response.sensor_id",
11419 FT_UINT8, BASE_DEC, NULL, 0x0,
11420 "Specifies the sensor to which the data in this packet apply", HFILL }
11422 { &hf_cigi3_sensor_response_sensor_status,
11423 { "Sensor Status", "cigi.sensor_response.sensor_status",
11424 FT_UINT8, BASE_DEC, VALS(cigi3_sensor_response_sensor_status_vals), 0x03,
11425 "Indicates the current tracking state of the sensor", HFILL }
11427 { &hf_cigi3_sensor_response_gate_x_size,
11428 { "Gate X Size (pixels or raster lines)", "cigi.sensor_response.gate_x_size",
11429 FT_UINT16, BASE_DEC, NULL, 0x0,
11430 "Specifies the gate symbol size along the view's X axis", HFILL }
11432 { &hf_cigi3_sensor_response_gate_y_size,
11433 { "Gate Y Size (pixels or raster lines)", "cigi.sensor_response.gate_y_size",
11434 FT_UINT16, BASE_DEC, NULL, 0x0,
11435 "Specifies the gate symbol size along the view's Y axis", HFILL }
11437 { &hf_cigi3_sensor_response_gate_x_pos,
11438 { "Gate X Position (degrees)", "cigi.sensor_response.gate_x_pos",
11439 FT_FLOAT, BASE_DEC, NULL, 0x0,
11440 "Specifies the gate symbol's position along the view's X axis", HFILL }
11442 { &hf_cigi3_sensor_response_gate_y_pos,
11443 { "Gate Y Position (degrees)", "cigi.sensor_response.gate_y_pos",
11444 FT_FLOAT, BASE_DEC, NULL, 0x0,
11445 "Specifies the gate symbol's position along the view's Y axis", HFILL }
11447 { &hf_cigi3_sensor_response_frame_ctr,
11448 { "Frame Counter", "cigi.sensor_response.frame_ctr",
11449 FT_UINT32, BASE_DEC, NULL, 0x0,
11450 "Indicates the IG's frame counter at the time that the IG calculates the gate and line-of-sight intersection data", HFILL }
11453 /* CIGI3 Sensor Extended Response */
11454 { &hf_cigi3_sensor_extended_response,
11455 { "Sensor Extended Response", "cigi.sensor_ext_response",
11456 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11457 "Sensor Extended Response Packet", HFILL }
11459 { &hf_cigi3_sensor_extended_response_view_id,
11460 { "View ID", "cigi.sensor_ext_response.view_id",
11461 FT_UINT16, BASE_DEC, NULL, 0x0,
11462 "Specifies the view that represents the sensor display", HFILL }
11464 { &hf_cigi3_sensor_extended_response_sensor_id,
11465 { "Sensor ID", "cigi.sensor_ext_response.sensor_id",
11466 FT_UINT8, BASE_DEC, NULL, 0x0,
11467 "Specifies the sensor to which the data in this packet apply", HFILL }
11469 { &hf_cigi3_sensor_extended_response_sensor_status,
11470 { "Sensor Status", "cigi.sensor_ext_response.sensor_status",
11471 FT_UINT8, BASE_DEC, VALS(cigi3_sensor_extended_response_sensor_status_vals), 0x03,
11472 "Indicates the current tracking state of the sensor", HFILL }
11474 { &hf_cigi3_sensor_extended_response_entity_id_valid,
11475 { "Entity ID Valid", "cigi.sensor_ext_response.entity_id_valid",
11476 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
11477 "Indicates whether the target is an entity or a non-entity object", HFILL }
11479 { &hf_cigi3_sensor_extended_response_entity_id,
11480 { "Entity ID", "cigi.sensor_ext_response.entity_id",
11481 FT_UINT16, BASE_DEC, NULL, 0x0,
11482 "Indicates the entity ID of the target", HFILL }
11484 { &hf_cigi3_sensor_extended_response_gate_x_size,
11485 { "Gate X Size (pixels or raster lines)", "cigi.sensor_ext_response.gate_x_size",
11486 FT_UINT16, BASE_DEC, NULL, 0x0,
11487 "Specifies the gate symbol size along the view's X axis", HFILL }
11489 { &hf_cigi3_sensor_extended_response_gate_y_size,
11490 { "Gate Y Size (pixels or raster lines)", "cigi.sensor_ext_response.gate_y_size",
11491 FT_UINT16, BASE_DEC, NULL, 0x0,
11492 "Specifies the gate symbol size along the view's Y axis", HFILL }
11494 { &hf_cigi3_sensor_extended_response_gate_x_pos,
11495 { "Gate X Position (degrees)", "cigi.sensor_ext_response.gate_x_pos",
11496 FT_FLOAT, BASE_DEC, NULL, 0x0,
11497 "Specifies the gate symbol's position along the view's X axis", HFILL }
11499 { &hf_cigi3_sensor_extended_response_gate_y_pos,
11500 { "Gate Y Position (degrees)", "cigi.sensor_ext_response.gate_y_pos",
11501 FT_FLOAT, BASE_DEC, NULL, 0x0,
11502 "Specifies the gate symbol's position along the view's Y axis", HFILL }
11504 { &hf_cigi3_sensor_extended_response_frame_ctr,
11505 { "Frame Counter", "cigi.sensor_ext_response.frame_ctr",
11506 FT_UINT32, BASE_DEC, NULL, 0x0,
11507 "Indicates the IG's frame counter at the time that the IG calculates the gate and line-of-sight intersection data", HFILL }
11509 { &hf_cigi3_sensor_extended_response_track_lat,
11510 { "Track Point Latitude (degrees)", "cigi.sensor_ext_response.track_lat",
11511 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11512 "Indicates the geodetic latitude of the point being tracked by the sensor", HFILL }
11514 { &hf_cigi3_sensor_extended_response_track_lon,
11515 { "Track Point Longitude (degrees)", "cigi.sensor_ext_response.track_lon",
11516 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11517 "Indicates the geodetic longitude of the point being tracked by the sensor", HFILL }
11519 { &hf_cigi3_sensor_extended_response_track_alt,
11520 { "Track Point Altitude (m)", "cigi.sensor_ext_response.track_alt",
11521 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11522 "Indicates the geodetic altitude of the point being tracked by the sensor", HFILL }
11525 /* CIGI2 Height of Terrain Response */
11526 { &hf_cigi2_height_of_terrain_response,
11527 { "Height of Terrain Response", "cigi.hot_response",
11528 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11529 "Height of Terrain Response Packet", HFILL }
11531 { &hf_cigi2_height_of_terrain_response_hot_id,
11532 { "HOT ID", "cigi.hot_response.hot_id",
11533 FT_UINT16, BASE_DEC, NULL, 0x0,
11534 "Identifies the HOT response corresponding to the associated HOT request", HFILL }
11536 { &hf_cigi2_height_of_terrain_response_valid,
11537 { "Valid", "cigi.hot_response.valid",
11538 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80,
11539 "Indicates whether the response is valid or invalid", HFILL }
11541 { &hf_cigi2_height_of_terrain_response_material_type,
11542 { "Material Type", "cigi.hot_response.material_type",
11543 FT_INT32, BASE_DEC, NULL, 0x0,
11544 "Specifies the material type of the object intersected by the HOT test segment", HFILL }
11546 { &hf_cigi2_height_of_terrain_response_alt,
11547 { "Altitude (m)", "cigi.hot_response.alt",
11548 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11549 "Represents the altitude of the terrain for the position requested in the HOT request data packet", HFILL }
11552 /* CIGI2 Collision Detection Volume Response */
11553 { &hf_cigi2_collision_detection_volume_response,
11554 { "Collision Detection Volume Response", "cigi.coll_det_vol_response",
11555 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11556 "Collision Detection Volume Response Packet", HFILL }
11558 { &hf_cigi2_collision_detection_volume_response_entity_id,
11559 { "Entity ID", "cigi.coll_det_vol_response.entity_id",
11560 FT_UINT16, BASE_DEC, NULL, 0x0,
11561 "Indicates which entity experienced a collision", HFILL }
11563 { &hf_cigi2_collision_detection_volume_response_volume_id,
11564 { "Volume ID", "cigi.coll_det_vol_response.volume_id",
11565 FT_UINT8, BASE_DEC, NULL, 0xfe,
11566 "Identifies the collision volume corresponding to the associated Collision Detection Volume Request", HFILL }
11568 { &hf_cigi2_collision_detection_volume_response_contact,
11569 { "Entity/Non-Entity Contact", "cigi.coll_det_vol_response.contact",
11570 FT_BOOLEAN, 8, TFS(&cigi2_collision_detection_volume_response_contact_tfs), 0x01,
11571 "Indicates whether another entity was contacted during this collision", HFILL }
11573 { &hf_cigi2_collision_detection_volume_response_contact_entity,
11574 { "Contacted Entity ID", "cigi.coll_det_vol_response.contact_entity",
11575 FT_UINT16, BASE_DEC, NULL, 0x0,
11576 "Indicates which entity was contacted with during the collision", HFILL }
11579 /* CIGI3 Position Response */
11580 { &hf_cigi3_position_response,
11581 { "Position Response", "cigi.pos_response",
11582 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11583 "Position Response Packet", HFILL }
11585 { &hf_cigi3_position_response_object_id,
11586 { "Object ID", "cigi.pos_response.object_id",
11587 FT_UINT16, BASE_DEC, NULL, 0x0,
11588 "Identifies the entity, view, view group, or motion tracking device whose position is being reported", HFILL }
11590 { &hf_cigi3_position_response_part_id,
11591 { "Articulated Part ID", "cigi.pos_response.part_id",
11592 FT_UINT8, BASE_DEC, NULL, 0x0,
11593 "Identifies the articulated part whose position is being reported", HFILL }
11595 { &hf_cigi3_position_response_object_class,
11596 { "Object Class", "cigi.pos_response.object_class",
11597 FT_UINT8, BASE_DEC, VALS(cigi3_position_response_object_class_vals), 0x07,
11598 "Indicates the type of object whose position is being reported", HFILL }
11600 { &hf_cigi3_position_response_coord_system,
11601 { "Coordinate System", "cigi.pos_response.coord_system",
11602 FT_UINT8, BASE_DEC, VALS(cigi3_position_response_coord_system_vals), 0x18,
11603 "Indicates the coordinate system in which the position and orientation are specified", HFILL }
11605 { &hf_cigi3_position_response_lat_xoff,
11606 { "Latitude (degrees)/X Offset (m)", "cigi.pos_response.lat_xoff",
11607 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11608 "Indicates the geodetic latitude of the entity, articulated part, view, or view group or indicates the X offset from the parent entity's origin to the child entity, articulated part, view or view group", HFILL }
11610 { &hf_cigi3_position_response_lon_yoff,
11611 { "Longitude (degrees)/Y Offset (m)", "cigi.pos_response.lon_yoff",
11612 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11613 "Indicates the geodetic longitude of the entity, articulated part, view, or view group or indicates the Y offset from the parent entity's origin to the child entity, articulated part, view, or view group", HFILL }
11615 { &hf_cigi3_position_response_alt_zoff,
11616 { "Altitude (m)/Z Offset (m)", "cigi.pos_response.alt_zoff",
11617 FT_DOUBLE, BASE_DEC, NULL, 0x0,
11618 "Indicates the geodetic altitude of the entity, articulated part, view, or view group or indicates the Z offset from the parent entity's origin to the child entity, articulated part, view, or view group", HFILL }
11620 { &hf_cigi3_position_response_roll,
11621 { "Roll (degrees)", "cigi.pos_response.roll",
11622 FT_FLOAT, BASE_DEC, NULL, 0x0,
11623 "Indicates the roll angle of the specified entity, articulated part, view, or view group", HFILL }
11625 { &hf_cigi3_position_response_pitch,
11626 { "Pitch (degrees)", "cigi.pos_response.pitch",
11627 FT_FLOAT, BASE_DEC, NULL, 0x0,
11628 "Indicates the pitch angle of the specified entity, articulated part, view, or view group", HFILL }
11630 { &hf_cigi3_position_response_yaw,
11631 { "Yaw (degrees)", "cigi.pos_response.yaw",
11632 FT_FLOAT, BASE_DEC, NULL, 0x0,
11633 "Indicates the yaw angle of the specified entity, articulated part, view, or view group", HFILL }
11636 /* CIGI3 Weather Conditions Response */
11637 { &hf_cigi3_weather_conditions_response,
11638 { "Weather Conditions Response", "cigi.wea_cond_response",
11639 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11640 "Weather Conditions Response Packet", HFILL }
11642 { &hf_cigi3_weather_conditions_response_request_id,
11643 { "Request ID", "cigi.wea_cond_response.request_id",
11644 FT_UINT8, BASE_DEC, NULL, 0x0,
11645 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11647 { &hf_cigi3_weather_conditions_response_humidity,
11648 { "Humidity (%)", "cigi.wea_cond_response.humidity",
11649 FT_UINT8, BASE_DEC, NULL, 0x0,
11650 "Indicates the humidity at the request location", HFILL }
11652 { &hf_cigi3_weather_conditions_response_air_temp,
11653 { "Air Temperature (degrees C)", "cigi.wea_cond_response.air_temp",
11654 FT_FLOAT, BASE_DEC, NULL, 0x0,
11655 "Indicates the air temperature at the requested location", HFILL }
11657 { &hf_cigi3_weather_conditions_response_visibility_range,
11658 { "Visibility Range (m)", "cigi.wea_cond_response.visibility_range",
11659 FT_FLOAT, BASE_DEC, NULL, 0x0,
11660 "Indicates the visibility range at the requested location", HFILL }
11662 { &hf_cigi3_weather_conditions_response_horiz_speed,
11663 { "Horizontal Wind Speed (m/s)", "cigi.wea_cond_response.horiz_speed",
11664 FT_FLOAT, BASE_DEC, NULL, 0x0,
11665 "Indicates the local wind speed parallel to the ellipsoid-tangential reference plane", HFILL }
11667 { &hf_cigi3_weather_conditions_response_vert_speed,
11668 { "Vertical Wind Speed (m/s)", "cigi.wea_cond_response.vert_speed",
11669 FT_FLOAT, BASE_DEC, NULL, 0x0,
11670 "Indicates the local vertical wind speed", HFILL }
11672 { &hf_cigi3_weather_conditions_response_wind_direction,
11673 { "Wind Direction (degrees)", "cigi.wea_cond_response.wind_direction",
11674 FT_FLOAT, BASE_DEC, NULL, 0x0,
11675 "Indicates the local wind direction", HFILL }
11677 { &hf_cigi3_weather_conditions_response_barometric_pressure,
11678 { "Barometric Pressure (mb or hPa)", "cigi.wea_cond_response.barometric_pressure",
11679 FT_FLOAT, BASE_DEC, NULL, 0x0,
11680 "Indicates the atmospheric pressure at the requested location", HFILL }
11683 /* CIGI3 Aerosol Concentration Response */
11684 { &hf_cigi3_aerosol_concentration_response,
11685 { "Aerosol Concentration Response", "cigi.aerosol_concentration_response",
11686 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11687 "Aerosol Concentration Response Packet", HFILL }
11689 { &hf_cigi3_aerosol_concentration_response_request_id,
11690 { "Request ID", "cigi.aerosol_concentration_response.request_id",
11691 FT_UINT8, BASE_DEC, NULL, 0x0,
11692 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11694 { &hf_cigi3_aerosol_concentration_response_layer_id,
11695 { "Layer ID", "cigi.aerosol_concentration_response.layer_id",
11696 FT_UINT8, BASE_DEC, NULL, 0x0,
11697 "Identifies the weather layer whose aerosol concentration is being described", HFILL }
11699 { &hf_cigi3_aerosol_concentration_response_aerosol_concentration,
11700 { "Aerosol Concentration (g/m^3)", "cigi.aerosol_concentration_response.aerosol_concentration",
11701 FT_FLOAT, BASE_DEC, NULL, 0x0,
11702 "Identifies the concentration of airborne particles", HFILL }
11705 /* CIGI3 Maritime Surface Conditions Response */
11706 { &hf_cigi3_maritime_surface_conditions_response,
11707 { "Maritime Surface Conditions Response", "cigi.maritime_surface_conditions_response",
11708 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11709 "Maritime Surface Conditions Response Packet", HFILL }
11711 { &hf_cigi3_maritime_surface_conditions_response_request_id,
11712 { "Request ID", "cigi.maritime_surface_conditions_response.request_id",
11713 FT_UINT8, BASE_DEC, NULL, 0x0,
11714 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11716 { &hf_cigi3_maritime_surface_conditions_response_sea_surface_height,
11717 { "Sea Surface Height (m)", "cigi.maritime_surface_conditions_response.sea_surface_height",
11718 FT_FLOAT, BASE_DEC, NULL, 0x0,
11719 "Indicates the height of the sea surface at equilibrium", HFILL }
11721 { &hf_cigi3_maritime_surface_conditions_response_surface_water_temp,
11722 { "Surface Water Temperature (degrees C)", "cigi.maritime_surface_conditions_response.surface_water_temp",
11723 FT_FLOAT, BASE_DEC, NULL, 0x0,
11724 "Indicates the water temperature at the sea surface", HFILL }
11726 { &hf_cigi3_maritime_surface_conditions_response_surface_clarity,
11727 { "Surface Clarity (%)", "cigi.maritime_surface_conditions_response.surface_clarity",
11728 FT_FLOAT, BASE_DEC, NULL, 0x0,
11729 "Indicates the clarity of the water at its surface", HFILL }
11732 /* CIGI3 Terrestrial Surface Conditions Response */
11733 { &hf_cigi3_terrestrial_surface_conditions_response,
11734 { "Terrestrial Surface Conditions Response", "cigi.terr_surface_cond_response",
11735 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11736 "Terrestrial Surface Conditions Response Packet", HFILL }
11738 { &hf_cigi3_terrestrial_surface_conditions_response_request_id,
11739 { "Request ID", "cigi.terr_surface_cond_response.request_id",
11740 FT_UINT8, BASE_DEC, NULL, 0x0,
11741 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11743 { &hf_cigi3_terrestrial_surface_conditions_response_surface_id,
11744 { "Surface Condition ID", "cigi.terr_surface_cond_response.surface_id",
11745 FT_UINT32, BASE_DEC, NULL, 0x0,
11746 "Indicates the presence of a specific surface condition or contaminant at the test point", HFILL }
11749 /* CIGI3 Collision Detection Segment Notification */
11750 { &hf_cigi3_collision_detection_segment_notification,
11751 { "Collision Detection Segment Notification", "cigi.coll_det_seg_notification",
11752 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11753 "Collision Detection Segment Notification Packet", HFILL }
11755 { &hf_cigi3_collision_detection_segment_notification_entity_id,
11756 { "Entity ID", "cigi.coll_det_seg_notification.entity_id",
11757 FT_UINT16, BASE_DEC, NULL, 0x0,
11758 "Indicates the entity to which the collision detection segment belongs", HFILL }
11760 { &hf_cigi3_collision_detection_segment_notification_segment_id,
11761 { "Segment ID", "cigi.coll_det_seg_notification.segment_id",
11762 FT_UINT8, BASE_DEC, NULL, 0x0,
11763 "Indicates the ID of the collision detection segment along which the collision occurred", HFILL }
11765 { &hf_cigi3_collision_detection_segment_notification_type,
11766 { "Collision Type", "cigi.coll_det_seg_notification.type",
11767 FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_segment_notification_type_tfs), 0x01,
11768 "Indicates whether the collision occurred with another entity or with a non-entity object", HFILL }
11770 { &hf_cigi3_collision_detection_segment_notification_contacted_entity_id,
11771 { "Contacted Entity ID", "cigi.coll_det_seg_notification.contacted_entity_id",
11772 FT_UINT16, BASE_DEC, NULL, 0x0,
11773 "Indicates the entity with which the collision occurred", HFILL }
11775 { &hf_cigi3_collision_detection_segment_notification_material_code,
11776 { "Material Code", "cigi.coll_det_seg_notification.material_code",
11777 FT_UINT32, BASE_DEC, NULL, 0x0,
11778 "Indicates the material code of the surface at the point of collision", HFILL }
11780 { &hf_cigi3_collision_detection_segment_notification_intersection_distance,
11781 { "Intersection Distance (m)", "cigi.coll_det_seg_notification.intersection_distance",
11782 FT_FLOAT, BASE_DEC, NULL, 0x0,
11783 "Indicates the distance along the collision test vector from the source endpoint to the point of intersection", HFILL }
11786 /* CIGI3 Collision Detection Volume Notification */
11787 { &hf_cigi3_collision_detection_volume_notification,
11788 { "Collision Detection Volume Notification", "cigi.coll_det_vol_notification",
11789 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11790 "Collision Detection Volume Notification Packet", HFILL }
11792 { &hf_cigi3_collision_detection_volume_notification_entity_id,
11793 { "Entity ID", "cigi.coll_det_vol_notification.entity_id",
11794 FT_UINT16, BASE_DEC, NULL, 0x0,
11795 "Indicates the entity to which the collision detection volume belongs", HFILL }
11797 { &hf_cigi3_collision_detection_volume_notification_volume_id,
11798 { "Volume ID", "cigi.coll_det_vol_notification.volume_id",
11799 FT_UINT8, BASE_DEC, NULL, 0x0,
11800 "Indicates the ID of the collision detection volume within which the collision occurred", HFILL }
11802 { &hf_cigi3_collision_detection_volume_notification_type,
11803 { "Collision Type", "cigi.coll_det_vol_notification.type",
11804 FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_volume_notification_type_tfs), 0x01,
11805 "Indicates whether the collision occurred with another entity or with a non-entity object", HFILL }
11807 { &hf_cigi3_collision_detection_volume_notification_contacted_entity_id,
11808 { "Contacted Entity ID", "cigi.coll_det_vol_notification.contacted_entity_id",
11809 FT_UINT16, BASE_DEC, NULL, 0x0,
11810 "Indicates the entity with which the collision occurred", HFILL }
11812 { &hf_cigi3_collision_detection_volume_notification_contacted_volume_id,
11813 { "Contacted Volume ID", "cigi.coll_det_vol_notification.contacted_volume_id",
11814 FT_UINT8, BASE_DEC, NULL, 0x0,
11815 "Indicates the ID of the collision detection volume with which the collision occurred", HFILL }
11818 /* CIGI3 Animation Stop Notification */
11819 { &hf_cigi3_animation_stop_notification,
11820 { "Animation Stop Notification", "cigi.animation_stop_notification",
11821 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11822 "Animation Stop Notification Packet", HFILL }
11824 { &hf_cigi3_animation_stop_notification_entity_id,
11825 { "Entity ID", "cigi.animation_stop_notification.entity_id",
11826 FT_UINT16, BASE_DEC, NULL, 0x0,
11827 "Indicates the entity ID of the animation that has stopped", HFILL }
11830 /* CIGI3 Event Notification */
11831 { &hf_cigi3_event_notification,
11832 { "Event Notification", "cigi.event_notification",
11833 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11834 "Event Notification Packet", HFILL }
11836 { &hf_cigi3_event_notification_event_id,
11837 { "Event ID", "cigi.event_notification.event_id",
11838 FT_UINT16, BASE_DEC, NULL, 0x0,
11839 "Indicates which event has occurred", HFILL }
11841 { &hf_cigi3_event_notification_data_1,
11842 { "Event Data 1", "cigi.event_notification.data_1",
11843 FT_BYTES, BASE_NONE, NULL, 0x0,
11844 "Used for user-defined event data", HFILL }
11846 { &hf_cigi3_event_notification_data_2,
11847 { "Event Data 2", "cigi.event_notification.data_2",
11848 FT_BYTES, BASE_NONE, NULL, 0x0,
11849 "Used for user-defined event data", HFILL }
11851 { &hf_cigi3_event_notification_data_3,
11852 { "Event Data 3", "cigi.event_notification.data_3",
11853 FT_BYTES, BASE_NONE, NULL, 0x0,
11854 "Used for user-defined event data", HFILL }
11857 /* CIGI2 Image Generator Message */
11858 { &hf_cigi2_image_generator_message,
11859 { "Image Generator Message", "cigi.image_generator_message",
11860 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11861 "Image Generator Message Packet", HFILL }
11863 { &hf_cigi2_image_generator_message_id,
11864 { "Message ID", "cigi.image_generator_message.message_id",
11865 FT_UINT16, BASE_DEC, NULL, 0x0,
11866 "Uniquely identifies an instance of an Image Generator Response Message", HFILL }
11868 { &hf_cigi2_image_generator_message_message,
11869 { "Message", "cigi.image_generator_message.message",
11870 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11871 "Image generator message", HFILL }
11874 /* CIGI3 Image Generator Message */
11875 { &hf_cigi3_image_generator_message,
11876 { "Image Generator Message", "cigi.image_generator_message",
11877 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11878 "Image Generator Message Packet", HFILL }
11880 { &hf_cigi3_image_generator_message_id,
11881 { "Message ID", "cigi.image_generator_message.message_id",
11882 FT_UINT16, BASE_DEC, NULL, 0x0,
11883 "Specifies a numerical identifier for the message", HFILL }
11885 { &hf_cigi3_image_generator_message_message,
11886 { "Message", "cigi.image_generator_message.message",
11887 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11888 "Message string", HFILL }
11891 /* CIGI2 User Definable */
11892 { &hf_cigi2_user_definable,
11893 { "User Definable", "cigi.user_definable",
11894 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11895 "User definable packet", HFILL }
11898 /* CIGI3 User-Defined Packets */
11899 { &hf_cigi3_user_defined,
11900 { "User-Defined", "cigi.user_defined",
11901 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11902 "User-Defined Packet", HFILL }
11906 /* CIGI preferences */
11907 static enum_val_t cigi_versions[] = {
11908 { "from_packet", "From Packet", CIGI_VERSION_FROM_PACKET },
11909 { "cigi2", "CIGI 2", CIGI_VERSION_2 },
11910 { "cigi3", "CIGI 3", CIGI_VERSION_3 },
11914 static enum_val_t cigi_byte_orders[] = {
11915 { "from_packet", "From Packet", CIGI_BYTE_ORDER_FROM_PACKET },
11916 { "big_endian", "Big-Endian", CIGI_BYTE_ORDER_BIG_ENDIAN },
11917 { "little_endian", "Little-Endian", CIGI_BYTE_ORDER_LITTLE_ENDIAN },
11921 /* Setup protocol subtree array */
11922 static gint *ett[] = {
11926 /* Register the protocol name and description */
11927 proto_cigi = proto_register_protocol("Common Image Generator Interface",
11930 /* Required function calls to register the header fields and subtrees used */
11931 proto_register_field_array(proto_cigi, hf, array_length(hf));
11932 proto_register_subtree_array(ett, array_length(ett));
11934 /* Register preferences module */
11935 cigi_module = prefs_register_protocol(proto_cigi, proto_reg_handoff_cigi);
11937 /* Register preferences */
11938 prefs_register_enum_preference(cigi_module, "version", "CIGI version", "The version of CIGI with which to dissect packets", &global_cigi_version, cigi_versions, FALSE);
11939 prefs_register_enum_preference(cigi_module, "byte_order", "Byte Order", "The byte order with which to dissect CIGI packets (CIGI3)", &global_cigi_byte_order, cigi_byte_orders, FALSE);
11940 prefs_register_string_preference(cigi_module, "host", "Host IP", "IPv4 address or hostname of the host", &global_host_ip);
11941 prefs_register_string_preference(cigi_module, "ig", "Image Generator IP", "IPv4 address or hostname of the image generator", &global_ig_ip);
11945 /* This function is also called by preferences whenever "Apply" is pressed
11946 (see prefs_register_protocol above) so it should accommodate being called
11950 proto_reg_handoff_cigi(void)
11952 static gboolean inited = FALSE;
11954 /* If the CIGI version preference was changed update the cigi version
11955 * information for all packets */
11956 if ( global_cigi_version != CIGI_VERSION_FROM_PACKET ) {
11957 cigi_version = global_cigi_version;
11960 /* If the CIGI byte order preference was changed update the cigi byte
11961 * order information for all packets */
11962 if ( global_cigi_byte_order != CIGI_BYTE_ORDER_FROM_PACKET ) {
11963 cigi_byte_order = global_cigi_byte_order;
11968 cigi_handle = new_create_dissector_handle(dissect_cigi, proto_cigi);
11969 dissector_add_handle("udp.port", cigi_handle);
11970 dissector_add_handle("tcp.port", cigi_handle);
11971 heur_dissector_add("udp", dissect_cigi_heur, proto_cigi);