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>
40 #include <epan/packet.h>
41 #include <epan/prefs.h>
43 /* Forward declaration */
44 void proto_reg_handoff_cigi(void);
45 static gboolean packet_is_cigi(tvbuff_t*);
46 static gboolean dissect_cigi_heur(tvbuff_t*, packet_info*, proto_tree*);
47 static int dissect_cigi(tvbuff_t*, packet_info*, proto_tree*);
48 static void dissect_cigi_pdu(tvbuff_t*, packet_info*, proto_tree*);
49 static void cigi_add_tree(tvbuff_t*, proto_tree*);
50 static gint cigi_add_data(tvbuff_t*, proto_tree*, gint);
52 static void cigi2_add_tree(tvbuff_t*, proto_tree*);
53 static gint cigi2_add_ig_control(tvbuff_t*, proto_tree*, gint);
54 static gint cigi2_add_entity_control(tvbuff_t*, proto_tree*, gint);
55 static gint cigi2_add_component_control(tvbuff_t*, proto_tree*, gint);
56 static gint cigi2_add_articulated_parts_control(tvbuff_t*, proto_tree*, gint);
57 static gint cigi2_add_rate_control(tvbuff_t*, proto_tree*, gint);
58 static gint cigi2_add_environment_control(tvbuff_t*, proto_tree*, gint);
59 static gint cigi2_add_weather_control(tvbuff_t*, proto_tree*, gint);
60 static gint cigi2_add_view_control(tvbuff_t*, proto_tree*, gint);
61 static gint cigi2_add_sensor_control(tvbuff_t*, proto_tree*, gint);
62 static gint cigi2_add_trajectory_definition(tvbuff_t*, proto_tree*, gint);
63 static gint cigi2_add_special_effect_definition(tvbuff_t*, proto_tree*, gint);
64 static gint cigi2_add_view_definition(tvbuff_t*, proto_tree*, gint);
65 static gint cigi2_add_collision_detection_segment_definition(tvbuff_t*, proto_tree*, gint);
66 static gint cigi2_add_collision_detection_volume_definition(tvbuff_t*, proto_tree*, gint);
67 static gint cigi2_add_height_above_terrain_request(tvbuff_t*, proto_tree*, gint);
68 static gint cigi2_add_line_of_sight_occult_request(tvbuff_t*, proto_tree*, gint);
69 static gint cigi2_add_line_of_sight_range_request(tvbuff_t*, proto_tree*, gint);
70 static gint cigi2_add_height_of_terrain_request(tvbuff_t*, proto_tree*, gint);
71 static gint cigi2_add_start_of_frame(tvbuff_t*, proto_tree*, gint);
72 static gint cigi2_add_height_above_terrain_response(tvbuff_t*, proto_tree*, gint);
73 static gint cigi2_add_line_of_sight_response(tvbuff_t*, proto_tree*, gint);
74 static gint cigi2_add_collision_detection_segment_response(tvbuff_t*, proto_tree*, gint);
75 static gint cigi2_add_sensor_response(tvbuff_t*, proto_tree*, gint);
76 static gint cigi2_add_height_of_terrain_response(tvbuff_t*, proto_tree*, gint);
77 static gint cigi2_add_collision_detection_volume_response(tvbuff_t*, proto_tree*, gint);
78 static gint cigi2_add_image_generator_message(tvbuff_t*, proto_tree*, gint);
80 static void cigi3_add_tree(tvbuff_t*, proto_tree*);
81 static gint cigi3_add_ig_control(tvbuff_t*, proto_tree*, gint);
82 static gint cigi3_add_entity_control(tvbuff_t*, proto_tree*, gint);
83 static gint cigi3_add_conformal_clamped_entity_control(tvbuff_t*, proto_tree*, gint);
84 static gint cigi3_add_component_control(tvbuff_t*, proto_tree*, gint);
85 static gint cigi3_add_short_component_control(tvbuff_t*, proto_tree*, gint);
86 static gint cigi3_add_articulated_part_control(tvbuff_t*, proto_tree*, gint);
87 static gint cigi3_add_short_articulated_part_control(tvbuff_t*, proto_tree*, gint);
88 static gint cigi3_add_rate_control(tvbuff_t*, proto_tree*, gint);
89 static gint cigi3_add_celestial_sphere_control(tvbuff_t*, proto_tree*, gint);
90 static gint cigi3_add_atmosphere_control(tvbuff_t*, proto_tree*, gint);
91 static gint cigi3_add_environmental_region_control(tvbuff_t*, proto_tree*, gint);
92 static gint cigi3_add_weather_control(tvbuff_t*, proto_tree*, gint);
93 static gint cigi3_add_maritime_surface_conditions_control(tvbuff_t*, proto_tree*, gint);
94 static gint cigi3_add_wave_control(tvbuff_t*, proto_tree*, gint);
95 static gint cigi3_add_terrestrial_surface_conditions_control(tvbuff_t*, proto_tree*, gint);
96 static gint cigi3_add_view_control(tvbuff_t*, proto_tree*, gint);
97 static gint cigi3_add_sensor_control(tvbuff_t*, proto_tree*, gint);
98 static gint cigi3_add_motion_tracker_control(tvbuff_t*, proto_tree*, gint);
99 static gint cigi3_add_earth_reference_model_definition(tvbuff_t*, proto_tree*, gint);
100 static gint cigi3_add_trajectory_definition(tvbuff_t*, proto_tree*, gint);
101 static gint cigi3_add_view_definition(tvbuff_t*, proto_tree*, gint);
102 static gint cigi3_add_collision_detection_segment_definition(tvbuff_t*, proto_tree*, gint);
103 static gint cigi3_add_collision_detection_volume_definition(tvbuff_t*, proto_tree*, gint);
104 static gint cigi3_add_hat_hot_request(tvbuff_t*, proto_tree*, gint);
105 static gint cigi3_add_line_of_sight_segment_request(tvbuff_t*, proto_tree*, gint);
106 static gint cigi3_add_line_of_sight_vector_request(tvbuff_t*, proto_tree*, gint);
107 static gint cigi3_add_position_request(tvbuff_t*, proto_tree*, gint);
108 static gint cigi3_add_environmental_conditions_request(tvbuff_t*, proto_tree*, gint);
109 static gint cigi3_add_start_of_frame(tvbuff_t*, proto_tree*, gint);
110 static gint cigi3_add_hat_hot_response(tvbuff_t*, proto_tree*, gint);
111 static gint cigi3_add_hat_hot_extended_response(tvbuff_t*, proto_tree*, gint);
112 static gint cigi3_add_line_of_sight_response(tvbuff_t*, proto_tree*, gint);
113 static gint cigi3_add_line_of_sight_extended_response(tvbuff_t*, proto_tree*, gint);
114 static gint cigi3_add_sensor_response(tvbuff_t*, proto_tree*, gint);
115 static gint cigi3_add_sensor_extended_response(tvbuff_t*, proto_tree*, gint);
116 static gint cigi3_add_position_response(tvbuff_t*, proto_tree*, gint);
117 static gint cigi3_add_weather_conditions_response(tvbuff_t*, proto_tree*, gint);
118 static gint cigi3_add_aerosol_concentration_response(tvbuff_t*, proto_tree*, gint);
119 static gint cigi3_add_maritime_surface_conditions_response(tvbuff_t*, proto_tree*, gint);
120 static gint cigi3_add_terrestrial_surface_conditions_response(tvbuff_t*, proto_tree*, gint);
121 static gint cigi3_add_collision_detection_segment_notification(tvbuff_t*, proto_tree*, gint);
122 static gint cigi3_add_collision_detection_volume_notification(tvbuff_t*, proto_tree*, gint);
123 static gint cigi3_add_animation_stop_notification(tvbuff_t*, proto_tree*, gint);
124 static gint cigi3_add_event_notification(tvbuff_t*, proto_tree*, gint);
125 static gint cigi3_add_image_generator_message(tvbuff_t*, proto_tree*, gint);
127 static gint cigi3_2_add_ig_control(tvbuff_t*, proto_tree*, gint);
128 static gint cigi3_2_add_rate_control(tvbuff_t*, proto_tree*, gint);
129 static gint cigi3_2_add_hat_hot_request(tvbuff_t*, proto_tree*, gint);
130 static gint cigi3_2_add_line_of_sight_segment_request(tvbuff_t*, proto_tree*, gint);
131 static gint cigi3_2_add_line_of_sight_vector_request(tvbuff_t*, proto_tree*, gint);
132 static gint cigi3_2_add_start_of_frame(tvbuff_t*, proto_tree*, gint);
133 static gint cigi3_2_add_hat_hot_response(tvbuff_t*, proto_tree*, gint);
134 static gint cigi3_2_add_hat_hot_extended_response(tvbuff_t*, proto_tree*, gint);
135 static gint cigi3_2_add_line_of_sight_response(tvbuff_t*, proto_tree*, gint);
136 static gint cigi3_2_add_line_of_sight_extended_response(tvbuff_t*, proto_tree*, gint);
138 static gint cigi3_3_add_ig_control(tvbuff_t*, proto_tree*, gint);
139 static gint cigi3_3_add_entity_control(tvbuff_t*, proto_tree*, gint);
140 static gint cigi3_3_add_component_control(tvbuff_t*, proto_tree*, gint);
141 static gint cigi3_3_add_short_component_control(tvbuff_t*, proto_tree*, gint);
142 static gint cigi3_3_add_symbol_surface_definition(tvbuff_t*, proto_tree*, gint);
143 static gint cigi3_3_add_symbol_text_definition(tvbuff_t*, proto_tree*, gint);
144 static gint cigi3_3_add_symbol_circle_definition(tvbuff_t*, proto_tree*, gint);
145 static gint cigi3_3_add_symbol_line_definition(tvbuff_t*, proto_tree*, gint);
146 static gint cigi3_3_add_symbol_clone(tvbuff_t*, proto_tree*, gint);
147 static gint cigi3_3_add_symbol_control(tvbuff_t*, proto_tree*, gint);
148 static gint cigi3_3_add_short_symbol_control(tvbuff_t*, proto_tree*, gint);
151 static gfloat tvb_get_fixed_point(tvbuff_t*, int, gint);
154 static dissector_handle_t cigi_handle;
156 /* Initialize the protocol and registered fields */
157 static int proto_cigi = -1;
159 static const true_false_string cigi_enable_tfs = {
164 static const true_false_string cigi_valid_tfs = {
170 /* All CIGI Versions */
171 static int hf_cigi_src_port = -1;
172 static int hf_cigi_dest_port = -1;
173 static int hf_cigi_port = -1;
175 static int hf_cigi_packet_id = -1;
176 static int hf_cigi_packet_size = -1;
177 static int hf_cigi_version = -1;
179 static int hf_cigi_frame_size = -1;
181 static int hf_cigi_unknown = -1;
184 /*** Fields for CIGI2 ***/
186 /* CIGI2 Packet ID */
187 static int hf_cigi2_packet_id = -1;
188 #define CIGI2_PACKET_ID_IG_CONTROL 1
189 #define CIGI2_PACKET_ID_ENTITY_CONTROL 2
190 #define CIGI2_PACKET_ID_COMPONENT_CONTROL 3
191 #define CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL 4
192 #define CIGI2_PACKET_ID_RATE_CONTROL 5
193 #define CIGI2_PACKET_ID_ENVIRONMENT_CONTROL 6
194 #define CIGI2_PACKET_ID_WEATHER_CONTROL 7
195 #define CIGI2_PACKET_ID_VIEW_CONTROL 8
196 #define CIGI2_PACKET_ID_SENSOR_CONTROL 9
197 #define CIGI2_PACKET_ID_TRAJECTORY_DEFINITION 21
198 #define CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION 22
199 #define CIGI2_PACKET_ID_VIEW_DEFINITION 23
200 #define CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION 24
201 #define CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION 25
202 #define CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST 41
203 #define CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST 42
204 #define CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST 43
205 #define CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST 44
206 #define CIGI2_PACKET_ID_START_OF_FRAME 101
207 #define CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE 102
208 #define CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE 103
209 #define CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE 104
210 #define CIGI2_PACKET_ID_SENSOR_RESPONSE 105
211 #define CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE 106
212 #define CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE 107
213 #define CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE 108
214 #define CIGI2_PACKET_ID_USER_DEFINABLE_MIN 236
215 #define CIGI2_PACKET_ID_USER_DEFINABLE_MAX 255
216 static const value_string cigi2_packet_id_vals[] = {
217 {CIGI2_PACKET_ID_IG_CONTROL, "IG Control"},
218 {CIGI2_PACKET_ID_ENTITY_CONTROL, "Entity Control"},
219 {CIGI2_PACKET_ID_COMPONENT_CONTROL, "Component Control"},
220 {CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL, "Articulated Parts Control"},
221 {CIGI2_PACKET_ID_RATE_CONTROL, "Rate Control"},
222 {CIGI2_PACKET_ID_ENVIRONMENT_CONTROL, "Environment Control"},
223 {CIGI2_PACKET_ID_WEATHER_CONTROL, "Weather Control"},
224 {CIGI2_PACKET_ID_VIEW_CONTROL, "View Control"},
225 {CIGI2_PACKET_ID_SENSOR_CONTROL, "Sensor Control"},
226 {CIGI2_PACKET_ID_TRAJECTORY_DEFINITION, "Trajectory Definition"},
227 {CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION, "Special Effect Definition"},
228 {CIGI2_PACKET_ID_VIEW_DEFINITION, "View Definition"},
229 {CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION, "Collision Detection Segment Definition"},
230 {CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION, "Collision Detection Volume Definition"},
231 {CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST, "Height Above Terrain Request"},
232 {CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST, "Line of Sight Occult Request"},
233 {CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST, "Line of Sight Range Request"},
234 {CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST, "Height of Terrain Request"},
235 {CIGI2_PACKET_ID_START_OF_FRAME, "Start of Frame"},
236 {CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE, "Height Above Terrain Response"},
237 {CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE, "Line of Sight Response"},
238 {CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE, "Collision Detection Segment Response"},
239 {CIGI2_PACKET_ID_SENSOR_RESPONSE, "Sensor Response"},
240 {CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE, "Height of Terrain Response"},
241 {CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE, "Collision Detection Volume Response"},
242 {CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE, "Image Generator Message"},
243 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN, "User Definable"},
244 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+1, "User Definable"},
245 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+2, "User Definable"},
246 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+3, "User Definable"},
247 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+4, "User Definable"},
248 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+5, "User Definable"},
249 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+6, "User Definable"},
250 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+7, "User Definable"},
251 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+8, "User Definable"},
252 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+9, "User Definable"},
253 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+10, "User Definable"},
254 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+11, "User Definable"},
255 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+12, "User Definable"},
256 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+13, "User Definable"},
257 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+14, "User Definable"},
258 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+15, "User Definable"},
259 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+16, "User Definable"},
260 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+17, "User Definable"},
261 {CIGI2_PACKET_ID_USER_DEFINABLE_MIN+18, "User Definable"},
262 {CIGI2_PACKET_ID_USER_DEFINABLE_MAX, "User Definable"},
266 /* CIGI2 IG Control */
267 #define CIGI2_PACKET_SIZE_IG_CONTROL 16
268 static int hf_cigi2_ig_control = -1;
269 static int hf_cigi2_ig_control_db_number = -1;
270 static int hf_cigi2_ig_control_ig_mode = -1;
271 static int hf_cigi2_ig_control_tracking_enable = -1;
272 static int hf_cigi2_ig_control_boresight = -1;
273 static int hf_cigi2_ig_control_frame_ctr = -1;
274 static int hf_cigi2_ig_control_time_tag = -1;
276 static const value_string cigi2_ig_control_ig_mode_vals[] = {
277 {0, "Standby/Reset"},
283 /* CIGI2 Entity Control */
284 #define CIGI2_PACKET_SIZE_ENTITY_CONTROL 56
285 static int hf_cigi2_entity_control = -1;
286 static int hf_cigi2_entity_control_entity_id = -1;
287 static int hf_cigi2_entity_control_entity_state = -1;
288 static int hf_cigi2_entity_control_attach_state = -1;
289 static int hf_cigi2_entity_control_collision_detect = -1;
290 static int hf_cigi2_entity_control_effect_state = -1;
291 static int hf_cigi2_entity_control_type = -1;
292 static int hf_cigi2_entity_control_parent_id = -1;
293 static int hf_cigi2_entity_control_opacity = -1;
294 static int hf_cigi2_entity_control_internal_temp = -1;
295 static int hf_cigi2_entity_control_roll = -1;
296 static int hf_cigi2_entity_control_pitch = -1;
297 static int hf_cigi2_entity_control_heading = -1;
298 static int hf_cigi2_entity_control_alt = -1;
299 static int hf_cigi2_entity_control_lat = -1;
300 static int hf_cigi2_entity_control_lon = -1;
302 static const value_string cigi2_entity_control_entity_state_vals[] = {
309 static const true_false_string cigi2_entity_control_attach_state_tfs = {
314 static const value_string cigi2_entity_control_effect_state_vals[] = {
321 /* CIGI2 Component Control */
322 #define CIGI2_PACKET_SIZE_COMPONENT_CONTROL 20
323 static int hf_cigi2_component_control = -1;
324 static int hf_cigi2_component_control_instance_id = -1;
325 static int hf_cigi2_component_control_component_class = -1;
326 static int hf_cigi2_component_control_component_id = -1;
327 static int hf_cigi2_component_control_component_state = -1;
328 static int hf_cigi2_component_control_component_val1 = -1;
329 static int hf_cigi2_component_control_component_val2 = -1;
331 static const value_string cigi2_component_control_component_class_vals[] = {
341 /* CIGI2 Articulated Parts Control */
342 #define CIGI2_PACKET_SIZE_ARTICULATED_PARTS_CONTROL 32
343 static int hf_cigi2_articulated_parts_control = -1;
344 static int hf_cigi2_articulated_parts_control_entity_id = -1;
345 static int hf_cigi2_articulated_parts_control_part_id = -1;
346 static int hf_cigi2_articulated_parts_control_part_state = -1;
347 static int hf_cigi2_articulated_parts_control_xoff_enable = -1;
348 static int hf_cigi2_articulated_parts_control_yoff_enable = -1;
349 static int hf_cigi2_articulated_parts_control_zoff_enable = -1;
350 static int hf_cigi2_articulated_parts_control_roll_enable = -1;
351 static int hf_cigi2_articulated_parts_control_pitch_enable = -1;
352 static int hf_cigi2_articulated_parts_control_yaw_enable = -1;
353 static int hf_cigi2_articulated_parts_control_x_offset = -1;
354 static int hf_cigi2_articulated_parts_control_y_offset = -1;
355 static int hf_cigi2_articulated_parts_control_z_offset = -1;
356 static int hf_cigi2_articulated_parts_control_roll = -1;
357 static int hf_cigi2_articulated_parts_control_pitch = -1;
358 static int hf_cigi2_articulated_parts_control_yaw = -1;
360 /* CIGI2 Rate Control */
361 #define CIGI2_PACKET_SIZE_RATE_CONTROL 32
362 static int hf_cigi2_rate_control = -1;
363 static int hf_cigi2_rate_control_entity_id = -1;
364 static int hf_cigi2_rate_control_part_id = -1;
365 static int hf_cigi2_rate_control_x_rate = -1;
366 static int hf_cigi2_rate_control_y_rate = -1;
367 static int hf_cigi2_rate_control_z_rate = -1;
368 static int hf_cigi2_rate_control_roll_rate = -1;
369 static int hf_cigi2_rate_control_pitch_rate = -1;
370 static int hf_cigi2_rate_control_yaw_rate = -1;
372 /* CIGI2 Environmental Control */
373 #define CIGI2_PACKET_SIZE_ENVIRONMENT_CONTROL 36
374 static int hf_cigi2_environment_control = -1;
375 static int hf_cigi2_environment_control_hour = -1;
376 static int hf_cigi2_environment_control_minute = -1;
377 static int hf_cigi2_environment_control_ephemeris_enable = -1;
378 static int hf_cigi2_environment_control_humidity = -1;
379 static int hf_cigi2_environment_control_modtran_enable = -1;
380 static int hf_cigi2_environment_control_date = -1;
381 static int hf_cigi2_environment_control_air_temp = -1;
382 static int hf_cigi2_environment_control_global_visibility = -1;
383 static int hf_cigi2_environment_control_wind_speed = -1;
384 static int hf_cigi2_environment_control_wind_direction = -1;
385 static int hf_cigi2_environment_control_pressure = -1;
386 static int hf_cigi2_environment_control_aerosol = -1;
388 /* CIGI2 Weather Control */
389 #define CIGI2_PACKET_SIZE_WEATHER_CONTROL 44
390 static int hf_cigi2_weather_control = -1;
391 static int hf_cigi2_weather_control_entity_id = -1;
392 static int hf_cigi2_weather_control_weather_enable = -1;
393 static int hf_cigi2_weather_control_scud_enable = -1;
394 static int hf_cigi2_weather_control_random_winds = -1;
395 static int hf_cigi2_weather_control_severity = -1;
396 static int hf_cigi2_weather_control_phenomenon_type = -1;
397 static int hf_cigi2_weather_control_air_temp = -1;
398 static int hf_cigi2_weather_control_opacity = -1;
399 static int hf_cigi2_weather_control_scud_frequency = -1;
400 static int hf_cigi2_weather_control_coverage = -1;
401 static int hf_cigi2_weather_control_elevation = -1;
402 static int hf_cigi2_weather_control_thickness = -1;
403 static int hf_cigi2_weather_control_transition_band = -1;
404 static int hf_cigi2_weather_control_wind_speed = -1;
405 static int hf_cigi2_weather_control_wind_direction = -1;
407 static const value_string cigi2_weather_control_phenomenon_type_vals[] = {
408 {0, "Use Entity ID"},
409 {1, "Cloud Layer 1"},
410 {2, "Cloud Layer 2"},
418 /* CIGI2 View Control */
419 #define CIGI2_PACKET_SIZE_VIEW_CONTROL 32
420 static int hf_cigi2_view_control = -1;
421 static int hf_cigi2_view_control_entity_id = -1;
422 static int hf_cigi2_view_control_view_id = -1;
423 static int hf_cigi2_view_control_view_group = -1;
424 static int hf_cigi2_view_control_xoff_enable = -1;
425 static int hf_cigi2_view_control_yoff_enable = -1;
426 static int hf_cigi2_view_control_zoff_enable = -1;
427 static int hf_cigi2_view_control_roll_enable = -1;
428 static int hf_cigi2_view_control_pitch_enable = -1;
429 static int hf_cigi2_view_control_yaw_enable = -1;
430 static int hf_cigi2_view_control_x_offset = -1;
431 static int hf_cigi2_view_control_y_offset = -1;
432 static int hf_cigi2_view_control_z_offset = -1;
433 static int hf_cigi2_view_control_roll = -1;
434 static int hf_cigi2_view_control_pitch = -1;
435 static int hf_cigi2_view_control_yaw = -1;
437 /* CIGI2 Sensor Control */
438 #define CIGI2_PACKET_SIZE_SENSOR_CONTROL 24
439 static int hf_cigi2_sensor_control = -1;
440 static int hf_cigi2_sensor_control_view_id = -1;
441 static int hf_cigi2_sensor_control_sensor_enable = -1;
442 static int hf_cigi2_sensor_control_polarity = -1;
443 static int hf_cigi2_sensor_control_line_dropout = -1;
444 static int hf_cigi2_sensor_control_sensor_id = -1;
445 static int hf_cigi2_sensor_control_track_mode = -1;
446 static int hf_cigi2_sensor_control_auto_gain = -1;
447 static int hf_cigi2_sensor_control_track_polarity = -1;
448 static int hf_cigi2_sensor_control_gain = -1;
449 static int hf_cigi2_sensor_control_level = -1;
450 static int hf_cigi2_sensor_control_ac_coupling = -1;
451 static int hf_cigi2_sensor_control_noise = -1;
453 static const true_false_string cigi2_sensor_control_polarity_tfs = {
458 static const value_string cigi2_sensor_control_track_mode_vals[] = {
460 {1, "Force Correlate"},
467 /* CIGI2 Trajectory Definition */
468 #define CIGI2_PACKET_SIZE_TRAJECTORY_DEFINITION 16
469 static int hf_cigi2_trajectory_definition = -1;
470 static int hf_cigi2_trajectory_definition_entity_id = -1;
471 static int hf_cigi2_trajectory_definition_acceleration = -1;
472 static int hf_cigi2_trajectory_definition_retardation = -1;
473 static int hf_cigi2_trajectory_definition_terminal_velocity = -1;
475 /* CIGI2 Special Effect Definition */
476 #define CIGI2_PACKET_SIZE_SPECIAL_EFFECT_DEFINITION 32
477 static int hf_cigi2_special_effect_definition = -1;
478 static int hf_cigi2_special_effect_definition_entity_id = -1;
479 static int hf_cigi2_special_effect_definition_seq_direction = -1;
480 static int hf_cigi2_special_effect_definition_color_enable = -1;
481 static int hf_cigi2_special_effect_definition_red = -1;
482 static int hf_cigi2_special_effect_definition_green = -1;
483 static int hf_cigi2_special_effect_definition_blue = -1;
484 static int hf_cigi2_special_effect_definition_x_scale = -1;
485 static int hf_cigi2_special_effect_definition_y_scale = -1;
486 static int hf_cigi2_special_effect_definition_z_scale = -1;
487 static int hf_cigi2_special_effect_definition_time_scale = -1;
488 static int hf_cigi2_special_effect_definition_effect_count = -1;
489 static int hf_cigi2_special_effect_definition_separation = -1;
490 static int hf_cigi2_special_effect_definition_burst_interval = -1;
491 static int hf_cigi2_special_effect_definition_duration = -1;
493 static const true_false_string cigi2_special_effect_definition_seq_direction_tfs = {
498 /* CIGI2 View Definition */
499 #define CIGI2_PACKET_SIZE_VIEW_DEFINITION 32
500 static int hf_cigi2_view_definition = -1;
501 static int hf_cigi2_view_definition_view_id = -1;
502 static int hf_cigi2_view_definition_view_group = -1;
503 static int hf_cigi2_view_definition_view_type = -1;
504 static int hf_cigi2_view_definition_pixel_rep = -1;
505 static int hf_cigi2_view_definition_mirror = -1;
506 static int hf_cigi2_view_definition_tracker_assign = -1;
507 static int hf_cigi2_view_definition_near_enable = -1;
508 static int hf_cigi2_view_definition_far_enable = -1;
509 static int hf_cigi2_view_definition_left_enable = -1;
510 static int hf_cigi2_view_definition_right_enable = -1;
511 static int hf_cigi2_view_definition_top_enable = -1;
512 static int hf_cigi2_view_definition_bottom_enable = -1;
513 static int hf_cigi2_view_definition_fov_near = -1;
514 static int hf_cigi2_view_definition_fov_far = -1;
515 static int hf_cigi2_view_definition_fov_left = -1;
516 static int hf_cigi2_view_definition_fov_right = -1;
517 static int hf_cigi2_view_definition_fov_top = -1;
518 static int hf_cigi2_view_definition_fov_bottom = -1;
520 static const value_string cigi2_view_definition_pixel_rep_vals[] = {
522 {1, "1x2 Pixel Replicate"},
523 {2, "2x1 Pixel Replicate"},
524 {3, "2x2 Pixel Replicate"},
531 static const value_string cigi2_view_definition_mirror_vals[] = {
535 {3, "Horizontal and Vertical"},
539 /* CIGI2 Collision Detection Segment Definition */
540 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION 24
541 static int hf_cigi2_collision_detection_segment_definition = -1;
542 static int hf_cigi2_collision_detection_segment_definition_entity_id = -1;
543 static int hf_cigi2_collision_detection_segment_definition_segment_enable = -1;
544 static int hf_cigi2_collision_detection_segment_definition_segment_id = -1;
545 static int hf_cigi2_collision_detection_segment_definition_collision_mask = -1;
546 static int hf_cigi2_collision_detection_segment_definition_x_start = -1;
547 static int hf_cigi2_collision_detection_segment_definition_y_start = -1;
548 static int hf_cigi2_collision_detection_segment_definition_z_start = -1;
549 static int hf_cigi2_collision_detection_segment_definition_x_end = -1;
550 static int hf_cigi2_collision_detection_segment_definition_y_end = -1;
551 static int hf_cigi2_collision_detection_segment_definition_z_end = -1;
553 /* CIGI2 Collision Detection Volume Definition */
554 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION 20
555 static int hf_cigi2_collision_detection_volume_definition = -1;
556 static int hf_cigi2_collision_detection_volume_definition_entity_id = -1;
557 static int hf_cigi2_collision_detection_volume_definition_volume_enable = -1;
558 static int hf_cigi2_collision_detection_volume_definition_volume_id = -1;
559 static int hf_cigi2_collision_detection_volume_definition_x_offset = -1;
560 static int hf_cigi2_collision_detection_volume_definition_y_offset = -1;
561 static int hf_cigi2_collision_detection_volume_definition_z_offset = -1;
562 static int hf_cigi2_collision_detection_volume_definition_height = -1;
563 static int hf_cigi2_collision_detection_volume_definition_width = -1;
564 static int hf_cigi2_collision_detection_volume_definition_depth = -1;
566 /* CIGI2 Height Above Terrain Request */
567 #define CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_REQUEST 32
568 static int hf_cigi2_height_above_terrain_request = -1;
569 static int hf_cigi2_height_above_terrain_request_hat_id = -1;
570 static int hf_cigi2_height_above_terrain_request_alt = -1;
571 static int hf_cigi2_height_above_terrain_request_lat = -1;
572 static int hf_cigi2_height_above_terrain_request_lon = -1;
574 /* CIGI2 Line of Sight Occult Request */
575 #define CIGI2_PACKET_SIZE_LINE_OF_SIGHT_OCCULT_REQUEST 56
576 static int hf_cigi2_line_of_sight_occult_request = -1;
577 static int hf_cigi2_line_of_sight_occult_request_los_id = -1;
578 static int hf_cigi2_line_of_sight_occult_request_source_alt = -1;
579 static int hf_cigi2_line_of_sight_occult_request_source_lat = -1;
580 static int hf_cigi2_line_of_sight_occult_request_source_lon = -1;
581 static int hf_cigi2_line_of_sight_occult_request_dest_alt = -1;
582 static int hf_cigi2_line_of_sight_occult_request_dest_lat = -1;
583 static int hf_cigi2_line_of_sight_occult_request_dest_lon = -1;
585 /* CIGI2 Line of Sight Range Request */
586 #define CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RANGE_REQUEST 48
587 static int hf_cigi2_line_of_sight_range_request = -1;
588 static int hf_cigi2_line_of_sight_range_request_los_id = -1;
589 static int hf_cigi2_line_of_sight_range_request_azimuth = -1;
590 static int hf_cigi2_line_of_sight_range_request_elevation = -1;
591 static int hf_cigi2_line_of_sight_range_request_min_range = -1;
592 static int hf_cigi2_line_of_sight_range_request_max_range = -1;
593 static int hf_cigi2_line_of_sight_range_request_source_alt = -1;
594 static int hf_cigi2_line_of_sight_range_request_source_lat = -1;
595 static int hf_cigi2_line_of_sight_range_request_source_lon = -1;
597 /* CIGI2 Height of Terrain Request */
598 #define CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_REQUEST 24
599 static int hf_cigi2_height_of_terrain_request = -1;
600 static int hf_cigi2_height_of_terrain_request_hot_id = -1;
601 static int hf_cigi2_height_of_terrain_request_lat = -1;
602 static int hf_cigi2_height_of_terrain_request_lon = -1;
604 /* CIGI2 Start of Frame */
605 #define CIGI2_PACKET_SIZE_START_OF_FRAME 16
606 static int hf_cigi2_start_of_frame = -1;
607 static int hf_cigi2_start_of_frame_db_number = -1;
608 static int hf_cigi2_start_of_frame_ig_status_code = -1;
609 static int hf_cigi2_start_of_frame_ig_mode = -1;
610 static int hf_cigi2_start_of_frame_frame_ctr = -1;
611 static int hf_cigi2_start_of_frame_time_tag = -1;
613 static const value_string cigi2_start_of_frame_ig_mode_vals[] = {
614 {0, "Standby/Reset"},
617 {3, "Off-Line Maintenance"},
621 /* CIGI2 Height Above Terrain Response */
622 #define CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_RESPONSE 24
623 static int hf_cigi2_height_above_terrain_response = -1;
624 static int hf_cigi2_height_above_terrain_response_hat_id = -1;
625 static int hf_cigi2_height_above_terrain_response_valid = -1;
626 static int hf_cigi2_height_above_terrain_response_material_type = -1;
627 static int hf_cigi2_height_above_terrain_response_alt = -1;
629 /* CIGI2 Line of Sight Response */
630 #define CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE 40
631 static int hf_cigi2_line_of_sight_response = -1;
632 static int hf_cigi2_line_of_sight_response_los_id = -1;
633 static int hf_cigi2_line_of_sight_response_valid = -1;
634 static int hf_cigi2_line_of_sight_response_occult_response = -1;
635 static int hf_cigi2_line_of_sight_response_material_type = -1;
636 static int hf_cigi2_line_of_sight_response_range = -1;
637 static int hf_cigi2_line_of_sight_response_alt = -1;
638 static int hf_cigi2_line_of_sight_response_lat = -1;
639 static int hf_cigi2_line_of_sight_response_lon = -1;
641 static const true_false_string cigi2_line_of_sight_occult_response_tfs = {
646 /* CIGI2 Collision Detection Segment Response */
647 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_RESPONSE 24
648 static int hf_cigi2_collision_detection_segment_response = -1;
649 static int hf_cigi2_collision_detection_segment_response_entity_id = -1;
650 static int hf_cigi2_collision_detection_segment_response_segment_id = -1;
651 static int hf_cigi2_collision_detection_segment_response_contact = -1;
652 static int hf_cigi2_collision_detection_segment_response_contacted_entity = -1;
653 static int hf_cigi2_collision_detection_segment_response_material_type = -1;
654 static int hf_cigi2_collision_detection_segment_response_collision_x = -1;
655 static int hf_cigi2_collision_detection_segment_response_collision_y = -1;
656 static int hf_cigi2_collision_detection_segment_response_collision_z = -1;
658 static const true_false_string cigi2_collision_detection_segment_response_contact_tfs = {
659 "Contact with a defined entity",
660 "Contact with a non-entity surface"
663 /* CIGI2 Sensor Response */
664 #define CIGI2_PACKET_SIZE_SENSOR_RESPONSE 12
665 static int hf_cigi2_sensor_response = -1;
666 static int hf_cigi2_sensor_response_view_id = -1;
667 static int hf_cigi2_sensor_response_status = -1;
668 static int hf_cigi2_sensor_response_sensor_id = -1;
669 static int hf_cigi2_sensor_response_x_offset = -1;
670 static int hf_cigi2_sensor_response_y_offset = -1;
671 static int hf_cigi2_sensor_response_x_size = -1;
672 static int hf_cigi2_sensor_response_y_size = -1;
674 static const value_string cigi2_sensor_response_status_vals[] = {
675 {0, "Searching for Target"},
677 {2, "Impending Breaklock"},
682 /* CIGI2 Height of Terrain Response */
683 #define CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_RESPONSE 24
684 static int hf_cigi2_height_of_terrain_response = -1;
685 static int hf_cigi2_height_of_terrain_response_hot_id = -1;
686 static int hf_cigi2_height_of_terrain_response_valid = -1;
687 static int hf_cigi2_height_of_terrain_response_material_type = -1;
688 static int hf_cigi2_height_of_terrain_response_alt = -1;
690 /* CIGI2 Collision Detection Volume Response */
691 #define CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_RESPONSE 8
692 static int hf_cigi2_collision_detection_volume_response = -1;
693 static int hf_cigi2_collision_detection_volume_response_entity_id = -1;
694 static int hf_cigi2_collision_detection_volume_response_volume_id = -1;
695 static int hf_cigi2_collision_detection_volume_response_contact = -1;
696 static int hf_cigi2_collision_detection_volume_response_contact_entity = -1;
698 static const true_false_string cigi2_collision_detection_volume_response_contact_tfs = {
699 "Contact with a defined entity",
700 "Contact with a non-entity surface"
703 /* CIGI2 Image Generator Message */
704 static int hf_cigi2_image_generator_message = -1;
705 static int hf_cigi2_image_generator_message_id = -1;
706 static int hf_cigi2_image_generator_message_message = -1;
708 /* CIGI2 User Definable */
709 static int hf_cigi2_user_definable = -1;
712 /*** Fields for CIGI3 ***/
714 static int hf_cigi3_byte_swap = -1;
716 #define CIGI3_BYTE_SWAP_BIG_ENDIAN 0x8000
717 #define CIGI3_BYTE_SWAP_LITTLE_ENDIAN 0x0080
718 static const value_string cigi3_byte_swap_vals[] = {
719 {CIGI3_BYTE_SWAP_BIG_ENDIAN, "Big-Endian"},
720 {CIGI3_BYTE_SWAP_LITTLE_ENDIAN, "Little-Endian"},
724 /* CIGI3 Packet ID */
725 static int hf_cigi3_packet_id = -1;
726 #define CIGI3_PACKET_ID_IG_CONTROL 1
727 #define CIGI3_PACKET_ID_ENTITY_CONTROL 2
728 #define CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL 3
729 #define CIGI3_PACKET_ID_COMPONENT_CONTROL 4
730 #define CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL 5
731 #define CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL 6
732 #define CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL 7
733 #define CIGI3_PACKET_ID_RATE_CONTROL 8
734 #define CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL 9
735 #define CIGI3_PACKET_ID_ATMOSPHERE_CONTROL 10
736 #define CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL 11
737 #define CIGI3_PACKET_ID_WEATHER_CONTROL 12
738 #define CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL 13
739 #define CIGI3_PACKET_ID_WAVE_CONTROL 14
740 #define CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL 15
741 #define CIGI3_PACKET_ID_VIEW_CONTROL 16
742 #define CIGI3_PACKET_ID_SENSOR_CONTROL 17
743 #define CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL 18
744 #define CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION 19
745 #define CIGI3_PACKET_ID_TRAJECTORY_DEFINITION 20
746 #define CIGI3_PACKET_ID_VIEW_DEFINITION 21
747 #define CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION 22
748 #define CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION 23
749 #define CIGI3_PACKET_ID_HAT_HOT_REQUEST 24
750 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST 25
751 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST 26
752 #define CIGI3_PACKET_ID_POSITION_REQUEST 27
753 #define CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST 28
754 #define CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION 29
755 #define CIGI3_PACKET_ID_SYMBOL_TEXT_DEFINITION 30
756 #define CIGI3_PACKET_ID_SYMBOL_CIRCLE_DEFINITION 31
757 #define CIGI3_PACKET_ID_SYMBOL_LINE_DEFINITION 32
758 #define CIGI3_PACKET_ID_SYMBOL_CLONE 33
759 #define CIGI3_PACKET_ID_SYMBOL_CONTROL 34
760 #define CIGI3_PACKET_ID_SHORT_SYMBOL_CONTROL 35
761 #define CIGI3_PACKET_ID_START_OF_FRAME 101
762 #define CIGI3_PACKET_ID_HAT_HOT_RESPONSE 102
763 #define CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE 103
764 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE 104
765 #define CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE 105
766 #define CIGI3_PACKET_ID_SENSOR_RESPONSE 106
767 #define CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE 107
768 #define CIGI3_PACKET_ID_POSITION_RESPONSE 108
769 #define CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE 109
770 #define CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE 110
771 #define CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE 111
772 #define CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE 112
773 #define CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION 113
774 #define CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION 114
775 #define CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION 115
776 #define CIGI3_PACKET_ID_EVENT_NOTIFICATION 116
777 #define CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE 117
778 #define CIGI3_PACKET_ID_USER_DEFINED_MIN 201
779 #define CIGI3_PACKET_ID_USER_DEFINED_MAX 255
780 static const value_string cigi3_packet_id_vals[] = {
781 {CIGI3_PACKET_ID_IG_CONTROL, "IG Control"},
782 {CIGI3_PACKET_ID_ENTITY_CONTROL, "Entity Control"},
783 {CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL, "Conformal Clamped Entity Control"},
784 {CIGI3_PACKET_ID_COMPONENT_CONTROL, "Component Control"},
785 {CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL, "Short Component Control"},
786 {CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL, "Articulated Part Control"},
787 {CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL, "Short Articulated Part Control"},
788 {CIGI3_PACKET_ID_RATE_CONTROL, "Rate Control"},
789 {CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL, "Celestial Sphere Control"},
790 {CIGI3_PACKET_ID_ATMOSPHERE_CONTROL, "Atmosphere Control"},
791 {CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL, "Environmental Region Control"},
792 {CIGI3_PACKET_ID_WEATHER_CONTROL, "Weather Control"},
793 {CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL, "Maritime Surface Conditions Control"},
794 {CIGI3_PACKET_ID_WAVE_CONTROL, "Wave Control"},
795 {CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL, "Terrestrial Surface Conditions Control"},
796 {CIGI3_PACKET_ID_VIEW_CONTROL, "View Control"},
797 {CIGI3_PACKET_ID_SENSOR_CONTROL, "Sensor Control"},
798 {CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL, "Motion Tracker Control"},
799 {CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION, "Earth Reference Model Definition"},
800 {CIGI3_PACKET_ID_TRAJECTORY_DEFINITION, "Trajectory Definition"},
801 {CIGI3_PACKET_ID_VIEW_DEFINITION, "View Definition"},
802 {CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION, "Collision Detection Segment Definition"},
803 {CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION, "Collision Detection Volume Definition"},
804 {CIGI3_PACKET_ID_HAT_HOT_REQUEST, "HAT/HOT Request"},
805 {CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST, "Line of Sight Segment Request"},
806 {CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST, "Line of Sight Vector Request"},
807 {CIGI3_PACKET_ID_POSITION_REQUEST, "Position Request"},
808 {CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST, "Environmental Conditions Request"},
809 {CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION, "Symbol Surface Definition"},
810 {CIGI3_PACKET_ID_SYMBOL_TEXT_DEFINITION, "Symbol Text Definition"},
811 {CIGI3_PACKET_ID_SYMBOL_CIRCLE_DEFINITION, "Symbol Circle Definition"},
812 {CIGI3_PACKET_ID_SYMBOL_LINE_DEFINITION, "Symbol Line Definition"},
813 {CIGI3_PACKET_ID_SYMBOL_CLONE, "Symbol Clone"},
814 {CIGI3_PACKET_ID_SYMBOL_CONTROL, "Symbol Control"},
815 {CIGI3_PACKET_ID_SHORT_SYMBOL_CONTROL, "Short Symbol Control"},
816 {CIGI3_PACKET_ID_START_OF_FRAME, "Start of Frame"},
817 {CIGI3_PACKET_ID_HAT_HOT_RESPONSE, "HAT/HOT Response"},
818 {CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE, "HAT/HOT Extended Response"},
819 {CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE, "Line of Sight Response"},
820 {CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE, "Line of Sight Extended Response"},
821 {CIGI3_PACKET_ID_SENSOR_RESPONSE, "Sensor Response"},
822 {CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE, "Sensor Extended Response"},
823 {CIGI3_PACKET_ID_POSITION_RESPONSE, "Position Response"},
824 {CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE, "Weather Conditions Response"},
825 {CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE, "Aerosol Concentration Response"},
826 {CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE, "Maritime Surface Conditions Response"},
827 {CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE, "Terrestrial Surface Conditions Response"},
828 {CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION, "Collision Detection Segment Notification"},
829 {CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION, "Collision Detection Volume Notification"},
830 {CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION, "Animation Stop Notification"},
831 {CIGI3_PACKET_ID_EVENT_NOTIFICATION, "Event Notification"},
832 {CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE, "Image Generator Message"},
833 {CIGI3_PACKET_ID_USER_DEFINED_MIN, "User-Defined Data"},
834 {CIGI3_PACKET_ID_USER_DEFINED_MIN+1, "User-Defined Data"},
835 {CIGI3_PACKET_ID_USER_DEFINED_MIN+2, "User-Defined Data"},
836 {CIGI3_PACKET_ID_USER_DEFINED_MIN+3, "User-Defined Data"},
837 {CIGI3_PACKET_ID_USER_DEFINED_MIN+4, "User-Defined Data"},
838 {CIGI3_PACKET_ID_USER_DEFINED_MIN+5, "User-Defined Data"},
839 {CIGI3_PACKET_ID_USER_DEFINED_MIN+6, "User-Defined Data"},
840 {CIGI3_PACKET_ID_USER_DEFINED_MIN+7, "User-Defined Data"},
841 {CIGI3_PACKET_ID_USER_DEFINED_MIN+8, "User-Defined Data"},
842 {CIGI3_PACKET_ID_USER_DEFINED_MIN+9, "User-Defined Data"},
843 {CIGI3_PACKET_ID_USER_DEFINED_MIN+10, "User-Defined Data"},
844 {CIGI3_PACKET_ID_USER_DEFINED_MIN+11, "User-Defined Data"},
845 {CIGI3_PACKET_ID_USER_DEFINED_MIN+12, "User-Defined Data"},
846 {CIGI3_PACKET_ID_USER_DEFINED_MIN+13, "User-Defined Data"},
847 {CIGI3_PACKET_ID_USER_DEFINED_MIN+14, "User-Defined Data"},
848 {CIGI3_PACKET_ID_USER_DEFINED_MIN+15, "User-Defined Data"},
849 {CIGI3_PACKET_ID_USER_DEFINED_MIN+16, "User-Defined Data"},
850 {CIGI3_PACKET_ID_USER_DEFINED_MIN+17, "User-Defined Data"},
851 {CIGI3_PACKET_ID_USER_DEFINED_MIN+18, "User-Defined Data"},
852 {CIGI3_PACKET_ID_USER_DEFINED_MIN+19, "User-Defined Data"},
853 {CIGI3_PACKET_ID_USER_DEFINED_MIN+20, "User-Defined Data"},
854 {CIGI3_PACKET_ID_USER_DEFINED_MIN+21, "User-Defined Data"},
855 {CIGI3_PACKET_ID_USER_DEFINED_MIN+22, "User-Defined Data"},
856 {CIGI3_PACKET_ID_USER_DEFINED_MIN+23, "User-Defined Data"},
857 {CIGI3_PACKET_ID_USER_DEFINED_MIN+24, "User-Defined Data"},
858 {CIGI3_PACKET_ID_USER_DEFINED_MIN+25, "User-Defined Data"},
859 {CIGI3_PACKET_ID_USER_DEFINED_MIN+26, "User-Defined Data"},
860 {CIGI3_PACKET_ID_USER_DEFINED_MIN+27, "User-Defined Data"},
861 {CIGI3_PACKET_ID_USER_DEFINED_MIN+28, "User-Defined Data"},
862 {CIGI3_PACKET_ID_USER_DEFINED_MIN+29, "User-Defined Data"},
863 {CIGI3_PACKET_ID_USER_DEFINED_MIN+30, "User-Defined Data"},
864 {CIGI3_PACKET_ID_USER_DEFINED_MIN+31, "User-Defined Data"},
865 {CIGI3_PACKET_ID_USER_DEFINED_MIN+32, "User-Defined Data"},
866 {CIGI3_PACKET_ID_USER_DEFINED_MIN+33, "User-Defined Data"},
867 {CIGI3_PACKET_ID_USER_DEFINED_MIN+34, "User-Defined Data"},
868 {CIGI3_PACKET_ID_USER_DEFINED_MIN+35, "User-Defined Data"},
869 {CIGI3_PACKET_ID_USER_DEFINED_MIN+36, "User-Defined Data"},
870 {CIGI3_PACKET_ID_USER_DEFINED_MIN+37, "User-Defined Data"},
871 {CIGI3_PACKET_ID_USER_DEFINED_MIN+38, "User-Defined Data"},
872 {CIGI3_PACKET_ID_USER_DEFINED_MIN+39, "User-Defined Data"},
873 {CIGI3_PACKET_ID_USER_DEFINED_MIN+40, "User-Defined Data"},
874 {CIGI3_PACKET_ID_USER_DEFINED_MIN+41, "User-Defined Data"},
875 {CIGI3_PACKET_ID_USER_DEFINED_MIN+42, "User-Defined Data"},
876 {CIGI3_PACKET_ID_USER_DEFINED_MIN+43, "User-Defined Data"},
877 {CIGI3_PACKET_ID_USER_DEFINED_MIN+44, "User-Defined Data"},
878 {CIGI3_PACKET_ID_USER_DEFINED_MIN+45, "User-Defined Data"},
879 {CIGI3_PACKET_ID_USER_DEFINED_MIN+46, "User-Defined Data"},
880 {CIGI3_PACKET_ID_USER_DEFINED_MIN+47, "User-Defined Data"},
881 {CIGI3_PACKET_ID_USER_DEFINED_MIN+48, "User-Defined Data"},
882 {CIGI3_PACKET_ID_USER_DEFINED_MIN+49, "User-Defined Data"},
883 {CIGI3_PACKET_ID_USER_DEFINED_MIN+50, "User-Defined Data"},
884 {CIGI3_PACKET_ID_USER_DEFINED_MIN+51, "User-Defined Data"},
885 {CIGI3_PACKET_ID_USER_DEFINED_MIN+52, "User-Defined Data"},
886 {CIGI3_PACKET_ID_USER_DEFINED_MIN+53, "User-Defined Data"},
887 {CIGI3_PACKET_ID_USER_DEFINED_MAX, "User-Defined Data"},
891 /* CIGI3 IG Control */
892 #define CIGI3_PACKET_SIZE_IG_CONTROL 16
893 static int hf_cigi3_ig_control = -1;
894 static int hf_cigi3_ig_control_db_number = -1;
895 static int hf_cigi3_ig_control_ig_mode = -1;
896 static int hf_cigi3_ig_control_timestamp_valid = -1;
897 static int hf_cigi3_ig_control_frame_ctr = -1;
898 static int hf_cigi3_ig_control_timestamp = -1;
900 static const value_string cigi3_ig_control_ig_mode_vals[] = {
901 {0, "Reset/Standby"},
907 /* CIGI3_2 IG Control */
908 #define CIGI3_2_PACKET_SIZE_IG_CONTROL 24
909 static int hf_cigi3_2_ig_control = -1;
910 static int hf_cigi3_2_ig_control_db_number = -1;
911 static int hf_cigi3_2_ig_control_ig_mode = -1;
912 static int hf_cigi3_2_ig_control_timestamp_valid = -1;
913 static int hf_cigi3_2_ig_control_host_frame_number = -1;
914 static int hf_cigi3_2_ig_control_timestamp = -1;
915 static int hf_cigi3_2_ig_control_last_ig_frame_number = -1;
917 static const value_string cigi3_2_ig_control_ig_mode_vals[] = {
918 {0, "Reset/Standby"},
924 /* CIGI3_3 IG Control */
925 #define CIGI3_3_PACKET_SIZE_IG_CONTROL 24
926 static int hf_cigi3_3_ig_control = -1;
927 static int hf_cigi3_3_ig_control_db_number = -1;
928 static int hf_cigi3_3_ig_control_ig_mode = -1;
929 static int hf_cigi3_3_ig_control_timestamp_valid = -1;
930 static int hf_cigi3_3_ig_control_extrapolation_enable = -1;
931 static int hf_cigi3_3_ig_control_minor_version = -1;
932 static int hf_cigi3_3_ig_control_host_frame_number = -1;
933 static int hf_cigi3_3_ig_control_timestamp = -1;
934 static int hf_cigi3_3_ig_control_last_ig_frame_number = -1;
936 static const value_string cigi3_3_ig_control_ig_mode_vals[] = {
937 {0, "Reset/Standby"},
943 /* CIGI3 Entity Control */
944 #define CIGI3_PACKET_SIZE_ENTITY_CONTROL 48
945 static int hf_cigi3_entity_control = -1;
946 static int hf_cigi3_entity_control_entity_id = -1;
947 static int hf_cigi3_entity_control_entity_state = -1;
948 static int hf_cigi3_entity_control_attach_state = -1;
949 static int hf_cigi3_entity_control_collision_detection_request = -1;
950 static int hf_cigi3_entity_control_inherit_alpha = -1;
951 static int hf_cigi3_entity_control_ground_ocean_clamp = -1;
952 static int hf_cigi3_entity_control_animation_direction = -1;
953 static int hf_cigi3_entity_control_animation_loop_mode = -1;
954 static int hf_cigi3_entity_control_animation_state = -1;
955 static int hf_cigi3_entity_control_alpha = -1;
956 static int hf_cigi3_entity_control_entity_type = -1;
957 static int hf_cigi3_entity_control_parent_id = -1;
958 static int hf_cigi3_entity_control_roll = -1;
959 static int hf_cigi3_entity_control_pitch = -1;
960 static int hf_cigi3_entity_control_yaw = -1;
961 static int hf_cigi3_entity_control_lat_xoff = -1;
962 static int hf_cigi3_entity_control_lon_yoff = -1;
963 static int hf_cigi3_entity_control_alt_zoff = -1;
965 static const value_string cigi3_entity_control_entity_state_vals[] = {
966 {0, "Inactive/Standby"},
972 static const true_false_string cigi3_entity_control_attach_state_tfs = {
977 static const true_false_string cigi3_entity_control_collision_detection_request_tfs = {
982 static const true_false_string cigi3_entity_control_inherit_alpha_tfs = {
987 static const value_string cigi3_entity_control_ground_ocean_clamp_vals[] = {
989 {1, "Non-Conformal"},
994 static const true_false_string cigi3_entity_control_animation_direction_tfs = {
999 static const true_false_string cigi3_entity_control_animation_loop_mode_tfs = {
1004 static const value_string cigi3_entity_control_animation_state_vals[] = {
1012 /* CIGI3_3 Entity Control */
1013 static int hf_cigi3_3_entity_control = -1;
1014 static int hf_cigi3_3_entity_control_entity_id = -1;
1015 static int hf_cigi3_3_entity_control_entity_state = -1;
1016 static int hf_cigi3_3_entity_control_attach_state = -1;
1017 static int hf_cigi3_3_entity_control_collision_detection_request = -1;
1018 static int hf_cigi3_3_entity_control_inherit_alpha = -1;
1019 static int hf_cigi3_3_entity_control_ground_ocean_clamp = -1;
1020 static int hf_cigi3_3_entity_control_animation_direction = -1;
1021 static int hf_cigi3_3_entity_control_animation_loop_mode = -1;
1022 static int hf_cigi3_3_entity_control_animation_state = -1;
1023 static int hf_cigi3_3_entity_control_extrapolation_enable = -1;
1024 static int hf_cigi3_3_entity_control_alpha = -1;
1025 static int hf_cigi3_3_entity_control_entity_type = -1;
1026 static int hf_cigi3_3_entity_control_parent_id = -1;
1027 static int hf_cigi3_3_entity_control_roll = -1;
1028 static int hf_cigi3_3_entity_control_pitch = -1;
1029 static int hf_cigi3_3_entity_control_yaw = -1;
1030 static int hf_cigi3_3_entity_control_lat_xoff = -1;
1031 static int hf_cigi3_3_entity_control_lon_yoff = -1;
1032 static int hf_cigi3_3_entity_control_alt_zoff = -1;
1034 /* CIGI3 Conformal Clamped Entity Control */
1035 #define CIGI3_PACKET_SIZE_CONFORMAL_CLAMPED_ENTITY_CONTROL 24
1036 static int hf_cigi3_conformal_clamped_entity_control = -1;
1037 static int hf_cigi3_conformal_clamped_entity_control_entity_id = -1;
1038 static int hf_cigi3_conformal_clamped_entity_control_yaw = -1;
1039 static int hf_cigi3_conformal_clamped_entity_control_lat = -1;
1040 static int hf_cigi3_conformal_clamped_entity_control_lon = -1;
1042 /* CIGI3 Component Control */
1043 #define CIGI3_PACKET_SIZE_COMPONENT_CONTROL 32
1044 static int hf_cigi3_component_control = -1;
1045 static int hf_cigi3_component_control_component_id = -1;
1046 static int hf_cigi3_component_control_instance_id = -1;
1047 static int hf_cigi3_component_control_component_class = -1;
1048 static int hf_cigi3_component_control_component_state = -1;
1049 static int hf_cigi3_component_control_data_1 = -1;
1050 static int hf_cigi3_component_control_data_2 = -1;
1051 static int hf_cigi3_component_control_data_3 = -1;
1052 static int hf_cigi3_component_control_data_4 = -1;
1053 static int hf_cigi3_component_control_data_5 = -1;
1054 static int hf_cigi3_component_control_data_6 = -1;
1056 static const value_string cigi3_component_control_component_class_vals[] = {
1061 {4, "Regional Sea Surface"},
1062 {5, "Regional Terrain Surface"},
1063 {6, "Regional Layered Weather"},
1064 {7, "Global Sea Surface"},
1065 {8, "Global Terrain Surface"},
1066 {9, "Global Layered Weather"},
1068 {11, "Celestial Sphere"},
1074 /* CIGI3_3 Component Control */
1075 static int hf_cigi3_3_component_control = -1;
1076 static int hf_cigi3_3_component_control_component_id = -1;
1077 static int hf_cigi3_3_component_control_instance_id = -1;
1078 static int hf_cigi3_3_component_control_component_class = -1;
1079 static int hf_cigi3_3_component_control_component_state = -1;
1080 static int hf_cigi3_3_component_control_data_1 = -1;
1081 static int hf_cigi3_3_component_control_data_2 = -1;
1082 static int hf_cigi3_3_component_control_data_3 = -1;
1083 static int hf_cigi3_3_component_control_data_4 = -1;
1084 static int hf_cigi3_3_component_control_data_5 = -1;
1085 static int hf_cigi3_3_component_control_data_6 = -1;
1087 static const value_string cigi3_3_component_control_component_class_vals[] = {
1092 {4, "Regional Sea Surface"},
1093 {5, "Regional Terrain Surface"},
1094 {6, "Regional Layered Weather"},
1095 {7, "Global Sea Surface"},
1096 {8, "Global Terrain Surface"},
1097 {9, "Global Layered Weather"},
1099 {11, "Celestial Sphere"},
1102 {14, "Symbol Surface"},
1107 /* CIGI3 Short Component Control */
1108 #define CIGI3_PACKET_SIZE_SHORT_COMPONENT_CONTROL 16
1109 static int hf_cigi3_short_component_control = -1;
1110 static int hf_cigi3_short_component_control_component_id = -1;
1111 static int hf_cigi3_short_component_control_instance_id = -1;
1112 static int hf_cigi3_short_component_control_component_class = -1;
1113 static int hf_cigi3_short_component_control_component_state = -1;
1114 static int hf_cigi3_short_component_control_data_1 = -1;
1115 static int hf_cigi3_short_component_control_data_2 = -1;
1117 static const value_string cigi3_short_component_control_component_class_vals[] = {
1122 {4, "Regional Sea Surface"},
1123 {5, "Regional Terrain Surface"},
1124 {6, "Regional Layered Weather"},
1125 {7, "Global Sea Surface"},
1126 {8, "Global Terrain Surface"},
1127 {9, "Global Layered Weather"},
1129 {11, "Celestial Sphere"},
1135 /* CIGI3_3 Short Component Control */
1136 static int hf_cigi3_3_short_component_control = -1;
1137 static int hf_cigi3_3_short_component_control_component_id = -1;
1138 static int hf_cigi3_3_short_component_control_instance_id = -1;
1139 static int hf_cigi3_3_short_component_control_component_class = -1;
1140 static int hf_cigi3_3_short_component_control_component_state = -1;
1141 static int hf_cigi3_3_short_component_control_data_1 = -1;
1142 static int hf_cigi3_3_short_component_control_data_2 = -1;
1144 static const value_string cigi3_3_short_component_control_component_class_vals[] = {
1149 {4, "Regional Sea Surface"},
1150 {5, "Regional Terrain Surface"},
1151 {6, "Regional Layered Weather"},
1152 {7, "Global Sea Surface"},
1153 {8, "Global Terrain Surface"},
1154 {9, "Global Layered Weather"},
1156 {11, "Celestial Sphere"},
1159 {14, "Symbol Surface"},
1164 /* CIGI3 Articulated Part Control */
1165 #define CIGI3_PACKET_SIZE_ARTICULATED_PART_CONTROL 32
1166 static int hf_cigi3_articulated_part_control = -1;
1167 static int hf_cigi3_articulated_part_control_entity_id = -1;
1168 static int hf_cigi3_articulated_part_control_part_id = -1;
1169 static int hf_cigi3_articulated_part_control_part_enable = -1;
1170 static int hf_cigi3_articulated_part_control_xoff_enable = -1;
1171 static int hf_cigi3_articulated_part_control_yoff_enable = -1;
1172 static int hf_cigi3_articulated_part_control_zoff_enable = -1;
1173 static int hf_cigi3_articulated_part_control_roll_enable = -1;
1174 static int hf_cigi3_articulated_part_control_pitch_enable = -1;
1175 static int hf_cigi3_articulated_part_control_yaw_enable = -1;
1176 static int hf_cigi3_articulated_part_control_xoff = -1;
1177 static int hf_cigi3_articulated_part_control_yoff = -1;
1178 static int hf_cigi3_articulated_part_control_zoff = -1;
1179 static int hf_cigi3_articulated_part_control_roll = -1;
1180 static int hf_cigi3_articulated_part_control_pitch = -1;
1181 static int hf_cigi3_articulated_part_control_yaw = -1;
1183 /* CIGI3 Short Articulated Part Control */
1184 #define CIGI3_PACKET_SIZE_SHORT_ARTICULATED_PART_CONTROL 16
1185 static int hf_cigi3_short_articulated_part_control = -1;
1186 static int hf_cigi3_short_articulated_part_control_entity_id = -1;
1187 static int hf_cigi3_short_articulated_part_control_part_id_1 = -1;
1188 static int hf_cigi3_short_articulated_part_control_part_id_2 = -1;
1189 static int hf_cigi3_short_articulated_part_control_dof_select_1 = -1;
1190 static int hf_cigi3_short_articulated_part_control_dof_select_2 = -1;
1191 static int hf_cigi3_short_articulated_part_control_part_enable_1 = -1;
1192 static int hf_cigi3_short_articulated_part_control_part_enable_2 = -1;
1193 static int hf_cigi3_short_articulated_part_control_dof_1 = -1;
1194 static int hf_cigi3_short_articulated_part_control_dof_2 = -1;
1196 static const value_string cigi3_short_articulated_part_control_dof_select_vals[] = {
1207 /* CIGI3 Rate Control */
1208 #define CIGI3_PACKET_SIZE_RATE_CONTROL 32
1209 static int hf_cigi3_rate_control = -1;
1210 static int hf_cigi3_rate_control_entity_id = -1;
1211 static int hf_cigi3_rate_control_part_id = -1;
1212 static int hf_cigi3_rate_control_apply_to_part = -1;
1213 static int hf_cigi3_rate_control_x_rate = -1;
1214 static int hf_cigi3_rate_control_y_rate = -1;
1215 static int hf_cigi3_rate_control_z_rate = -1;
1216 static int hf_cigi3_rate_control_roll_rate = -1;
1217 static int hf_cigi3_rate_control_pitch_rate = -1;
1218 static int hf_cigi3_rate_control_yaw_rate = -1;
1220 /* CIGI3_2 Rate Control */
1221 #define CIGI3_2_PACKET_SIZE_RATE_CONTROL 32
1222 static int hf_cigi3_2_rate_control = -1;
1223 static int hf_cigi3_2_rate_control_entity_id = -1;
1224 static int hf_cigi3_2_rate_control_part_id = -1;
1225 static int hf_cigi3_2_rate_control_apply_to_part = -1;
1226 static int hf_cigi3_2_rate_control_coordinate_system = -1;
1227 static int hf_cigi3_2_rate_control_x_rate = -1;
1228 static int hf_cigi3_2_rate_control_y_rate = -1;
1229 static int hf_cigi3_2_rate_control_z_rate = -1;
1230 static int hf_cigi3_2_rate_control_roll_rate = -1;
1231 static int hf_cigi3_2_rate_control_pitch_rate = -1;
1232 static int hf_cigi3_2_rate_control_yaw_rate = -1;
1234 static const true_false_string cigi3_2_rate_control_coord_sys_select_vals = {
1239 /* CIGI3 Celestial Sphere Control */
1240 #define CIGI3_PACKET_SIZE_CELESTIAL_SPHERE_CONTROL 16
1241 static int hf_cigi3_celestial_sphere_control = -1;
1242 static int hf_cigi3_celestial_sphere_control_hour = -1;
1243 static int hf_cigi3_celestial_sphere_control_minute = -1;
1244 static int hf_cigi3_celestial_sphere_control_ephemeris_enable = -1;
1245 static int hf_cigi3_celestial_sphere_control_sun_enable = -1;
1246 static int hf_cigi3_celestial_sphere_control_moon_enable = -1;
1247 static int hf_cigi3_celestial_sphere_control_star_enable = -1;
1248 static int hf_cigi3_celestial_sphere_control_date_time_valid = -1;
1249 static int hf_cigi3_celestial_sphere_control_date = -1;
1250 static int hf_cigi3_celestial_sphere_control_star_intensity = -1;
1252 /* CIGI3 Atmosphere Control */
1253 #define CIGI3_PACKET_SIZE_ATMOSPHERE_CONTROL 32
1254 static int hf_cigi3_atmosphere_control = -1;
1255 static int hf_cigi3_atmosphere_control_atmospheric_model_enable = -1;
1256 static int hf_cigi3_atmosphere_control_humidity = -1;
1257 static int hf_cigi3_atmosphere_control_air_temp = -1;
1258 static int hf_cigi3_atmosphere_control_visibility_range = -1;
1259 static int hf_cigi3_atmosphere_control_horiz_wind = -1;
1260 static int hf_cigi3_atmosphere_control_vert_wind = -1;
1261 static int hf_cigi3_atmosphere_control_wind_direction = -1;
1262 static int hf_cigi3_atmosphere_control_barometric_pressure = -1;
1264 /* CIGI3 Environmental Region Control */
1265 #define CIGI3_PACKET_SIZE_ENVIRONMENTAL_REGION_CONTROL 48
1266 static int hf_cigi3_environmental_region_control = -1;
1267 static int hf_cigi3_environmental_region_control_region_id = -1;
1268 static int hf_cigi3_environmental_region_control_region_state = -1;
1269 static int hf_cigi3_environmental_region_control_merge_weather = -1;
1270 static int hf_cigi3_environmental_region_control_merge_aerosol = -1;
1271 static int hf_cigi3_environmental_region_control_merge_maritime = -1;
1272 static int hf_cigi3_environmental_region_control_merge_terrestrial = -1;
1273 static int hf_cigi3_environmental_region_control_lat = -1;
1274 static int hf_cigi3_environmental_region_control_lon = -1;
1275 static int hf_cigi3_environmental_region_control_size_x = -1;
1276 static int hf_cigi3_environmental_region_control_size_y = -1;
1277 static int hf_cigi3_environmental_region_control_corner_radius = -1;
1278 static int hf_cigi3_environmental_region_control_rotation = -1;
1279 static int hf_cigi3_environmental_region_control_transition_perimeter = -1;
1281 static const value_string cigi3_environmental_region_control_region_state_vals[] = {
1288 static const true_false_string cigi3_environmental_region_control_merge_properties_tfs = {
1293 /* CIGI3 Weather Control */
1294 #define CIGI3_PACKET_SIZE_WEATHER_CONTROL 56
1295 static int hf_cigi3_weather_control = -1;
1296 static int hf_cigi3_weather_control_entity_region_id = -1;
1297 static int hf_cigi3_weather_control_layer_id = -1;
1298 static int hf_cigi3_weather_control_humidity = -1;
1299 static int hf_cigi3_weather_control_weather_enable = -1;
1300 static int hf_cigi3_weather_control_scud_enable = -1;
1301 static int hf_cigi3_weather_control_random_winds_enable = -1;
1302 static int hf_cigi3_weather_control_random_lightning_enable = -1;
1303 static int hf_cigi3_weather_control_cloud_type = -1;
1304 static int hf_cigi3_weather_control_scope = -1;
1305 static int hf_cigi3_weather_control_severity = -1;
1306 static int hf_cigi3_weather_control_air_temp = -1;
1307 static int hf_cigi3_weather_control_visibility_range = -1;
1308 static int hf_cigi3_weather_control_scud_frequency = -1;
1309 static int hf_cigi3_weather_control_coverage = -1;
1310 static int hf_cigi3_weather_control_base_elevation = -1;
1311 static int hf_cigi3_weather_control_thickness = -1;
1312 static int hf_cigi3_weather_control_transition_band = -1;
1313 static int hf_cigi3_weather_control_horiz_wind = -1;
1314 static int hf_cigi3_weather_control_vert_wind = -1;
1315 static int hf_cigi3_weather_control_wind_direction = -1;
1316 static int hf_cigi3_weather_control_barometric_pressure = -1;
1317 static int hf_cigi3_weather_control_aerosol_concentration = -1;
1319 static const value_string cigi3_weather_control_layer_id_vals[] = {
1321 {1, "Cloud Layer 1"},
1322 {2, "Cloud Layer 2"},
1323 {3, "Cloud Layer 3"},
1333 static const value_string cigi3_weather_control_cloud_type_vals[] = {
1337 {3, "Cirrocumulus"},
1338 {4, "Cirrostratus"},
1340 {6, "Cumulonimbus"},
1342 {8, "Nimbostratus"},
1343 {9, "Stratocumulus"},
1353 static const value_string cigi3_weather_control_scope_vals[] = {
1360 /* CIGI3 Maritime Surface Conditions Control */
1361 #define CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_CONTROL 24
1362 static int hf_cigi3_maritime_surface_conditions_control = -1;
1363 static int hf_cigi3_maritime_surface_conditions_control_entity_region_id = -1;
1364 static int hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable = -1;
1365 static int hf_cigi3_maritime_surface_conditions_control_whitecap_enable = -1;
1366 static int hf_cigi3_maritime_surface_conditions_control_scope = -1;
1367 static int hf_cigi3_maritime_surface_conditions_control_sea_surface_height = -1;
1368 static int hf_cigi3_maritime_surface_conditions_control_surface_water_temp = -1;
1369 static int hf_cigi3_maritime_surface_conditions_control_surface_clarity = -1;
1371 static const value_string cigi3_maritime_surface_conditions_control_scope_vals[] = {
1378 /* CIGI3 Wave Control */
1379 #define CIGI3_PACKET_SIZE_WAVE_CONTROL 32
1380 static int hf_cigi3_wave_control = -1;
1381 static int hf_cigi3_wave_control_entity_region_id = -1;
1382 static int hf_cigi3_wave_control_wave_id = -1;
1383 static int hf_cigi3_wave_control_wave_enable = -1;
1384 static int hf_cigi3_wave_control_scope = -1;
1385 static int hf_cigi3_wave_control_breaker_type = -1;
1386 static int hf_cigi3_wave_control_height = -1;
1387 static int hf_cigi3_wave_control_wavelength = -1;
1388 static int hf_cigi3_wave_control_period = -1;
1389 static int hf_cigi3_wave_control_direction = -1;
1390 static int hf_cigi3_wave_control_phase_offset = -1;
1391 static int hf_cigi3_wave_control_leading = -1;
1393 static const value_string cigi3_wave_control_scope_vals[] = {
1400 static const value_string cigi3_wave_control_breaker_type_vals[] = {
1407 /* CIGI3 Terrestrial Surface Conditions Control */
1408 #define CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL 8
1409 static int hf_cigi3_terrestrial_surface_conditions_control = -1;
1410 static int hf_cigi3_terrestrial_surface_conditions_control_entity_region_id = -1;
1411 static int hf_cigi3_terrestrial_surface_conditions_control_surface_condition_id = -1;
1412 static int hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable = -1;
1413 static int hf_cigi3_terrestrial_surface_conditions_control_scope = -1;
1414 static int hf_cigi3_terrestrial_surface_conditions_control_severity = -1;
1415 static int hf_cigi3_terrestrial_surface_conditions_control_coverage = -1;
1417 static const value_string cigi3_terrestrial_surface_conditions_control_scope_vals[] = {
1424 /* CIGI3 View Control */
1425 #define CIGI3_PACKET_SIZE_VIEW_CONTROL 32
1426 static int hf_cigi3_view_control = -1;
1427 static int hf_cigi3_view_control_view_id = -1;
1428 static int hf_cigi3_view_control_group_id = -1;
1429 static int hf_cigi3_view_control_xoff_enable = -1;
1430 static int hf_cigi3_view_control_yoff_enable = -1;
1431 static int hf_cigi3_view_control_zoff_enable = -1;
1432 static int hf_cigi3_view_control_roll_enable = -1;
1433 static int hf_cigi3_view_control_pitch_enable = -1;
1434 static int hf_cigi3_view_control_yaw_enable = -1;
1435 static int hf_cigi3_view_control_entity_id = -1;
1436 static int hf_cigi3_view_control_xoff = -1;
1437 static int hf_cigi3_view_control_yoff = -1;
1438 static int hf_cigi3_view_control_zoff = -1;
1439 static int hf_cigi3_view_control_roll = -1;
1440 static int hf_cigi3_view_control_pitch = -1;
1441 static int hf_cigi3_view_control_yaw = -1;
1443 /* CIGI3 Sensor Control */
1444 #define CIGI3_PACKET_SIZE_SENSOR_CONTROL 24
1445 static int hf_cigi3_sensor_control = -1;
1446 static int hf_cigi3_sensor_control_view_id = -1;
1447 static int hf_cigi3_sensor_control_sensor_id = -1;
1448 static int hf_cigi3_sensor_control_sensor_on_off = -1;
1449 static int hf_cigi3_sensor_control_polarity = -1;
1450 static int hf_cigi3_sensor_control_line_dropout_enable = -1;
1451 static int hf_cigi3_sensor_control_auto_gain = -1;
1452 static int hf_cigi3_sensor_control_track_white_black = -1;
1453 static int hf_cigi3_sensor_control_track_mode = -1;
1454 static int hf_cigi3_sensor_control_response_type = -1;
1455 static int hf_cigi3_sensor_control_gain = -1;
1456 static int hf_cigi3_sensor_control_level = -1;
1457 static int hf_cigi3_sensor_control_ac_coupling = -1;
1458 static int hf_cigi3_sensor_control_noise = -1;
1460 static const value_string cigi3_sensor_control_track_mode_vals[] = {
1462 {1, "Force Correlate"},
1466 {5, "Defined by IG"},
1467 {6, "Defined by IG"},
1468 {7, "Defined by IG"},
1472 static const true_false_string cigi3_sensor_control_polarity_tfs = {
1477 static const true_false_string cigi3_sensor_control_track_white_black_tfs = {
1482 static const true_false_string cigi3_sensor_control_response_type_tfs = {
1487 /* CIGI3 Motion Tracker Control */
1488 #define CIGI3_PACKET_SIZE_MOTION_TRACKER_CONTROL 8
1489 static int hf_cigi3_motion_tracker_control = -1;
1490 static int hf_cigi3_motion_tracker_control_view_group_id = -1;
1491 static int hf_cigi3_motion_tracker_control_tracker_id = -1;
1492 static int hf_cigi3_motion_tracker_control_tracker_enable = -1;
1493 static int hf_cigi3_motion_tracker_control_boresight_enable = -1;
1494 static int hf_cigi3_motion_tracker_control_x_enable = -1;
1495 static int hf_cigi3_motion_tracker_control_y_enable = -1;
1496 static int hf_cigi3_motion_tracker_control_z_enable = -1;
1497 static int hf_cigi3_motion_tracker_control_roll_enable = -1;
1498 static int hf_cigi3_motion_tracker_control_pitch_enable = -1;
1499 static int hf_cigi3_motion_tracker_control_yaw_enable = -1;
1500 static int hf_cigi3_motion_tracker_control_view_group_select = -1;
1502 static const true_false_string cigi3_motion_tracker_control_view_group_select_tfs = {
1507 /* CIGI3 Earth Reference Model Definition */
1508 #define CIGI3_PACKET_SIZE_EARTH_REFERENCE_MODEL_DEFINITION 24
1509 static int hf_cigi3_earth_reference_model_definition = -1;
1510 static int hf_cigi3_earth_reference_model_definition_erm_enable = -1;
1511 static int hf_cigi3_earth_reference_model_definition_equatorial_radius = -1;
1512 static int hf_cigi3_earth_reference_model_definition_flattening = -1;
1514 /* CIGI3 Trajectory Definition */
1515 #define CIGI3_PACKET_SIZE_TRAJECTORY_DEFINITION 24
1516 static int hf_cigi3_trajectory_definition = -1;
1517 static int hf_cigi3_trajectory_definition_entity_id = -1;
1518 static int hf_cigi3_trajectory_definition_acceleration_x = -1;
1519 static int hf_cigi3_trajectory_definition_acceleration_y = -1;
1520 static int hf_cigi3_trajectory_definition_acceleration_z = -1;
1521 static int hf_cigi3_trajectory_definition_retardation_rate = -1;
1522 static int hf_cigi3_trajectory_definition_terminal_velocity = -1;
1524 /* CIGI3 View Definition */
1525 #define CIGI3_PACKET_SIZE_VIEW_DEFINITION 32
1526 static int hf_cigi3_view_definition = -1;
1527 static int hf_cigi3_view_definition_view_id = -1;
1528 static int hf_cigi3_view_definition_group_id = -1;
1529 static int hf_cigi3_view_definition_near_enable = -1;
1530 static int hf_cigi3_view_definition_far_enable = -1;
1531 static int hf_cigi3_view_definition_left_enable = -1;
1532 static int hf_cigi3_view_definition_right_enable = -1;
1533 static int hf_cigi3_view_definition_top_enable = -1;
1534 static int hf_cigi3_view_definition_bottom_enable = -1;
1535 static int hf_cigi3_view_definition_mirror_mode = -1;
1536 static int hf_cigi3_view_definition_pixel_replication = -1;
1537 static int hf_cigi3_view_definition_projection_type = -1;
1538 static int hf_cigi3_view_definition_reorder = -1;
1539 static int hf_cigi3_view_definition_view_type = -1;
1540 static int hf_cigi3_view_definition_near = -1;
1541 static int hf_cigi3_view_definition_far = -1;
1542 static int hf_cigi3_view_definition_left = -1;
1543 static int hf_cigi3_view_definition_right = -1;
1544 static int hf_cigi3_view_definition_top = -1;
1545 static int hf_cigi3_view_definition_bottom = -1;
1547 static const value_string cigi3_view_definition_mirror_mode_vals[] = {
1551 {3, "Horizontal and Vertical"},
1555 static const value_string cigi3_view_definition_pixel_replication_vals[] = {
1560 {4, "Defined by IG"},
1561 {5, "Defined by IG"},
1562 {6, "Defined by IG"},
1563 {7, "Defined by IG"},
1567 static const true_false_string cigi3_view_definition_projection_type_tfs = {
1568 "Orthographic Parallel",
1572 static const true_false_string cigi3_view_definition_reorder_tfs = {
1577 /* CIGI3 Collision Detection Segment Definition */
1578 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION 40
1579 static int hf_cigi3_collision_detection_segment_definition = -1;
1580 static int hf_cigi3_collision_detection_segment_definition_entity_id = -1;
1581 static int hf_cigi3_collision_detection_segment_definition_segment_id = -1;
1582 static int hf_cigi3_collision_detection_segment_definition_segment_enable = -1;
1583 static int hf_cigi3_collision_detection_segment_definition_x1 = -1;
1584 static int hf_cigi3_collision_detection_segment_definition_y1 = -1;
1585 static int hf_cigi3_collision_detection_segment_definition_z1 = -1;
1586 static int hf_cigi3_collision_detection_segment_definition_x2 = -1;
1587 static int hf_cigi3_collision_detection_segment_definition_y2 = -1;
1588 static int hf_cigi3_collision_detection_segment_definition_z2 = -1;
1589 static int hf_cigi3_collision_detection_segment_definition_material_mask = -1;
1591 /* CIGI3 Collision Detection Volume Definition */
1592 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION 48
1593 static int hf_cigi3_collision_detection_volume_definition = -1;
1594 static int hf_cigi3_collision_detection_volume_definition_entity_id = -1;
1595 static int hf_cigi3_collision_detection_volume_definition_volume_id = -1;
1596 static int hf_cigi3_collision_detection_volume_definition_volume_enable = -1;
1597 static int hf_cigi3_collision_detection_volume_definition_volume_type = -1;
1598 static int hf_cigi3_collision_detection_volume_definition_x = -1;
1599 static int hf_cigi3_collision_detection_volume_definition_y = -1;
1600 static int hf_cigi3_collision_detection_volume_definition_z = -1;
1601 static int hf_cigi3_collision_detection_volume_definition_radius_height = -1;
1602 static int hf_cigi3_collision_detection_volume_definition_width = -1;
1603 static int hf_cigi3_collision_detection_volume_definition_depth = -1;
1604 static int hf_cigi3_collision_detection_volume_definition_roll = -1;
1605 static int hf_cigi3_collision_detection_volume_definition_pitch = -1;
1606 static int hf_cigi3_collision_detection_volume_definition_yaw = -1;
1608 static const true_false_string cigi3_collision_detection_volume_definition_volume_type_tfs = {
1613 /* CIGI3 HAT/HOT Request */
1614 #define CIGI3_PACKET_SIZE_HAT_HOT_REQUEST 32
1615 static int hf_cigi3_hat_hot_request = -1;
1616 static int hf_cigi3_hat_hot_request_hat_hot_id = -1;
1617 static int hf_cigi3_hat_hot_request_type = -1;
1618 static int hf_cigi3_hat_hot_request_coordinate_system = -1;
1619 static int hf_cigi3_hat_hot_request_entity_id = -1;
1620 static int hf_cigi3_hat_hot_request_lat_xoff = -1;
1621 static int hf_cigi3_hat_hot_request_lon_yoff = -1;
1622 static int hf_cigi3_hat_hot_request_alt_zoff = -1;
1624 static const value_string cigi3_hat_hot_request_type_vals[] = {
1631 static const true_false_string cigi3_hat_hot_request_coordinate_system_tfs = {
1636 /* CIGI3_2 HAT/HOT Request */
1637 #define CIGI3_2_PACKET_SIZE_HAT_HOT_REQUEST 32
1638 static int hf_cigi3_2_hat_hot_request = -1;
1639 static int hf_cigi3_2_hat_hot_request_hat_hot_id = -1;
1640 static int hf_cigi3_2_hat_hot_request_type = -1;
1641 static int hf_cigi3_2_hat_hot_request_coordinate_system = -1;
1642 static int hf_cigi3_2_hat_hot_request_update_period = -1;
1643 static int hf_cigi3_2_hat_hot_request_entity_id = -1;
1644 static int hf_cigi3_2_hat_hot_request_lat_xoff = -1;
1645 static int hf_cigi3_2_hat_hot_request_lon_yoff = -1;
1646 static int hf_cigi3_2_hat_hot_request_alt_zoff = -1;
1648 static const value_string cigi3_2_hat_hot_request_type_vals[] = {
1655 static const true_false_string cigi3_2_hat_hot_request_coordinate_system_tfs = {
1660 /* CIGI3 Line of Sight Segment Request */
1661 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST 64
1662 static int hf_cigi3_line_of_sight_segment_request = -1;
1663 static int hf_cigi3_line_of_sight_segment_request_los_id = -1;
1664 static int hf_cigi3_line_of_sight_segment_request_type = -1;
1665 static int hf_cigi3_line_of_sight_segment_request_source_coord = -1;
1666 static int hf_cigi3_line_of_sight_segment_request_destination_coord = -1;
1667 static int hf_cigi3_line_of_sight_segment_request_response_coord = -1;
1668 static int hf_cigi3_line_of_sight_segment_request_alpha_threshold = -1;
1669 static int hf_cigi3_line_of_sight_segment_request_entity_id = -1;
1670 static int hf_cigi3_line_of_sight_segment_request_source_lat_xoff = -1;
1671 static int hf_cigi3_line_of_sight_segment_request_source_lon_yoff = -1;
1672 static int hf_cigi3_line_of_sight_segment_request_source_alt_zoff = -1;
1673 static int hf_cigi3_line_of_sight_segment_request_destination_lat_xoff = -1;
1674 static int hf_cigi3_line_of_sight_segment_request_destination_lon_yoff = -1;
1675 static int hf_cigi3_line_of_sight_segment_request_destination_alt_zoff = -1;
1676 static int hf_cigi3_line_of_sight_segment_request_material_mask = -1;
1678 static const true_false_string cigi3_line_of_sight_segment_request_type_tfs = {
1683 static const true_false_string cigi3_line_of_sight_segment_request_coord_tfs = {
1688 /* CIGI3_2 Line of Sight Segment Request */
1689 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST 64
1690 static int hf_cigi3_2_line_of_sight_segment_request = -1;
1691 static int hf_cigi3_2_line_of_sight_segment_request_los_id = -1;
1692 static int hf_cigi3_2_line_of_sight_segment_request_type = -1;
1693 static int hf_cigi3_2_line_of_sight_segment_request_source_coord = -1;
1694 static int hf_cigi3_2_line_of_sight_segment_request_destination_coord = -1;
1695 static int hf_cigi3_2_line_of_sight_segment_request_response_coord = -1;
1696 static int hf_cigi3_2_line_of_sight_segment_request_destination_entity_id_valid = -1;
1697 static int hf_cigi3_2_line_of_sight_segment_request_alpha_threshold = -1;
1698 static int hf_cigi3_2_line_of_sight_segment_request_entity_id = -1;
1699 static int hf_cigi3_2_line_of_sight_segment_request_source_lat_xoff = -1;
1700 static int hf_cigi3_2_line_of_sight_segment_request_source_lon_yoff = -1;
1701 static int hf_cigi3_2_line_of_sight_segment_request_source_alt_zoff = -1;
1702 static int hf_cigi3_2_line_of_sight_segment_request_destination_lat_xoff = -1;
1703 static int hf_cigi3_2_line_of_sight_segment_request_destination_lon_yoff = -1;
1704 static int hf_cigi3_2_line_of_sight_segment_request_destination_alt_zoff = -1;
1705 static int hf_cigi3_2_line_of_sight_segment_request_material_mask = -1;
1706 static int hf_cigi3_2_line_of_sight_segment_request_update_period = -1;
1707 static int hf_cigi3_2_line_of_sight_segment_request_destination_entity_id = -1;
1709 static const true_false_string cigi3_2_line_of_sight_segment_request_type_tfs = {
1714 static const true_false_string cigi3_2_line_of_sight_segment_request_coord_tfs = {
1719 /* CIGI3 Line of Sight Vector Request */
1720 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST 56
1721 static int hf_cigi3_line_of_sight_vector_request = -1;
1722 static int hf_cigi3_line_of_sight_vector_request_los_id = -1;
1723 static int hf_cigi3_line_of_sight_vector_request_type = -1;
1724 static int hf_cigi3_line_of_sight_vector_request_source_coord = -1;
1725 static int hf_cigi3_line_of_sight_vector_request_response_coord = -1;
1726 static int hf_cigi3_line_of_sight_vector_request_alpha = -1;
1727 static int hf_cigi3_line_of_sight_vector_request_entity_id = -1;
1728 static int hf_cigi3_line_of_sight_vector_request_azimuth = -1;
1729 static int hf_cigi3_line_of_sight_vector_request_elevation = -1;
1730 static int hf_cigi3_line_of_sight_vector_request_min_range = -1;
1731 static int hf_cigi3_line_of_sight_vector_request_max_range = -1;
1732 static int hf_cigi3_line_of_sight_vector_request_source_lat_xoff = -1;
1733 static int hf_cigi3_line_of_sight_vector_request_source_lon_yoff = -1;
1734 static int hf_cigi3_line_of_sight_vector_request_source_alt_zoff = -1;
1735 static int hf_cigi3_line_of_sight_vector_request_material_mask = -1;
1737 static const true_false_string cigi3_line_of_sight_vector_request_type_tfs = {
1742 static const true_false_string cigi3_line_of_sight_vector_request_coord_tfs = {
1747 /* CIGI3_2 Line of Sight Vector Request */
1748 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST 56
1749 static int hf_cigi3_2_line_of_sight_vector_request = -1;
1750 static int hf_cigi3_2_line_of_sight_vector_request_los_id = -1;
1751 static int hf_cigi3_2_line_of_sight_vector_request_type = -1;
1752 static int hf_cigi3_2_line_of_sight_vector_request_source_coord = -1;
1753 static int hf_cigi3_2_line_of_sight_vector_request_response_coord = -1;
1754 static int hf_cigi3_2_line_of_sight_vector_request_alpha = -1;
1755 static int hf_cigi3_2_line_of_sight_vector_request_entity_id = -1;
1756 static int hf_cigi3_2_line_of_sight_vector_request_azimuth = -1;
1757 static int hf_cigi3_2_line_of_sight_vector_request_elevation = -1;
1758 static int hf_cigi3_2_line_of_sight_vector_request_min_range = -1;
1759 static int hf_cigi3_2_line_of_sight_vector_request_max_range = -1;
1760 static int hf_cigi3_2_line_of_sight_vector_request_source_lat_xoff = -1;
1761 static int hf_cigi3_2_line_of_sight_vector_request_source_lon_yoff = -1;
1762 static int hf_cigi3_2_line_of_sight_vector_request_source_alt_zoff = -1;
1763 static int hf_cigi3_2_line_of_sight_vector_request_material_mask = -1;
1764 static int hf_cigi3_2_line_of_sight_vector_request_update_period = -1;
1766 static const true_false_string cigi3_2_line_of_sight_vector_request_type_tfs = {
1771 static const true_false_string cigi3_2_line_of_sight_vector_request_coord_tfs = {
1776 /* CIGI3 Position Request */
1777 #define CIGI3_PACKET_SIZE_POSITION_REQUEST 8
1778 static int hf_cigi3_position_request = -1;
1779 static int hf_cigi3_position_request_object_id = -1;
1780 static int hf_cigi3_position_request_part_id = -1;
1781 static int hf_cigi3_position_request_update_mode = -1;
1782 static int hf_cigi3_position_request_object_class = -1;
1783 static int hf_cigi3_position_request_coord_system = -1;
1785 static const true_false_string cigi3_position_request_update_mode_tfs = {
1790 static const value_string cigi3_position_request_object_class_vals[] = {
1792 {1, "Articulated Part"},
1795 {4, "Motion Tracker"},
1799 static const value_string cigi3_position_request_coord_system_vals[] = {
1801 {1, "Parent Entity"},
1806 /* CIGI3 Environmental Conditions Request */
1807 #define CIGI3_PACKET_SIZE_ENVIRONMENTAL_CONDITIONS_REQUEST 32
1808 static int hf_cigi3_environmental_conditions_request = -1;
1809 static int hf_cigi3_environmental_conditions_request_type = -1;
1810 static int hf_cigi3_environmental_conditions_request_id = -1;
1811 static int hf_cigi3_environmental_conditions_request_lat = -1;
1812 static int hf_cigi3_environmental_conditions_request_lon = -1;
1813 static int hf_cigi3_environmental_conditions_request_alt = -1;
1815 static const value_string cigi3_environmental_conditions_request_type_vals[] = {
1816 {1, "Maritime Surface Conditions"},
1817 {2, "Terrestrial Surface Conditions"},
1818 {3, "Maritime+Terrestrial Surface Conditions"},
1819 {4, "Weather Conditions"},
1820 {5, "Maritime+Weather Surface Conditions"},
1821 {6, "Terrestrial+Weather Surface Conditions"},
1822 {7, "Maritime+Terrestrial+Weather Surface Conditions"},
1823 {8, "Aerosol Concentrations"},
1824 {9, "Maritime Surface Conditions+Aerosol Concentrations"},
1825 {10, "Terrestrial Surface Conditions+Aerosol Concentrations"},
1826 {11, "Maritime+Terrestrial Surface Conditions+Aerosol Concentrations"},
1827 {12, "Weather Conditions+Aerosol Concentrations"},
1828 {13, "Maritime+Weather Surface Conditions+Aerosol Concentrations"},
1829 {14, "Terrestrial+Weather Surface Conditions+Aerosol Concentrations"},
1830 {15, "Maritime+Terrestrial+Weather Surface Conditions+Aerosol Concentrations"},
1834 /* CIGI3_3 Symbol Surface Definition */
1835 #define CIGI3_PACKET_SIZE_SYMBOL_SURFACE_DEFINITION 56
1836 static int hf_cigi3_3_symbol_surface_definition = -1;
1837 static int hf_cigi3_3_symbol_surface_definition_surface_id = -1;
1838 static int hf_cigi3_3_symbol_surface_definition_surface_state = -1;
1839 static int hf_cigi3_3_symbol_surface_definition_attach_type = -1;
1840 static int hf_cigi3_3_symbol_surface_definition_billboard = -1;
1841 static int hf_cigi3_3_symbol_surface_definition_perspective_growth_enable = -1;
1842 static int hf_cigi3_3_symbol_surface_definition_entity_view_id = -1;
1843 static int hf_cigi3_3_symbol_surface_definition_xoff_left = -1;
1844 static int hf_cigi3_3_symbol_surface_definition_yoff_right = -1;
1845 static int hf_cigi3_3_symbol_surface_definition_zoff_top = -1;
1846 static int hf_cigi3_3_symbol_surface_definition_yaw_bottom = -1;
1847 static int hf_cigi3_3_symbol_surface_definition_pitch = -1;
1848 static int hf_cigi3_3_symbol_surface_definition_roll = -1;
1849 static int hf_cigi3_3_symbol_surface_definition_width = -1;
1850 static int hf_cigi3_3_symbol_surface_definition_height = -1;
1851 static int hf_cigi3_3_symbol_surface_definition_min_u = -1;
1852 static int hf_cigi3_3_symbol_surface_definition_max_u = -1;
1853 static int hf_cigi3_3_symbol_surface_definition_min_v = -1;
1854 static int hf_cigi3_3_symbol_surface_definition_max_v = -1;
1856 static const true_false_string cigi3_3_symbol_surface_definition_surface_state_tfs = {
1861 static const true_false_string cigi3_3_symbol_surface_definition_attach_type_tfs = {
1866 static const true_false_string cigi3_3_symbol_surface_definition_billboard_tfs = {
1871 /* CIGI3_3 Symbol Text Definition */
1872 #define CIGI3_PACKET_SIZE_SYMBOL_TEXT_DEFINITION 56
1873 static int hf_cigi3_3_symbol_text_definition = -1;
1874 static int hf_cigi3_3_symbol_text_definition_symbol_id = -1;
1875 static int hf_cigi3_3_symbol_text_definition_orientation = -1;
1876 static int hf_cigi3_3_symbol_text_definition_alignment = -1;
1877 static int hf_cigi3_3_symbol_text_definition_font_ident = -1;
1878 static int hf_cigi3_3_symbol_text_definition_font_size = -1;
1879 static int hf_cigi3_3_symbol_text_definition_text = -1;
1881 static const value_string cigi3_3_symbol_text_definition_alignment_vals[] = {
1887 {5, "Center Right"},
1889 {7, "Bottom Center"},
1890 {8, "Bottom Right"},
1894 static const value_string cigi3_3_symbol_text_definition_orientation_vals[] = {
1895 {0, "Left To Right"},
1896 {1, "Top To Bottom"},
1897 {2, "Right To Left"},
1898 {3, "Bottom To Top"},
1902 static const value_string cigi3_3_symbol_text_definition_font_ident_vals[] = {
1904 {1, "Proportional Sans Serif"},
1905 {2, "Proportional Sans Serif Bold"},
1906 {3, "Proportional Sans Serif Italic"},
1907 {4, "Proportional Sans Serif Bold Italic"},
1908 {5, "Proportional Serif"},
1909 {6, "Proportional Serif Bold"},
1910 {7, "Proportional Serif Italic"},
1911 {8, "Proportional Serif Bold Italic"},
1912 {9, "Monospace Sans Serif"},
1913 {10, "Monospace Sans Serif Bold"},
1914 {11, "Monospace Sans Serif Italic"},
1915 {12, "Monospace Sans Serif Bold Italic"},
1916 {13, "Monospace Serif"},
1917 {14, "Monospace Serif Bold"},
1918 {15, "Monospace Serif Italic"},
1919 {16, "Monospace Serif Bold Italic"},
1923 /* CIGI3_3 Symbol Circle Definition */
1924 #define CIGI3_PACKET_SIZE_SYMBOL_CIRCLE_DEFINITION 56
1925 static int hf_cigi3_3_symbol_circle_definition = -1;
1926 static int hf_cigi3_3_symbol_circle_definition_symbol_id = -1;
1927 static int hf_cigi3_3_symbol_circle_definition_drawing_style = -1;
1928 static int hf_cigi3_3_symbol_circle_definition_stipple_pattern = -1;
1929 static int hf_cigi3_3_symbol_circle_definition_line_width = -1;
1930 static int hf_cigi3_3_symbol_circle_definition_stipple_pattern_length = -1;
1931 static int hf_cigi3_3_symbol_circle_definition_center_u[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1932 static int hf_cigi3_3_symbol_circle_definition_center_v[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1933 static int hf_cigi3_3_symbol_circle_definition_radius[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1934 static int hf_cigi3_3_symbol_circle_definition_inner_radius[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1935 static int hf_cigi3_3_symbol_circle_definition_start_angle[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1936 static int hf_cigi3_3_symbol_circle_definition_end_angle[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
1938 static const true_false_string cigi3_3_symbol_circle_definition_drawing_style_tfs = {
1943 /* CIGI3_3 Symbol Line Definition */
1944 #define CIGI3_PACKET_SIZE_SYMBOL_LINE_DEFINITION 56
1945 static int hf_cigi3_3_symbol_line_definition = -1;
1946 static int hf_cigi3_3_symbol_line_definition_symbol_id = -1;
1947 static int hf_cigi3_3_symbol_line_definition_primitive_type = -1;
1948 static int hf_cigi3_3_symbol_line_definition_stipple_pattern = -1;
1949 static int hf_cigi3_3_symbol_line_definition_line_width = -1;
1950 static int hf_cigi3_3_symbol_line_definition_stipple_pattern_length = -1;
1951 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};
1952 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};
1954 static const value_string cigi3_3_symbol_line_definition_primitive_type_vals[] = {
1960 {5, "Triangle Strip"},
1961 {6, "Triangle Fan"},
1965 /* CIGI3_3 Symbol Clone */
1966 #define CIGI3_PACKET_SIZE_SYMBOL_CLONE_DEFINITION 8
1967 static int hf_cigi3_3_symbol_clone = -1;
1968 static int hf_cigi3_3_symbol_clone_symbol_id = -1;
1969 static int hf_cigi3_3_symbol_clone_source_type = -1;
1970 static int hf_cigi3_3_symbol_clone_source_id = -1;
1972 static const true_false_string cigi3_3_symbol_clone_source_type_tfs = {
1977 /* CIGI3_3 Symbol Control */
1978 #define CIGI3_PACKET_SIZE_SYMBOL_CONTROL_DEFINITION 40
1979 static int hf_cigi3_3_symbol_control = -1;
1980 static int hf_cigi3_3_symbol_control_symbol_id = -1;
1981 static int hf_cigi3_3_symbol_control_symbol_state = -1;
1982 static int hf_cigi3_3_symbol_control_attach_state = -1;
1983 static int hf_cigi3_3_symbol_control_flash_control = -1;
1984 static int hf_cigi3_3_symbol_control_inherit_color = -1;
1985 static int hf_cigi3_3_symbol_control_parent_symbol_ident = -1;
1986 static int hf_cigi3_3_symbol_control_surface_ident = -1;
1987 static int hf_cigi3_3_symbol_control_layer = -1;
1988 static int hf_cigi3_3_symbol_control_flash_duty_cycle = -1;
1989 static int hf_cigi3_3_symbol_control_flash_period = -1;
1990 static int hf_cigi3_3_symbol_control_position_u = -1;
1991 static int hf_cigi3_3_symbol_control_position_v = -1;
1992 static int hf_cigi3_3_symbol_control_rotation = -1;
1993 static int hf_cigi3_3_symbol_control_red = -1;
1994 static int hf_cigi3_3_symbol_control_green = -1;
1995 static int hf_cigi3_3_symbol_control_blue = -1;
1996 static int hf_cigi3_3_symbol_control_alpha = -1;
1997 static int hf_cigi3_3_symbol_control_scale_u = -1;
1998 static int hf_cigi3_3_symbol_control_scale_v = -1;
2000 static const value_string cigi3_3_symbol_control_symbol_state_vals[] = {
2007 static const true_false_string cigi3_3_symbol_control_attach_state_tfs = {
2012 static const true_false_string cigi3_3_symbol_control_flash_control_tfs = {
2017 static const true_false_string cigi3_3_symbol_control_inherit_color_tfs = {
2022 /* CIGI3_3 Short Symbol Control */
2023 #define CIGI3_PACKET_SIZE_SHORT_SYMBOL_CONTROL_DEFINITION 32
2024 static int hf_cigi3_3_short_symbol_control = -1;
2025 static int hf_cigi3_3_short_symbol_control_symbol_id = -1;
2026 static int hf_cigi3_3_short_symbol_control_inherit_color = -1;
2027 static int hf_cigi3_3_short_symbol_control_flash_control = -1;
2028 static int hf_cigi3_3_short_symbol_control_attach_state = -1;
2029 static int hf_cigi3_3_short_symbol_control_symbol_state = -1;
2030 static int hf_cigi3_3_short_symbol_control_attribute_select1 = -1;
2031 static int hf_cigi3_3_short_symbol_control_attribute_select2 = -1;
2032 static int hf_cigi3_3_short_symbol_control_attribute_value1 = -1;
2033 static int hf_cigi3_3_short_symbol_control_attribute_value2 = -1;
2034 static int hf_cigi3_3_short_symbol_control_attribute_value1f = -1;
2035 static int hf_cigi3_3_short_symbol_control_attribute_value2f = -1;
2036 static int hf_cigi3_3_short_symbol_control_red1 = -1;
2037 static int hf_cigi3_3_short_symbol_control_green1 = -1;
2038 static int hf_cigi3_3_short_symbol_control_blue1 = -1;
2039 static int hf_cigi3_3_short_symbol_control_alpha1 = -1;
2040 static int hf_cigi3_3_short_symbol_control_red2 = -1;
2041 static int hf_cigi3_3_short_symbol_control_green2 = -1;
2042 static int hf_cigi3_3_short_symbol_control_blue2 = -1;
2043 static int hf_cigi3_3_short_symbol_control_alpha2 = -1;
2045 static const value_string cigi3_3_short_symbol_control_attribute_select_vals[] = {
2048 {2, "Parent Symbol ID"},
2050 {4, "Flash Duty Cycle Percentage"},
2051 {5, "Flash Period"},
2061 /* CIGI3 Start of Frame */
2062 #define CIGI3_PACKET_SIZE_START_OF_FRAME 16
2063 static int hf_cigi3_start_of_frame = -1;
2064 static int hf_cigi3_start_of_frame_db_number = -1;
2065 static int hf_cigi3_start_of_frame_ig_status = -1;
2066 static int hf_cigi3_start_of_frame_ig_mode = -1;
2067 static int hf_cigi3_start_of_frame_timestamp_valid = -1;
2068 static int hf_cigi3_start_of_frame_earth_reference_model = -1;
2069 static int hf_cigi3_start_of_frame_frame_ctr = -1;
2070 static int hf_cigi3_start_of_frame_timestamp = -1;
2072 static const value_string cigi3_start_of_frame_ig_mode_vals[] = {
2073 {0, "Reset/Standby"},
2076 {3, "Offline Maintenance"},
2080 static const true_false_string cigi3_start_of_frame_earth_reference_model_tfs = {
2085 /* CIGI3_2 Start of Frame */
2086 #define CIGI3_2_PACKET_SIZE_START_OF_FRAME 24
2087 static int hf_cigi3_2_start_of_frame = -1;
2088 static int hf_cigi3_2_start_of_frame_db_number = -1;
2089 static int hf_cigi3_2_start_of_frame_ig_status = -1;
2090 static int hf_cigi3_2_start_of_frame_ig_mode = -1;
2091 static int hf_cigi3_2_start_of_frame_timestamp_valid = -1;
2092 static int hf_cigi3_2_start_of_frame_earth_reference_model = -1;
2093 static int hf_cigi3_2_start_of_frame_ig_frame_number = -1;
2094 static int hf_cigi3_2_start_of_frame_timestamp = -1;
2095 static int hf_cigi3_2_start_of_frame_last_host_frame_number = -1;
2097 static const value_string cigi3_2_start_of_frame_ig_mode_vals[] = {
2098 {0, "Reset/Standby"},
2101 {3, "Offline Maintenance"},
2105 static const true_false_string cigi3_2_start_of_frame_earth_reference_model_tfs = {
2110 /* CIGI3 HAT/HOT Response */
2111 #define CIGI3_PACKET_SIZE_HAT_HOT_RESPONSE 16
2112 static int hf_cigi3_hat_hot_response = -1;
2113 static int hf_cigi3_hat_hot_response_hat_hot_id = -1;
2114 static int hf_cigi3_hat_hot_response_valid = -1;
2115 static int hf_cigi3_hat_hot_response_type = -1;
2116 static int hf_cigi3_hat_hot_response_height = -1;
2118 static const true_false_string cigi3_hat_hot_response_type_tfs = {
2123 /* CIGI3_2 HAT/HOT Response */
2124 #define CIGI3_2_PACKET_SIZE_HAT_HOT_RESPONSE 16
2125 static int hf_cigi3_2_hat_hot_response = -1;
2126 static int hf_cigi3_2_hat_hot_response_hat_hot_id = -1;
2127 static int hf_cigi3_2_hat_hot_response_valid = -1;
2128 static int hf_cigi3_2_hat_hot_response_type = -1;
2129 static int hf_cigi3_2_hat_hot_response_host_frame_number_lsn = -1;
2130 static int hf_cigi3_2_hat_hot_response_height = -1;
2132 static const true_false_string cigi3_2_hat_hot_response_type_tfs = {
2137 /* CIGI3 HAT/HOT Extended Response */
2138 #define CIGI3_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE 40
2139 static int hf_cigi3_hat_hot_extended_response = -1;
2140 static int hf_cigi3_hat_hot_extended_response_hat_hot_id = -1;
2141 static int hf_cigi3_hat_hot_extended_response_valid = -1;
2142 static int hf_cigi3_hat_hot_extended_response_hat = -1;
2143 static int hf_cigi3_hat_hot_extended_response_hot = -1;
2144 static int hf_cigi3_hat_hot_extended_response_material_code = -1;
2145 static int hf_cigi3_hat_hot_extended_response_normal_vector_azimuth = -1;
2146 static int hf_cigi3_hat_hot_extended_response_normal_vector_elevation = -1;
2148 /* CIGI3_2 HAT/HOT Extended Response */
2149 #define CIGI3_2_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE 40
2150 static int hf_cigi3_2_hat_hot_extended_response = -1;
2151 static int hf_cigi3_2_hat_hot_extended_response_hat_hot_id = -1;
2152 static int hf_cigi3_2_hat_hot_extended_response_valid = -1;
2153 static int hf_cigi3_2_hat_hot_extended_response_host_frame_number_lsn = -1;
2154 static int hf_cigi3_2_hat_hot_extended_response_hat = -1;
2155 static int hf_cigi3_2_hat_hot_extended_response_hot = -1;
2156 static int hf_cigi3_2_hat_hot_extended_response_material_code = -1;
2157 static int hf_cigi3_2_hat_hot_extended_response_normal_vector_azimuth = -1;
2158 static int hf_cigi3_2_hat_hot_extended_response_normal_vector_elevation = -1;
2160 /* CIGI3 Line of Sight Response */
2161 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE 16
2162 static int hf_cigi3_line_of_sight_response = -1;
2163 static int hf_cigi3_line_of_sight_response_los_id = -1;
2164 static int hf_cigi3_line_of_sight_response_valid = -1;
2165 static int hf_cigi3_line_of_sight_response_entity_id_valid = -1;
2166 static int hf_cigi3_line_of_sight_response_visible = -1;
2167 static int hf_cigi3_line_of_sight_response_count = -1;
2168 static int hf_cigi3_line_of_sight_response_entity_id = -1;
2169 static int hf_cigi3_line_of_sight_response_range = -1;
2171 static const true_false_string cigi3_line_of_sight_response_visible_tfs = {
2176 /* CIGI3_2 Line of Sight Response */
2177 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE 16
2178 static int hf_cigi3_2_line_of_sight_response = -1;
2179 static int hf_cigi3_2_line_of_sight_response_los_id = -1;
2180 static int hf_cigi3_2_line_of_sight_response_valid = -1;
2181 static int hf_cigi3_2_line_of_sight_response_entity_id_valid = -1;
2182 static int hf_cigi3_2_line_of_sight_response_visible = -1;
2183 static int hf_cigi3_2_line_of_sight_response_host_frame_number_lsn = -1;
2184 static int hf_cigi3_2_line_of_sight_response_count = -1;
2185 static int hf_cigi3_2_line_of_sight_response_entity_id = -1;
2186 static int hf_cigi3_2_line_of_sight_response_range = -1;
2188 static const true_false_string cigi3_2_line_of_sight_response_visible_tfs = {
2193 /* CIGI3 Line of Sight Extended Response */
2194 #define CIGI3_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE 56
2195 static int hf_cigi3_line_of_sight_extended_response = -1;
2196 static int hf_cigi3_line_of_sight_extended_response_los_id = -1;
2197 static int hf_cigi3_line_of_sight_extended_response_valid = -1;
2198 static int hf_cigi3_line_of_sight_extended_response_entity_id_valid = -1;
2199 static int hf_cigi3_line_of_sight_extended_response_range_valid = -1;
2200 static int hf_cigi3_line_of_sight_extended_response_visible = -1;
2201 static int hf_cigi3_line_of_sight_extended_response_intersection_coord = -1;
2202 static int hf_cigi3_line_of_sight_extended_response_response_count = -1;
2203 static int hf_cigi3_line_of_sight_extended_response_entity_id = -1;
2204 static int hf_cigi3_line_of_sight_extended_response_range = -1;
2205 static int hf_cigi3_line_of_sight_extended_response_lat_xoff = -1;
2206 static int hf_cigi3_line_of_sight_extended_response_lon_yoff = -1;
2207 static int hf_cigi3_line_of_sight_extended_response_alt_zoff = -1;
2208 static int hf_cigi3_line_of_sight_extended_response_red = -1;
2209 static int hf_cigi3_line_of_sight_extended_response_green = -1;
2210 static int hf_cigi3_line_of_sight_extended_response_blue = -1;
2211 static int hf_cigi3_line_of_sight_extended_response_alpha = -1;
2212 static int hf_cigi3_line_of_sight_extended_response_material_code = -1;
2213 static int hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth = -1;
2214 static int hf_cigi3_line_of_sight_extended_response_normal_vector_elevation = -1;
2216 static const true_false_string cigi3_line_of_sight_extended_response_visible_tfs = {
2221 static const true_false_string cigi3_line_of_sight_extended_response_intersection_coord_tfs = {
2226 /* CIGI3_2 Line of Sight Extended Response */
2227 #define CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE 56
2228 static int hf_cigi3_2_line_of_sight_extended_response = -1;
2229 static int hf_cigi3_2_line_of_sight_extended_response_los_id = -1;
2230 static int hf_cigi3_2_line_of_sight_extended_response_valid = -1;
2231 static int hf_cigi3_2_line_of_sight_extended_response_entity_id_valid = -1;
2232 static int hf_cigi3_2_line_of_sight_extended_response_range_valid = -1;
2233 static int hf_cigi3_2_line_of_sight_extended_response_visible = -1;
2234 static int hf_cigi3_2_line_of_sight_extended_response_host_frame_number_lsn = -1;
2235 static int hf_cigi3_2_line_of_sight_extended_response_response_count = -1;
2236 static int hf_cigi3_2_line_of_sight_extended_response_entity_id = -1;
2237 static int hf_cigi3_2_line_of_sight_extended_response_range = -1;
2238 static int hf_cigi3_2_line_of_sight_extended_response_lat_xoff = -1;
2239 static int hf_cigi3_2_line_of_sight_extended_response_lon_yoff = -1;
2240 static int hf_cigi3_2_line_of_sight_extended_response_alt_zoff = -1;
2241 static int hf_cigi3_2_line_of_sight_extended_response_red = -1;
2242 static int hf_cigi3_2_line_of_sight_extended_response_green = -1;
2243 static int hf_cigi3_2_line_of_sight_extended_response_blue = -1;
2244 static int hf_cigi3_2_line_of_sight_extended_response_alpha = -1;
2245 static int hf_cigi3_2_line_of_sight_extended_response_material_code = -1;
2246 static int hf_cigi3_2_line_of_sight_extended_response_normal_vector_azimuth = -1;
2247 static int hf_cigi3_2_line_of_sight_extended_response_normal_vector_elevation = -1;
2249 static const true_false_string cigi3_2_line_of_sight_extended_response_visible_tfs = {
2254 /* CIGI3 Sensor Response */
2255 #define CIGI3_PACKET_SIZE_SENSOR_RESPONSE 24
2256 static int hf_cigi3_sensor_response = -1;
2257 static int hf_cigi3_sensor_response_view_id = -1;
2258 static int hf_cigi3_sensor_response_sensor_id = -1;
2259 static int hf_cigi3_sensor_response_sensor_status = -1;
2260 static int hf_cigi3_sensor_response_gate_x_size = -1;
2261 static int hf_cigi3_sensor_response_gate_y_size = -1;
2262 static int hf_cigi3_sensor_response_gate_x_pos = -1;
2263 static int hf_cigi3_sensor_response_gate_y_pos = -1;
2264 static int hf_cigi3_sensor_response_frame_ctr = -1;
2266 static const value_string cigi3_sensor_response_sensor_status_vals[] = {
2267 {0, "Searching for target"},
2268 {1, "Tracking target"},
2269 {2, "Impending breaklock"},
2274 /* CIGI3 Sensor Extended Response */
2275 #define CIGI3_PACKET_SIZE_SENSOR_EXTENDED_RESPONSE 48
2276 static int hf_cigi3_sensor_extended_response = -1;
2277 static int hf_cigi3_sensor_extended_response_view_id = -1;
2278 static int hf_cigi3_sensor_extended_response_sensor_id = -1;
2279 static int hf_cigi3_sensor_extended_response_sensor_status = -1;
2280 static int hf_cigi3_sensor_extended_response_entity_id_valid = -1;
2281 static int hf_cigi3_sensor_extended_response_entity_id = -1;
2282 static int hf_cigi3_sensor_extended_response_gate_x_size = -1;
2283 static int hf_cigi3_sensor_extended_response_gate_y_size = -1;
2284 static int hf_cigi3_sensor_extended_response_gate_x_pos = -1;
2285 static int hf_cigi3_sensor_extended_response_gate_y_pos = -1;
2286 static int hf_cigi3_sensor_extended_response_frame_ctr = -1;
2287 static int hf_cigi3_sensor_extended_response_track_lat = -1;
2288 static int hf_cigi3_sensor_extended_response_track_lon = -1;
2289 static int hf_cigi3_sensor_extended_response_track_alt = -1;
2291 static const value_string cigi3_sensor_extended_response_sensor_status_vals[] = {
2292 {0, "Searching for target"},
2293 {1, "Tracking target"},
2294 {2, "Impending breaklock"},
2299 /* CIGI3 Position Response */
2300 #define CIGI3_PACKET_SIZE_POSITION_RESPONSE 48
2301 static int hf_cigi3_position_response = -1;
2302 static int hf_cigi3_position_response_object_id = -1;
2303 static int hf_cigi3_position_response_part_id = -1;
2304 static int hf_cigi3_position_response_object_class = -1;
2305 static int hf_cigi3_position_response_coord_system = -1;
2306 static int hf_cigi3_position_response_lat_xoff = -1;
2307 static int hf_cigi3_position_response_lon_yoff = -1;
2308 static int hf_cigi3_position_response_alt_zoff = -1;
2309 static int hf_cigi3_position_response_roll = -1;
2310 static int hf_cigi3_position_response_pitch = -1;
2311 static int hf_cigi3_position_response_yaw = -1;
2313 static const value_string cigi3_position_response_object_class_vals[] = {
2315 {1, "Articulated Part"},
2318 {4, "Motion Tracker"},
2322 static const value_string cigi3_position_response_coord_system_vals[] = {
2324 {1, "Parent Entity"},
2329 /* CIGI3 Weather Conditions Response */
2330 #define CIGI3_PACKET_SIZE_WEATHER_CONDITIONS_RESPONSE 32
2331 static int hf_cigi3_weather_conditions_response = -1;
2332 static int hf_cigi3_weather_conditions_response_request_id = -1;
2333 static int hf_cigi3_weather_conditions_response_humidity = -1;
2334 static int hf_cigi3_weather_conditions_response_air_temp = -1;
2335 static int hf_cigi3_weather_conditions_response_visibility_range = -1;
2336 static int hf_cigi3_weather_conditions_response_horiz_speed = -1;
2337 static int hf_cigi3_weather_conditions_response_vert_speed = -1;
2338 static int hf_cigi3_weather_conditions_response_wind_direction = -1;
2339 static int hf_cigi3_weather_conditions_response_barometric_pressure = -1;
2341 /* CIGI3 Aerosol Concentration Response */
2342 #define CIGI3_PACKET_SIZE_AEROSOL_CONCENTRATION_RESPONSE 8
2343 static int hf_cigi3_aerosol_concentration_response = -1;
2344 static int hf_cigi3_aerosol_concentration_response_request_id = -1;
2345 static int hf_cigi3_aerosol_concentration_response_layer_id = -1;
2346 static int hf_cigi3_aerosol_concentration_response_aerosol_concentration = -1;
2348 /* CIGI3 Maritime Surface Conditions Response */
2349 #define CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_RESPONSE 16
2350 static int hf_cigi3_maritime_surface_conditions_response = -1;
2351 static int hf_cigi3_maritime_surface_conditions_response_request_id = -1;
2352 static int hf_cigi3_maritime_surface_conditions_response_sea_surface_height = -1;
2353 static int hf_cigi3_maritime_surface_conditions_response_surface_water_temp = -1;
2354 static int hf_cigi3_maritime_surface_conditions_response_surface_clarity = -1;
2356 /* CIGI3 Terrestrial Surface Conditions Response */
2357 #define CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE 8
2358 static int hf_cigi3_terrestrial_surface_conditions_response = -1;
2359 static int hf_cigi3_terrestrial_surface_conditions_response_request_id = -1;
2360 static int hf_cigi3_terrestrial_surface_conditions_response_surface_id = -1;
2362 /* CIGI3 Collision Detection Segment Notification */
2363 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_NOTIFICATION 16
2364 static int hf_cigi3_collision_detection_segment_notification = -1;
2365 static int hf_cigi3_collision_detection_segment_notification_entity_id = -1;
2366 static int hf_cigi3_collision_detection_segment_notification_segment_id = -1;
2367 static int hf_cigi3_collision_detection_segment_notification_type = -1;
2368 static int hf_cigi3_collision_detection_segment_notification_contacted_entity_id = -1;
2369 static int hf_cigi3_collision_detection_segment_notification_material_code = -1;
2370 static int hf_cigi3_collision_detection_segment_notification_intersection_distance = -1;
2372 static const true_false_string cigi3_collision_detection_segment_notification_type_tfs = {
2377 /* CIGI3 Collision Detection Volume Notification */
2378 #define CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_NOTIFICATION 16
2379 static int hf_cigi3_collision_detection_volume_notification = -1;
2380 static int hf_cigi3_collision_detection_volume_notification_entity_id = -1;
2381 static int hf_cigi3_collision_detection_volume_notification_volume_id = -1;
2382 static int hf_cigi3_collision_detection_volume_notification_type = -1;
2383 static int hf_cigi3_collision_detection_volume_notification_contacted_entity_id = -1;
2384 static int hf_cigi3_collision_detection_volume_notification_contacted_volume_id = -1;
2386 static const true_false_string cigi3_collision_detection_volume_notification_type_tfs = {
2391 /* CIGI3 Animation Stop Notification */
2392 #define CIGI3_PACKET_SIZE_ANIMATION_STOP_NOTIFICATION 8
2393 static int hf_cigi3_animation_stop_notification = -1;
2394 static int hf_cigi3_animation_stop_notification_entity_id = -1;
2396 /* CIGI3 Event Notification */
2397 #define CIGI3_PACKET_SIZE_EVENT_NOTIFICATION 16
2398 static int hf_cigi3_event_notification = -1;
2399 static int hf_cigi3_event_notification_event_id = -1;
2400 static int hf_cigi3_event_notification_data_1 = -1;
2401 static int hf_cigi3_event_notification_data_2 = -1;
2402 static int hf_cigi3_event_notification_data_3 = -1;
2404 /* CIGI3 Image Generator Message */
2405 static int hf_cigi3_image_generator_message = -1;
2406 static int hf_cigi3_image_generator_message_id = -1;
2407 static int hf_cigi3_image_generator_message_message = -1;
2409 /* CIGI3 User-Defined Packets */
2410 static int hf_cigi3_user_defined = -1;
2413 /* Global preferences */
2414 #define CIGI_VERSION_FROM_PACKET 0
2415 #define CIGI_VERSION_1 1
2416 #define CIGI_VERSION_2 2
2417 #define CIGI_VERSION_3 3
2419 static gint global_cigi_version = CIGI_VERSION_FROM_PACKET;
2421 #define CIGI_BYTE_ORDER_FROM_PACKET -1
2422 #define CIGI_BYTE_ORDER_BIG_ENDIAN FALSE
2423 #define CIGI_BYTE_ORDER_LITTLE_ENDIAN TRUE
2425 static gint global_cigi_byte_order = CIGI_BYTE_ORDER_FROM_PACKET;
2427 static const char *global_host_ip;
2428 static const char *global_ig_ip;
2431 /* Initialize the subtree pointers */
2432 static gint ett_cigi = -1;
2434 /* The version of cigi to use */
2435 static gint cigi_version = 0;
2436 static gint cigi_minor_version = 0;
2438 /* The byte order of cigi to use; our default is big-endian */
2439 static gint cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN;
2442 * Check whether this looks like a CIGI packet or not.
2445 packet_is_cigi(tvbuff_t *tvb)
2449 guint8 cigi_version_local;
2455 if (tvb_length(tvb) < 3) {
2456 /* Not enough data available to check */
2459 packet_id = tvb_get_guint8(tvb, 0);
2460 packet_size = tvb_get_guint8(tvb, 1);
2461 cigi_version_local = tvb_get_guint8(tvb, 2);
2463 if ( packet_size > tvb_reported_length(tvb) ) {
2467 /* Currently there are only 3 versions of CIGI */
2468 switch ( cigi_version_local ) {
2470 case CIGI_VERSION_1:
2471 /* CIGI 1 requires that the first packet is always the IG Control or SOF */
2472 switch ( packet_id ) {
2474 if ( packet_size != 16 ) {
2478 if (!tvb_bytes_exist(tvb, 4, 1)) {
2479 /* Not enough data available to check */
2482 ig_mode = (tvb_get_guint8(tvb, 4) & 0xc0) >> 6;
2483 if ( ig_mode > 2 ) {
2488 if ( packet_size != 12 ) {
2497 case CIGI_VERSION_2:
2498 /* CIGI 2 requires that the first packet is always the IG Control or SOF */
2499 switch ( packet_id ) {
2500 case CIGI2_PACKET_ID_IG_CONTROL:
2501 if ( packet_size != CIGI2_PACKET_SIZE_IG_CONTROL ) {
2505 if (!tvb_bytes_exist(tvb, 4, 1)) {
2506 /* Not enough data available to check */
2509 ig_mode = (tvb_get_guint8(tvb, 4) & 0xc0) >> 6;
2510 if ( ig_mode > 2 ) {
2514 case CIGI2_PACKET_ID_START_OF_FRAME:
2515 if ( packet_size != CIGI2_PACKET_SIZE_START_OF_FRAME ) {
2524 case CIGI_VERSION_3:
2525 if (!tvb_bytes_exist(tvb, 6, 1)) {
2526 /* Not enough data available to check */
2530 /* CIGI 3 requires that the first packet is always the IG Control or SOF */
2531 switch ( packet_id ) {
2532 case CIGI3_PACKET_ID_IG_CONTROL:
2533 if ( packet_size != CIGI3_PACKET_SIZE_IG_CONTROL ) {
2534 if ( packet_size != CIGI3_2_PACKET_SIZE_IG_CONTROL ) {
2539 if (!tvb_bytes_exist(tvb, 4, 2)) {
2540 /* Not enough data available to check */
2544 ig_mode = (tvb_get_guint8(tvb, 4) & 0x03);
2545 if ( ig_mode > 2 ) {
2550 case CIGI3_PACKET_ID_START_OF_FRAME:
2551 if ( packet_size != CIGI3_PACKET_SIZE_START_OF_FRAME ) {
2552 if ( packet_size != CIGI3_2_PACKET_SIZE_START_OF_FRAME) {
2557 if (!tvb_bytes_exist(tvb, 5, 1)) {
2558 /* Not enough data available to check */
2567 /* CIGI 3 has the byte swap field which only allows two values. */
2568 byte_swap = tvb_get_ntohs(tvb, 6);
2570 if ( byte_swap != CIGI3_BYTE_SWAP_BIG_ENDIAN && byte_swap != CIGI3_BYTE_SWAP_LITTLE_ENDIAN ) {
2579 /* If we made it here, then this is probably CIGI */
2584 * The heuristic dissector
2587 dissect_cigi_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2589 /* Does this look like CIGI? */
2590 if ( !packet_is_cigi(tvb) ) {
2593 dissect_cigi_pdu(tvb, pinfo, tree);
2598 * The non-heuristic dissector.
2601 dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2603 /* Make sure this looks like CIGI */
2604 if ( !packet_is_cigi(tvb) ) {
2607 dissect_cigi_pdu(tvb, pinfo, tree);
2608 /* We probably ate the entire packet. */
2609 return tvb_length(tvb);
2612 /* Code to actually dissect the CIGI packets */
2614 dissect_cigi_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2616 /* Set up structures needed to add the protocol subtree and manage it */
2617 guint8 packet_id = 0;
2619 proto_item *ti, *hidden_item;
2620 proto_tree *cigi_tree;
2622 const char* src_str;
2623 const char* dest_str;
2624 const char* info_str;
2626 packet_id = tvb_get_guint8(tvb, 0);
2629 /* Make entries in Protocol column and Info column on summary display */
2630 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CIGI");
2632 /* If we have the start of frame or IG Control packet set the version
2633 * XXX - If another version of cigi is added to this dissector be sure to
2634 * place the IG Control and SOF packet id's in this comparison. */
2635 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 ) {
2636 cigi_version = tvb_get_guint8(tvb, 2);
2639 /* Format the Info String */
2640 src_str = ip_to_str(pinfo->src.data);
2641 if ( !g_ascii_strcasecmp(global_host_ip, src_str) ) {
2643 } else if ( !g_ascii_strcasecmp(global_ig_ip, src_str) ) {
2647 dest_str = ip_to_str(pinfo->dst.data);
2648 if ( !g_ascii_strcasecmp(global_host_ip, dest_str) ) {
2650 } else if ( !g_ascii_strcasecmp(global_ig_ip, dest_str) ) {
2654 info_str = se_strdup_printf("%s => %s (%u bytes)", src_str, dest_str,
2655 tvb_reported_length(tvb));
2657 col_set_str(pinfo->cinfo, COL_INFO, info_str);
2661 ti = proto_tree_add_protocol_format(tree, proto_cigi, tvb, 0, tvb_length(tvb), "Common Image Generator Interface (%i), %s", cigi_version, info_str);
2663 cigi_tree = proto_item_add_subtree(ti, ett_cigi);
2666 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_src_port, tvb, 0, 0, pinfo->srcport);
2667 PROTO_ITEM_SET_HIDDEN(hidden_item);
2668 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_dest_port, tvb, 0, 0, pinfo->destport);
2669 PROTO_ITEM_SET_HIDDEN(hidden_item);
2670 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_port, tvb, 0, 0, pinfo->srcport);
2671 PROTO_ITEM_SET_HIDDEN(hidden_item);
2672 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_port, tvb, 0, 0, pinfo->destport);
2673 PROTO_ITEM_SET_HIDDEN(hidden_item);
2676 hidden_item = proto_tree_add_uint(cigi_tree, hf_cigi_frame_size, tvb, 0, 0, tvb_reported_length(tvb));
2677 PROTO_ITEM_SET_HIDDEN(hidden_item);
2679 /* Since the versions of CIGI are not backwards compatible,
2680 * dissection is different for each version.
2681 * XXX - If another version of cigi is added to this dissector be
2682 * sure to place the version in this statement.*/
2683 if ( cigi_version == CIGI_VERSION_2 ) {
2684 cigi2_add_tree(tvb, cigi_tree);
2685 } else if ( cigi_version == CIGI_VERSION_3 ) {
2686 cigi3_add_tree(tvb, cigi_tree);
2688 /* Since there exists no dissector to dissect this version
2689 * just put the data into a tree using an unknown version */
2690 cigi_add_tree(tvb, cigi_tree);
2695 /* Create the tree for CIGI (Unknown Version)
2696 * Note: If we have no version then we assume network order bytes (big endian). */
2698 cigi_add_tree(tvbuff_t *tvb, proto_tree *cigi_tree)
2703 gint packet_size = 0;
2706 proto_tree* cigi_packet_tree = NULL;
2707 proto_item* tipacket;
2709 length = tvb_length(tvb);
2711 /* Each iteration through this loop is meant to be a separate cigi packet
2712 * therefore it is okay to assume that at the top of this look we are given
2713 * a new packet to dissect. */
2714 while ( offset < length ) {
2716 packet_id = tvb_get_guint8(tvb, offset);
2717 packet_size = tvb_get_guint8(tvb, offset + 1);
2718 data_size = packet_size;
2720 /* if the second byte of the packet carries a value that is less than
2721 * then we know we have a malformed packet because every cigi packet
2722 * at minimal must be a least 2 bytes ( 1 - packet_id; 2 - packet_size ). */
2723 if ( packet_size < 2 ) {
2724 THROW(ReportedBoundsError);
2727 /* If we have the start of frame or IG Control packet set the version.
2728 * Since we have no cigi version we assume that packet id 1 is the
2729 * IG Control and packet id 101 is the Start of Frame. */
2730 if ( ( packet_id == 1 || packet_id == 101 ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
2731 cigi_version = tvb_get_guint8(tvb, 2);
2734 /* Add the subtree for the packet */
2735 tipacket = proto_tree_add_string_format(cigi_tree, hf_cigi_unknown, tvb, offset, packet_size, NULL, "Unknown (%i bytes)", packet_size);
2737 cigi_packet_tree = proto_item_add_subtree(tipacket, ett_cigi);
2739 /* In all CIGI versions the first byte of a packet is the packet ID.
2740 * The second byte is the size of the packet (in bytes). */
2741 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_id, tvb, offset, 1, cigi_byte_order);
2745 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_size, tvb, offset, 1, cigi_byte_order);
2749 /* If the packet ID is for the SOF or IG Control, which are usually 101
2750 * and 1 respectively then also print the version that we are using. */
2751 if ( packet_id == 1 || packet_id == 101 ) {
2752 proto_tree_add_item(cigi_packet_tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
2757 proto_tree_add_text(cigi_packet_tree, tvb, offset, data_size, "Data (%i bytes)", data_size );
2758 offset += data_size;
2763 /* offset is the position past the packet_id and packet_size */
2765 cigi_add_data(tvbuff_t *tvb, proto_tree *tree, gint offset)
2767 gint8 packet_size = 0;
2769 packet_size = tvb_get_guint8(tvb, offset-1);
2771 /* A cigi packet cannot be less than 2 bytes ( because every cigi packet
2772 * has a packet id (1 byte) and a packet size (1 byte) ). */
2773 if ( packet_size < 2 ) {
2774 THROW(ReportedBoundsError);
2777 proto_tree_add_text(tree, tvb, offset, packet_size-2, "Data (%i bytes)", packet_size-2 );
2778 offset += packet_size-2;
2783 /* Create the tree for CIGI 2
2784 * Note: CIGI 2 guarantee's that the byte order will be big endian. */
2786 cigi2_add_tree(tvbuff_t *tvb, proto_tree *cigi_tree)
2790 gint init_offset = 0;
2793 gint packet_size = 0;
2794 gint packet_length = 0;
2796 proto_tree* cigi_packet_tree = NULL;
2797 proto_item* tipacket;
2798 int hf_cigi2_packet = -1;
2800 length = tvb_length(tvb);
2802 /* Each iteration through this loop is meant to be a separate cigi packet
2803 * therefore it is okay to assume that at the top of this look we are given
2804 * a new packet to dissect. */
2805 while ( offset < length ) {
2807 packet_id = tvb_get_guint8(tvb, offset);
2808 packet_size = tvb_get_guint8(tvb, offset + 1);
2810 /* If we have the start of frame or IG Control packet set the version */
2811 if ( ( packet_id == CIGI2_PACKET_ID_IG_CONTROL || packet_id == CIGI2_PACKET_ID_START_OF_FRAME ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
2812 cigi_version = tvb_get_guint8(tvb, 2);
2815 /* Add the subtree for the packet */
2816 if ( packet_id == CIGI2_PACKET_ID_IG_CONTROL ) {
2817 hf_cigi2_packet = hf_cigi2_ig_control;
2818 packet_length = CIGI2_PACKET_SIZE_IG_CONTROL;
2819 } else if ( packet_id == CIGI2_PACKET_ID_ENTITY_CONTROL ) {
2820 hf_cigi2_packet = hf_cigi2_entity_control;
2821 packet_length = CIGI2_PACKET_SIZE_ENTITY_CONTROL;
2822 } else if ( packet_id == CIGI2_PACKET_ID_COMPONENT_CONTROL ) {
2823 hf_cigi2_packet = hf_cigi2_component_control;
2824 packet_length = CIGI2_PACKET_SIZE_COMPONENT_CONTROL;
2825 } else if ( packet_id == CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL ) {
2826 hf_cigi2_packet = hf_cigi2_articulated_parts_control;
2827 packet_length = CIGI2_PACKET_SIZE_ARTICULATED_PARTS_CONTROL;
2828 } else if ( packet_id == CIGI2_PACKET_ID_RATE_CONTROL ) {
2829 hf_cigi2_packet = hf_cigi2_rate_control;
2830 packet_length = CIGI2_PACKET_SIZE_RATE_CONTROL;
2831 } else if ( packet_id == CIGI2_PACKET_ID_ENVIRONMENT_CONTROL ) {
2832 hf_cigi2_packet = hf_cigi2_environment_control;
2833 packet_length = CIGI2_PACKET_SIZE_ENVIRONMENT_CONTROL;
2834 } else if ( packet_id == CIGI2_PACKET_ID_WEATHER_CONTROL ) {
2835 hf_cigi2_packet = hf_cigi2_weather_control;
2836 packet_length = CIGI2_PACKET_SIZE_WEATHER_CONTROL;
2837 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_CONTROL ) {
2838 hf_cigi2_packet = hf_cigi2_view_control;
2839 packet_length = CIGI2_PACKET_SIZE_VIEW_CONTROL;
2840 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_CONTROL ) {
2841 hf_cigi2_packet = hf_cigi2_sensor_control;
2842 packet_length = CIGI2_PACKET_SIZE_SENSOR_CONTROL;
2843 } else if ( packet_id == CIGI2_PACKET_ID_TRAJECTORY_DEFINITION ) {
2844 hf_cigi2_packet = hf_cigi2_trajectory_definition;
2845 packet_length = CIGI2_PACKET_SIZE_TRAJECTORY_DEFINITION;
2846 } else if ( packet_id == CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION ) {
2847 hf_cigi2_packet = hf_cigi2_special_effect_definition;
2848 packet_length = CIGI2_PACKET_SIZE_SPECIAL_EFFECT_DEFINITION;
2849 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_DEFINITION ) {
2850 hf_cigi2_packet = hf_cigi2_view_definition;
2851 packet_length = CIGI2_PACKET_SIZE_VIEW_DEFINITION;
2852 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
2853 hf_cigi2_packet = hf_cigi2_collision_detection_segment_definition;
2854 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION;
2855 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
2856 hf_cigi2_packet = hf_cigi2_collision_detection_volume_definition;
2857 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION;
2858 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST ) {
2859 hf_cigi2_packet = hf_cigi2_height_above_terrain_request;
2860 packet_length = CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_REQUEST;
2861 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST ) {
2862 hf_cigi2_packet = hf_cigi2_line_of_sight_occult_request;
2863 packet_length = CIGI2_PACKET_SIZE_LINE_OF_SIGHT_OCCULT_REQUEST;
2864 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST ) {
2865 hf_cigi2_packet = hf_cigi2_line_of_sight_range_request;
2866 packet_length = CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RANGE_REQUEST;
2867 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST ) {
2868 hf_cigi2_packet = hf_cigi2_height_of_terrain_request;
2869 packet_length = CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_REQUEST;
2870 } else if ( packet_id == CIGI2_PACKET_ID_START_OF_FRAME ) {
2871 hf_cigi2_packet = hf_cigi2_start_of_frame;
2872 packet_length = CIGI2_PACKET_SIZE_START_OF_FRAME;
2873 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE ) {
2874 hf_cigi2_packet = hf_cigi2_height_above_terrain_response;
2875 packet_length = CIGI2_PACKET_SIZE_HEIGHT_ABOVE_TERRAIN_RESPONSE;
2876 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
2877 hf_cigi2_packet = hf_cigi2_line_of_sight_response;
2878 packet_length = CIGI2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE;
2879 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE ) {
2880 hf_cigi2_packet = hf_cigi2_collision_detection_segment_response;
2881 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_RESPONSE;
2882 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_RESPONSE ) {
2883 hf_cigi2_packet = hf_cigi2_sensor_response;
2884 packet_length = CIGI2_PACKET_SIZE_SENSOR_RESPONSE;
2885 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE ) {
2886 hf_cigi2_packet = hf_cigi2_height_of_terrain_response;
2887 packet_length = CIGI2_PACKET_SIZE_HEIGHT_OF_TERRAIN_RESPONSE;
2888 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE ) {
2889 hf_cigi2_packet = hf_cigi2_collision_detection_volume_response;
2890 packet_length = CIGI2_PACKET_SIZE_COLLISION_DETECTION_VOLUME_RESPONSE;
2891 } else if ( packet_id == CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
2892 hf_cigi2_packet = hf_cigi2_image_generator_message;
2893 packet_length = packet_size;
2894 } else if ( packet_id >= CIGI2_PACKET_ID_USER_DEFINABLE_MIN && packet_id <= CIGI2_PACKET_ID_USER_DEFINABLE_MAX ) {
2895 hf_cigi2_packet = hf_cigi2_user_definable;
2896 packet_length = packet_size;
2898 hf_cigi2_packet = hf_cigi_unknown;
2899 packet_length = packet_size;
2901 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);
2903 cigi_packet_tree = proto_item_add_subtree(tipacket, ett_cigi);
2905 /* In all CIGI versions the first byte of a packet is the packet ID.
2906 * The second byte is the size of the packet (in bytes). */
2907 init_offset = offset;
2908 proto_tree_add_item(cigi_packet_tree, hf_cigi2_packet_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
2911 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_size, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
2914 if ( packet_id == CIGI2_PACKET_ID_IG_CONTROL ) {
2915 offset = cigi2_add_ig_control(tvb, cigi_packet_tree, offset);
2916 } else if ( packet_id == CIGI2_PACKET_ID_ENTITY_CONTROL ) {
2917 offset = cigi2_add_entity_control(tvb, cigi_packet_tree, offset);
2918 } else if ( packet_id == CIGI2_PACKET_ID_COMPONENT_CONTROL ) {
2919 offset = cigi2_add_component_control(tvb, cigi_packet_tree, offset);
2920 } else if ( packet_id == CIGI2_PACKET_ID_ARTICULATED_PARTS_CONTROL ) {
2921 offset = cigi2_add_articulated_parts_control(tvb, cigi_packet_tree, offset);
2922 } else if ( packet_id == CIGI2_PACKET_ID_RATE_CONTROL ) {
2923 offset = cigi2_add_rate_control(tvb, cigi_packet_tree, offset);
2924 } else if ( packet_id == CIGI2_PACKET_ID_ENVIRONMENT_CONTROL ) {
2925 offset = cigi2_add_environment_control(tvb, cigi_packet_tree, offset);
2926 } else if ( packet_id == CIGI2_PACKET_ID_WEATHER_CONTROL ) {
2927 offset = cigi2_add_weather_control(tvb, cigi_packet_tree, offset);
2928 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_CONTROL ) {
2929 offset = cigi2_add_view_control(tvb, cigi_packet_tree, offset);
2930 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_CONTROL ) {
2931 offset = cigi2_add_sensor_control(tvb, cigi_packet_tree, offset);
2932 } else if ( packet_id == CIGI2_PACKET_ID_TRAJECTORY_DEFINITION ) {
2933 offset = cigi2_add_trajectory_definition(tvb, cigi_packet_tree, offset);
2934 } else if ( packet_id == CIGI2_PACKET_ID_SPECIAL_EFFECT_DEFINITION ) {
2935 offset = cigi2_add_special_effect_definition(tvb, cigi_packet_tree, offset);
2936 } else if ( packet_id == CIGI2_PACKET_ID_VIEW_DEFINITION ) {
2937 offset = cigi2_add_view_definition(tvb, cigi_packet_tree, offset);
2938 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
2939 offset = cigi2_add_collision_detection_segment_definition(tvb, cigi_packet_tree, offset);
2940 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
2941 offset = cigi2_add_collision_detection_volume_definition(tvb, cigi_packet_tree, offset);
2942 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_REQUEST ) {
2943 offset = cigi2_add_height_above_terrain_request(tvb, cigi_packet_tree, offset);
2944 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_OCCULT_REQUEST ) {
2945 offset = cigi2_add_line_of_sight_occult_request(tvb, cigi_packet_tree, offset);
2946 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RANGE_REQUEST ) {
2947 offset = cigi2_add_line_of_sight_range_request(tvb, cigi_packet_tree, offset);
2948 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_REQUEST ) {
2949 offset = cigi2_add_height_of_terrain_request(tvb, cigi_packet_tree, offset);
2950 } else if ( packet_id == CIGI2_PACKET_ID_START_OF_FRAME ) {
2951 offset = cigi2_add_start_of_frame(tvb, cigi_packet_tree, offset);
2952 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_ABOVE_TERRAIN_RESPONSE ) {
2953 offset = cigi2_add_height_above_terrain_response(tvb, cigi_packet_tree, offset);
2954 } else if ( packet_id == CIGI2_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
2955 offset = cigi2_add_line_of_sight_response(tvb, cigi_packet_tree, offset);
2956 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_SEGMENT_RESPONSE ) {
2957 offset = cigi2_add_collision_detection_segment_response(tvb, cigi_packet_tree, offset);
2958 } else if ( packet_id == CIGI2_PACKET_ID_SENSOR_RESPONSE ) {
2959 offset = cigi2_add_sensor_response(tvb, cigi_packet_tree, offset);
2960 } else if ( packet_id == CIGI2_PACKET_ID_HEIGHT_OF_TERRAIN_RESPONSE ) {
2961 offset = cigi2_add_height_of_terrain_response(tvb, cigi_packet_tree, offset);
2962 } else if ( packet_id == CIGI2_PACKET_ID_COLLISION_DETECTION_VOLUME_RESPONSE ) {
2963 offset = cigi2_add_collision_detection_volume_response(tvb, cigi_packet_tree, offset);
2964 } else if ( packet_id == CIGI2_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
2965 offset = cigi2_add_image_generator_message(tvb, cigi_packet_tree, offset);
2966 } else if ( packet_id >= CIGI2_PACKET_ID_USER_DEFINABLE_MIN && packet_id <= CIGI2_PACKET_ID_USER_DEFINABLE_MAX ) {
2967 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
2969 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
2972 /* Does the packet offset match the supposed length of the packet? */
2973 DISSECTOR_ASSERT((offset - init_offset == packet_length) && "Packet offset does not match packet length");
2977 /* Create the tree for CIGI 3 */
2979 cigi3_add_tree(tvbuff_t *tvb, proto_tree *cigi_tree)
2983 gint init_offset = 0;
2986 gint packet_size = 0;
2987 gint packet_length = 0;
2988 guint16 byte_swap = 0;
2990 proto_tree* cigi_packet_tree = NULL;
2991 proto_item* tipacket;
2992 int hf_cigi3_packet = -1;
2994 length = tvb_length(tvb);
2996 /* Each iteration through this loop is meant to be a separate cigi packet
2997 * therefore it is okay to assume that at the top of this look we are given
2998 * a new packet to dissect. */
2999 while ( offset < length ) {
3001 packet_id = tvb_get_guint8(tvb, offset);
3002 packet_size = tvb_get_guint8(tvb, offset + 1);
3003 byte_swap = tvb_get_ntohs(tvb, offset + 6);
3005 /* If we have the start of frame or IG Control packet set the version */
3006 if ( ( packet_id == CIGI3_PACKET_ID_IG_CONTROL || packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) && global_cigi_version == CIGI_VERSION_FROM_PACKET ) {
3007 cigi_version = tvb_get_guint8(tvb, 2);
3008 if ( packet_size == CIGI3_2_PACKET_SIZE_IG_CONTROL || packet_size == CIGI3_2_PACKET_SIZE_START_OF_FRAME ) {
3009 cigi_minor_version = tvb_get_guint8(tvb, 4) >> 4;
3011 cigi_minor_version = 0;
3015 /* If we have the SOF or IG Control packet set the byte order */
3016 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 ) {
3017 if ( byte_swap == CIGI3_BYTE_SWAP_BIG_ENDIAN ) {
3018 cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN;
3019 } else if ( byte_swap == CIGI3_BYTE_SWAP_LITTLE_ENDIAN ) {
3020 cigi_byte_order = CIGI_BYTE_ORDER_LITTLE_ENDIAN;
3022 /* Assume we want Big-Endian byte order */
3023 cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN;
3027 /* Add the subtree for the packet */
3028 if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 2 ) {
3029 hf_cigi3_packet = hf_cigi3_2_ig_control;
3030 packet_length = CIGI3_2_PACKET_SIZE_IG_CONTROL;
3031 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 3 ) {
3032 hf_cigi3_packet = hf_cigi3_3_ig_control;
3033 packet_length = CIGI3_3_PACKET_SIZE_IG_CONTROL;
3034 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL ) {
3035 hf_cigi3_packet = hf_cigi3_ig_control;
3036 packet_length = CIGI3_PACKET_SIZE_IG_CONTROL;
3037 } else if ( packet_id == CIGI3_PACKET_ID_ENTITY_CONTROL ) {
3038 hf_cigi3_packet = hf_cigi3_entity_control;
3039 packet_length = CIGI3_PACKET_SIZE_ENTITY_CONTROL;
3040 } else if ( packet_id == CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL ) {
3041 hf_cigi3_packet = hf_cigi3_conformal_clamped_entity_control;
3042 packet_length = CIGI3_PACKET_SIZE_CONFORMAL_CLAMPED_ENTITY_CONTROL;
3043 } else if ( packet_id == CIGI3_PACKET_ID_COMPONENT_CONTROL ) {
3044 hf_cigi3_packet = hf_cigi3_component_control;
3045 packet_length = CIGI3_PACKET_SIZE_COMPONENT_CONTROL;
3046 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL ) {
3047 hf_cigi3_packet = hf_cigi3_short_component_control;
3048 packet_length = CIGI3_PACKET_SIZE_SHORT_COMPONENT_CONTROL;
3049 } else if ( packet_id == CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL ) {
3050 hf_cigi3_packet = hf_cigi3_articulated_part_control;
3051 packet_length = CIGI3_PACKET_SIZE_ARTICULATED_PART_CONTROL;
3052 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL ) {
3053 hf_cigi3_packet = hf_cigi3_short_articulated_part_control;
3054 packet_length = CIGI3_PACKET_SIZE_SHORT_ARTICULATED_PART_CONTROL;
3055 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3056 hf_cigi3_packet = hf_cigi3_2_rate_control;
3057 packet_length = CIGI3_2_PACKET_SIZE_RATE_CONTROL;
3058 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL ) {
3059 hf_cigi3_packet = hf_cigi3_rate_control;
3060 packet_length = CIGI3_PACKET_SIZE_RATE_CONTROL;
3061 } else if ( packet_id == CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL ) {
3062 hf_cigi3_packet = hf_cigi3_celestial_sphere_control;
3063 packet_length = CIGI3_PACKET_SIZE_CELESTIAL_SPHERE_CONTROL;
3064 } else if ( packet_id == CIGI3_PACKET_ID_ATMOSPHERE_CONTROL ) {
3065 hf_cigi3_packet = hf_cigi3_atmosphere_control;
3066 packet_length = CIGI3_PACKET_SIZE_ATMOSPHERE_CONTROL;
3067 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL ) {
3068 hf_cigi3_packet = hf_cigi3_environmental_region_control;
3069 packet_length = CIGI3_PACKET_SIZE_ENVIRONMENTAL_REGION_CONTROL;
3070 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONTROL ) {
3071 hf_cigi3_packet = hf_cigi3_weather_control;
3072 packet_length = CIGI3_PACKET_SIZE_WEATHER_CONTROL;
3073 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL ) {
3074 hf_cigi3_packet = hf_cigi3_maritime_surface_conditions_control;
3075 packet_length = CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_CONTROL;
3076 } else if ( packet_id == CIGI3_PACKET_ID_WAVE_CONTROL ) {
3077 hf_cigi3_packet = hf_cigi3_wave_control;
3078 packet_length = CIGI3_PACKET_SIZE_WAVE_CONTROL;
3079 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL ) {
3080 hf_cigi3_packet = hf_cigi3_terrestrial_surface_conditions_control;
3081 packet_length = CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL;
3082 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_CONTROL ) {
3083 hf_cigi3_packet = hf_cigi3_view_control;
3084 packet_length = CIGI3_PACKET_SIZE_VIEW_CONTROL;
3085 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_CONTROL ) {
3086 hf_cigi3_packet = hf_cigi3_sensor_control;
3087 packet_length = CIGI3_PACKET_SIZE_SENSOR_CONTROL;
3088 } else if ( packet_id == CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL ) {
3089 hf_cigi3_packet = hf_cigi3_motion_tracker_control;
3090 packet_length = CIGI3_PACKET_SIZE_MOTION_TRACKER_CONTROL;
3091 } else if ( packet_id == CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION ) {
3092 hf_cigi3_packet = hf_cigi3_earth_reference_model_definition;
3093 packet_length = CIGI3_PACKET_SIZE_EARTH_REFERENCE_MODEL_DEFINITION;
3094 } else if ( packet_id == CIGI3_PACKET_ID_TRAJECTORY_DEFINITION ) {
3095 hf_cigi3_packet = hf_cigi3_trajectory_definition;
3096 packet_length = CIGI3_PACKET_SIZE_TRAJECTORY_DEFINITION;
3097 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_DEFINITION ) {
3098 hf_cigi3_packet = hf_cigi3_view_definition;
3099 packet_length = CIGI3_PACKET_SIZE_VIEW_DEFINITION;
3100 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
3101 hf_cigi3_packet = hf_cigi3_collision_detection_segment_definition;
3102 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_DEFINITION;
3103 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
3104 hf_cigi3_packet = hf_cigi3_collision_detection_volume_definition;
3105 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_DEFINITION;
3106 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3107 hf_cigi3_packet = hf_cigi3_2_hat_hot_request;
3108 packet_length = CIGI3_2_PACKET_SIZE_HAT_HOT_REQUEST;
3109 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST ) {
3110 hf_cigi3_packet = hf_cigi3_hat_hot_request;
3111 packet_length = CIGI3_PACKET_SIZE_HAT_HOT_REQUEST;
3112 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3113 hf_cigi3_packet = hf_cigi3_2_line_of_sight_segment_request;
3114 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST;
3115 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST ) {
3116 hf_cigi3_packet = hf_cigi3_line_of_sight_segment_request;
3117 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_SEGMENT_REQUEST;
3118 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3119 hf_cigi3_packet = hf_cigi3_2_line_of_sight_vector_request;
3120 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST;
3121 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST ) {
3122 hf_cigi3_packet = hf_cigi3_line_of_sight_vector_request;
3123 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_VECTOR_REQUEST;
3124 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_REQUEST ) {
3125 hf_cigi3_packet = hf_cigi3_position_request;
3126 packet_length = CIGI3_PACKET_SIZE_POSITION_REQUEST;
3127 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST ) {
3128 hf_cigi3_packet = hf_cigi3_environmental_conditions_request;
3129 packet_length = CIGI3_PACKET_SIZE_ENVIRONMENTAL_CONDITIONS_REQUEST;
3130 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION ) {
3131 hf_cigi3_packet = hf_cigi3_3_symbol_surface_definition;
3132 packet_length = CIGI3_PACKET_SIZE_SYMBOL_SURFACE_DEFINITION;
3133 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3134 hf_cigi3_packet = hf_cigi3_2_start_of_frame;
3135 packet_length = CIGI3_2_PACKET_SIZE_START_OF_FRAME;
3136 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) {
3137 hf_cigi3_packet = hf_cigi3_start_of_frame;
3138 packet_length = CIGI3_PACKET_SIZE_START_OF_FRAME;
3139 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3140 hf_cigi3_packet = hf_cigi3_2_hat_hot_response;
3141 packet_length = CIGI3_2_PACKET_SIZE_HAT_HOT_RESPONSE;
3142 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE ) {
3143 hf_cigi3_packet = hf_cigi3_hat_hot_response;
3144 packet_length = CIGI3_PACKET_SIZE_HAT_HOT_RESPONSE;
3145 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3146 hf_cigi3_packet = hf_cigi3_2_hat_hot_extended_response;
3147 packet_length = CIGI3_2_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE;
3148 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE ) {
3149 hf_cigi3_packet = hf_cigi3_hat_hot_extended_response;
3150 packet_length = CIGI3_PACKET_SIZE_HAT_HOT_EXTENDED_RESPONSE;
3151 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3152 hf_cigi3_packet = hf_cigi3_2_line_of_sight_response;
3153 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE;
3154 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
3155 hf_cigi3_packet = hf_cigi3_line_of_sight_response;
3156 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_RESPONSE;
3157 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3158 hf_cigi3_packet = hf_cigi3_2_line_of_sight_extended_response;
3159 packet_length = CIGI3_2_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE;
3160 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE ) {
3161 hf_cigi3_packet = hf_cigi3_line_of_sight_extended_response;
3162 packet_length = CIGI3_PACKET_SIZE_LINE_OF_SIGHT_EXTENDED_RESPONSE;
3163 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_RESPONSE ) {
3164 hf_cigi3_packet = hf_cigi3_sensor_response;
3165 packet_length = CIGI3_PACKET_SIZE_SENSOR_RESPONSE;
3166 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE ) {
3167 hf_cigi3_packet = hf_cigi3_sensor_extended_response;
3168 packet_length = CIGI3_PACKET_SIZE_SENSOR_EXTENDED_RESPONSE;
3169 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_RESPONSE ) {
3170 hf_cigi3_packet = hf_cigi3_position_response;
3171 packet_length = CIGI3_PACKET_SIZE_POSITION_RESPONSE;
3172 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE ) {
3173 hf_cigi3_packet = hf_cigi3_weather_conditions_response;
3174 packet_length = CIGI3_PACKET_SIZE_WEATHER_CONDITIONS_RESPONSE;
3175 } else if ( packet_id == CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE ) {
3176 hf_cigi3_packet = hf_cigi3_aerosol_concentration_response;
3177 packet_length = CIGI3_PACKET_SIZE_AEROSOL_CONCENTRATION_RESPONSE;
3178 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE ) {
3179 hf_cigi3_packet = hf_cigi3_maritime_surface_conditions_response;
3180 packet_length = CIGI3_PACKET_SIZE_MARITIME_SURFACE_CONDITIONS_RESPONSE;
3181 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE ) {
3182 hf_cigi3_packet = hf_cigi3_terrestrial_surface_conditions_response;
3183 packet_length = CIGI3_PACKET_SIZE_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE;
3184 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION ) {
3185 hf_cigi3_packet = hf_cigi3_collision_detection_segment_notification;
3186 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_SEGMENT_NOTIFICATION;
3187 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION ) {
3188 hf_cigi3_packet = hf_cigi3_collision_detection_volume_notification;
3189 packet_length = CIGI3_PACKET_SIZE_COLLISION_DETECTION_VOLUME_NOTIFICATION;
3190 } else if ( packet_id == CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION ) {
3191 hf_cigi3_packet = hf_cigi3_animation_stop_notification;
3192 packet_length = CIGI3_PACKET_SIZE_ANIMATION_STOP_NOTIFICATION;
3193 } else if ( packet_id == CIGI3_PACKET_ID_EVENT_NOTIFICATION ) {
3194 hf_cigi3_packet = hf_cigi3_event_notification;
3195 packet_length = CIGI3_PACKET_SIZE_EVENT_NOTIFICATION;
3196 } else if ( packet_id == CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
3197 hf_cigi3_packet = hf_cigi3_image_generator_message;
3198 packet_length = packet_size;
3199 } else if ( packet_id >= CIGI3_PACKET_ID_USER_DEFINED_MIN && packet_id <= CIGI3_PACKET_ID_USER_DEFINED_MAX ) {
3200 hf_cigi3_packet = hf_cigi3_user_defined;
3201 packet_length = packet_size;
3203 hf_cigi3_packet = hf_cigi_unknown;
3204 packet_length = packet_size;
3206 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);
3208 cigi_packet_tree = proto_item_add_subtree(tipacket, ett_cigi);
3210 /* In all CIGI versions the first byte of a packet is the packet ID.
3211 * The second byte is the size of the packet (in bytes). */
3212 init_offset = offset;
3213 proto_tree_add_item(cigi_packet_tree, hf_cigi3_packet_id, tvb, offset, 1, cigi_byte_order);
3216 proto_tree_add_item(cigi_packet_tree, hf_cigi_packet_size, tvb, offset, 1, cigi_byte_order);
3219 if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 2 ) {
3220 offset = cigi3_2_add_ig_control(tvb, cigi_packet_tree, offset);
3221 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL && cigi_minor_version == 3 ) {
3222 offset = cigi3_3_add_ig_control(tvb, cigi_packet_tree, offset);
3223 } else if ( packet_id == CIGI3_PACKET_ID_IG_CONTROL ) {
3224 offset = cigi3_add_ig_control(tvb, cigi_packet_tree, offset);
3225 } else if ( packet_id == CIGI3_PACKET_ID_ENTITY_CONTROL && cigi_minor_version == 3 ) {
3226 offset = cigi3_3_add_entity_control(tvb, cigi_packet_tree, offset);
3227 } else if ( packet_id == CIGI3_PACKET_ID_ENTITY_CONTROL ) {
3228 offset = cigi3_add_entity_control(tvb, cigi_packet_tree, offset);
3229 } else if ( packet_id == CIGI3_PACKET_ID_CONFORMAL_CLAMPED_ENTITY_CONTROL ) {
3230 offset = cigi3_add_conformal_clamped_entity_control(tvb, cigi_packet_tree, offset);
3231 } else if ( packet_id == CIGI3_PACKET_ID_COMPONENT_CONTROL && cigi_minor_version == 3) {
3232 offset = cigi3_3_add_component_control(tvb, cigi_packet_tree, offset);
3233 } else if ( packet_id == CIGI3_PACKET_ID_COMPONENT_CONTROL ) {
3234 offset = cigi3_add_component_control(tvb, cigi_packet_tree, offset);
3235 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL && cigi_minor_version == 3 ) {
3236 offset = cigi3_3_add_short_component_control(tvb, cigi_packet_tree, offset);
3237 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_COMPONENT_CONTROL ) {
3238 offset = cigi3_add_short_component_control(tvb, cigi_packet_tree, offset);
3239 } else if ( packet_id == CIGI3_PACKET_ID_ARTICULATED_PART_CONTROL ) {
3240 offset = cigi3_add_articulated_part_control(tvb, cigi_packet_tree, offset);
3241 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_ARTICULATED_PART_CONTROL ) {
3242 offset = cigi3_add_short_articulated_part_control(tvb, cigi_packet_tree, offset);
3243 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3244 offset = cigi3_2_add_rate_control(tvb, cigi_packet_tree, offset);
3245 } else if ( packet_id == CIGI3_PACKET_ID_RATE_CONTROL ) {
3246 offset = cigi3_add_rate_control(tvb, cigi_packet_tree, offset);
3247 } else if ( packet_id == CIGI3_PACKET_ID_CELESTIAL_SPHERE_CONTROL ) {
3248 offset = cigi3_add_celestial_sphere_control(tvb, cigi_packet_tree, offset);
3249 } else if ( packet_id == CIGI3_PACKET_ID_ATMOSPHERE_CONTROL ) {
3250 offset = cigi3_add_atmosphere_control(tvb, cigi_packet_tree, offset);
3251 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_REGION_CONTROL ) {
3252 offset = cigi3_add_environmental_region_control(tvb, cigi_packet_tree, offset);
3253 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONTROL ) {
3254 offset = cigi3_add_weather_control(tvb, cigi_packet_tree, offset);
3255 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_CONTROL ) {
3256 offset = cigi3_add_maritime_surface_conditions_control(tvb, cigi_packet_tree, offset);
3257 } else if ( packet_id == CIGI3_PACKET_ID_WAVE_CONTROL ) {
3258 offset = cigi3_add_wave_control(tvb, cigi_packet_tree, offset);
3259 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_CONTROL ) {
3260 offset = cigi3_add_terrestrial_surface_conditions_control(tvb, cigi_packet_tree, offset);
3261 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_CONTROL ) {
3262 offset = cigi3_add_view_control(tvb, cigi_packet_tree, offset);
3263 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_CONTROL ) {
3264 offset = cigi3_add_sensor_control(tvb, cigi_packet_tree, offset);
3265 } else if ( packet_id == CIGI3_PACKET_ID_MOTION_TRACKER_CONTROL ) {
3266 offset = cigi3_add_motion_tracker_control(tvb, cigi_packet_tree, offset);
3267 } else if ( packet_id == CIGI3_PACKET_ID_EARTH_REFERENCE_MODEL_DEFINITION ) {
3268 offset = cigi3_add_earth_reference_model_definition(tvb, cigi_packet_tree, offset);
3269 } else if ( packet_id == CIGI3_PACKET_ID_TRAJECTORY_DEFINITION ) {
3270 offset = cigi3_add_trajectory_definition(tvb, cigi_packet_tree, offset);
3271 } else if ( packet_id == CIGI3_PACKET_ID_VIEW_DEFINITION ) {
3272 offset = cigi3_add_view_definition(tvb, cigi_packet_tree, offset);
3273 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_DEFINITION ) {
3274 offset = cigi3_add_collision_detection_segment_definition(tvb, cigi_packet_tree, offset);
3275 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_DEFINITION ) {
3276 offset = cigi3_add_collision_detection_volume_definition(tvb, cigi_packet_tree, offset);
3277 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3278 offset = cigi3_2_add_hat_hot_request(tvb, cigi_packet_tree, offset);
3279 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_REQUEST ) {
3280 offset = cigi3_add_hat_hot_request(tvb, cigi_packet_tree, offset);
3281 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3282 offset = cigi3_2_add_line_of_sight_segment_request(tvb, cigi_packet_tree, offset);
3283 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_SEGMENT_REQUEST ) {
3284 offset = cigi3_add_line_of_sight_segment_request(tvb, cigi_packet_tree, offset);
3285 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3286 offset = cigi3_2_add_line_of_sight_vector_request(tvb, cigi_packet_tree, offset);
3287 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_VECTOR_REQUEST ) {
3288 offset = cigi3_add_line_of_sight_vector_request(tvb, cigi_packet_tree, offset);
3289 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_REQUEST ) {
3290 offset = cigi3_add_position_request(tvb, cigi_packet_tree, offset);
3291 } else if ( packet_id == CIGI3_PACKET_ID_ENVIRONMENTAL_CONDITIONS_REQUEST ) {
3292 offset = cigi3_add_environmental_conditions_request(tvb, cigi_packet_tree, offset);
3293 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_SURFACE_DEFINITION && cigi_minor_version == 3 ) {
3294 offset = cigi3_3_add_symbol_surface_definition(tvb, cigi_packet_tree, offset);
3295 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_TEXT_DEFINITION && cigi_minor_version == 3 ) {
3296 offset = cigi3_3_add_symbol_text_definition(tvb, cigi_packet_tree, offset);
3297 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_CIRCLE_DEFINITION && cigi_minor_version == 3 ) {
3298 offset = cigi3_3_add_symbol_circle_definition(tvb, cigi_packet_tree, offset);
3299 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_LINE_DEFINITION && cigi_minor_version == 3 ) {
3300 offset = cigi3_3_add_symbol_line_definition(tvb, cigi_packet_tree, offset);
3301 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_CLONE && cigi_minor_version == 3 ) {
3302 offset = cigi3_3_add_symbol_clone(tvb, cigi_packet_tree, offset);
3303 } else if ( packet_id == CIGI3_PACKET_ID_SYMBOL_CONTROL && cigi_minor_version == 3 ) {
3304 offset = cigi3_3_add_symbol_control(tvb, cigi_packet_tree, offset);
3305 } else if ( packet_id == CIGI3_PACKET_ID_SHORT_SYMBOL_CONTROL && cigi_minor_version == 3 ) {
3306 offset = cigi3_3_add_short_symbol_control(tvb, cigi_packet_tree, offset);
3307 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME && (cigi_minor_version == 2 || cigi_minor_version == 3) ) {
3308 offset = cigi3_2_add_start_of_frame(tvb, cigi_packet_tree, offset);
3309 } else if ( packet_id == CIGI3_PACKET_ID_START_OF_FRAME ) {
3310 offset = cigi3_add_start_of_frame(tvb, cigi_packet_tree, offset);
3311 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3312 offset = cigi3_2_add_hat_hot_response(tvb, cigi_packet_tree, offset);
3313 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_RESPONSE ) {
3314 offset = cigi3_add_hat_hot_response(tvb, cigi_packet_tree, offset);
3315 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3316 offset = cigi3_2_add_hat_hot_extended_response(tvb, cigi_packet_tree, offset);
3317 } else if ( packet_id == CIGI3_PACKET_ID_HAT_HOT_EXTENDED_RESPONSE ) {
3318 offset = cigi3_add_hat_hot_extended_response(tvb, cigi_packet_tree, offset);
3319 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3320 offset = cigi3_2_add_line_of_sight_response(tvb, cigi_packet_tree, offset);
3321 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_RESPONSE ) {
3322 offset = cigi3_add_line_of_sight_response(tvb, cigi_packet_tree, offset);
3323 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE && (cigi_minor_version == 2 || cigi_minor_version == 3)) {
3324 offset = cigi3_2_add_line_of_sight_extended_response(tvb, cigi_packet_tree, offset);
3325 } else if ( packet_id == CIGI3_PACKET_ID_LINE_OF_SIGHT_EXTENDED_RESPONSE ) {
3326 offset = cigi3_add_line_of_sight_extended_response(tvb, cigi_packet_tree, offset);
3327 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_RESPONSE ) {
3328 offset = cigi3_add_sensor_response(tvb, cigi_packet_tree, offset);
3329 } else if ( packet_id == CIGI3_PACKET_ID_SENSOR_EXTENDED_RESPONSE ) {
3330 offset = cigi3_add_sensor_extended_response(tvb, cigi_packet_tree, offset);
3331 } else if ( packet_id == CIGI3_PACKET_ID_POSITION_RESPONSE ) {
3332 offset = cigi3_add_position_response(tvb, cigi_packet_tree, offset);
3333 } else if ( packet_id == CIGI3_PACKET_ID_WEATHER_CONDITIONS_RESPONSE ) {
3334 offset = cigi3_add_weather_conditions_response(tvb, cigi_packet_tree, offset);
3335 } else if ( packet_id == CIGI3_PACKET_ID_AEROSOL_CONCENTRATION_RESPONSE ) {
3336 offset = cigi3_add_aerosol_concentration_response(tvb, cigi_packet_tree, offset);
3337 } else if ( packet_id == CIGI3_PACKET_ID_MARITIME_SURFACE_CONDITIONS_RESPONSE ) {
3338 offset = cigi3_add_maritime_surface_conditions_response(tvb, cigi_packet_tree, offset);
3339 } else if ( packet_id == CIGI3_PACKET_ID_TERRESTRIAL_SURFACE_CONDITIONS_RESPONSE ) {
3340 offset = cigi3_add_terrestrial_surface_conditions_response(tvb, cigi_packet_tree, offset);
3341 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_SEGMENT_NOTIFICATION ) {
3342 offset = cigi3_add_collision_detection_segment_notification(tvb, cigi_packet_tree, offset);
3343 } else if ( packet_id == CIGI3_PACKET_ID_COLLISION_DETECTION_VOLUME_NOTIFICATION ) {
3344 offset = cigi3_add_collision_detection_volume_notification(tvb, cigi_packet_tree, offset);
3345 } else if ( packet_id == CIGI3_PACKET_ID_ANIMATION_STOP_NOTIFICATION ) {
3346 offset = cigi3_add_animation_stop_notification(tvb, cigi_packet_tree, offset);
3347 } else if ( packet_id == CIGI3_PACKET_ID_EVENT_NOTIFICATION ) {
3348 offset = cigi3_add_event_notification(tvb, cigi_packet_tree, offset);
3349 } else if ( packet_id == CIGI3_PACKET_ID_IMAGE_GENERATOR_MESSAGE ) {
3350 offset = cigi3_add_image_generator_message(tvb, cigi_packet_tree, offset);
3351 } else if ( packet_id >= CIGI3_PACKET_ID_USER_DEFINED_MIN && packet_id <= CIGI3_PACKET_ID_USER_DEFINED_MAX ) {
3352 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
3354 offset = cigi_add_data(tvb, cigi_packet_tree, offset);
3357 /* Does the packet offset match the supposed length of the packet? */
3358 DISSECTOR_ASSERT((offset - init_offset == packet_length) && "Packet offset does not match packet length");
3362 /* CIGI2 IG Control */
3364 cigi2_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3366 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3369 proto_tree_add_item(tree, hf_cigi2_ig_control_db_number, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3372 proto_tree_add_item(tree, hf_cigi2_ig_control_ig_mode, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3373 proto_tree_add_item(tree, hf_cigi2_ig_control_tracking_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3374 proto_tree_add_item(tree, hf_cigi2_ig_control_boresight, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3377 proto_tree_add_item(tree, hf_cigi2_ig_control_frame_ctr, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3380 proto_tree_add_item(tree, hf_cigi2_ig_control_time_tag, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3386 /* CIGI2 Entity Control */
3388 cigi2_add_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3390 proto_tree_add_item(tree, hf_cigi2_entity_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3393 proto_tree_add_item(tree, hf_cigi2_entity_control_entity_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3394 proto_tree_add_item(tree, hf_cigi2_entity_control_attach_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3395 proto_tree_add_item(tree, hf_cigi2_entity_control_collision_detect, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3396 proto_tree_add_item(tree, hf_cigi2_entity_control_effect_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3399 proto_tree_add_item(tree, hf_cigi2_entity_control_type, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3402 proto_tree_add_item(tree, hf_cigi2_entity_control_parent_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3405 proto_tree_add_item(tree, hf_cigi2_entity_control_opacity, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3408 proto_tree_add_item(tree, hf_cigi2_entity_control_internal_temp, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3411 proto_tree_add_item(tree, hf_cigi2_entity_control_roll, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3414 proto_tree_add_item(tree, hf_cigi2_entity_control_pitch, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3417 proto_tree_add_item(tree, hf_cigi2_entity_control_heading, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3420 proto_tree_add_item(tree, hf_cigi2_entity_control_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3423 proto_tree_add_item(tree, hf_cigi2_entity_control_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3426 proto_tree_add_item(tree, hf_cigi2_entity_control_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3432 /* CIGI2 Component Control */
3434 cigi2_add_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3436 proto_tree_add_item(tree, hf_cigi2_component_control_instance_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3439 proto_tree_add_item(tree, hf_cigi2_component_control_component_class, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3442 proto_tree_add_item(tree, hf_cigi2_component_control_component_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3445 proto_tree_add_item(tree, hf_cigi2_component_control_component_state, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3448 proto_tree_add_item(tree, hf_cigi2_component_control_component_val1, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3451 proto_tree_add_item(tree, hf_cigi2_component_control_component_val2, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3457 /* CIGI2 Articulated Part Control */
3459 cigi2_add_articulated_parts_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3461 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3464 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_part_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3467 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_part_state, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3468 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_xoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3469 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_yoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3470 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_zoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3471 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_roll_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3472 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_pitch_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3473 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_yaw_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3476 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_x_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3479 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_y_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3482 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_z_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3485 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_roll, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3488 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_pitch, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3491 proto_tree_add_item(tree, hf_cigi2_articulated_parts_control_yaw, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3497 /* CIGI2 Rate Control */
3499 cigi2_add_rate_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3501 proto_tree_add_item(tree, hf_cigi2_rate_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3504 proto_tree_add_item(tree, hf_cigi2_rate_control_part_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3507 proto_tree_add_item(tree, hf_cigi2_rate_control_x_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3510 proto_tree_add_item(tree, hf_cigi2_rate_control_y_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3513 proto_tree_add_item(tree, hf_cigi2_rate_control_z_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3516 proto_tree_add_item(tree, hf_cigi2_rate_control_roll_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3519 proto_tree_add_item(tree, hf_cigi2_rate_control_pitch_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3522 proto_tree_add_item(tree, hf_cigi2_rate_control_yaw_rate, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3528 /* CIGI2 Environment Control */
3530 cigi2_add_environment_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3532 proto_tree_add_item(tree, hf_cigi2_environment_control_hour, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3535 proto_tree_add_item(tree, hf_cigi2_environment_control_minute, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3538 proto_tree_add_item(tree, hf_cigi2_environment_control_ephemeris_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3539 proto_tree_add_item(tree, hf_cigi2_environment_control_humidity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3542 proto_tree_add_item(tree, hf_cigi2_environment_control_modtran_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3545 proto_tree_add_item(tree, hf_cigi2_environment_control_date, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3548 proto_tree_add_item(tree, hf_cigi2_environment_control_air_temp, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3551 proto_tree_add_item(tree, hf_cigi2_environment_control_global_visibility, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3554 proto_tree_add_item(tree, hf_cigi2_environment_control_wind_speed, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3557 proto_tree_add_item(tree, hf_cigi2_environment_control_wind_direction, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3560 proto_tree_add_item(tree, hf_cigi2_environment_control_pressure, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3563 proto_tree_add_item(tree, hf_cigi2_environment_control_aerosol, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3569 /* CIGI2 Weather Control */
3571 cigi2_add_weather_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3573 proto_tree_add_item(tree, hf_cigi2_weather_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3576 proto_tree_add_item(tree, hf_cigi2_weather_control_weather_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3577 proto_tree_add_item(tree, hf_cigi2_weather_control_scud_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3578 proto_tree_add_item(tree, hf_cigi2_weather_control_random_winds, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3579 proto_tree_add_item(tree, hf_cigi2_weather_control_severity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3582 proto_tree_add_item(tree, hf_cigi2_weather_control_phenomenon_type, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3585 proto_tree_add_item(tree, hf_cigi2_weather_control_air_temp, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3588 proto_tree_add_item(tree, hf_cigi2_weather_control_opacity, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3591 proto_tree_add_item(tree, hf_cigi2_weather_control_scud_frequency, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3594 proto_tree_add_item(tree, hf_cigi2_weather_control_coverage, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3597 proto_tree_add_item(tree, hf_cigi2_weather_control_elevation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3600 proto_tree_add_item(tree, hf_cigi2_weather_control_thickness, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3603 proto_tree_add_item(tree, hf_cigi2_weather_control_transition_band, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3606 proto_tree_add_item(tree, hf_cigi2_weather_control_wind_speed, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3609 proto_tree_add_item(tree, hf_cigi2_weather_control_wind_direction, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3615 /* CIGI2 View Control */
3617 cigi2_add_view_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3619 proto_tree_add_item(tree, hf_cigi2_view_control_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3622 proto_tree_add_item(tree, hf_cigi2_view_control_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3623 proto_tree_add_item(tree, hf_cigi2_view_control_view_group, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3626 proto_tree_add_item(tree, hf_cigi2_view_control_xoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3627 proto_tree_add_item(tree, hf_cigi2_view_control_yoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3628 proto_tree_add_item(tree, hf_cigi2_view_control_zoff_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3629 proto_tree_add_item(tree, hf_cigi2_view_control_roll_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3630 proto_tree_add_item(tree, hf_cigi2_view_control_pitch_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3631 proto_tree_add_item(tree, hf_cigi2_view_control_yaw_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3634 proto_tree_add_item(tree, hf_cigi2_view_control_x_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3637 proto_tree_add_item(tree, hf_cigi2_view_control_y_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3640 proto_tree_add_item(tree, hf_cigi2_view_control_z_offset, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3643 proto_tree_add_item(tree, hf_cigi2_view_control_roll, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3646 proto_tree_add_item(tree, hf_cigi2_view_control_pitch, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3649 proto_tree_add_item(tree, hf_cigi2_view_control_yaw, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3655 /* CIGI2 Sensor Control */
3657 cigi2_add_sensor_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
3659 proto_tree_add_item(tree, hf_cigi2_sensor_control_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3660 proto_tree_add_item(tree, hf_cigi2_sensor_control_sensor_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3661 proto_tree_add_item(tree, hf_cigi2_sensor_control_polarity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3662 proto_tree_add_item(tree, hf_cigi2_sensor_control_line_dropout, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3665 proto_tree_add_item(tree, hf_cigi2_sensor_control_sensor_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3668 proto_tree_add_item(tree, hf_cigi2_sensor_control_track_mode, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3669 proto_tree_add_item(tree, hf_cigi2_sensor_control_auto_gain, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3670 proto_tree_add_item(tree, hf_cigi2_sensor_control_track_polarity, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3673 proto_tree_add_item(tree, hf_cigi2_sensor_control_gain, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3676 proto_tree_add_item(tree, hf_cigi2_sensor_control_level, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3679 proto_tree_add_item(tree, hf_cigi2_sensor_control_ac_coupling, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3682 proto_tree_add_item(tree, hf_cigi2_sensor_control_noise, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3688 /* CIGI2 Trajectory Definition */
3690 cigi2_add_trajectory_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3692 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3695 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_acceleration, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3698 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_retardation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3701 proto_tree_add_item(tree, hf_cigi2_trajectory_definition_terminal_velocity, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3707 /* CIGI2 Special Effect Definition */
3709 cigi2_add_special_effect_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3711 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3714 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_seq_direction, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3715 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_color_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3718 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_red, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3721 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_green, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3724 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_blue, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3727 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));
3730 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));
3733 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));
3736 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));
3739 proto_tree_add_text(tree, tvb, offset, 2, "Spare");
3742 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_effect_count, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3745 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_separation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3748 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_burst_interval, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3751 proto_tree_add_item(tree, hf_cigi2_special_effect_definition_duration, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3757 /* CIGI2 View Definition */
3759 cigi2_add_view_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3761 proto_tree_add_item(tree, hf_cigi2_view_definition_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3762 proto_tree_add_item(tree, hf_cigi2_view_definition_view_group, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3765 proto_tree_add_item(tree, hf_cigi2_view_definition_view_type, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3766 proto_tree_add_item(tree, hf_cigi2_view_definition_pixel_rep, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3767 proto_tree_add_item(tree, hf_cigi2_view_definition_mirror, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3770 proto_tree_add_item(tree, hf_cigi2_view_definition_tracker_assign, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3771 proto_tree_add_item(tree, hf_cigi2_view_definition_near_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3772 proto_tree_add_item(tree, hf_cigi2_view_definition_far_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3773 proto_tree_add_item(tree, hf_cigi2_view_definition_left_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3774 proto_tree_add_item(tree, hf_cigi2_view_definition_right_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3775 proto_tree_add_item(tree, hf_cigi2_view_definition_top_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3776 proto_tree_add_item(tree, hf_cigi2_view_definition_bottom_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3779 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_near, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3782 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_far, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3785 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_left, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3788 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_right, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3791 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_top, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3794 proto_tree_add_item(tree, hf_cigi2_view_definition_fov_bottom, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3800 /* CIGI2 Collision Detection Segment Definition */
3802 cigi2_add_collision_detection_segment_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3804 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3807 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_segment_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3808 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_segment_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3811 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_definition_collision_mask, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3814 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));
3817 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));
3820 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));
3823 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));
3826 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));
3829 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));
3835 /* CIGI2 Collision Detection Volume Definition*/
3837 cigi2_add_collision_detection_volume_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
3839 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_definition_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3842 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_definition_volume_enable, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3843 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_definition_volume_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3846 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));
3849 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));
3852 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));
3855 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));
3858 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));
3861 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));
3867 /* CIGI2 Height Above Terrain Request*/
3869 cigi2_add_height_above_terrain_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3871 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_hat_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3874 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3877 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3880 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_request_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3886 /* CIGI2 Line of Sight Occult Request */
3888 cigi2_add_line_of_sight_occult_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3890 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_los_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3893 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_source_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3896 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_source_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3899 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_source_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3902 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_dest_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3905 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_dest_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3908 proto_tree_add_item(tree, hf_cigi2_line_of_sight_occult_request_dest_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3914 /* CIGI2 Line of Sight Range Request */
3916 cigi2_add_line_of_sight_range_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3918 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_los_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3921 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_azimuth, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3924 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_elevation, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3927 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_min_range, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3930 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_max_range, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3933 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_source_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3936 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_source_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3939 proto_tree_add_item(tree, hf_cigi2_line_of_sight_range_request_source_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3945 /* CIGI2 Height of Terrain Request */
3947 cigi2_add_height_of_terrain_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
3949 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_request_hot_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3952 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_request_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3955 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_request_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
3961 /* CIGI2 Start of Frame */
3963 cigi2_add_start_of_frame(tvbuff_t *tvb, proto_tree *tree, gint offset)
3965 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3968 proto_tree_add_item(tree, hf_cigi2_start_of_frame_db_number, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3971 proto_tree_add_item(tree, hf_cigi2_start_of_frame_ig_status_code, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3974 proto_tree_add_item(tree, hf_cigi2_start_of_frame_ig_mode, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3977 proto_tree_add_item(tree, hf_cigi2_start_of_frame_frame_ctr, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3980 proto_tree_add_item(tree, hf_cigi2_start_of_frame_time_tag, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3986 /* CIGI2 Height Above Terrain Response */
3988 cigi2_add_height_above_terrain_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
3990 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_hat_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
3993 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_valid, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
3996 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
3999 proto_tree_add_item(tree, hf_cigi2_height_above_terrain_response_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4005 /* CIGI2 Line of Sight Response */
4007 cigi2_add_line_of_sight_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4009 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_los_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4012 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_valid, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4013 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_occult_response, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4016 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4019 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_range, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4022 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4025 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_lat, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4028 proto_tree_add_item(tree, hf_cigi2_line_of_sight_response_lon, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4034 /* CIGI2 Collision Detection Segment Response */
4036 cigi2_add_collision_detection_segment_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4038 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4041 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_segment_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4042 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_contact, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4045 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_contacted_entity, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4048 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4051 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_collision_x, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4054 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_collision_y, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4057 proto_tree_add_item(tree, hf_cigi2_collision_detection_segment_response_collision_z, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4063 /* CIGI2 Sensor Response */
4065 cigi2_add_sensor_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4067 proto_tree_add_item(tree, hf_cigi2_sensor_response_view_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4068 proto_tree_add_item(tree, hf_cigi2_sensor_response_status, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4071 proto_tree_add_item(tree, hf_cigi2_sensor_response_sensor_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4074 proto_tree_add_item(tree, hf_cigi2_sensor_response_x_offset, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4077 proto_tree_add_item(tree, hf_cigi2_sensor_response_y_offset, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4080 proto_tree_add_item(tree, hf_cigi2_sensor_response_x_size, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4083 proto_tree_add_item(tree, hf_cigi2_sensor_response_y_size, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4089 /* CIGI2 Height of Terrain Response */
4091 cigi2_add_height_of_terrain_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4093 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_hot_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4096 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_valid, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4099 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_material_type, tvb, offset, 4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4102 proto_tree_add_item(tree, hf_cigi2_height_of_terrain_response_alt, tvb, offset, 8, CIGI_BYTE_ORDER_BIG_ENDIAN);
4108 /* CIGI2 Collision Detection Volume Response */
4110 cigi2_add_collision_detection_volume_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
4112 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_entity_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4115 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_volume_id, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4116 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_contact, tvb, offset, 1, CIGI_BYTE_ORDER_BIG_ENDIAN);
4119 proto_tree_add_item(tree, hf_cigi2_collision_detection_volume_response_contact_entity, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4125 /* CIGI2 Image Generator Message */
4127 cigi2_add_image_generator_message(tvbuff_t *tvb, proto_tree *tree, gint offset)
4129 guint8 packet_size = 0;
4131 packet_size = tvb_get_guint8(tvb, offset-1);
4133 /* An image generator packet cannot be less than 4 bytes ( because every cigi packet
4134 * has a packet id (1 byte) and a packet size (1 byte) ). */
4135 if ( packet_size < 4 ) {
4136 THROW(ReportedBoundsError);
4139 proto_tree_add_item(tree, hf_cigi2_image_generator_message_id, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4142 proto_tree_add_item(tree, hf_cigi2_image_generator_message_message, tvb, offset, packet_size-4, CIGI_BYTE_ORDER_BIG_ENDIAN);
4143 offset += packet_size-4;
4148 /* CIGI3 IG Control */
4150 cigi3_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4152 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
4155 proto_tree_add_item(tree, hf_cigi3_ig_control_db_number, tvb, offset, 1, cigi_byte_order);
4158 proto_tree_add_item(tree, hf_cigi3_ig_control_ig_mode, tvb, offset, 1, cigi_byte_order);
4159 proto_tree_add_item(tree, hf_cigi3_ig_control_timestamp_valid, tvb, offset, 1, cigi_byte_order);
4162 /* Get the Byte Swap in Big-Endian so that we can display whether the value
4163 * is big-endian or little-endian to the user */
4164 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4167 proto_tree_add_item(tree, hf_cigi3_ig_control_frame_ctr, tvb, offset, 4, cigi_byte_order);
4170 proto_tree_add_item(tree, hf_cigi3_ig_control_timestamp, tvb, offset, 4, cigi_byte_order);
4176 /* CIGI3_2 IG Control */
4178 cigi3_2_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4180 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
4183 proto_tree_add_item(tree, hf_cigi3_2_ig_control_db_number, tvb, offset, 1, cigi_byte_order);
4186 proto_tree_add_item(tree, hf_cigi3_2_ig_control_ig_mode, tvb, offset, 1, cigi_byte_order);
4187 proto_tree_add_item(tree, hf_cigi3_2_ig_control_timestamp_valid, tvb, offset, 1, cigi_byte_order);
4190 /* Get the Byte Swap in Big-Endian so that we can display whether the value
4191 * is big-endian or little-endian to the user */
4192 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4195 proto_tree_add_item(tree, hf_cigi3_2_ig_control_host_frame_number, tvb, offset, 4, cigi_byte_order);
4198 proto_tree_add_item(tree, hf_cigi3_2_ig_control_timestamp, tvb, offset, 4, cigi_byte_order);
4201 proto_tree_add_item(tree, hf_cigi3_2_ig_control_last_ig_frame_number, tvb, offset, 4, cigi_byte_order);
4207 /* CIGI3_3 IG Control */
4209 cigi3_3_add_ig_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4211 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
4214 proto_tree_add_item(tree, hf_cigi3_3_ig_control_db_number, tvb, offset, 1, cigi_byte_order);
4217 proto_tree_add_item(tree, hf_cigi3_3_ig_control_ig_mode, tvb, offset, 1, cigi_byte_order);
4218 proto_tree_add_item(tree, hf_cigi3_3_ig_control_timestamp_valid, tvb, offset, 1, cigi_byte_order);
4219 proto_tree_add_item(tree, hf_cigi3_3_ig_control_extrapolation_enable, tvb, offset, 1, cigi_byte_order);
4220 proto_tree_add_item(tree, hf_cigi3_3_ig_control_minor_version, tvb, offset, 1, cigi_byte_order);
4223 /* Get the Byte Swap in Big-Endian so that we can display whether the value
4224 * is big-endian or little-endian to the user */
4225 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
4228 proto_tree_add_item(tree, hf_cigi3_2_ig_control_host_frame_number, tvb, offset, 4, cigi_byte_order);
4231 proto_tree_add_item(tree, hf_cigi3_2_ig_control_timestamp, tvb, offset, 4, cigi_byte_order);
4234 proto_tree_add_item(tree, hf_cigi3_2_ig_control_last_ig_frame_number, tvb, offset, 4, cigi_byte_order);
4240 /* CIGI3 Entity Control */
4242 cigi3_add_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4244 proto_tree_add_item(tree, hf_cigi3_entity_control_entity_id, tvb, offset, 2, cigi_byte_order);
4247 proto_tree_add_item(tree, hf_cigi3_entity_control_entity_state, tvb, offset, 1, cigi_byte_order);
4248 proto_tree_add_item(tree, hf_cigi3_entity_control_attach_state, tvb, offset, 1, cigi_byte_order);
4249 proto_tree_add_item(tree, hf_cigi3_entity_control_collision_detection_request, tvb, offset, 1, cigi_byte_order);
4250 proto_tree_add_item(tree, hf_cigi3_entity_control_inherit_alpha, tvb, offset, 1, cigi_byte_order);
4251 proto_tree_add_item(tree, hf_cigi3_entity_control_ground_ocean_clamp, tvb, offset, 1, cigi_byte_order);
4254 proto_tree_add_item(tree, hf_cigi3_entity_control_animation_direction, tvb, offset, 1, cigi_byte_order);
4255 proto_tree_add_item(tree, hf_cigi3_entity_control_animation_loop_mode, tvb, offset, 1, cigi_byte_order);
4256 proto_tree_add_item(tree, hf_cigi3_entity_control_animation_state, tvb, offset, 1, cigi_byte_order);
4259 proto_tree_add_item(tree, hf_cigi3_entity_control_alpha, tvb, offset, 1, cigi_byte_order);
4262 proto_tree_add_item(tree, hf_cigi3_entity_control_entity_type, tvb, offset, 2, cigi_byte_order);
4265 proto_tree_add_item(tree, hf_cigi3_entity_control_parent_id, tvb, offset, 2, cigi_byte_order);
4268 proto_tree_add_item(tree, hf_cigi3_entity_control_roll, tvb, offset, 4, cigi_byte_order);
4271 proto_tree_add_item(tree, hf_cigi3_entity_control_pitch, tvb, offset, 4, cigi_byte_order);
4274 proto_tree_add_item(tree, hf_cigi3_entity_control_yaw, tvb, offset, 4, cigi_byte_order);
4277 proto_tree_add_item(tree, hf_cigi3_entity_control_lat_xoff, tvb, offset, 8, cigi_byte_order);
4280 proto_tree_add_item(tree, hf_cigi3_entity_control_lon_yoff, tvb, offset, 8, cigi_byte_order);
4283 proto_tree_add_item(tree, hf_cigi3_entity_control_alt_zoff, tvb, offset, 8, cigi_byte_order);
4289 /* CIGI3_3 Entity Control */
4291 cigi3_3_add_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4293 proto_tree_add_item(tree, hf_cigi3_3_entity_control_entity_id, tvb, offset, 2, cigi_byte_order);
4296 proto_tree_add_item(tree, hf_cigi3_3_entity_control_entity_state, tvb, offset, 1, cigi_byte_order);
4297 proto_tree_add_item(tree, hf_cigi3_3_entity_control_attach_state, tvb, offset, 1, cigi_byte_order);
4298 proto_tree_add_item(tree, hf_cigi3_3_entity_control_collision_detection_request, tvb, offset, 1, cigi_byte_order);
4299 proto_tree_add_item(tree, hf_cigi3_3_entity_control_inherit_alpha, tvb, offset, 1, cigi_byte_order);
4300 proto_tree_add_item(tree, hf_cigi3_3_entity_control_ground_ocean_clamp, tvb, offset, 1, cigi_byte_order);
4303 proto_tree_add_item(tree, hf_cigi3_3_entity_control_animation_direction, tvb, offset, 1, cigi_byte_order);
4304 proto_tree_add_item(tree, hf_cigi3_3_entity_control_animation_loop_mode, tvb, offset, 1, cigi_byte_order);
4305 proto_tree_add_item(tree, hf_cigi3_3_entity_control_animation_state, tvb, offset, 1, cigi_byte_order);
4306 proto_tree_add_item(tree, hf_cigi3_3_entity_control_extrapolation_enable, tvb, offset, 1, cigi_byte_order);
4309 proto_tree_add_item(tree, hf_cigi3_3_entity_control_alpha, tvb, offset, 1, cigi_byte_order);
4312 proto_tree_add_item(tree, hf_cigi3_3_entity_control_entity_type, tvb, offset, 2, cigi_byte_order);
4315 proto_tree_add_item(tree, hf_cigi3_3_entity_control_parent_id, tvb, offset, 2, cigi_byte_order);
4318 proto_tree_add_item(tree, hf_cigi3_3_entity_control_roll, tvb, offset, 4, cigi_byte_order);
4321 proto_tree_add_item(tree, hf_cigi3_3_entity_control_pitch, tvb, offset, 4, cigi_byte_order);
4324 proto_tree_add_item(tree, hf_cigi3_3_entity_control_yaw, tvb, offset, 4, cigi_byte_order);
4327 proto_tree_add_item(tree, hf_cigi3_3_entity_control_lat_xoff, tvb, offset, 8, cigi_byte_order);
4330 proto_tree_add_item(tree, hf_cigi3_3_entity_control_lon_yoff, tvb, offset, 8, cigi_byte_order);
4333 proto_tree_add_item(tree, hf_cigi3_3_entity_control_alt_zoff, tvb, offset, 8, cigi_byte_order);
4339 /* CIGI3 Conformal Clamped Entity Control */
4341 cigi3_add_conformal_clamped_entity_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4343 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_entity_id, tvb, offset, 2, cigi_byte_order);
4346 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_yaw, tvb, offset, 4, cigi_byte_order);
4349 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_lat, tvb, offset, 8, cigi_byte_order);
4352 proto_tree_add_item(tree, hf_cigi3_conformal_clamped_entity_control_lon, tvb, offset, 8, cigi_byte_order);
4358 /* CIGI3 Component Control */
4360 cigi3_add_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4362 proto_tree_add_item(tree, hf_cigi3_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4365 proto_tree_add_item(tree, hf_cigi3_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4368 proto_tree_add_item(tree, hf_cigi3_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4371 proto_tree_add_item(tree, hf_cigi3_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4374 proto_tree_add_item(tree, hf_cigi3_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4377 proto_tree_add_item(tree, hf_cigi3_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4380 proto_tree_add_item(tree, hf_cigi3_component_control_data_3, tvb, offset, 4, cigi_byte_order);
4383 proto_tree_add_item(tree, hf_cigi3_component_control_data_4, tvb, offset, 4, cigi_byte_order);
4386 proto_tree_add_item(tree, hf_cigi3_component_control_data_5, tvb, offset, 4, cigi_byte_order);
4389 proto_tree_add_item(tree, hf_cigi3_component_control_data_6, tvb, offset, 4, cigi_byte_order);
4395 /* CIGI3_3 Component Control */
4397 cigi3_3_add_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4399 proto_tree_add_item(tree, hf_cigi3_3_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4402 proto_tree_add_item(tree, hf_cigi3_3_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4405 proto_tree_add_item(tree, hf_cigi3_3_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4408 proto_tree_add_item(tree, hf_cigi3_3_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4411 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4414 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4417 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_3, tvb, offset, 4, cigi_byte_order);
4420 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_4, tvb, offset, 4, cigi_byte_order);
4423 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_5, tvb, offset, 4, cigi_byte_order);
4426 proto_tree_add_item(tree, hf_cigi3_3_component_control_data_6, tvb, offset, 4, cigi_byte_order);
4432 /* CIGI3 Short Component Control */
4434 cigi3_add_short_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4436 proto_tree_add_item(tree, hf_cigi3_short_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4439 proto_tree_add_item(tree, hf_cigi3_short_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4442 proto_tree_add_item(tree, hf_cigi3_short_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4445 proto_tree_add_item(tree, hf_cigi3_short_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4448 proto_tree_add_item(tree, hf_cigi3_short_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4451 proto_tree_add_item(tree, hf_cigi3_short_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4457 /* CIGI3_3 Short Component Control */
4459 cigi3_3_add_short_component_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4461 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_component_id, tvb, offset, 2, cigi_byte_order);
4464 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_instance_id, tvb, offset, 2, cigi_byte_order);
4467 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_component_class, tvb, offset, 1, cigi_byte_order);
4470 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_component_state, tvb, offset, 1, cigi_byte_order);
4473 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_data_1, tvb, offset, 4, cigi_byte_order);
4476 proto_tree_add_item(tree, hf_cigi3_3_short_component_control_data_2, tvb, offset, 4, cigi_byte_order);
4482 /* CIGI3 Articulated Part Control */
4484 cigi3_add_articulated_part_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4486 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_entity_id, tvb, offset, 2, cigi_byte_order);
4489 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_part_id, tvb, offset, 1, cigi_byte_order);
4492 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_part_enable, tvb, offset, 1, cigi_byte_order);
4493 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_xoff_enable, tvb, offset, 1, cigi_byte_order);
4494 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yoff_enable, tvb, offset, 1, cigi_byte_order);
4495 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_zoff_enable, tvb, offset, 1, cigi_byte_order);
4496 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_roll_enable, tvb, offset, 1, cigi_byte_order);
4497 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_pitch_enable, tvb, offset, 1, cigi_byte_order);
4498 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yaw_enable, tvb, offset, 1, cigi_byte_order);
4501 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_xoff, tvb, offset, 4, cigi_byte_order);
4504 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yoff, tvb, offset, 4, cigi_byte_order);
4507 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_zoff, tvb, offset, 4, cigi_byte_order);
4510 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_roll, tvb, offset, 4, cigi_byte_order);
4513 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_pitch, tvb, offset, 4, cigi_byte_order);
4516 proto_tree_add_item(tree, hf_cigi3_articulated_part_control_yaw, tvb, offset, 4, cigi_byte_order);
4522 /* CIGI3 Short Articulated Part Control */
4524 cigi3_add_short_articulated_part_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4526 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_entity_id, tvb, offset, 2, cigi_byte_order);
4529 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_id_1, tvb, offset, 1, cigi_byte_order);
4532 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_id_2, tvb, offset, 1, cigi_byte_order);
4535 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_select_1, tvb, offset, 1, cigi_byte_order);
4536 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_select_2, tvb, offset, 1, cigi_byte_order);
4537 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_enable_1, tvb, offset, 1, cigi_byte_order);
4538 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_part_enable_2, tvb, offset, 1, cigi_byte_order);
4541 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_1, tvb, offset, 4, cigi_byte_order);
4544 proto_tree_add_item(tree, hf_cigi3_short_articulated_part_control_dof_2, tvb, offset, 4, cigi_byte_order);
4550 /* CIGI3 Rate Control */
4552 cigi3_add_rate_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4554 proto_tree_add_item(tree, hf_cigi3_rate_control_entity_id, tvb, offset, 2, cigi_byte_order);
4557 proto_tree_add_item(tree, hf_cigi3_rate_control_part_id, tvb, offset, 1, cigi_byte_order);
4560 proto_tree_add_item(tree, hf_cigi3_rate_control_apply_to_part, tvb, offset, 1, cigi_byte_order);
4563 proto_tree_add_item(tree, hf_cigi3_rate_control_x_rate, tvb, offset, 4, cigi_byte_order);
4566 proto_tree_add_item(tree, hf_cigi3_rate_control_y_rate, tvb, offset, 4, cigi_byte_order);
4569 proto_tree_add_item(tree, hf_cigi3_rate_control_z_rate, tvb, offset, 4, cigi_byte_order);
4572 proto_tree_add_item(tree, hf_cigi3_rate_control_roll_rate, tvb, offset, 4, cigi_byte_order);
4575 proto_tree_add_item(tree, hf_cigi3_rate_control_pitch_rate, tvb, offset, 4, cigi_byte_order);
4578 proto_tree_add_item(tree, hf_cigi3_rate_control_yaw_rate, tvb, offset, 4, cigi_byte_order);
4584 /* CIGI3_2 Rate Control */
4586 cigi3_2_add_rate_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4588 proto_tree_add_item(tree, hf_cigi3_2_rate_control_entity_id, tvb, offset, 2, cigi_byte_order);
4591 proto_tree_add_item(tree, hf_cigi3_2_rate_control_part_id, tvb, offset, 1, cigi_byte_order);
4594 proto_tree_add_item(tree, hf_cigi3_2_rate_control_apply_to_part, tvb, offset, 1, cigi_byte_order);
4595 proto_tree_add_item(tree, hf_cigi3_2_rate_control_coordinate_system, tvb, offset, 1, cigi_byte_order);
4598 proto_tree_add_item(tree, hf_cigi3_2_rate_control_x_rate, tvb, offset, 4, cigi_byte_order);
4601 proto_tree_add_item(tree, hf_cigi3_2_rate_control_y_rate, tvb, offset, 4, cigi_byte_order);
4604 proto_tree_add_item(tree, hf_cigi3_2_rate_control_z_rate, tvb, offset, 4, cigi_byte_order);
4607 proto_tree_add_item(tree, hf_cigi3_2_rate_control_roll_rate, tvb, offset, 4, cigi_byte_order);
4610 proto_tree_add_item(tree, hf_cigi3_2_rate_control_pitch_rate, tvb, offset, 4, cigi_byte_order);
4613 proto_tree_add_item(tree, hf_cigi3_2_rate_control_yaw_rate, tvb, offset, 4, cigi_byte_order);
4619 /* CIGI3 Celestial Sphere Control */
4621 cigi3_add_celestial_sphere_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4623 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_hour, tvb, offset, 1, cigi_byte_order);
4626 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_minute, tvb, offset, 1, cigi_byte_order);
4629 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_ephemeris_enable, tvb, offset, 1, cigi_byte_order);
4630 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_sun_enable, tvb, offset, 1, cigi_byte_order);
4631 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_moon_enable, tvb, offset, 1, cigi_byte_order);
4632 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_star_enable, tvb, offset, 1, cigi_byte_order);
4633 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_date_time_valid, tvb, offset, 1, cigi_byte_order);
4636 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_date, tvb, offset, 4, cigi_byte_order);
4639 proto_tree_add_item(tree, hf_cigi3_celestial_sphere_control_star_intensity, tvb, offset, 4, cigi_byte_order);
4645 /* CIGI3 Atmosphere Control */
4647 cigi3_add_atmosphere_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4649 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_atmospheric_model_enable, tvb, offset, 1, cigi_byte_order);
4652 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_humidity, tvb, offset, 1, cigi_byte_order);
4655 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_air_temp, tvb, offset, 4, cigi_byte_order);
4658 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_visibility_range, tvb, offset, 4, cigi_byte_order);
4661 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_horiz_wind, tvb, offset, 4, cigi_byte_order);
4664 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_vert_wind, tvb, offset, 4, cigi_byte_order);
4667 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_wind_direction, tvb, offset, 4, cigi_byte_order);
4670 proto_tree_add_item(tree, hf_cigi3_atmosphere_control_barometric_pressure, tvb, offset, 4, cigi_byte_order);
4676 /* CIGI3 Environmental Region Control */
4678 cigi3_add_environmental_region_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4680 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_region_id, tvb, offset, 2, cigi_byte_order);
4683 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_region_state, tvb, offset, 1, cigi_byte_order);
4684 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_weather, tvb, offset, 1, cigi_byte_order);
4685 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_aerosol, tvb, offset, 1, cigi_byte_order);
4686 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_maritime, tvb, offset, 1, cigi_byte_order);
4687 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_merge_terrestrial, tvb, offset, 1, cigi_byte_order);
4690 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_lat, tvb, offset, 8, cigi_byte_order);
4693 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_lon, tvb, offset, 8, cigi_byte_order);
4696 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_size_x, tvb, offset, 4, cigi_byte_order);
4699 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_size_y, tvb, offset, 4, cigi_byte_order);
4702 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_corner_radius, tvb, offset, 4, cigi_byte_order);
4705 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_rotation, tvb, offset, 4, cigi_byte_order);
4708 proto_tree_add_item(tree, hf_cigi3_environmental_region_control_transition_perimeter, tvb, offset, 4, cigi_byte_order);
4714 /* CIGI3 Weather Control */
4716 cigi3_add_weather_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4718 proto_tree_add_item(tree, hf_cigi3_weather_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4721 proto_tree_add_item(tree, hf_cigi3_weather_control_layer_id, tvb, offset, 1, cigi_byte_order);
4724 proto_tree_add_item(tree, hf_cigi3_weather_control_humidity, tvb, offset, 1, cigi_byte_order);
4727 proto_tree_add_item(tree, hf_cigi3_weather_control_weather_enable, tvb, offset, 1, cigi_byte_order);
4728 proto_tree_add_item(tree, hf_cigi3_weather_control_scud_enable, tvb, offset, 1, cigi_byte_order);
4729 proto_tree_add_item(tree, hf_cigi3_weather_control_random_winds_enable, tvb, offset, 1, cigi_byte_order);
4730 proto_tree_add_item(tree, hf_cigi3_weather_control_random_lightning_enable, tvb, offset, 1, cigi_byte_order);
4731 proto_tree_add_item(tree, hf_cigi3_weather_control_cloud_type, tvb, offset, 1, cigi_byte_order);
4734 proto_tree_add_item(tree, hf_cigi3_weather_control_scope, tvb, offset, 1, cigi_byte_order);
4735 proto_tree_add_item(tree, hf_cigi3_weather_control_severity, tvb, offset, 1, cigi_byte_order);
4738 proto_tree_add_item(tree, hf_cigi3_weather_control_air_temp, tvb, offset, 4, cigi_byte_order);
4741 proto_tree_add_item(tree, hf_cigi3_weather_control_visibility_range, tvb, offset, 4, cigi_byte_order);
4744 proto_tree_add_item(tree, hf_cigi3_weather_control_scud_frequency, tvb, offset, 4, cigi_byte_order);
4747 proto_tree_add_item(tree, hf_cigi3_weather_control_coverage, tvb, offset, 4, cigi_byte_order);
4750 proto_tree_add_item(tree, hf_cigi3_weather_control_base_elevation, tvb, offset, 4, cigi_byte_order);
4753 proto_tree_add_item(tree, hf_cigi3_weather_control_thickness, tvb, offset, 4, cigi_byte_order);
4756 proto_tree_add_item(tree, hf_cigi3_weather_control_transition_band, tvb, offset, 4, cigi_byte_order);
4759 proto_tree_add_item(tree, hf_cigi3_weather_control_horiz_wind, tvb, offset, 4, cigi_byte_order);
4762 proto_tree_add_item(tree, hf_cigi3_weather_control_vert_wind, tvb, offset, 4, cigi_byte_order);
4765 proto_tree_add_item(tree, hf_cigi3_weather_control_wind_direction, tvb, offset, 4, cigi_byte_order);
4768 proto_tree_add_item(tree, hf_cigi3_weather_control_barometric_pressure, tvb, offset, 4, cigi_byte_order);
4771 proto_tree_add_item(tree, hf_cigi3_weather_control_aerosol_concentration, tvb, offset, 4, cigi_byte_order);
4777 /* CIGI3 Maritime Surface Conditions Control */
4779 cigi3_add_maritime_surface_conditions_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4781 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4784 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable, tvb, offset, 1, cigi_byte_order);
4785 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_whitecap_enable, tvb, offset, 1, cigi_byte_order);
4786 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_scope, tvb, offset, 1, cigi_byte_order);
4789 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_sea_surface_height, tvb, offset, 4, cigi_byte_order);
4792 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_surface_water_temp, tvb, offset, 4, cigi_byte_order);
4795 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_control_surface_clarity, tvb, offset, 4, cigi_byte_order);
4801 /* CIGI3 Wave Control */
4803 cigi3_add_wave_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4805 proto_tree_add_item(tree, hf_cigi3_wave_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4808 proto_tree_add_item(tree, hf_cigi3_wave_control_wave_id, tvb, offset, 1, cigi_byte_order);
4811 proto_tree_add_item(tree, hf_cigi3_wave_control_wave_enable, tvb, offset, 1, cigi_byte_order);
4812 proto_tree_add_item(tree, hf_cigi3_wave_control_scope, tvb, offset, 1, cigi_byte_order);
4813 proto_tree_add_item(tree, hf_cigi3_wave_control_breaker_type, tvb, offset, 1, cigi_byte_order);
4816 proto_tree_add_item(tree, hf_cigi3_wave_control_height, tvb, offset, 4, cigi_byte_order);
4819 proto_tree_add_item(tree, hf_cigi3_wave_control_wavelength, tvb, offset, 4, cigi_byte_order);
4822 proto_tree_add_item(tree, hf_cigi3_wave_control_period, tvb, offset, 4, cigi_byte_order);
4825 proto_tree_add_item(tree, hf_cigi3_wave_control_direction, tvb, offset, 4, cigi_byte_order);
4828 proto_tree_add_item(tree, hf_cigi3_wave_control_phase_offset, tvb, offset, 4, cigi_byte_order);
4831 proto_tree_add_item(tree, hf_cigi3_wave_control_leading, tvb, offset, 4, cigi_byte_order);
4837 /* CIGI3 Terrestrial Surface Conditions Control */
4839 cigi3_add_terrestrial_surface_conditions_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4841 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_entity_region_id, tvb, offset, 2, cigi_byte_order);
4844 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_surface_condition_id, tvb, offset, 2, cigi_byte_order);
4847 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable, tvb, offset, 1, cigi_byte_order);
4848 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_scope, tvb, offset, 1, cigi_byte_order);
4849 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_severity, tvb, offset, 1, cigi_byte_order);
4852 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_control_coverage, tvb, offset, 1, cigi_byte_order);
4858 /* CIGI3 View Control */
4860 cigi3_add_view_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4862 proto_tree_add_item(tree, hf_cigi3_view_control_view_id, tvb, offset, 2, cigi_byte_order);
4865 proto_tree_add_item(tree, hf_cigi3_view_control_group_id, tvb, offset, 1, cigi_byte_order);
4868 proto_tree_add_item(tree, hf_cigi3_view_control_xoff_enable, tvb, offset, 1, cigi_byte_order);
4869 proto_tree_add_item(tree, hf_cigi3_view_control_yoff_enable, tvb, offset, 1, cigi_byte_order);
4870 proto_tree_add_item(tree, hf_cigi3_view_control_zoff_enable, tvb, offset, 1, cigi_byte_order);
4871 proto_tree_add_item(tree, hf_cigi3_view_control_roll_enable, tvb, offset, 1, cigi_byte_order);
4872 proto_tree_add_item(tree, hf_cigi3_view_control_pitch_enable, tvb, offset, 1, cigi_byte_order);
4873 proto_tree_add_item(tree, hf_cigi3_view_control_yaw_enable, tvb, offset, 1, cigi_byte_order);
4876 proto_tree_add_item(tree, hf_cigi3_view_control_entity_id, tvb, offset, 2, cigi_byte_order);
4879 proto_tree_add_item(tree, hf_cigi3_view_control_xoff, tvb, offset, 4, cigi_byte_order);
4882 proto_tree_add_item(tree, hf_cigi3_view_control_yoff, tvb, offset, 4, cigi_byte_order);
4885 proto_tree_add_item(tree, hf_cigi3_view_control_zoff, tvb, offset, 4, cigi_byte_order);
4888 proto_tree_add_item(tree, hf_cigi3_view_control_roll, tvb, offset, 4, cigi_byte_order);
4891 proto_tree_add_item(tree, hf_cigi3_view_control_pitch, tvb, offset, 4, cigi_byte_order);
4894 proto_tree_add_item(tree, hf_cigi3_view_control_yaw, tvb, offset, 4, cigi_byte_order);
4900 /* CIGI3 Sensor Control */
4902 cigi3_add_sensor_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4904 proto_tree_add_item(tree, hf_cigi3_sensor_control_view_id, tvb, offset, 2, cigi_byte_order);
4907 proto_tree_add_item(tree, hf_cigi3_sensor_control_sensor_id, tvb, offset, 1, cigi_byte_order);
4910 proto_tree_add_item(tree, hf_cigi3_sensor_control_sensor_on_off, tvb, offset, 1, cigi_byte_order);
4911 proto_tree_add_item(tree, hf_cigi3_sensor_control_polarity, tvb, offset, 1, cigi_byte_order);
4912 proto_tree_add_item(tree, hf_cigi3_sensor_control_line_dropout_enable, tvb, offset, 1, cigi_byte_order);
4913 proto_tree_add_item(tree, hf_cigi3_sensor_control_auto_gain, tvb, offset, 1, cigi_byte_order);
4914 proto_tree_add_item(tree, hf_cigi3_sensor_control_track_white_black, tvb, offset, 1, cigi_byte_order);
4915 proto_tree_add_item(tree, hf_cigi3_sensor_control_track_mode, tvb, offset, 1, cigi_byte_order);
4918 proto_tree_add_item(tree, hf_cigi3_sensor_control_response_type, tvb, offset, 1, cigi_byte_order);
4921 proto_tree_add_item(tree, hf_cigi3_sensor_control_gain, tvb, offset, 4, cigi_byte_order);
4924 proto_tree_add_item(tree, hf_cigi3_sensor_control_level, tvb, offset, 4, cigi_byte_order);
4927 proto_tree_add_item(tree, hf_cigi3_sensor_control_ac_coupling, tvb, offset, 4, cigi_byte_order);
4930 proto_tree_add_item(tree, hf_cigi3_sensor_control_noise, tvb, offset, 4, cigi_byte_order);
4936 /* CIGI3 Motion Tracker Control */
4938 cigi3_add_motion_tracker_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
4940 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_view_group_id, tvb, offset, 2, cigi_byte_order);
4943 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_tracker_id, tvb, offset, 1, cigi_byte_order);
4946 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_tracker_enable, tvb, offset, 1, cigi_byte_order);
4947 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_boresight_enable, tvb, offset, 1, cigi_byte_order);
4948 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_x_enable, tvb, offset, 1, cigi_byte_order);
4949 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_y_enable, tvb, offset, 1, cigi_byte_order);
4950 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_z_enable, tvb, offset, 1, cigi_byte_order);
4951 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_roll_enable, tvb, offset, 1, cigi_byte_order);
4952 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_pitch_enable, tvb, offset, 1, cigi_byte_order);
4953 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_yaw_enable, tvb, offset, 1, cigi_byte_order);
4956 proto_tree_add_item(tree, hf_cigi3_motion_tracker_control_view_group_select, tvb, offset, 1, cigi_byte_order);
4962 /* CIGI3 Earth Reference Model Definition */
4964 cigi3_add_earth_reference_model_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
4966 proto_tree_add_item(tree, hf_cigi3_earth_reference_model_definition_erm_enable, tvb, offset, 1, cigi_byte_order);
4969 proto_tree_add_item(tree, hf_cigi3_earth_reference_model_definition_equatorial_radius, tvb, offset, 8, cigi_byte_order);
4972 proto_tree_add_item(tree, hf_cigi3_earth_reference_model_definition_flattening, tvb, offset, 8, cigi_byte_order);
4978 /* CIGI3 Trajectory Definition */
4980 cigi3_add_trajectory_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
4982 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_entity_id, tvb, offset, 2, cigi_byte_order);
4985 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_acceleration_x, tvb, offset, 4, cigi_byte_order);
4988 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_acceleration_y, tvb, offset, 4, cigi_byte_order);
4991 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_acceleration_z, tvb, offset, 4, cigi_byte_order);
4994 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_retardation_rate, tvb, offset, 4, cigi_byte_order);
4997 proto_tree_add_item(tree, hf_cigi3_trajectory_definition_terminal_velocity, tvb, offset, 4, cigi_byte_order);
5003 /* CIGI3 View Definition */
5005 cigi3_add_view_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5007 proto_tree_add_item(tree, hf_cigi3_view_definition_view_id, tvb, offset, 2, cigi_byte_order);
5010 proto_tree_add_item(tree, hf_cigi3_view_definition_group_id, tvb, offset, 1, cigi_byte_order);
5013 proto_tree_add_item(tree, hf_cigi3_view_definition_near_enable, tvb, offset, 1, cigi_byte_order);
5014 proto_tree_add_item(tree, hf_cigi3_view_definition_far_enable, tvb, offset, 1, cigi_byte_order);
5015 proto_tree_add_item(tree, hf_cigi3_view_definition_left_enable, tvb, offset, 1, cigi_byte_order);
5016 proto_tree_add_item(tree, hf_cigi3_view_definition_right_enable, tvb, offset, 1, cigi_byte_order);
5017 proto_tree_add_item(tree, hf_cigi3_view_definition_top_enable, tvb, offset, 1, cigi_byte_order);
5018 proto_tree_add_item(tree, hf_cigi3_view_definition_bottom_enable, tvb, offset, 1, cigi_byte_order);
5019 proto_tree_add_item(tree, hf_cigi3_view_definition_mirror_mode, tvb, offset, 1, cigi_byte_order);
5022 proto_tree_add_item(tree, hf_cigi3_view_definition_pixel_replication, tvb, offset, 1, cigi_byte_order);
5023 proto_tree_add_item(tree, hf_cigi3_view_definition_projection_type, tvb, offset, 1, cigi_byte_order);
5024 proto_tree_add_item(tree, hf_cigi3_view_definition_reorder, tvb, offset, 1, cigi_byte_order);
5025 proto_tree_add_item(tree, hf_cigi3_view_definition_view_type, tvb, offset, 1, cigi_byte_order);
5028 proto_tree_add_item(tree, hf_cigi3_view_definition_near, tvb, offset, 4, cigi_byte_order);
5031 proto_tree_add_item(tree, hf_cigi3_view_definition_far, tvb, offset, 4, cigi_byte_order);
5034 proto_tree_add_item(tree, hf_cigi3_view_definition_left, tvb, offset, 4, cigi_byte_order);
5037 proto_tree_add_item(tree, hf_cigi3_view_definition_right, tvb, offset, 4, cigi_byte_order);
5040 proto_tree_add_item(tree, hf_cigi3_view_definition_top, tvb, offset, 4, cigi_byte_order);
5043 proto_tree_add_item(tree, hf_cigi3_view_definition_bottom, tvb, offset, 4, cigi_byte_order);
5049 /* CIGI3 Collision Detection Segment Definition */
5051 cigi3_add_collision_detection_segment_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5053 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_entity_id, tvb, offset, 2, cigi_byte_order);
5056 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_segment_id, tvb, offset, 1, cigi_byte_order);
5059 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_segment_enable, tvb, offset, 1, cigi_byte_order);
5062 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_x1, tvb, offset, 4, cigi_byte_order);
5065 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_y1, tvb, offset, 4, cigi_byte_order);
5068 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_z1, tvb, offset, 4, cigi_byte_order);
5071 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_x2, tvb, offset, 4, cigi_byte_order);
5074 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_y2, tvb, offset, 4, cigi_byte_order);
5077 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_z2, tvb, offset, 4, cigi_byte_order);
5080 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_definition_material_mask, tvb, offset, 4, cigi_byte_order);
5086 /* CIGI3 Collision Detection Volume Definition */
5088 cigi3_add_collision_detection_volume_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5090 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_entity_id, tvb, offset, 2, cigi_byte_order);
5093 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_volume_id, tvb, offset, 1, cigi_byte_order);
5096 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_volume_enable, tvb, offset, 1, cigi_byte_order);
5097 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_volume_type, tvb, offset, 1, cigi_byte_order);
5100 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_x, tvb, offset, 4, cigi_byte_order);
5103 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_y, tvb, offset, 4, cigi_byte_order);
5106 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_z, tvb, offset, 4, cigi_byte_order);
5109 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_radius_height, tvb, offset, 4, cigi_byte_order);
5112 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_width, tvb, offset, 4, cigi_byte_order);
5115 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_depth, tvb, offset, 4, cigi_byte_order);
5118 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_roll, tvb, offset, 4, cigi_byte_order);
5121 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_pitch, tvb, offset, 4, cigi_byte_order);
5124 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_definition_yaw, tvb, offset, 4, cigi_byte_order);
5130 /* CIGI3 HAT/HOT Request */
5132 cigi3_add_hat_hot_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5134 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5137 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_type, tvb, offset, 1, cigi_byte_order);
5138 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_coordinate_system, tvb, offset, 1, cigi_byte_order);
5141 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_entity_id, tvb, offset, 2, cigi_byte_order);
5144 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_lat_xoff, tvb, offset, 8, cigi_byte_order);
5147 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_lon_yoff, tvb, offset, 8, cigi_byte_order);
5150 proto_tree_add_item(tree, hf_cigi3_hat_hot_request_alt_zoff, tvb, offset, 8, cigi_byte_order);
5156 /* CIGI3_2 HAT/HOT Request */
5158 cigi3_2_add_hat_hot_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5160 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5163 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_type, tvb, offset, 1, cigi_byte_order);
5164 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_coordinate_system, tvb, offset, 1, cigi_byte_order);
5167 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_update_period, tvb, offset, 1, cigi_byte_order);
5170 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_entity_id, tvb, offset, 2, cigi_byte_order);
5173 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_lat_xoff, tvb, offset, 8, cigi_byte_order);
5176 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_lon_yoff, tvb, offset, 8, cigi_byte_order);
5179 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_request_alt_zoff, tvb, offset, 8, cigi_byte_order);
5185 /* CIGI3 Line of Sight Segment Request */
5187 cigi3_add_line_of_sight_segment_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5189 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_los_id, tvb, offset, 2, cigi_byte_order);
5192 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_type, tvb, offset, 1, cigi_byte_order);
5193 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_coord, tvb, offset, 1, cigi_byte_order);
5194 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_coord, tvb, offset, 1, cigi_byte_order);
5195 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_response_coord, tvb, offset, 1, cigi_byte_order);
5198 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_alpha_threshold, tvb, offset, 1, cigi_byte_order);
5201 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_entity_id, tvb, offset, 2, cigi_byte_order);
5204 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5207 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5210 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5213 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_lat_xoff, tvb, offset, 8, cigi_byte_order);
5216 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_lon_yoff, tvb, offset, 8, cigi_byte_order);
5219 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_destination_alt_zoff, tvb, offset, 8, cigi_byte_order);
5222 proto_tree_add_item(tree, hf_cigi3_line_of_sight_segment_request_material_mask, tvb, offset, 4, cigi_byte_order);
5228 /* CIGI3_2 Line of Sight Segment Request */
5230 cigi3_2_add_line_of_sight_segment_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5232 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_los_id, tvb, offset, 2, cigi_byte_order);
5235 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_type, tvb, offset, 1, cigi_byte_order);
5236 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_coord, tvb, offset, 1, cigi_byte_order);
5237 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_coord, tvb, offset, 1, cigi_byte_order);
5238 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_response_coord, tvb, offset, 1, cigi_byte_order);
5239 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5242 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_alpha_threshold, tvb, offset, 1, cigi_byte_order);
5245 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_entity_id, tvb, offset, 2, cigi_byte_order);
5248 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5251 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5254 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5257 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_lat_xoff, tvb, offset, 8, cigi_byte_order);
5260 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_lon_yoff, tvb, offset, 8, cigi_byte_order);
5263 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_alt_zoff, tvb, offset, 8, cigi_byte_order);
5266 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_material_mask, tvb, offset, 4, cigi_byte_order);
5269 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_update_period, tvb, offset, 1, cigi_byte_order);
5272 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_segment_request_destination_entity_id, tvb, offset, 2, cigi_byte_order);
5278 /* CIGI3 Line of Sight Vector Request */
5280 cigi3_add_line_of_sight_vector_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5282 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_los_id, tvb, offset, 2, cigi_byte_order);
5285 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_type, tvb, offset, 1, cigi_byte_order);
5286 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_coord, tvb, offset, 1, cigi_byte_order);
5287 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_response_coord, tvb, offset, 1, cigi_byte_order);
5290 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_alpha, tvb, offset, 1, cigi_byte_order);
5293 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_entity_id, tvb, offset, 2, cigi_byte_order);
5296 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_azimuth, tvb, offset, 4, cigi_byte_order);
5299 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_elevation, tvb, offset, 4, cigi_byte_order);
5302 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_min_range, tvb, offset, 4, cigi_byte_order);
5305 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_max_range, tvb, offset, 4, cigi_byte_order);
5308 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5311 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5314 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5317 proto_tree_add_item(tree, hf_cigi3_line_of_sight_vector_request_material_mask, tvb, offset, 4, cigi_byte_order);
5323 /* CIGI3_2 Line of Sight Vector Request */
5325 cigi3_2_add_line_of_sight_vector_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5327 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_los_id, tvb, offset, 2, cigi_byte_order);
5330 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_type, tvb, offset, 1, cigi_byte_order);
5331 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_coord, tvb, offset, 1, cigi_byte_order);
5332 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_response_coord, tvb, offset, 1, cigi_byte_order);
5335 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_alpha, tvb, offset, 1, cigi_byte_order);
5338 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_entity_id, tvb, offset, 2, cigi_byte_order);
5341 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_azimuth, tvb, offset, 4, cigi_byte_order);
5344 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_elevation, tvb, offset, 4, cigi_byte_order);
5347 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_min_range, tvb, offset, 4, cigi_byte_order);
5350 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_max_range, tvb, offset, 4, cigi_byte_order);
5353 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_lat_xoff, tvb, offset, 8, cigi_byte_order);
5356 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_lon_yoff, tvb, offset, 8, cigi_byte_order);
5359 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_source_alt_zoff, tvb, offset, 8, cigi_byte_order);
5362 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_material_mask, tvb, offset, 4, cigi_byte_order);
5365 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_vector_request_update_period, tvb, offset, 1, cigi_byte_order);
5371 /* CIGI3 Position Request */
5373 cigi3_add_position_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5375 proto_tree_add_item(tree, hf_cigi3_position_request_object_id, tvb, offset, 2, cigi_byte_order);
5378 proto_tree_add_item(tree, hf_cigi3_position_request_part_id, tvb, offset, 1, cigi_byte_order);
5381 proto_tree_add_item(tree, hf_cigi3_position_request_update_mode, tvb, offset, 1, cigi_byte_order);
5382 proto_tree_add_item(tree, hf_cigi3_position_request_object_class, tvb, offset, 1, cigi_byte_order);
5383 proto_tree_add_item(tree, hf_cigi3_position_request_coord_system, tvb, offset, 1, cigi_byte_order);
5389 /* CIGI3 Environmental Conditions Request */
5391 cigi3_add_environmental_conditions_request(tvbuff_t *tvb, proto_tree *tree, gint offset)
5393 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_type, tvb, offset, 1, cigi_byte_order);
5396 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_id, tvb, offset, 1, cigi_byte_order);
5399 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_lat, tvb, offset, 8, cigi_byte_order);
5402 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_lon, tvb, offset, 8, cigi_byte_order);
5405 proto_tree_add_item(tree, hf_cigi3_environmental_conditions_request_alt, tvb, offset, 8, cigi_byte_order);
5411 /* CIGI3_3 Symbol Surface Definition */
5413 cigi3_3_add_symbol_surface_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5415 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_surface_id, tvb, offset, 2, cigi_byte_order);
5418 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_surface_state, tvb, offset, 1, cigi_byte_order);
5419 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_attach_type, tvb, offset, 1, cigi_byte_order);
5420 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_billboard, tvb, offset, 1, cigi_byte_order);
5421 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_perspective_growth_enable, tvb, offset, 1, cigi_byte_order);
5424 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_entity_view_id, tvb, offset, 2, cigi_byte_order);
5427 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_xoff_left, tvb, offset, 4, cigi_byte_order);
5430 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_yoff_right, tvb, offset, 4, cigi_byte_order);
5433 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_zoff_top, tvb, offset, 4, cigi_byte_order);
5436 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_yaw_bottom, tvb, offset, 4, cigi_byte_order);
5439 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_pitch, tvb, offset, 4, cigi_byte_order);
5442 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_roll, tvb, offset, 4, cigi_byte_order);
5445 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_width, tvb, offset, 4, cigi_byte_order);
5448 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_height, tvb, offset, 4, cigi_byte_order);
5451 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_min_u, tvb, offset, 4, cigi_byte_order);
5454 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_max_u, tvb, offset, 4, cigi_byte_order);
5457 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_min_v, tvb, offset, 4, cigi_byte_order);
5460 proto_tree_add_item(tree, hf_cigi3_3_symbol_surface_definition_max_v, tvb, offset, 4, cigi_byte_order);
5466 /* CIGI3_3 Symbol Text Definition */
5468 cigi3_3_add_symbol_text_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5470 guint8 packet_size = 0;
5472 packet_size = tvb_get_guint8(tvb, offset-1);
5474 /* A symbol text definition packet cannot be less than 16 bytes. */
5475 if ( packet_size < 16 ) {
5476 THROW(ReportedBoundsError);
5479 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_symbol_id, tvb, offset, 2, cigi_byte_order);
5482 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_alignment, tvb, offset, 1, cigi_byte_order);
5483 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_orientation, tvb, offset, 1, cigi_byte_order);
5486 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_font_ident, tvb, offset, 1, cigi_byte_order);
5489 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_font_size, tvb, offset, 4, cigi_byte_order);
5492 proto_tree_add_item(tree, hf_cigi3_3_symbol_text_definition_text, tvb, offset, packet_size-12, cigi_byte_order);
5493 offset += packet_size-12;
5498 /* CIGI3_3 Symbol Circle Definition */
5500 cigi3_3_add_symbol_circle_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5502 guint8 packet_size = 0;
5505 packet_size = tvb_get_guint8(tvb, offset-1);
5507 /* A symbol text definition packet cannot be less than 16 bytes. */
5508 if ( packet_size < 16 ) {
5509 THROW(ReportedBoundsError);
5512 ncircles = (packet_size - 16) / 24;
5514 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_symbol_id, tvb, offset, 2, cigi_byte_order);
5517 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_drawing_style, tvb, offset, 1, cigi_byte_order);
5520 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_stipple_pattern, tvb, offset, 2, cigi_byte_order);
5523 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_line_width, tvb, offset, 4, cigi_byte_order);
5526 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_stipple_pattern_length, tvb, offset, 4, cigi_byte_order);
5529 for (c = 0; c< ncircles; c++) {
5530 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_center_u[c], tvb, offset, 4, cigi_byte_order);
5533 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_center_v[c], tvb, offset, 4, cigi_byte_order);
5536 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_radius[c], tvb, offset, 4, cigi_byte_order);
5539 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_inner_radius[c], tvb, offset, 4, cigi_byte_order);
5542 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_start_angle[c], tvb, offset, 4, cigi_byte_order);
5545 proto_tree_add_item(tree, hf_cigi3_3_symbol_circle_definition_end_angle[c], tvb, offset, 4, cigi_byte_order);
5552 /* CIGI3_3 Symbol Line Definition */
5554 cigi3_3_add_symbol_line_definition(tvbuff_t *tvb, proto_tree *tree, gint offset)
5556 guint8 packet_size = 0;
5559 packet_size = tvb_get_guint8(tvb, offset-1);
5561 /* A symbol text definition packet cannot be less than 16 bytes. */
5562 if ( packet_size < 16 ) {
5563 THROW(ReportedBoundsError);
5566 nvertices = (packet_size - 16) / 8;
5568 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_symbol_id, tvb, offset, 2, cigi_byte_order);
5571 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_primitive_type, tvb, offset, 1, cigi_byte_order);
5574 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_stipple_pattern, tvb, offset, 2, cigi_byte_order);
5577 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_line_width, tvb, offset, 4, cigi_byte_order);;
5580 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_stipple_pattern_length, tvb, offset, 4, cigi_byte_order);
5583 for(v=0; v<nvertices; v++) {
5584 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_vertex_u[v], tvb, offset, 4, cigi_byte_order);
5587 proto_tree_add_item(tree, hf_cigi3_3_symbol_line_definition_vertex_v[v], tvb, offset, 4, cigi_byte_order);
5594 /* CIGI3_3 Symbol Clone */
5596 cigi3_3_add_symbol_clone(tvbuff_t *tvb, proto_tree *tree, gint offset)
5598 proto_tree_add_item(tree, hf_cigi3_3_symbol_clone_symbol_id, tvb, offset, 2, cigi_byte_order);
5601 proto_tree_add_item(tree, hf_cigi3_3_symbol_clone_source_type, tvb, offset, 1, cigi_byte_order);
5604 proto_tree_add_item(tree, hf_cigi3_3_symbol_clone_source_id, tvb, offset, 2, cigi_byte_order);
5610 /* CIGI3_3 Symbol Control */
5612 cigi3_3_add_symbol_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
5614 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_symbol_id, tvb, offset, 2, cigi_byte_order);
5617 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_symbol_state, tvb, offset, 1, cigi_byte_order);
5618 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_attach_state, tvb, offset, 1, cigi_byte_order);
5619 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_flash_control, tvb, offset, 1, cigi_byte_order);
5620 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_inherit_color, tvb, offset, 1, cigi_byte_order);
5623 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_parent_symbol_ident, tvb, offset, 2, cigi_byte_order);
5626 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_surface_ident, tvb, offset, 2, cigi_byte_order);
5629 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_layer, tvb, offset, 1, cigi_byte_order);
5632 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_flash_duty_cycle, tvb, offset, 1, cigi_byte_order);
5635 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_flash_period, tvb, offset, 4, cigi_byte_order);
5638 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_position_u, tvb, offset, 4, cigi_byte_order);
5641 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_position_v, tvb, offset, 4, cigi_byte_order);
5644 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_rotation, tvb, offset, 4, cigi_byte_order);
5647 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_red, tvb, offset, 1, cigi_byte_order);
5650 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_green, tvb, offset, 1, cigi_byte_order);
5653 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_blue, tvb, offset, 1, cigi_byte_order);
5656 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_alpha, tvb, offset, 1, cigi_byte_order);
5659 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_scale_u, tvb, offset, 4, cigi_byte_order);
5662 proto_tree_add_item(tree, hf_cigi3_3_symbol_control_scale_v, tvb, offset, 4, cigi_byte_order);
5668 /* CIGI3_3 Short Symbol Control */
5670 cigi3_3_add_short_symbol_control(tvbuff_t *tvb, proto_tree *tree, gint offset)
5675 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_symbol_id, tvb, offset, 2, cigi_byte_order);
5678 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_symbol_state, tvb, offset, 1, cigi_byte_order);
5679 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attach_state, tvb, offset, 1, cigi_byte_order);
5680 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_flash_control, tvb, offset, 1, cigi_byte_order);
5681 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_inherit_color, tvb, offset, 1, cigi_byte_order);
5684 select1 = tvb_get_guint8(tvb, offset);
5685 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_select1, tvb, offset, 1, cigi_byte_order);
5688 select2 = tvb_get_guint8(tvb, offset);
5689 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_select2, tvb, offset, 1, cigi_byte_order);
5693 if (cigi_byte_order == CIGI_BYTE_ORDER_BIG_ENDIAN) {
5694 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red1, tvb, offset, 1, cigi_byte_order);
5697 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green1, tvb, offset, 1, cigi_byte_order);
5700 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue1, tvb, offset, 1, cigi_byte_order);
5703 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha1, tvb, offset, 1, cigi_byte_order);
5706 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha1, tvb, offset, 1, cigi_byte_order);
5709 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue1, tvb, offset, 1, cigi_byte_order);
5712 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green1, tvb, offset, 1, cigi_byte_order);
5715 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red1, tvb, offset, 1, cigi_byte_order);
5719 if (select1 >= 5 && select1 <= 11) {
5720 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value1f, tvb, offset, 4, cigi_byte_order);
5722 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value1, tvb, offset, 4, cigi_byte_order);
5728 if (cigi_byte_order == CIGI_BYTE_ORDER_BIG_ENDIAN) {
5729 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red2, tvb, offset, 1, cigi_byte_order);
5732 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green2, tvb, offset, 1, cigi_byte_order);
5735 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue2, tvb, offset, 1, cigi_byte_order);
5738 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha2, tvb, offset, 1, cigi_byte_order);
5741 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_alpha2, tvb, offset, 1, cigi_byte_order);
5744 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_blue2, tvb, offset, 1, cigi_byte_order);
5747 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_green2, tvb, offset, 1, cigi_byte_order);
5750 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_red2, tvb, offset, 1, cigi_byte_order);
5755 if (select2 >= 5 && select2 <= 11) {
5756 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value2f, tvb, offset, 4, cigi_byte_order);
5758 proto_tree_add_item(tree, hf_cigi3_3_short_symbol_control_attribute_value2, tvb, offset, 4, cigi_byte_order);
5766 /* CIGI3 Start of Frame */
5768 cigi3_add_start_of_frame(tvbuff_t *tvb, proto_tree *tree, gint offset)
5770 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
5773 proto_tree_add_item(tree, hf_cigi3_start_of_frame_db_number, tvb, offset, 1, cigi_byte_order);
5776 proto_tree_add_item(tree, hf_cigi3_start_of_frame_ig_status, tvb, offset, 1, cigi_byte_order);
5779 proto_tree_add_item(tree, hf_cigi3_start_of_frame_ig_mode, tvb, offset, 1, cigi_byte_order);
5780 proto_tree_add_item(tree, hf_cigi3_start_of_frame_timestamp_valid, tvb, offset, 1, cigi_byte_order);
5781 proto_tree_add_item(tree, hf_cigi3_start_of_frame_earth_reference_model, tvb, offset, 1, cigi_byte_order);
5784 /* Get the Byte Swap in Big-Endian so that we can display whether the value
5785 * is big-endian or little-endian to the user */
5786 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
5789 proto_tree_add_item(tree, hf_cigi3_start_of_frame_frame_ctr, tvb, offset, 4, cigi_byte_order);
5792 proto_tree_add_item(tree, hf_cigi3_start_of_frame_timestamp, tvb, offset, 4, cigi_byte_order);
5798 /* CIGI3_2 Start of Frame */
5800 cigi3_2_add_start_of_frame(tvbuff_t *tvb, proto_tree *tree, gint offset)
5802 proto_tree_add_item(tree, hf_cigi_version, tvb, offset, 1, cigi_byte_order);
5805 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_db_number, tvb, offset, 1, cigi_byte_order);
5808 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_ig_status, tvb, offset, 1, cigi_byte_order);
5811 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_ig_mode, tvb, offset, 1, cigi_byte_order);
5812 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_timestamp_valid, tvb, offset, 1, cigi_byte_order);
5813 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_earth_reference_model, tvb, offset, 1, cigi_byte_order);
5816 /* Get the Byte Swap in Big-Endian so that we can display whether the value
5817 * is big-endian or little-endian to the user */
5818 proto_tree_add_item(tree, hf_cigi3_byte_swap, tvb, offset, 2, CIGI_BYTE_ORDER_BIG_ENDIAN);
5821 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_ig_frame_number, tvb, offset, 4, cigi_byte_order);
5824 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_timestamp, tvb, offset, 4, cigi_byte_order);
5827 proto_tree_add_item(tree, hf_cigi3_2_start_of_frame_last_host_frame_number, tvb, offset, 4, cigi_byte_order);
5833 /* CIGI3 HAT/HOT Response */
5835 cigi3_add_hat_hot_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5837 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5840 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_valid, tvb, offset, 1, cigi_byte_order);
5841 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_type, tvb, offset, 1, cigi_byte_order);
5844 proto_tree_add_item(tree, hf_cigi3_hat_hot_response_height, tvb, offset, 8, cigi_byte_order);
5850 /* CIGI3_2 HAT/HOT Response */
5852 cigi3_2_add_hat_hot_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5854 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5857 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_valid, tvb, offset, 1, cigi_byte_order);
5858 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_type, tvb, offset, 1, cigi_byte_order);
5859 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
5862 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_response_height, tvb, offset, 8, cigi_byte_order);
5868 /* CIGI3 HAT/HOT Extended Response */
5870 cigi3_add_hat_hot_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5872 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5875 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_valid, tvb, offset, 1, cigi_byte_order);
5878 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_hat, tvb, offset, 8, cigi_byte_order);
5881 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_hot, tvb, offset, 8, cigi_byte_order);
5884 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
5887 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
5890 proto_tree_add_item(tree, hf_cigi3_hat_hot_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
5896 /* CIGI3_2 HAT/HOT Extended Response */
5898 cigi3_2_add_hat_hot_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5900 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_hat_hot_id, tvb, offset, 2, cigi_byte_order);
5903 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_valid, tvb, offset, 1, cigi_byte_order);
5904 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
5907 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_hat, tvb, offset, 8, cigi_byte_order);
5910 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_hot, tvb, offset, 8, cigi_byte_order);
5913 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
5916 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
5919 proto_tree_add_item(tree, hf_cigi3_2_hat_hot_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
5925 /* CIGI3 Line of Sight Response */
5927 cigi3_add_line_of_sight_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5929 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_los_id, tvb, offset, 2, cigi_byte_order);
5932 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_valid, tvb, offset, 1, cigi_byte_order);
5933 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5934 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_visible, tvb, offset, 1, cigi_byte_order);
5937 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_count, tvb, offset, 1, cigi_byte_order);
5940 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_entity_id, tvb, offset, 2, cigi_byte_order);
5943 proto_tree_add_item(tree, hf_cigi3_line_of_sight_response_range, tvb, offset, 8, cigi_byte_order);
5949 /* CIGI3_2 Line of Sight Response */
5951 cigi3_2_add_line_of_sight_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5953 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_los_id, tvb, offset, 2, cigi_byte_order);
5956 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_valid, tvb, offset, 1, cigi_byte_order);
5957 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5958 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_visible, tvb, offset, 1, cigi_byte_order);
5959 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
5962 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_count, tvb, offset, 1, cigi_byte_order);
5965 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_entity_id, tvb, offset, 2, cigi_byte_order);
5968 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_response_range, tvb, offset, 8, cigi_byte_order);
5974 /* CIGI3 Line of Sight Extended Response */
5976 cigi3_add_line_of_sight_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
5978 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_los_id, tvb, offset, 2, cigi_byte_order);
5981 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_valid, tvb, offset, 1, cigi_byte_order);
5982 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
5983 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_range_valid, tvb, offset, 1, cigi_byte_order);
5984 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_visible, tvb, offset, 1, cigi_byte_order);
5985 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_intersection_coord, tvb, offset, 1, cigi_byte_order);
5988 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_response_count, tvb, offset, 1, cigi_byte_order);
5991 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_entity_id, tvb, offset, 2, cigi_byte_order);
5994 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_range, tvb, offset, 8, cigi_byte_order);
5997 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_lat_xoff, tvb, offset, 8, cigi_byte_order);
6000 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_lon_yoff, tvb, offset, 8, cigi_byte_order);
6003 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_alt_zoff, tvb, offset, 8, cigi_byte_order);
6006 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_red, tvb, offset, 1, cigi_byte_order);
6009 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_green, tvb, offset, 1, cigi_byte_order);
6012 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_blue, tvb, offset, 1, cigi_byte_order);
6015 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_alpha, tvb, offset, 1, cigi_byte_order);
6018 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
6021 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
6024 proto_tree_add_item(tree, hf_cigi3_line_of_sight_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
6030 /* CIGI3_2 Line of Sight Extended Response */
6032 cigi3_2_add_line_of_sight_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6034 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_los_id, tvb, offset, 2, cigi_byte_order);
6037 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_valid, tvb, offset, 1, cigi_byte_order);
6038 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
6039 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_range_valid, tvb, offset, 1, cigi_byte_order);
6040 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_visible, tvb, offset, 1, cigi_byte_order);
6041 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_host_frame_number_lsn, tvb, offset, 1, cigi_byte_order);
6044 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_response_count, tvb, offset, 1, cigi_byte_order);
6047 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_entity_id, tvb, offset, 2, cigi_byte_order);
6050 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_range, tvb, offset, 8, cigi_byte_order);
6053 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_lat_xoff, tvb, offset, 8, cigi_byte_order);
6056 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_lon_yoff, tvb, offset, 8, cigi_byte_order);
6059 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_alt_zoff, tvb, offset, 8, cigi_byte_order);
6062 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_red, tvb, offset, 1, cigi_byte_order);
6065 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_green, tvb, offset, 1, cigi_byte_order);
6068 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_blue, tvb, offset, 1, cigi_byte_order);
6071 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_alpha, tvb, offset, 1, cigi_byte_order);
6074 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_material_code, tvb, offset, 4, cigi_byte_order);
6077 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_normal_vector_azimuth, tvb, offset, 4, cigi_byte_order);
6080 proto_tree_add_item(tree, hf_cigi3_2_line_of_sight_extended_response_normal_vector_elevation, tvb, offset, 4, cigi_byte_order);
6086 /* CIGI3 Sensor Response */
6088 cigi3_add_sensor_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6090 proto_tree_add_item(tree, hf_cigi3_sensor_response_view_id, tvb, offset, 2, cigi_byte_order);
6093 proto_tree_add_item(tree, hf_cigi3_sensor_response_sensor_id, tvb, offset, 1, cigi_byte_order);
6096 proto_tree_add_item(tree, hf_cigi3_sensor_response_sensor_status, tvb, offset, 1, cigi_byte_order);
6099 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_x_size, tvb, offset, 2, cigi_byte_order);
6102 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_y_size, tvb, offset, 2, cigi_byte_order);
6105 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_x_pos, tvb, offset, 4, cigi_byte_order);
6108 proto_tree_add_item(tree, hf_cigi3_sensor_response_gate_y_pos, tvb, offset, 4, cigi_byte_order);
6111 proto_tree_add_item(tree, hf_cigi3_sensor_response_frame_ctr, tvb, offset, 4, cigi_byte_order);
6117 /* CIGI3 Sensor Extended Response */
6119 cigi3_add_sensor_extended_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6121 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_view_id, tvb, offset, 2, cigi_byte_order);
6124 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_sensor_id, tvb, offset, 1, cigi_byte_order);
6127 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_sensor_status, tvb, offset, 1, cigi_byte_order);
6128 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_entity_id_valid, tvb, offset, 1, cigi_byte_order);
6131 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_entity_id, tvb, offset, 2, cigi_byte_order);
6134 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_x_size, tvb, offset, 2, cigi_byte_order);
6137 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_y_size, tvb, offset, 2, cigi_byte_order);
6140 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_x_pos, tvb, offset, 4, cigi_byte_order);
6143 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_gate_y_pos, tvb, offset, 4, cigi_byte_order);
6146 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_frame_ctr, tvb, offset, 4, cigi_byte_order);
6149 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_track_lat, tvb, offset, 8, cigi_byte_order);
6152 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_track_lon, tvb, offset, 8, cigi_byte_order);
6155 proto_tree_add_item(tree, hf_cigi3_sensor_extended_response_track_alt, tvb, offset, 8, cigi_byte_order);
6161 /* CIGI3 Position Response */
6163 cigi3_add_position_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6165 proto_tree_add_item(tree, hf_cigi3_position_response_object_id, tvb, offset, 2, cigi_byte_order);
6168 proto_tree_add_item(tree, hf_cigi3_position_response_part_id, tvb, offset, 1, cigi_byte_order);
6171 proto_tree_add_item(tree, hf_cigi3_position_response_object_class, tvb, offset, 1, cigi_byte_order);
6172 proto_tree_add_item(tree, hf_cigi3_position_response_coord_system, tvb, offset, 1, cigi_byte_order);
6175 proto_tree_add_item(tree, hf_cigi3_position_response_lat_xoff, tvb, offset, 8, cigi_byte_order);
6178 proto_tree_add_item(tree, hf_cigi3_position_response_lon_yoff, tvb, offset, 8, cigi_byte_order);
6181 proto_tree_add_item(tree, hf_cigi3_position_response_alt_zoff, tvb, offset, 8, cigi_byte_order);
6184 proto_tree_add_item(tree, hf_cigi3_position_response_roll, tvb, offset, 4, cigi_byte_order);
6187 proto_tree_add_item(tree, hf_cigi3_position_response_pitch, tvb, offset, 4, cigi_byte_order);
6190 proto_tree_add_item(tree, hf_cigi3_position_response_yaw, tvb, offset, 4, cigi_byte_order);
6196 /* CIGI3 Weather Conditions Response */
6198 cigi3_add_weather_conditions_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6200 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_request_id, tvb, offset, 1, cigi_byte_order);
6203 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_humidity, tvb, offset, 1, cigi_byte_order);
6206 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_air_temp, tvb, offset, 4, cigi_byte_order);
6209 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_visibility_range, tvb, offset, 4, cigi_byte_order);
6212 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_horiz_speed, tvb, offset, 4, cigi_byte_order);
6215 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_vert_speed, tvb, offset, 4, cigi_byte_order);
6218 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_wind_direction, tvb, offset, 4, cigi_byte_order);
6221 proto_tree_add_item(tree, hf_cigi3_weather_conditions_response_barometric_pressure, tvb, offset, 4, cigi_byte_order);
6227 /* CIGI3 Aerosol Concentration Response */
6229 cigi3_add_aerosol_concentration_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6231 proto_tree_add_item(tree, hf_cigi3_aerosol_concentration_response_request_id, tvb, offset, 1, cigi_byte_order);
6234 proto_tree_add_item(tree, hf_cigi3_aerosol_concentration_response_layer_id, tvb, offset, 1, cigi_byte_order);
6237 proto_tree_add_item(tree, hf_cigi3_aerosol_concentration_response_aerosol_concentration, tvb, offset, 4, cigi_byte_order);
6243 /* CIGI3 Maritime Surface Conditions Response */
6245 cigi3_add_maritime_surface_conditions_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6247 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_request_id, tvb, offset, 1, cigi_byte_order);
6250 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_sea_surface_height, tvb, offset, 4, cigi_byte_order);
6253 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_surface_water_temp, tvb, offset, 4, cigi_byte_order);
6256 proto_tree_add_item(tree, hf_cigi3_maritime_surface_conditions_response_surface_clarity, tvb, offset, 4, cigi_byte_order);
6262 /* CIGI3 Terrestrial Surface Conditions Response */
6264 cigi3_add_terrestrial_surface_conditions_response(tvbuff_t *tvb, proto_tree *tree, gint offset)
6266 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_response_request_id, tvb, offset, 1, cigi_byte_order);
6269 proto_tree_add_item(tree, hf_cigi3_terrestrial_surface_conditions_response_surface_id, tvb, offset, 4, cigi_byte_order);
6275 /* CIGI3 Collision Detection Segment Notification */
6277 cigi3_add_collision_detection_segment_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6279 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_entity_id, tvb, offset, 2, cigi_byte_order);
6282 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_segment_id, tvb, offset, 1, cigi_byte_order);
6285 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_type, tvb, offset, 1, cigi_byte_order);
6288 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_contacted_entity_id, tvb, offset, 2, cigi_byte_order);
6291 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_material_code, tvb, offset, 4, cigi_byte_order);
6294 proto_tree_add_item(tree, hf_cigi3_collision_detection_segment_notification_intersection_distance, tvb, offset, 4, cigi_byte_order);
6300 /* CIGI3 Collision Detection Volume Notification */
6302 cigi3_add_collision_detection_volume_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6304 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_entity_id, tvb, offset, 2, cigi_byte_order);
6307 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_volume_id, tvb, offset, 1, cigi_byte_order);
6310 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_type, tvb, offset, 1, cigi_byte_order);
6313 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_contacted_entity_id, tvb, offset, 2, cigi_byte_order);
6316 proto_tree_add_item(tree, hf_cigi3_collision_detection_volume_notification_contacted_volume_id, tvb, offset, 1, cigi_byte_order);
6322 /* CIGI3 Animation Stop Notification */
6324 cigi3_add_animation_stop_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6326 proto_tree_add_item(tree, hf_cigi3_animation_stop_notification_entity_id, tvb, offset, 2, cigi_byte_order);
6332 /* CIGI3 Event Notification */
6334 cigi3_add_event_notification(tvbuff_t *tvb, proto_tree *tree, gint offset)
6336 proto_tree_add_item(tree, hf_cigi3_event_notification_event_id, tvb, offset, 2, cigi_byte_order);
6339 proto_tree_add_item(tree, hf_cigi3_event_notification_data_1, tvb, offset, 4, cigi_byte_order);
6342 proto_tree_add_item(tree, hf_cigi3_event_notification_data_2, tvb, offset, 4, cigi_byte_order);
6345 proto_tree_add_item(tree, hf_cigi3_event_notification_data_3, tvb, offset, 4, cigi_byte_order);
6351 /* CIGI3 Image Generator Message */
6353 cigi3_add_image_generator_message(tvbuff_t *tvb, proto_tree *tree, gint offset)
6355 guint8 packet_size = 0;
6357 packet_size = tvb_get_guint8(tvb, offset-1);
6359 /* An image generator packet cannot be less than 4 bytes ( because every cigi packet
6360 * has a packet id (1 byte) and a packet size (1 byte) ). */
6361 if ( packet_size < 4 ) {
6362 THROW(ReportedBoundsError);
6365 proto_tree_add_item(tree, hf_cigi3_image_generator_message_id, tvb, offset, 2, cigi_byte_order);
6368 proto_tree_add_item(tree, hf_cigi3_image_generator_message_message, tvb, offset, packet_size-4, cigi_byte_order);
6369 offset += packet_size-4;
6375 * Extract a 16-bit fixed-point value and convert it to a float.
6378 tvb_get_fixed_point(tvbuff_t *tvb, int offset, gint byte_order)
6382 switch (byte_order) {
6384 case CIGI_BYTE_ORDER_BIG_ENDIAN:
6385 fixed = tvb_get_ntohs(tvb, offset);
6388 case CIGI_BYTE_ORDER_LITTLE_ENDIAN:
6389 fixed = tvb_get_letohs(tvb, offset);
6393 DISSECTOR_ASSERT_NOT_REACHED();
6396 return fixed / 128.0F;
6399 /* Register the protocol with Wireshark */
6401 proto_register_cigi(void)
6403 module_t *cigi_module;
6405 static hf_register_info hf[] = {
6406 /* All Versions of CIGI */
6407 { &hf_cigi_src_port,
6408 { "Source Port", "cigi.srcport",
6409 FT_UINT16, BASE_DEC, NULL, 0x0,
6412 { &hf_cigi_dest_port,
6413 { "Destination Port", "cigi.destport",
6414 FT_UINT16, BASE_DEC, NULL, 0x0,
6418 { "Source or Destination Port", "cigi.port",
6419 FT_UINT16, BASE_DEC, NULL, 0x0,
6423 { &hf_cigi_frame_size,
6424 { "Frame Size (bytes)", "cigi.frame_size",
6425 FT_UINT8, BASE_DEC, NULL, 0x0,
6426 "Number of bytes sent with all cigi packets in this frame", HFILL }
6429 { &hf_cigi_packet_id,
6430 { "Packet ID", "cigi.packet_id",
6431 FT_UINT8, BASE_DEC, NULL, 0x0,
6432 "Identifies the packet's id", HFILL }
6434 { &hf_cigi_packet_size,
6435 { "Packet Size (bytes)", "cigi.packet_size",
6436 FT_UINT8, BASE_DEC, NULL, 0x0,
6437 "Identifies the number of bytes in this type of packet", HFILL }
6440 { "CIGI Version", "cigi.version",
6441 FT_UINT8, BASE_DEC, NULL, 0x0,
6442 "Identifies the version of CIGI interface that is currently running on the host", HFILL }
6446 { "Unknown", "cigi.unknown",
6447 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6448 "Unknown Packet", HFILL }
6452 { &hf_cigi2_packet_id,
6453 { "Packet ID", "cigi.packet_id",
6454 FT_UINT8, BASE_DEC, VALS(cigi2_packet_id_vals), 0x0,
6455 "Identifies the packet's ID", HFILL }
6459 { &hf_cigi3_packet_id,
6460 { "Packet ID", "cigi.packet_id",
6461 FT_UINT8, BASE_DEC, VALS(cigi3_packet_id_vals), 0x0,
6462 "Identifies the packet's ID", HFILL }
6464 { &hf_cigi3_byte_swap,
6465 { "Byte Swap", "cigi.byte_swap",
6466 FT_UINT16, BASE_HEX, VALS(cigi3_byte_swap_vals), 0x0,
6467 "Used to determine whether the incoming data should be byte-swapped", HFILL }
6470 /* CIGI2 IG Control */
6471 { &hf_cigi2_ig_control,
6472 { "IG Control", "cigi.ig_control",
6473 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6474 "IG Control Packet", HFILL }
6476 { &hf_cigi2_ig_control_db_number,
6477 { "Database Number", "cigi.ig_control.db_number",
6478 FT_INT8, BASE_DEC, NULL, 0x0,
6479 "Identifies the number associated with the database requiring loading", HFILL }
6481 { &hf_cigi2_ig_control_ig_mode,
6482 { "IG Mode Change Request", "cigi.ig_control.ig_mode",
6483 FT_UINT8, BASE_DEC, VALS(cigi2_ig_control_ig_mode_vals), 0xc0,
6484 "Commands the IG to enter its various modes", HFILL }
6486 { &hf_cigi2_ig_control_tracking_enable,
6487 { "Tracking Device Enable", "cigi.ig_control.tracking_enable",
6488 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
6489 "Identifies the state of an external tracking device", HFILL }
6491 { &hf_cigi2_ig_control_boresight,
6492 { "Tracking Device Boresight", "cigi.ig_control.boresight",
6493 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x10,
6494 "Used by the host to enable boresight mode", HFILL }
6496 { &hf_cigi2_ig_control_frame_ctr,
6497 { "Frame Counter", "cigi.ig_control.frame_ctr",
6498 FT_UINT32, BASE_DEC, NULL, 0x0,
6499 "Identifies a particular frame", HFILL }
6501 { &hf_cigi2_ig_control_time_tag,
6502 { "Timing Value (microseconds)", "cigi.ig_control.time_tag",
6503 FT_FLOAT, BASE_NONE, NULL, 0x0,
6504 "Identifies synchronous operation", HFILL }
6507 /* CIGI3 IG Control */
6508 { &hf_cigi3_ig_control,
6509 { "IG Control", "cigi.ig_control",
6510 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6511 "IG Control Packet", HFILL }
6513 { &hf_cigi3_ig_control_db_number,
6514 { "Database Number", "cigi.ig_control.db_number",
6515 FT_INT8, BASE_DEC, NULL, 0x0,
6516 "Used to initiate a database load on the IG", HFILL }
6518 { &hf_cigi3_ig_control_ig_mode,
6519 { "IG Mode", "cigi.ig_control.ig_mode",
6520 FT_UINT8, BASE_DEC, VALS(cigi3_ig_control_ig_mode_vals), 0x03,
6521 "Dictates the IG's operational mode", HFILL }
6523 { &hf_cigi3_ig_control_timestamp_valid,
6524 { "Timestamp Valid", "cigi.ig_control.timestamp_valid",
6525 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
6526 "Indicates whether the timestamp contains a valid value", HFILL }
6528 { &hf_cigi3_ig_control_frame_ctr,
6529 { "Frame Counter", "cigi.ig_control.frame_ctr",
6530 FT_UINT32, BASE_DEC, NULL, 0x0,
6531 "Contains a number that identifying the frame", HFILL }
6533 { &hf_cigi3_ig_control_timestamp,
6534 { "Timestamp (microseconds)", "cigi.ig_control.timestamp",
6535 FT_UINT32, BASE_DEC, NULL, 0x0,
6536 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
6539 /* CIGI3_2 IG Control */
6540 { &hf_cigi3_2_ig_control,
6541 { "IG Control", "cigi.ig_control",
6542 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6543 "IG Control Packet", HFILL }
6545 { &hf_cigi3_2_ig_control_db_number,
6546 { "Database Number", "cigi.ig_control.db_number",
6547 FT_INT8, BASE_DEC, NULL, 0x0,
6548 "Used to initiate a database load on the IG", HFILL }
6550 { &hf_cigi3_2_ig_control_ig_mode,
6551 { "IG Mode", "cigi.ig_control.ig_mode",
6552 FT_UINT8, BASE_DEC, VALS(cigi3_2_ig_control_ig_mode_vals), 0x03,
6553 "Dictates the IG's operational mode", HFILL }
6555 { &hf_cigi3_2_ig_control_timestamp_valid,
6556 { "Timestamp Valid", "cigi.ig_control.timestamp_valid",
6557 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
6558 "Indicates whether the timestamp contains a valid value", HFILL }
6560 { &hf_cigi3_2_ig_control_host_frame_number,
6561 { "Host Frame Number", "cigi.ig_control.host_frame_number",
6562 FT_UINT32, BASE_DEC, NULL, 0x0,
6563 "Uniquely identifies a data frame on the host", HFILL }
6565 { &hf_cigi3_2_ig_control_timestamp,
6566 { "Timestamp (microseconds)", "cigi.ig_control.timestamp",
6567 FT_UINT32, BASE_DEC, NULL, 0x0,
6568 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
6570 { &hf_cigi3_2_ig_control_last_ig_frame_number,
6571 { "IG Frame Number", "cigi.ig_control.last_ig_frame_number",
6572 FT_UINT32, BASE_DEC, NULL, 0x0,
6573 "Contains the value of the IG Frame Number parameter in the last Start of Frame packet received from the IG", HFILL }
6576 /* CIGI3_3 IG Control */
6577 { &hf_cigi3_3_ig_control,
6578 { "IG Control", "cigi.ig_control",
6579 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6580 "IG Control Packet", HFILL }
6582 { &hf_cigi3_3_ig_control_db_number,
6583 { "Database Number", "cigi.ig_control.db_number",
6584 FT_INT8, BASE_DEC, NULL, 0x0,
6585 "Used to initiate a database load on the IG", HFILL }
6587 { &hf_cigi3_3_ig_control_ig_mode,
6588 { "IG Mode", "cigi.ig_control.ig_mode",
6589 FT_UINT8, BASE_DEC, VALS(cigi3_3_ig_control_ig_mode_vals), 0x03,
6590 "Dictates the IG's operational mode", HFILL }
6592 { &hf_cigi3_3_ig_control_timestamp_valid,
6593 { "Timestamp Valid", "cigi.ig_control.timestamp_valid",
6594 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
6595 "Indicates whether the timestamp contains a valid value", HFILL }
6597 { &hf_cigi3_3_ig_control_extrapolation_enable,
6598 { "Extrapolation/Interpolation Enable", "cigi.ig_control.extrapolation_enable",
6599 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
6600 "Indicates whether any dead reckoning is enabled.", HFILL }
6602 { &hf_cigi3_3_ig_control_minor_version,
6603 { "Minor Version", "cigi.ig_control.extrapolation_enable",
6604 FT_UINT8, BASE_DEC, NULL, 0xF0,
6605 "Indicates the minor version of the CIGI interface", HFILL }
6607 { &hf_cigi3_3_ig_control_host_frame_number,
6608 { "Host Frame Number", "cigi.ig_control.host_frame_number",
6609 FT_UINT32, BASE_DEC, NULL, 0x0,
6610 "Uniquely identifies a data frame on the host", HFILL }
6612 { &hf_cigi3_3_ig_control_timestamp,
6613 { "Timestamp (microseconds)", "cigi.ig_control.timestamp",
6614 FT_UINT32, BASE_DEC, NULL, 0x0,
6615 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
6617 { &hf_cigi3_3_ig_control_last_ig_frame_number,
6618 { "IG Frame Number", "cigi.ig_control.last_ig_frame_number",
6619 FT_UINT32, BASE_DEC, NULL, 0x0,
6620 "Contains the value of the IG Frame Number parameter in the last Start of Frame packet received from the IG", HFILL }
6623 /* CIGI2 Entity Control */
6624 { &hf_cigi2_entity_control,
6625 { "Entity Control", "cigi.entity_control",
6626 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6627 "Entity Control Packet", HFILL }
6629 { &hf_cigi2_entity_control_entity_id,
6630 { "Entity ID", "cigi.entity_control.entity_id",
6631 FT_UINT16, BASE_DEC, NULL, 0x0,
6632 "Identifies the entity motion system", HFILL }
6634 { &hf_cigi2_entity_control_entity_state,
6635 { "Entity State", "cigi.entity_control.entity_state",
6636 FT_UINT8, BASE_DEC, VALS(cigi2_entity_control_entity_state_vals), 0xc0,
6637 "Identifies the entity's geometry state", HFILL }
6639 { &hf_cigi2_entity_control_attach_state,
6640 { "Attach State", "cigi.entity_control.attach_state",
6641 FT_BOOLEAN, 8, TFS(&cigi2_entity_control_attach_state_tfs), 0x20,
6642 "Identifies whether the entity should be attach as a child to a parent", HFILL }
6644 { &hf_cigi2_entity_control_collision_detect,
6645 { "Collision Detection Request", "cigi.entity_control.collision_detect",
6646 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
6647 "Identifies if collision detection is enabled for the entity", HFILL }
6649 { &hf_cigi2_entity_control_effect_state,
6650 { "Effect Animation State", "cigi.entity_control.effect_state",
6651 FT_UINT8, BASE_DEC, VALS(cigi2_entity_control_effect_state_vals), 0x0c,
6652 "Identifies the animation state of a special effect", HFILL }
6654 { &hf_cigi2_entity_control_type,
6655 { "Entity Type", "cigi.entity_control.type",
6656 FT_UINT16, BASE_DEC, NULL, 0x0,
6657 "Identifies the type of the entity", HFILL }
6659 { &hf_cigi2_entity_control_parent_id,
6660 { "Parent Entity ID", "cigi.entity_control.parent_id",
6661 FT_UINT16, BASE_DEC, NULL, 0x0,
6662 "Identifies the parent to which the entity should be attached", HFILL }
6664 { &hf_cigi2_entity_control_opacity,
6665 { "Percent Opacity", "cigi.entity_control.opacity",
6666 FT_FLOAT, BASE_NONE, NULL, 0x0,
6667 "Specifies the degree of opacity of the entity", HFILL }
6669 { &hf_cigi2_entity_control_internal_temp,
6670 { "Internal Temperature (degrees C)", "cigi.entity_control.internal_temp",
6671 FT_FLOAT, BASE_NONE, NULL, 0x0,
6672 "Specifies the internal temperature of the entity in degrees Celsius", HFILL }
6674 { &hf_cigi2_entity_control_roll,
6675 { "Roll (degrees)", "cigi.entity_control.roll",
6676 FT_FLOAT, BASE_NONE, NULL, 0x0,
6677 "Identifies the roll angle of the entity in degrees", HFILL }
6679 { &hf_cigi2_entity_control_pitch,
6680 { "Pitch (degrees)", "cigi.entity_control",
6681 FT_FLOAT, BASE_NONE, NULL, 0x0,
6682 "Identifies the pitch of the entity in degrees", HFILL }
6684 { &hf_cigi2_entity_control_heading,
6685 { "Heading (degrees)", "cigi.entity_control",
6686 FT_FLOAT, BASE_NONE, NULL, 0x0,
6687 "Identifies the heading of the entity in degrees", HFILL }
6689 { &hf_cigi2_entity_control_alt,
6690 { "Altitude (m)", "cigi.entity_control.alt",
6691 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6692 "Identifies the altitude position of the reference point of the entity in meters", HFILL }
6694 { &hf_cigi2_entity_control_lat,
6695 { "Latitude (degrees)", "cigi.entity_control.lat",
6696 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6697 "Identifies the latitude position of the reference point of the entity in degrees", HFILL }
6699 { &hf_cigi2_entity_control_lon,
6700 { "Longitude (degrees)", "cigi.entity_control.lon",
6701 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6702 "Identifies the longitude position of the reference point of the entity in degrees", HFILL }
6705 /* CIGI3 Entity Control */
6706 { &hf_cigi3_entity_control,
6707 { "Entity Control", "cigi.entity_control",
6708 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6709 "Entity Control Packet", HFILL }
6711 { &hf_cigi3_entity_control_entity_id,
6712 { "Entity ID", "cigi.entity_control.entity_id",
6713 FT_UINT16, BASE_DEC, NULL, 0x0,
6714 "Specifies the entity to which this packet is applied", HFILL }
6716 { &hf_cigi3_entity_control_entity_state,
6717 { "Entity State", "cigi.entity_control.entity_state",
6718 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_entity_state_vals), 0x03,
6719 "Specifies whether the entity should be active or destroyed", HFILL }
6721 { &hf_cigi3_entity_control_attach_state,
6722 { "Attach State", "cigi.entity_control.attach_state",
6723 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_attach_state_tfs), 0x04,
6724 "Specifies whether the entity should be attached as a child to a parent", HFILL }
6726 { &hf_cigi3_entity_control_collision_detection_request,
6727 { "Collision Detection Request", "cigi.entity_control.coll_det_request",
6728 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_collision_detection_request_tfs), 0x08,
6729 "Determines whether any collision detection segments and volumes associated with this entity are used as the source in collision testing", HFILL }
6731 { &hf_cigi3_entity_control_inherit_alpha,
6732 { "Inherit Alpha", "cigi.entity_control.inherit_alpha",
6733 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10,
6734 "Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL }
6736 { &hf_cigi3_entity_control_ground_ocean_clamp,
6737 { "Ground/Ocean Clamp", "cigi.entity_control.ground_ocean_clamp",
6738 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_ground_ocean_clamp_vals), 0x60,
6739 "Specifies whether the entity should be clamped to the ground or water surface", HFILL }
6741 { &hf_cigi3_entity_control_animation_direction,
6742 { "Animation Direction", "cigi.entity_control.animation_dir",
6743 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_direction_tfs), 0x01,
6744 "Specifies the direction in which an animation plays", HFILL }
6746 { &hf_cigi3_entity_control_animation_loop_mode,
6747 { "Animation Loop Mode", "cigi.entity_control.animation_loop_mode",
6748 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_loop_mode_tfs), 0x02,
6749 "Specifies whether an animation should be a one-shot", HFILL }
6751 { &hf_cigi3_entity_control_animation_state,
6752 { "Animation State", "cigi.entity_control.animation_state",
6753 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_animation_state_vals), 0x0c,
6754 "Specifies the state of an animation", HFILL }
6756 { &hf_cigi3_entity_control_alpha,
6757 { "Alpha", "cigi.entity_control.alpha",
6758 FT_UINT8, BASE_DEC, NULL, 0x0,
6759 "Specifies the explicit alpha to be applied to the entity's geometry", HFILL }
6761 { &hf_cigi3_entity_control_entity_type,
6762 { "Entity Type", "cigi.entity_control.entity_type",
6763 FT_UINT16, BASE_DEC, NULL, 0x0,
6764 "Specifies the type for the entity", HFILL }
6766 { &hf_cigi3_entity_control_parent_id,
6767 { "Parent ID", "cigi.entity_control.parent_id",
6768 FT_UINT16, BASE_DEC, NULL, 0x0,
6769 "Specifies the parent for the entity", HFILL }
6771 { &hf_cigi3_entity_control_roll,
6772 { "Roll (degrees)", "cigi.entity_control.roll",
6773 FT_FLOAT, BASE_NONE, NULL, 0x0,
6774 "Specifies the roll angle of the entity", HFILL }
6776 { &hf_cigi3_entity_control_pitch,
6777 { "Pitch (degrees)", "cigi.entity_control.pitch",
6778 FT_FLOAT, BASE_NONE, NULL, 0x0,
6779 "Specifies the pitch angle of the entity", HFILL }
6781 { &hf_cigi3_entity_control_yaw,
6782 { "Yaw (degrees)", "cigi.entity_control.yaw",
6783 FT_FLOAT, BASE_NONE, NULL, 0x0,
6784 "Specifies the instantaneous heading of the entity", HFILL }
6786 { &hf_cigi3_entity_control_lat_xoff,
6787 { "Latitude (degrees)/X Offset (m)", "cigi.entity_control.lat_xoff",
6788 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6789 "Specifies the entity's geodetic latitude or the distance from the parent's reference point along its parent's X axis", HFILL }
6791 { &hf_cigi3_entity_control_lon_yoff,
6792 { "Longitude (degrees)/Y Offset (m)", "cigi.entity_control.lon_yoff",
6793 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6794 "Specifies the entity's geodetic longitude or the distance from the parent's reference point along its parent's Y axis", HFILL }
6796 { &hf_cigi3_entity_control_alt_zoff,
6797 { "Altitude (m)/Z Offset (m)", "cigi.entity_control.alt_zoff",
6798 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6799 "Specifies the entity's altitude or the distance from the parent's reference point along its parent's Z axis", HFILL }
6802 /* CIGI3_3 Entity Control */
6803 { &hf_cigi3_3_entity_control,
6804 { "Entity Control", "cigi.entity_control",
6805 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6806 "Entity Control Packet", HFILL }
6808 { &hf_cigi3_3_entity_control_entity_id,
6809 { "Entity ID", "cigi.entity_control.entity_id",
6810 FT_UINT16, BASE_DEC, NULL, 0x0,
6811 "Specifies the entity to which this packet is applied", HFILL }
6813 { &hf_cigi3_3_entity_control_entity_state,
6814 { "Entity State", "cigi.entity_control.entity_state",
6815 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_entity_state_vals), 0x03,
6816 "Specifies whether the entity should be active or destroyed", HFILL }
6818 { &hf_cigi3_3_entity_control_attach_state,
6819 { "Attach State", "cigi.entity_control.attach_state",
6820 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_attach_state_tfs), 0x04,
6821 "Specifies whether the entity should be attached as a child to a parent", HFILL }
6823 { &hf_cigi3_3_entity_control_collision_detection_request,
6824 { "Collision Detection Request", "cigi.entity_control.coll_det_request",
6825 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_collision_detection_request_tfs), 0x08,
6826 "Determines whether any collision detection segments and volumes associated with this entity are used as the source in collision testing", HFILL }
6828 { &hf_cigi3_3_entity_control_inherit_alpha,
6829 { "Inherit Alpha", "cigi.entity_control.inherit_alpha",
6830 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10,
6831 "Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL }
6833 { &hf_cigi3_3_entity_control_ground_ocean_clamp,
6834 { "Ground/Ocean Clamp", "cigi.entity_control.ground_ocean_clamp",
6835 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_ground_ocean_clamp_vals), 0x60,
6836 "Specifies whether the entity should be clamped to the ground or water surface", HFILL }
6838 { &hf_cigi3_3_entity_control_animation_direction,
6839 { "Animation Direction", "cigi.entity_control.animation_dir",
6840 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_direction_tfs), 0x01,
6841 "Specifies the direction in which an animation plays", HFILL }
6843 { &hf_cigi3_3_entity_control_animation_loop_mode,
6844 { "Animation Loop Mode", "cigi.entity_control.animation_loop_mode",
6845 FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_loop_mode_tfs), 0x02,
6846 "Specifies whether an animation should be a one-shot", HFILL }
6848 { &hf_cigi3_3_entity_control_animation_state,
6849 { "Animation State", "cigi.entity_control.animation_state",
6850 FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_animation_state_vals), 0x0c,
6851 "Specifies the state of an animation", HFILL }
6853 { &hf_cigi3_3_entity_control_extrapolation_enable,
6854 { "Linear Extrapolation/Interpolation Enable", "cigi.entity_control.extrapolation_enable",
6855 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
6856 "Indicates whether the entity's motion may be smoothed by extrapolation or interpolation.", HFILL }
6858 { &hf_cigi3_3_entity_control_alpha,
6859 { "Alpha", "cigi.entity_control.alpha",
6860 FT_UINT8, BASE_DEC, NULL, 0x0,
6861 "Specifies the explicit alpha to be applied to the entity's geometry", HFILL }
6863 { &hf_cigi3_3_entity_control_entity_type,
6864 { "Entity Type", "cigi.entity_control.entity_type",
6865 FT_UINT16, BASE_DEC, NULL, 0x0,
6866 "Specifies the type for the entity", HFILL }
6868 { &hf_cigi3_3_entity_control_parent_id,
6869 { "Parent ID", "cigi.entity_control.parent_id",
6870 FT_UINT16, BASE_DEC, NULL, 0x0,
6871 "Specifies the parent for the entity", HFILL }
6873 { &hf_cigi3_3_entity_control_roll,
6874 { "Roll (degrees)", "cigi.entity_control.roll",
6875 FT_FLOAT, BASE_NONE, NULL, 0x0,
6876 "Specifies the roll angle of the entity", HFILL }
6878 { &hf_cigi3_3_entity_control_pitch,
6879 { "Pitch (degrees)", "cigi.entity_control.pitch",
6880 FT_FLOAT, BASE_NONE, NULL, 0x0,
6881 "Specifies the pitch angle of the entity", HFILL }
6883 { &hf_cigi3_3_entity_control_yaw,
6884 { "Yaw (degrees)", "cigi.entity_control.yaw",
6885 FT_FLOAT, BASE_NONE, NULL, 0x0,
6886 "Specifies the instantaneous heading of the entity", HFILL }
6888 { &hf_cigi3_3_entity_control_lat_xoff,
6889 { "Latitude (degrees)/X Offset (m)", "cigi.entity_control.lat_xoff",
6890 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6891 "Specifies the entity's geodetic latitude or the distance from the parent's reference point along its parent's X axis", HFILL }
6893 { &hf_cigi3_3_entity_control_lon_yoff,
6894 { "Longitude (degrees)/Y Offset (m)", "cigi.entity_control.lon_yoff",
6895 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6896 "Specifies the entity's geodetic longitude or the distance from the parent's reference point along its parent's Y axis", HFILL }
6898 { &hf_cigi3_3_entity_control_alt_zoff,
6899 { "Altitude (m)/Z Offset (m)", "cigi.entity_control.alt_zoff",
6900 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6901 "Specifies the entity's altitude or the distance from the parent's reference point along its parent's Z axis", HFILL }
6904 /* CIGI3 Conformal Clamped Entity Control */
6905 { &hf_cigi3_conformal_clamped_entity_control,
6906 { "Conformal Clamped Entity Control", "cigi.conformal_clamped_entity_control",
6907 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6908 "Conformal Clamped Entity Control Packet", HFILL }
6910 { &hf_cigi3_conformal_clamped_entity_control_entity_id,
6911 { "Entity ID", "cigi.conformal_clamped_entity_control.entity_id",
6912 FT_UINT16, BASE_DEC, NULL, 0x0,
6913 "Specifies the entity to which this packet is applied", HFILL }
6915 { &hf_cigi3_conformal_clamped_entity_control_yaw,
6916 { "Yaw (degrees)", "cigi.conformal_clamped_entity_control.yaw",
6917 FT_FLOAT, BASE_NONE, NULL, 0x0,
6918 "Specifies the instantaneous heading of the entity", HFILL }
6920 { &hf_cigi3_conformal_clamped_entity_control_lat,
6921 { "Latitude (degrees)", "cigi.conformal_clamped_entity_control.lat",
6922 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6923 "Specifies the entity's geodetic latitude", HFILL }
6925 { &hf_cigi3_conformal_clamped_entity_control_lon,
6926 { "Longitude (degrees)", "cigi.conformal_clamped_entity_control.lon",
6927 FT_DOUBLE, BASE_NONE, NULL, 0x0,
6928 "Specifies the entity's geodetic longitude", HFILL }
6931 /* CIGI2 Component Control */
6932 { &hf_cigi2_component_control,
6933 { "Component Control", "cigi.component_control",
6934 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6935 "Component Control Packet", HFILL }
6937 { &hf_cigi2_component_control_instance_id,
6938 { "Instance ID", "cigi.component_control.instance_id",
6939 FT_UINT16, BASE_DEC, NULL, 0x0,
6940 "Identifies the instance of the a class the component being controlled belongs to", HFILL }
6942 { &hf_cigi2_component_control_component_class,
6943 { "Component Class", "cigi.component_control.component_class",
6944 FT_UINT8, BASE_DEC, VALS(cigi2_component_control_component_class_vals), 0x0,
6945 "Identifies the class the component being controlled is in", HFILL }
6947 { &hf_cigi2_component_control_component_id,
6948 { "Component ID", "cigi.component_control.component_id",
6949 FT_UINT16, BASE_DEC, NULL, 0x0,
6950 "Identifies the component of a component class and instance ID this packet will be applied to", HFILL }
6952 { &hf_cigi2_component_control_component_state,
6953 { "Component State", "cigi.component_control.component_state",
6954 FT_UINT16, BASE_DEC, NULL, 0x0,
6955 "Identifies the commanded state of a component", HFILL }
6957 { &hf_cigi2_component_control_component_val1,
6958 { "Component Value 1", "cigi.component_control.component_val1",
6959 FT_FLOAT, BASE_NONE, NULL, 0x0,
6960 "Identifies a continuous value to be applied to a component", HFILL }
6962 { &hf_cigi2_component_control_component_val2,
6963 { "Component Value 2", "cigi.component_control.component_val2",
6964 FT_FLOAT, BASE_NONE, NULL, 0x0,
6965 "Identifies a continuous value to be applied to a component", HFILL }
6968 /* CIGI3 Component Control */
6969 { &hf_cigi3_component_control,
6970 { "Component Control", "cigi.component_control",
6971 FT_STRINGZ, BASE_NONE, NULL, 0x0,
6972 "Component Control Packet", HFILL }
6974 { &hf_cigi3_component_control_component_id,
6975 { "Component ID", "cigi.component_control.component_id",
6976 FT_UINT16, BASE_DEC, NULL, 0x0,
6977 "Identifies the component to which the data in this packet should be applied", HFILL }
6979 { &hf_cigi3_component_control_instance_id,
6980 { "Instance ID", "cigi.component_control.instance_id",
6981 FT_UINT16, BASE_DEC, NULL, 0x0,
6982 "Identifies the object to which the component belongs", HFILL }
6984 { &hf_cigi3_component_control_component_class,
6985 { "Component Class", "cigi.component_control.component_class",
6986 FT_UINT8, BASE_DEC, VALS(cigi3_component_control_component_class_vals), 0x0f,
6987 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
6989 { &hf_cigi3_component_control_component_state,
6990 { "Component State", "cigi.component_control.component_state",
6991 FT_UINT8, BASE_DEC, NULL, 0x0,
6992 "Specifies a discrete state for the component", HFILL }
6994 { &hf_cigi3_component_control_data_1,
6995 { "Component Data 1", "cigi.component_control.data_1",
6996 FT_BYTES, BASE_NONE, NULL, 0x0,
6997 "User-defined component data", HFILL }
6999 { &hf_cigi3_component_control_data_2,
7000 { "Component Data 2", "cigi.component_control.data_2",
7001 FT_BYTES, BASE_NONE, NULL, 0x0,
7002 "User-defined component data", HFILL }
7004 { &hf_cigi3_component_control_data_3,
7005 { "Component Data 3", "cigi.component_control.data_3",
7006 FT_BYTES, BASE_NONE, NULL, 0x0,
7007 "User-defined component data", HFILL }
7009 { &hf_cigi3_component_control_data_4,
7010 { "Component Data 4", "cigi.component_control.data_4",
7011 FT_BYTES, BASE_NONE, NULL, 0x0,
7012 "User-defined component data", HFILL }
7014 { &hf_cigi3_component_control_data_5,
7015 { "Component Data 5", "cigi.component_control.data_5",
7016 FT_BYTES, BASE_NONE, NULL, 0x0,
7017 "User-defined component data", HFILL }
7019 { &hf_cigi3_component_control_data_6,
7020 { "Component Data 6", "cigi.component_control.data_6",
7021 FT_BYTES, BASE_NONE, NULL, 0x0,
7022 "User-defined component data", HFILL }
7025 /* CIGI3_3 Component Control */
7026 { &hf_cigi3_3_component_control,
7027 { "Component Control", "cigi.component_control",
7028 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7029 "Component Control Packet", HFILL }
7031 { &hf_cigi3_3_component_control_component_id,
7032 { "Component ID", "cigi.component_control.component_id",
7033 FT_UINT16, BASE_DEC, NULL, 0x0,
7034 "Identifies the component to which the data in this packet should be applied", HFILL }
7036 { &hf_cigi3_3_component_control_instance_id,
7037 { "Instance ID", "cigi.component_control.instance_id",
7038 FT_UINT16, BASE_DEC, NULL, 0x0,
7039 "Identifies the object to which the component belongs", HFILL }
7041 { &hf_cigi3_3_component_control_component_class,
7042 { "Component Class", "cigi.component_control.component_class",
7043 FT_UINT8, BASE_DEC, VALS(cigi3_3_component_control_component_class_vals), 0x3f,
7044 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
7046 { &hf_cigi3_3_component_control_component_state,
7047 { "Component State", "cigi.component_control.component_state",
7048 FT_UINT8, BASE_DEC, NULL, 0x0,
7049 "Specifies a discrete state for the component", HFILL }
7051 { &hf_cigi3_3_component_control_data_1,
7052 { "Component Data 1", "cigi.component_control.data_1",
7053 FT_BYTES, BASE_NONE, NULL, 0x0,
7054 "User-defined component data", HFILL }
7056 { &hf_cigi3_3_component_control_data_2,
7057 { "Component Data 2", "cigi.component_control.data_2",
7058 FT_BYTES, BASE_NONE, NULL, 0x0,
7059 "User-defined component data", HFILL }
7061 { &hf_cigi3_3_component_control_data_3,
7062 { "Component Data 3", "cigi.component_control.data_3",
7063 FT_BYTES, BASE_NONE, NULL, 0x0,
7064 "User-defined component data", HFILL }
7066 { &hf_cigi3_3_component_control_data_4,
7067 { "Component Data 4", "cigi.component_control.data_4",
7068 FT_BYTES, BASE_NONE, NULL, 0x0,
7069 "User-defined component data", HFILL }
7071 { &hf_cigi3_3_component_control_data_5,
7072 { "Component Data 5", "cigi.component_control.data_5",
7073 FT_BYTES, BASE_NONE, NULL, 0x0,
7074 "User-defined component data", HFILL }
7076 { &hf_cigi3_3_component_control_data_6,
7077 { "Component Data 6", "cigi.component_control.data_6",
7078 FT_BYTES, BASE_NONE, NULL, 0x0,
7079 "User-defined component data", HFILL }
7082 /* CIGI3 Short Component Control */
7083 { &hf_cigi3_short_component_control,
7084 { "Short Component Control", "cigi.short_component_control",
7085 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7086 "Short Component Control Packet", HFILL }
7088 { &hf_cigi3_short_component_control_component_id,
7089 { "Component ID", "cigi.short_component_control.component_id",
7090 FT_UINT16, BASE_DEC, NULL, 0x0,
7091 "Identifies the component to which the data in this packet should be applied", HFILL }
7093 { &hf_cigi3_short_component_control_instance_id,
7094 { "Instance ID", "cigi.short_component_control.instance_id",
7095 FT_UINT16, BASE_DEC, NULL, 0x0,
7096 "Identifies the object to which the component belongs", HFILL }
7098 { &hf_cigi3_short_component_control_component_class,
7099 { "Component Class", "cigi.short_component_control.component_class",
7100 FT_UINT8, BASE_DEC, VALS(cigi3_short_component_control_component_class_vals), 0x0f,
7101 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
7103 { &hf_cigi3_short_component_control_component_state,
7104 { "Component State", "cigi.short_component_control.component_state",
7105 FT_UINT8, BASE_DEC, NULL, 0x0,
7106 "Specifies a discrete state for the component", HFILL }
7108 { &hf_cigi3_short_component_control_data_1,
7109 { "Component Data 1", "cigi.short_component_control.data_1",
7110 FT_BYTES, BASE_NONE, NULL, 0x0,
7111 "User-defined component data", HFILL }
7113 { &hf_cigi3_short_component_control_data_2,
7114 { "Component Data 2", "cigi.short_component_control.data_2",
7115 FT_BYTES, BASE_NONE, NULL, 0x0,
7116 "User-defined component data", HFILL }
7119 /* CIGI3_3 Short Component Control */
7120 { &hf_cigi3_3_short_component_control,
7121 { "Short Component Control", "cigi.short_component_control",
7122 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7123 "Short Component Control Packet", HFILL }
7125 { &hf_cigi3_3_short_component_control_component_id,
7126 { "Component ID", "cigi.short_component_control.component_id",
7127 FT_UINT16, BASE_DEC, NULL, 0x0,
7128 "Identifies the component to which the data in this packet should be applied", HFILL }
7130 { &hf_cigi3_3_short_component_control_instance_id,
7131 { "Instance ID", "cigi.short_component_control.instance_id",
7132 FT_UINT16, BASE_DEC, NULL, 0x0,
7133 "Identifies the object to which the component belongs", HFILL }
7135 { &hf_cigi3_3_short_component_control_component_class,
7136 { "Component Class", "cigi.short_component_control.component_class",
7137 FT_UINT8, BASE_DEC, VALS(cigi3_3_short_component_control_component_class_vals), 0x3f,
7138 "Identifies the type of object to which the Instance ID parameter refers", HFILL }
7140 { &hf_cigi3_3_short_component_control_component_state,
7141 { "Component State", "cigi.short_component_control.component_state",
7142 FT_UINT8, BASE_DEC, NULL, 0x0,
7143 "Specifies a discrete state for the component", HFILL }
7145 { &hf_cigi3_3_short_component_control_data_1,
7146 { "Component Data 1", "cigi.short_component_control.data_1",
7147 FT_BYTES, BASE_NONE, NULL, 0x0,
7148 "User-defined component data", HFILL }
7150 { &hf_cigi3_3_short_component_control_data_2,
7151 { "Component Data 2", "cigi.short_component_control.data_2",
7152 FT_BYTES, BASE_NONE, NULL, 0x0,
7153 "User-defined component data", HFILL }
7156 /* CIGI2 Articulated Parts Control */
7157 { &hf_cigi2_articulated_parts_control,
7158 { "Articulated Parts Control", "cigi.art_part_control",
7159 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7160 "Articulated Parts Control Packet", HFILL }
7162 { &hf_cigi2_articulated_parts_control_entity_id,
7163 { "Entity ID", "cigi.art_part_control.entity_id",
7164 FT_UINT16, BASE_DEC, NULL, 0x0,
7165 "Identifies the entity to which this data packet will be applied", HFILL }
7167 { &hf_cigi2_articulated_parts_control_part_id,
7168 { "Articulated Part ID", "cigi.art_part_control.part_id",
7169 FT_UINT8, BASE_DEC, NULL, 0x0,
7170 "Identifies which articulated part is controlled with this data packet", HFILL }
7172 { &hf_cigi2_articulated_parts_control_part_state,
7173 { "Articulated Part State", "cigi.art_part_control.part_state",
7174 FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x80,
7175 "Indicates whether an articulated part is to be shown in the display", HFILL }
7177 { &hf_cigi2_articulated_parts_control_xoff_enable,
7178 { "X Offset Enable", "cigi.art_part_control.xoff_enable",
7179 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7180 "Identifies whether the articulated part x offset in this data packet is manipulated from the host", HFILL }
7182 { &hf_cigi2_articulated_parts_control_yoff_enable,
7183 { "Y Offset Enable", "cigi.art_part_control.yoff_enable",
7184 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
7185 "Identifies whether the articulated part y offset in this data packet is manipulated from the host", HFILL }
7187 { &hf_cigi2_articulated_parts_control_zoff_enable,
7188 { "Z Offset Enable", "cigi.art_part_control.zoff_enable",
7189 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
7190 "Identifies whether the articulated part z offset in this data packet is manipulated from the host", HFILL }
7192 { &hf_cigi2_articulated_parts_control_roll_enable,
7193 { "Roll Enable", "cigi.art_part_control.roll_enable",
7194 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
7195 "Identifies whether the articulated part roll enable in this data packet is manipulated from the host", HFILL }
7197 { &hf_cigi2_articulated_parts_control_pitch_enable,
7198 { "Pitch Enable", "cigi.art_part_control.pitch_enable",
7199 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7200 "Identifies whether the articulated part pitch enable in this data packet is manipulated from the host", HFILL }
7202 { &hf_cigi2_articulated_parts_control_yaw_enable,
7203 { "Yaw Enable", "cigi.art_part_control.yaw_enable",
7204 FT_UINT8, BASE_DEC, NULL, 0x02,
7205 "Identifies whether the articulated part yaw enable in this data packet is manipulated from the host", HFILL }
7207 { &hf_cigi2_articulated_parts_control_x_offset,
7208 { "X Offset (m)", "cigi.art_part_control.x_offset",
7209 FT_FLOAT, BASE_NONE, NULL, 0x0,
7210 "Identifies the distance along the X axis by which the articulated part should be moved", HFILL }
7212 { &hf_cigi2_articulated_parts_control_y_offset,
7213 { "Y Offset (m)", "cigi.art_part_control.y_offset",
7214 FT_FLOAT, BASE_NONE, NULL, 0x0,
7215 "Identifies the distance along the Y axis by which the articulated part should be moved", HFILL }
7217 { &hf_cigi2_articulated_parts_control_z_offset,
7218 { "Z Offset (m)", "cigi.art_part_control.z_offset",
7219 FT_FLOAT, BASE_NONE, NULL, 0x0,
7220 "Identifies the distance along the Z axis by which the articulated part should be moved", HFILL }
7222 { &hf_cigi2_articulated_parts_control_roll,
7223 { "Roll (degrees)", "cigi.art_part_control.roll",
7224 FT_FLOAT, BASE_NONE, NULL, 0x0,
7225 "Specifies the roll of this part with respect to the submodel coordinate system", HFILL }
7227 { &hf_cigi2_articulated_parts_control_pitch,
7228 { "Pitch (degrees)", "cigi.art_part_control.pitch",
7229 FT_FLOAT, BASE_NONE, NULL, 0x0,
7230 "Specifies the pitch of this part with respect to the submodel coordinate system", HFILL }
7232 { &hf_cigi2_articulated_parts_control_yaw,
7233 { "Yaw (degrees)", "cigi.art_part_control.yaw",
7234 FT_FLOAT, BASE_NONE, NULL, 0x0,
7235 "Specifies the yaw of this part with respect to the submodel coordinate system", HFILL }
7238 /* CIGI3 Articulated Part Control */
7239 { &hf_cigi3_articulated_part_control,
7240 { "Articulated Part Control", "cigi.art_part_control",
7241 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7242 "Articulated Part Control Packet", HFILL }
7244 { &hf_cigi3_articulated_part_control_entity_id,
7245 { "Entity ID", "cigi.art_part_control.entity_id",
7246 FT_UINT16, BASE_DEC, NULL, 0x0,
7247 "Specifies the entity to which the articulated part belongs", HFILL }
7249 { &hf_cigi3_articulated_part_control_part_id,
7250 { "Articulated Part ID", "cigi.art_part_control.part_id",
7251 FT_UINT8, BASE_DEC, NULL, 0x0,
7252 "Specifies the articulated part to which the data in this packet should be applied", HFILL }
7254 { &hf_cigi3_articulated_part_control_part_enable,
7255 { "Articulated Part Enable", "cigi.art_part_control.part_enable",
7256 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7257 "Determines whether the articulated part submodel should be enabled or disabled within the scene graph", HFILL }
7259 { &hf_cigi3_articulated_part_control_xoff_enable,
7260 { "X Offset Enable", "cigi.art_part_control.xoff_enable",
7261 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7262 "Determines whether the X Offset parameter of the current packet should be applied to the articulated part", HFILL }
7264 { &hf_cigi3_articulated_part_control_yoff_enable,
7265 { "Y Offset Enable", "cigi.art_part_control.yoff_enable",
7266 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7267 "Determines whether the Y Offset parameter of the current packet should be applied to the articulated part", HFILL }
7269 { &hf_cigi3_articulated_part_control_zoff_enable,
7270 { "Z Offset Enable", "cigi.art_part_control.zoff_enable",
7271 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
7272 "Determines whether the Z Offset parameter of the current packet should be applied to the articulated part", HFILL }
7274 { &hf_cigi3_articulated_part_control_roll_enable,
7275 { "Roll Enable", "cigi.art_part_control.roll_enable",
7276 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
7277 "Determines whether the Roll parameter of the current packet should be applied to the articulated part", HFILL }
7279 { &hf_cigi3_articulated_part_control_pitch_enable,
7280 { "Pitch Enable", "cigi.art_part_control.pitch_enable",
7281 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
7282 "Determines whether the Pitch parameter of the current packet should be applied to the articulated part", HFILL }
7284 { &hf_cigi3_articulated_part_control_yaw_enable,
7285 { "Yaw Enable", "cigi.art_part_control.yaw_enable",
7286 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7287 "Determines whether the Yaw parameter of the current packet should be applied to the articulated part", HFILL }
7289 { &hf_cigi3_articulated_part_control_xoff,
7290 { "X Offset (m)", "cigi.art_part_control.xoff",
7291 FT_FLOAT, BASE_NONE, NULL, 0x0,
7292 "Specifies the distance of the articulated part along its X axis", HFILL }
7294 { &hf_cigi3_articulated_part_control_yoff,
7295 { "Y Offset (m)", "cigi.art_part_control.yoff",
7296 FT_FLOAT, BASE_NONE, NULL, 0x0,
7297 "Specifies the distance of the articulated part along its Y axis", HFILL }
7299 { &hf_cigi3_articulated_part_control_zoff,
7300 { "Z Offset (m)", "cigi.art_part_control.zoff",
7301 FT_FLOAT, BASE_NONE, NULL, 0x0,
7302 "Specifies the distance of the articulated part along its Z axis", HFILL }
7304 { &hf_cigi3_articulated_part_control_roll,
7305 { "Roll (degrees)", "cigi.art_part_control.roll",
7306 FT_FLOAT, BASE_NONE, NULL, 0x0,
7307 "Specifies the angle of rotation of the articulated part submodel about its X axis after yaw and pitch have been applied", HFILL }
7309 { &hf_cigi3_articulated_part_control_pitch,
7310 { "Pitch (degrees)", "cigi.art_part_control.pitch",
7311 FT_FLOAT, BASE_NONE, NULL, 0x0,
7312 "Specifies the angle of rotation of the articulated part submodel about its Y axis after yaw has been applied", HFILL }
7314 { &hf_cigi3_articulated_part_control_yaw,
7315 { "Yaw (degrees)", "cigi.art_part_control.yaw",
7316 FT_FLOAT, BASE_NONE, NULL, 0x0,
7317 "Specifies the angle of rotation of the articulated part about its Z axis", HFILL }
7320 /* CIGI3 Short Articulated Part Control */
7321 { &hf_cigi3_short_articulated_part_control,
7322 { "Short Articulated Part Control", "cigi.short_art_part_control",
7323 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7324 "Short Articulated Part Control Packet", HFILL }
7326 { &hf_cigi3_short_articulated_part_control_entity_id,
7327 { "Entity ID", "cigi.short_art_part_control.entity_id",
7328 FT_UINT16, BASE_DEC, NULL, 0x0,
7329 "Specifies the entity to which the articulated part(s) belongs", HFILL }
7331 { &hf_cigi3_short_articulated_part_control_part_id_1,
7332 { "Articulated Part ID 1", "cigi.short_art_part_control.part_id_1",
7333 FT_UINT8, BASE_DEC, NULL, 0x0,
7334 "Specifies an articulated part to which the data in this packet should be applied", HFILL }
7336 { &hf_cigi3_short_articulated_part_control_part_id_2,
7337 { "Articulated Part ID 2", "cigi.short_art_part_control.part_id_2",
7338 FT_UINT8, BASE_DEC, NULL, 0x0,
7339 "Specifies an articulated part to which the data in this packet should be applied", HFILL }
7341 { &hf_cigi3_short_articulated_part_control_dof_select_1,
7342 { "DOF Select 1", "cigi.short_art_part_control.dof_select_1",
7343 FT_UINT8, BASE_DEC, VALS(cigi3_short_articulated_part_control_dof_select_vals), 0x07,
7344 "Specifies the degree of freedom to which the value of DOF 1 is applied", HFILL }
7346 { &hf_cigi3_short_articulated_part_control_dof_select_2,
7347 { "DOF Select 2", "cigi.short_art_part_control.dof_select_2",
7348 FT_UINT8, BASE_DEC, VALS(cigi3_short_articulated_part_control_dof_select_vals), 0x38,
7349 "Specifies the degree of freedom to which the value of DOF 2 is applied", HFILL }
7351 { &hf_cigi3_short_articulated_part_control_part_enable_1,
7352 { "Articulated Part Enable 1", "cigi.short_art_part_control.part_enable_1",
7353 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7354 "Determines whether the articulated part submodel specified by Articulated Part ID 1 should be enabled or disabled within the scene graph", HFILL }
7356 { &hf_cigi3_short_articulated_part_control_part_enable_2,
7357 { "Articulated Part Enable 2", "cigi.short_art_part_control.part_enable_2",
7358 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
7359 "Determines whether the articulated part submodel specified by Articulated Part ID 2 should be enabled or disabled within the scene graph", HFILL }
7361 { &hf_cigi3_short_articulated_part_control_dof_1,
7362 { "DOF 1", "cigi.short_art_part_control.dof_1",
7363 FT_FLOAT, BASE_NONE, NULL, 0x0,
7364 "Specifies either an offset or an angular position for the part identified by Articulated Part ID 1", HFILL }
7366 { &hf_cigi3_short_articulated_part_control_dof_2,
7367 { "DOF 2", "cigi.short_art_part_control.dof_2",
7368 FT_FLOAT, BASE_NONE, NULL, 0x0,
7369 "Specifies either an offset or an angular position for the part identified by Articulated Part ID 2", HFILL }
7372 /* CIGI2 Rate Control */
7373 { &hf_cigi2_rate_control,
7374 { "Rate Control", "cigi.rate_control",
7375 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7376 "Rate Control Packet", HFILL }
7378 { &hf_cigi2_rate_control_entity_id,
7379 { "Entity ID", "cigi.rate_control.entity_id",
7380 FT_UINT16, BASE_DEC, NULL, 0x0,
7381 "Specifies the entity to which this data packet will be applied", HFILL }
7383 { &hf_cigi2_rate_control_part_id,
7384 { "Articulated Part ID", "cigi.rate_control.part_id",
7385 FT_INT8, BASE_DEC, NULL, 0x0,
7386 "Identifies which articulated part is controlled with this data packet", HFILL }
7388 { &hf_cigi2_rate_control_x_rate,
7389 { "X Linear Rate (m/s)", "cigi.rate_control.x_rate",
7390 FT_FLOAT, BASE_NONE, NULL, 0x0,
7391 "Specifies the x component of the velocity vector for the entity being represented", HFILL }
7393 { &hf_cigi2_rate_control_y_rate,
7394 { "Y Linear Rate (m/s)", "cigi.rate_control.y_rate",
7395 FT_FLOAT, BASE_NONE, NULL, 0x0,
7396 "Specifies the y component of the velocity vector for the entity being represented", HFILL }
7398 { &hf_cigi2_rate_control_z_rate,
7399 { "Z Linear Rate (m/s)", "cigi.rate_control.z_rate",
7400 FT_FLOAT, BASE_NONE, NULL, 0x0,
7401 "Specifies the z component of the velocity vector for the entity being represented", HFILL }
7403 { &hf_cigi2_rate_control_roll_rate,
7404 { "Roll Angular Rate (degrees/s)", "cigi.rate_control.roll_rate",
7405 FT_FLOAT, BASE_NONE, NULL, 0x0,
7406 "Specifies the roll angular rate for the entity being represented", HFILL }
7408 { &hf_cigi2_rate_control_pitch_rate,
7409 { "Pitch Angular Rate (degrees/s)", "cigi.rate_control.pitch_rate",
7410 FT_FLOAT, BASE_NONE, NULL, 0x0,
7411 "Specifies the pitch angular rate for the entity being represented", HFILL }
7413 { &hf_cigi2_rate_control_yaw_rate,
7414 { "Yaw Angular Rate (degrees/s)", "cigi.rate_control.yaw_rate",
7415 FT_FLOAT, BASE_NONE, NULL, 0x0,
7416 "Specifies the yaw angular rate for the entity being represented", HFILL }
7419 /* CIGI3 Rate Control */
7420 { &hf_cigi3_rate_control,
7421 { "Rate Control", "cigi.rate_control",
7422 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7423 "Rate Control Packet", HFILL }
7425 { &hf_cigi3_rate_control_entity_id,
7426 { "Entity ID", "cigi.rate_control.entity_id",
7427 FT_UINT16, BASE_DEC, NULL, 0x0,
7428 "Specifies the entity to which the rate should be applied", HFILL }
7430 { &hf_cigi3_rate_control_part_id,
7431 { "Articulated Part ID", "cigi.rate_control.part_id",
7432 FT_UINT8, BASE_DEC, NULL, 0x0,
7433 "Specifies the articulated part to which the rate should be applied", HFILL }
7435 { &hf_cigi3_rate_control_apply_to_part,
7436 { "Apply to Articulated Part", "cigi.rate_control.apply_to_part",
7437 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x01,
7438 "Determines whether the rate is applied to the articulated part specified by the Articulated Part ID parameter", HFILL }
7440 { &hf_cigi3_rate_control_x_rate,
7441 { "X Linear Rate (m/s)", "cigi.rate_control.x_rate",
7442 FT_FLOAT, BASE_NONE, NULL, 0x0,
7443 "Specifies the X component of a linear velocity vector", HFILL }
7445 { &hf_cigi3_rate_control_y_rate,
7446 { "Y Linear Rate (m/s)", "cigi.rate_control.y_rate",
7447 FT_FLOAT, BASE_NONE, NULL, 0x0,
7448 "Specifies the Y component of a linear velocity vector", HFILL }
7450 { &hf_cigi3_rate_control_z_rate,
7451 { "Z Linear Rate (m/s)", "cigi.rate_control.z_rate",
7452 FT_FLOAT, BASE_NONE, NULL, 0x0,
7453 "Specifies the Z component of a linear velocity vector", HFILL }
7455 { &hf_cigi3_rate_control_roll_rate,
7456 { "Roll Angular Rate (degrees/s)", "cigi.rate_control.roll_rate",
7457 FT_FLOAT, BASE_NONE, NULL, 0x0,
7458 "Specifies the angle of rotation of the articulated part submodel about its X axis after yaw and pitch have been applied", HFILL }
7460 { &hf_cigi3_rate_control_pitch_rate,
7461 { "Pitch Angular Rate (degrees/s)", "cigi.rate_control.pitch_rate",
7462 FT_FLOAT, BASE_NONE, NULL, 0x0,
7463 "Specifies the angle of rotation of the articulated part submodel about its Y axis after yaw has been applied", HFILL }
7465 { &hf_cigi3_rate_control_yaw_rate,
7466 { "Yaw Angular Rate (degrees/s)", "cigi.rate_control.yaw_rate",
7467 FT_FLOAT, BASE_NONE, NULL, 0x0,
7468 "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 }
7471 /* CIGI3_2 Rate Control */
7472 { &hf_cigi3_2_rate_control,
7473 { "Rate Control", "cigi.rate_control",
7474 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7475 "Rate Control Packet", HFILL }
7477 { &hf_cigi3_2_rate_control_entity_id,
7478 { "Entity ID", "cigi.rate_control.entity_id",
7479 FT_UINT16, BASE_DEC, NULL, 0x0,
7480 "Specifies the entity to which the rate should be applied", HFILL }
7482 { &hf_cigi3_2_rate_control_part_id,
7483 { "Articulated Part ID", "cigi.rate_control.part_id",
7484 FT_UINT8, BASE_DEC, NULL, 0x0,
7485 "Specifies the articulated part to which the rate should be applied", HFILL }
7487 { &hf_cigi3_2_rate_control_apply_to_part,
7488 { "Apply to Articulated Part", "cigi.rate_control.apply_to_part",
7489 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x01,
7490 "Determines whether the rate is applied to the articulated part specified by the Articulated Part ID parameter", HFILL }
7492 { &hf_cigi3_2_rate_control_coordinate_system,
7493 { "Coordinate System", "cigi.rate_control.coordinate_system",
7494 FT_BOOLEAN, 8, TFS(&cigi3_2_rate_control_coord_sys_select_vals), 0x02,
7495 "Specifies the reference coordinate system to which the linear and angular rates are applied", HFILL }
7497 { &hf_cigi3_2_rate_control_x_rate,
7498 { "X Linear Rate (m/s)", "cigi.rate_control.x_rate",
7499 FT_FLOAT, BASE_NONE, NULL, 0x0,
7500 "Specifies the X component of a linear velocity vector", HFILL }
7502 { &hf_cigi3_2_rate_control_y_rate,
7503 { "Y Linear Rate (m/s)", "cigi.rate_control.y_rate",
7504 FT_FLOAT, BASE_NONE, NULL, 0x0,
7505 "Specifies the Y component of a linear velocity vector", HFILL }
7507 { &hf_cigi3_2_rate_control_z_rate,
7508 { "Z Linear Rate (m/s)", "cigi.rate_control.z_rate",
7509 FT_FLOAT, BASE_NONE, NULL, 0x0,
7510 "Specifies the Z component of a linear velocity vector", HFILL }
7512 { &hf_cigi3_2_rate_control_roll_rate,
7513 { "Roll Angular Rate (degrees/s)", "cigi.rate_control.roll_rate",
7514 FT_FLOAT, BASE_NONE, NULL, 0x0,
7515 "Specifies the angle of rotation of the articulated part submodel about its X axis after yaw and pitch have been applied", HFILL }
7517 { &hf_cigi3_2_rate_control_pitch_rate,
7518 { "Pitch Angular Rate (degrees/s)", "cigi.rate_control.pitch_rate",
7519 FT_FLOAT, BASE_NONE, NULL, 0x0,
7520 "Specifies the angle of rotation of the articulated part submodel about its Y axis after yaw has been applied", HFILL }
7522 { &hf_cigi3_2_rate_control_yaw_rate,
7523 { "Yaw Angular Rate (degrees/s)", "cigi.rate_control.yaw_rate",
7524 FT_FLOAT, BASE_NONE, NULL, 0x0,
7525 "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 }
7528 /* CIGI3 Celestial Sphere Control */
7529 { &hf_cigi3_celestial_sphere_control,
7530 { "Celestial Sphere Control", "cigi.celestial_sphere_control",
7531 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7532 "Celestial Sphere Control Packet", HFILL }
7534 { &hf_cigi3_celestial_sphere_control_hour,
7535 { "Hour (h)", "cigi.celestial_sphere_control.hour",
7536 FT_UINT8, BASE_DEC, NULL, 0x0,
7537 "Specifies the current hour of the day within the simulation", HFILL }
7539 { &hf_cigi3_celestial_sphere_control_minute,
7540 { "Minute (min)", "cigi.celestial_sphere_control.minute",
7541 FT_UINT8, BASE_DEC, NULL, 0x0,
7542 "Specifies the current minute of the day within the simulation", HFILL }
7544 { &hf_cigi3_celestial_sphere_control_ephemeris_enable,
7545 { "Ephemeris Model Enable", "cigi.celestial_sphere_control.ephemeris_enable",
7546 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7547 "Controls whether the time of day is static or continuous", HFILL }
7549 { &hf_cigi3_celestial_sphere_control_sun_enable,
7550 { "Sun Enable", "cigi.celestial_sphere_control.sun_enable",
7551 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7552 "Specifies whether the sun is enabled in the sky model", HFILL }
7554 { &hf_cigi3_celestial_sphere_control_moon_enable,
7555 { "Moon Enable", "cigi.celestial_sphere_control.moon_enable",
7556 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7557 "Specifies whether the moon is enabled in the sky model", HFILL }
7559 { &hf_cigi3_celestial_sphere_control_star_enable,
7560 { "Star Field Enable", "cigi.celestial_sphere_control.star_enable",
7561 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
7562 "Specifies whether the start field is enabled in the sky model", HFILL }
7564 { &hf_cigi3_celestial_sphere_control_date_time_valid,
7565 { "Date/Time Valid", "cigi.celestial_sphere_control.date_time_valid",
7566 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
7567 "Specifies whether the Hour, Minute, and Date parameters are valid", HFILL }
7569 { &hf_cigi3_celestial_sphere_control_date,
7570 { "Date (MMDDYYYY)", "cigi.celestial_sphere_control.date",
7571 FT_UINT32, BASE_DEC, NULL, 0x0,
7572 "Specifies the current date within the simulation", HFILL }
7574 { &hf_cigi3_celestial_sphere_control_star_intensity,
7575 { "Star Field Intensity (%)", "cigi.celestial_sphere_control.star_intensity",
7576 FT_FLOAT, BASE_NONE, NULL, 0x0,
7577 "Specifies the intensity of the star field within the sky model", HFILL }
7580 /* CIGI3 Atmosphere Control */
7581 { &hf_cigi3_atmosphere_control,
7582 { "Atmosphere Control", "cigi.atmosphere_control",
7583 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7584 "Atmosphere Control Packet", HFILL }
7586 { &hf_cigi3_atmosphere_control_atmospheric_model_enable,
7587 { "Atmospheric Model Enable", "cigi.atmosphere_control.atmospheric_model_enable",
7588 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7589 "Specifies whether the IG should use an atmospheric model to determine spectral radiances for sensor applications", HFILL }
7591 { &hf_cigi3_atmosphere_control_humidity,
7592 { "Global Humidity (%)", "cigi.atmosphere_control.humidity",
7593 FT_UINT8, BASE_DEC, NULL, 0x0,
7594 "Specifies the global humidity of the environment", HFILL }
7596 { &hf_cigi3_atmosphere_control_air_temp,
7597 { "Global Air Temperature (degrees C)", "cigi.atmosphere_control.air_temp",
7598 FT_FLOAT, BASE_NONE, NULL, 0x0,
7599 "Specifies the global air temperature of the environment", HFILL }
7601 { &hf_cigi3_atmosphere_control_visibility_range,
7602 { "Global Visibility Range (m)", "cigi.atmosphere_control.visibility_range",
7603 FT_FLOAT, BASE_NONE, NULL, 0x0,
7604 "Specifies the global visibility range through the atmosphere", HFILL }
7606 { &hf_cigi3_atmosphere_control_horiz_wind,
7607 { "Global Horizontal Wind Speed (m/s)", "cigi.atmosphere_control.horiz_wind",
7608 FT_FLOAT, BASE_NONE, NULL, 0x0,
7609 "Specifies the global wind speed parallel to the ellipsoid-tangential reference plane", HFILL }
7611 { &hf_cigi3_atmosphere_control_vert_wind,
7612 { "Global Vertical Wind Speed (m/s)", "cigi.atmosphere_control.vert_wind",
7613 FT_FLOAT, BASE_NONE, NULL, 0x0,
7614 "Specifies the global vertical wind speed", HFILL }
7616 { &hf_cigi3_atmosphere_control_wind_direction,
7617 { "Global Wind Direction (degrees)", "cigi.atmosphere_control.wind_direction",
7618 FT_FLOAT, BASE_NONE, NULL, 0x0,
7619 "Specifies the global wind direction", HFILL }
7621 { &hf_cigi3_atmosphere_control_barometric_pressure,
7622 { "Global Barometric Pressure (mb or hPa)", "cigi.atmosphere_control.barometric_pressure",
7623 FT_FLOAT, BASE_NONE, NULL, 0x0,
7624 "Specifies the global atmospheric pressure", HFILL }
7627 /* CIGI2 Environmental Control */
7628 { &hf_cigi2_environment_control,
7629 { "Environment Control", "cigi.env_control",
7630 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7631 "Environment Control Packet", HFILL }
7633 { &hf_cigi2_environment_control_hour,
7634 { "Hour (h)", "cigi.env_control.hour",
7635 FT_UINT8, BASE_DEC, NULL, 0x0,
7636 "Identifies the hour of the day for the ephemeris program within the image generator", HFILL }
7638 { &hf_cigi2_environment_control_minute,
7639 { "Minute (min)", "cigi.env_control.minute",
7640 FT_UINT8, BASE_DEC, NULL, 0x0,
7641 "Identifies the minute of the hour for the ephemeris program within the image generator", HFILL }
7643 { &hf_cigi2_environment_control_ephemeris_enable,
7644 { "Ephemeris Enable", "cigi.env_control.ephemeris_enable",
7645 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
7646 "Identifies whether a continuous time of day or static time of day is used", HFILL }
7648 { &hf_cigi2_environment_control_humidity,
7649 { "Humidity (%)", "cigi.env_control.humidity",
7650 FT_UINT8, BASE_DEC, NULL, 0x7f,
7651 "Specifies the global humidity of the environment", HFILL }
7653 { &hf_cigi2_environment_control_modtran_enable,
7654 { "MODTRAN", "cigi.env_control.modtran_enable",
7655 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x80,
7656 "Identifies whether atmospherics will be included in the calculations", HFILL }
7658 { &hf_cigi2_environment_control_date,
7659 { "Date (MMDDYYYY)", "cigi.env_control.date",
7660 FT_INT32, BASE_DEC, NULL, 0x0,
7661 "Specifies the desired date for use by the ephemeris program within the image generator", HFILL }
7663 { &hf_cigi2_environment_control_air_temp,
7664 { "Air Temperature (degrees C)", "cigi.env_control.air_temp",
7665 FT_FLOAT, BASE_NONE, NULL, 0x0,
7666 "Identifies the global temperature of the environment", HFILL }
7668 { &hf_cigi2_environment_control_global_visibility,
7669 { "Global Visibility (m)", "cigi.env_control.global_visibility",
7670 FT_FLOAT, BASE_NONE, NULL, 0x0,
7671 "Identifies the global visibility", HFILL }
7673 { &hf_cigi2_environment_control_wind_speed,
7674 { "Wind Speed (m/s)", "cigi.env_control.wind_speed",
7675 FT_FLOAT, BASE_NONE, NULL, 0x0,
7676 "Identifies the global wind speed", HFILL }
7678 { &hf_cigi2_environment_control_wind_direction,
7679 { "Wind Direction (degrees)", "cigi.env_control.wind_direction",
7680 FT_FLOAT, BASE_NONE, NULL, 0x0,
7681 "Identifies the global wind direction", HFILL }
7683 { &hf_cigi2_environment_control_pressure,
7684 { "Barometric Pressure (mb)", "cigi.env_control.pressure",
7685 FT_FLOAT, BASE_NONE, NULL, 0x0,
7686 "Controls the atmospheric pressure input into MODTRAN", HFILL }
7688 { &hf_cigi2_environment_control_aerosol,
7689 { "Aerosol (gm/m^3)", "cigi.env_control.aerosol",
7690 FT_FLOAT, BASE_NONE, NULL, 0x0,
7691 "Controls the liquid water content for the defined atmosphere", HFILL }
7694 /* CIGI3 Environmental Region Control */
7695 { &hf_cigi3_environmental_region_control,
7696 { "Environmental Region Control", "cigi.env_region_control",
7697 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7698 "Environmental Region Control Packet", HFILL }
7700 { &hf_cigi3_environmental_region_control_region_id,
7701 { "Region ID", "cigi.env_region_control.region_id",
7702 FT_UINT16, BASE_DEC, NULL, 0x0,
7703 "Specifies the environmental region to which the data in this packet will be applied", HFILL }
7705 { &hf_cigi3_environmental_region_control_region_state,
7706 { "Region State", "cigi.env_region_control.region_state",
7707 FT_UINT8, BASE_DEC, VALS(cigi3_environmental_region_control_region_state_vals), 0x03,
7708 "Specifies whether the region should be active or destroyed", HFILL }
7710 { &hf_cigi3_environmental_region_control_merge_weather,
7711 { "Merge Weather Properties", "cigi.env_region_control.merge_weather",
7712 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x04,
7713 "Specifies whether atmospheric conditions within this region should be merged with those of other regions within areas of overlap", HFILL }
7715 { &hf_cigi3_environmental_region_control_merge_aerosol,
7716 { "Merge Aerosol Concentrations", "cigi.env_region_control.merge_aerosol",
7717 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x08,
7718 "Specifies whether the concentrations of aerosols found within this region should be merged with those of other regions within areas of overlap", HFILL }
7720 { &hf_cigi3_environmental_region_control_merge_maritime,
7721 { "Merge Maritime Surface Conditions", "cigi.env_region_control.merge_maritime",
7722 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x10,
7723 "Specifies whether the maritime surface conditions found within this region should be merged with those of other regions within areas of overlap", HFILL }
7725 { &hf_cigi3_environmental_region_control_merge_terrestrial,
7726 { "Merge Terrestrial Surface Conditions", "cigi.env_region_control.merge_terrestrial",
7727 FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x20,
7728 "Specifies whether the terrestrial surface conditions found within this region should be merged with those of other regions within areas of overlap", HFILL }
7730 { &hf_cigi3_environmental_region_control_lat,
7731 { "Latitude (degrees)", "cigi.env_region_control.lat",
7732 FT_DOUBLE, BASE_NONE, NULL, 0x0,
7733 "Specifies the geodetic latitude of the center of the rounded rectangle", HFILL }
7735 { &hf_cigi3_environmental_region_control_lon,
7736 { "Longitude (degrees)", "cigi.env_region_control.lon",
7737 FT_DOUBLE, BASE_NONE, NULL, 0x0,
7738 "Specifies the geodetic longitude of the center of the rounded rectangle", HFILL }
7740 { &hf_cigi3_environmental_region_control_size_x,
7741 { "Size X (m)", "cigi.env_region_control.size_x",
7742 FT_FLOAT, BASE_NONE, NULL, 0x0,
7743 "Specifies the length of the environmental region along its X axis at the geoid surface", HFILL }
7745 { &hf_cigi3_environmental_region_control_size_y,
7746 { "Size Y (m)", "cigi.env_region_control.size_y",
7747 FT_FLOAT, BASE_NONE, NULL, 0x0,
7748 "Specifies the length of the environmental region along its Y axis at the geoid surface", HFILL }
7750 { &hf_cigi3_environmental_region_control_corner_radius,
7751 { "Corner Radius (m)", "cigi.env_region_control.corner_radius",
7752 FT_FLOAT, BASE_NONE, NULL, 0x0,
7753 "Specifies the radius of the corner of the rounded rectangle", HFILL }
7755 { &hf_cigi3_environmental_region_control_rotation,
7756 { "Rotation (degrees)", "cigi.env_region_control.rotation",
7757 FT_FLOAT, BASE_NONE, NULL, 0x0,
7758 "Specifies the yaw angle of the rounded rectangle", HFILL }
7760 { &hf_cigi3_environmental_region_control_transition_perimeter,
7761 { "Transition Perimeter (m)", "cigi.env_region_control.transition_perimeter",
7762 FT_FLOAT, BASE_NONE, NULL, 0x0,
7763 "Specifies the width of the transition perimeter around the environmental region", HFILL }
7766 /* CIGI2 Weather Control */
7767 { &hf_cigi2_weather_control,
7768 { "Weather Control", "cigi.weather_control",
7769 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7770 "Weather Control Packet", HFILL }
7772 { &hf_cigi2_weather_control_entity_id,
7773 { "Entity ID", "cigi.weather_control.entity_id",
7774 FT_UINT16, BASE_DEC, NULL, 0x0,
7775 "Identifies the entity's ID", HFILL }
7777 { &hf_cigi2_weather_control_weather_enable,
7778 { "Weather Enable", "cigi.weather_control.weather_enable",
7779 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
7780 "Indicates whether the phenomena specified by this data packet is visible", HFILL }
7782 { &hf_cigi2_weather_control_scud_enable,
7783 { "Scud Enable", "cigi.weather_control.scud_enable",
7784 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
7785 "Indicates whether there will be scud effects applied to the phenomenon specified by this data packet", HFILL }
7787 { &hf_cigi2_weather_control_random_winds,
7788 { "Random Winds Aloft", "cigi.weather_control.random_winds",
7789 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
7790 "Indicates whether a random frequency and duration should be applied to the winds aloft value", HFILL }
7792 { &hf_cigi2_weather_control_severity,
7793 { "Severity", "cigi.weather_control.severity",
7794 FT_UINT8, BASE_DEC, NULL, 0x1c,
7795 "Indicates the severity of the weather phenomenon", HFILL }
7797 { &hf_cigi2_weather_control_phenomenon_type,
7798 { "Phenomenon Type", "cigi.weather_control.phenomenon_type",
7799 FT_UINT16, BASE_DEC, VALS(cigi2_weather_control_phenomenon_type_vals), 0x0,
7800 "Identifies the type of weather described by this data packet", HFILL }
7802 { &hf_cigi2_weather_control_air_temp,
7803 { "Air Temperature (degrees C)", "cigi.weather_control.air_temp",
7804 FT_FLOAT, BASE_NONE, NULL, 0x0,
7805 "Identifies the local temperature inside the weather phenomenon", HFILL }
7807 { &hf_cigi2_weather_control_opacity,
7808 { "Opacity (%)", "cigi.weather_control.opacity",
7809 FT_FLOAT, BASE_NONE, NULL, 0x0,
7810 "Identifies the opacity of the weather phenomenon", HFILL }
7812 { &hf_cigi2_weather_control_scud_frequency,
7813 { "Scud Frequency (%)", "cigi.weather_control.scud_frequency",
7814 FT_FLOAT, BASE_NONE, NULL, 0x0,
7815 "Identifies the frequency for the scud effect", HFILL }
7817 { &hf_cigi2_weather_control_coverage,
7818 { "Coverage (%)", "cigi.weather_control.coverage",
7819 FT_FLOAT, BASE_NONE, NULL, 0x0,
7820 "Indicates the amount of area coverage a particular phenomenon has over the specified global visibility range given in the environment control data packet", HFILL }
7822 { &hf_cigi2_weather_control_elevation,
7823 { "Elevation (m)", "cigi.weather_control.elevation",
7824 FT_FLOAT, BASE_NONE, NULL, 0x0,
7825 "Indicates the base altitude of the weather phenomenon", HFILL }
7827 { &hf_cigi2_weather_control_thickness,
7828 { "Thickness (m)", "cigi.weather_control.thickness",
7829 FT_FLOAT, BASE_NONE, NULL, 0x0,
7830 "Indicates the vertical thickness of the weather phenomenon", HFILL }
7832 { &hf_cigi2_weather_control_transition_band,
7833 { "Transition Band (m)", "cigi.weather_control.transition_band",
7834 FT_FLOAT, BASE_NONE, NULL, 0x0,
7835 "Indicates a vertical transition band both above and below a phenomenon", HFILL }
7837 { &hf_cigi2_weather_control_wind_speed,
7838 { "Winds Aloft Speed", "cigi.weather_control.wind_speed",
7839 FT_FLOAT, BASE_NONE, NULL, 0x0,
7840 "Identifies the local wind speed applied to the phenomenon", HFILL }
7842 { &hf_cigi2_weather_control_wind_direction,
7843 { "Winds Aloft Direction (degrees)", "cigi.weather_control.wind_direction",
7844 FT_FLOAT, BASE_NONE, NULL, 0x0,
7845 "Indicates local direction of the wind applied to the phenomenon", HFILL }
7848 /* CIGI3 Weather Control */
7849 { &hf_cigi3_weather_control,
7850 { "Weather Control", "cigi.weather_control",
7851 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7852 "Weather Control Packet", HFILL }
7854 { &hf_cigi3_weather_control_entity_region_id,
7855 { "Entity ID/Region ID", "cigi.weather_control.entity_region_id",
7856 FT_UINT16, BASE_DEC, NULL, 0x0,
7857 "Specifies the entity to which the weather attributes in this packet are applied", HFILL }
7859 { &hf_cigi3_weather_control_layer_id,
7860 { "Layer ID", "cigi.weather_control.layer_id",
7861 FT_UINT8, BASE_DEC, VALS(cigi3_weather_control_layer_id_vals), 0x0,
7862 "Specifies the weather layer to which the data in this packet are applied", HFILL }
7864 { &hf_cigi3_weather_control_humidity,
7865 { "Humidity (%)", "cigi.weather_control.humidity",
7866 FT_UINT8, BASE_DEC, NULL, 0x0,
7867 "Specifies the humidity within the weather layer", HFILL }
7869 { &hf_cigi3_weather_control_weather_enable,
7870 { "Weather Enable", "cigi.weather_control.weather_enable",
7871 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7872 "Specifies whether a weather layer and its atmospheric effects are enabled", HFILL }
7874 { &hf_cigi3_weather_control_scud_enable,
7875 { "Scud Enable", "cigi.weather_control.scud_enable",
7876 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7877 "Specifies whether weather layer produces scud effects within its transition bands", HFILL }
7879 { &hf_cigi3_weather_control_random_winds_enable,
7880 { "Random Winds Enable", "cigi.weather_control.random_winds_enable",
7881 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
7882 "Specifies whether a random frequency and duration should be applied to the local wind effects", HFILL }
7884 { &hf_cigi3_weather_control_random_lightning_enable,
7885 { "Random Lightning Enable", "cigi.weather_control.random_lightning_enable",
7886 FT_UINT8, BASE_DEC, NULL, 0x08,
7887 "Specifies whether the weather layer exhibits random lightning effects", HFILL }
7889 { &hf_cigi3_weather_control_cloud_type,
7890 { "Cloud Type", "cigi.weather_control.cloud_type",
7891 FT_UINT8, BASE_DEC, VALS(cigi3_weather_control_cloud_type_vals), 0xf0,
7892 "Specifies the type of clouds contained within the weather layer", HFILL }
7894 { &hf_cigi3_weather_control_scope,
7895 { "Scope", "cigi.weather_control.scope",
7896 FT_UINT8, BASE_DEC, VALS(cigi3_weather_control_scope_vals), 0x03,
7897 "Specifies whether the weather is global, regional, or assigned to an entity", HFILL }
7899 { &hf_cigi3_weather_control_severity,
7900 { "Severity", "cigi.weather_control.severity",
7901 FT_UINT8, BASE_DEC, NULL, 0x1c,
7902 "Specifies the severity of the weather layer", HFILL }
7904 { &hf_cigi3_weather_control_air_temp,
7905 { "Air Temperature (degrees C)", "cigi.weather_control.air_temp",
7906 FT_FLOAT, BASE_NONE, NULL, 0x0,
7907 "Specifies the temperature within the weather layer", HFILL }
7909 { &hf_cigi3_weather_control_visibility_range,
7910 { "Visibility Range (m)", "cigi.weather_control.visibility_range",
7911 FT_FLOAT, BASE_NONE, NULL, 0x0,
7912 "Specifies the visibility range through the weather layer", HFILL }
7914 { &hf_cigi3_weather_control_scud_frequency,
7915 { "Scud Frequency (%)", "cigi.weather_control.scud_frequency",
7916 FT_FLOAT, BASE_NONE, NULL, 0x0,
7917 "Specifies the frequency of scud within the transition bands above and/or below a cloud or fog layer", HFILL }
7919 { &hf_cigi3_weather_control_coverage,
7920 { "Coverage (%)", "cigi.weather_control.coverage",
7921 FT_FLOAT, BASE_NONE, NULL, 0x0,
7922 "Specifies the amount of area coverage for the weather layer", HFILL }
7924 { &hf_cigi3_weather_control_base_elevation,
7925 { "Base Elevation (m)", "cigi.weather_control.base_elevation",
7926 FT_FLOAT, BASE_NONE, NULL, 0x0,
7927 "Specifies the altitude of the base of the weather layer", HFILL }
7929 { &hf_cigi3_weather_control_thickness,
7930 { "Thickness (m)", "cigi.weather_control.thickness",
7931 FT_FLOAT, BASE_NONE, NULL, 0x0,
7932 "Specifies the vertical thickness of the weather layer", HFILL }
7934 { &hf_cigi3_weather_control_transition_band,
7935 { "Transition Band (m)", "cigi.weather_control.transition_band",
7936 FT_FLOAT, BASE_NONE, NULL, 0x0,
7937 "Specifies the height of a vertical transition band both above and below the weather layer", HFILL }
7939 { &hf_cigi3_weather_control_horiz_wind,
7940 { "Horizontal Wind Speed (m/s)", "cigi.weather_control.horiz_wind",
7941 FT_FLOAT, BASE_NONE, NULL, 0x0,
7942 "Specifies the local wind speed parallel to the ellipsoid-tangential reference plane", HFILL }
7944 { &hf_cigi3_weather_control_vert_wind,
7945 { "Vertical Wind Speed (m/s)", "cigi.weather_control.vert_wind",
7946 FT_FLOAT, BASE_NONE, NULL, 0x0,
7947 "Specifies the local vertical wind speed", HFILL }
7949 { &hf_cigi3_weather_control_wind_direction,
7950 { "Wind Direction (degrees)", "cigi.weather_control.wind_direction",
7951 FT_FLOAT, BASE_NONE, NULL, 0x0,
7952 "Specifies the local wind direction", HFILL }
7954 { &hf_cigi3_weather_control_barometric_pressure,
7955 { "Barometric Pressure (mb or hPa)", "cigi.weather_control.barometric_pressure",
7956 FT_FLOAT, BASE_NONE, NULL, 0x0,
7957 "Specifies the atmospheric pressure within the weather layer", HFILL }
7959 { &hf_cigi3_weather_control_aerosol_concentration,
7960 { "Aerosol Concentration (g/m^3)", "cigi.weather_control.aerosol_concentration",
7961 FT_FLOAT, BASE_NONE, NULL, 0x0,
7962 "Specifies the concentration of water, smoke, dust, or other particles suspended in the air", HFILL }
7965 /* CIGI3 Maritime Surface Conditions Control */
7966 { &hf_cigi3_maritime_surface_conditions_control,
7967 { "Maritime Surface Conditions Control", "cigi.maritime_surface_conditions_control",
7968 FT_STRINGZ, BASE_NONE, NULL, 0x0,
7969 "Maritime Surface Conditions Control Packet", HFILL }
7971 { &hf_cigi3_maritime_surface_conditions_control_entity_region_id,
7972 { "Entity ID/Region ID", "cigi.maritime_surface_conditions_control.entity_region_id",
7973 FT_UINT16, BASE_DEC, NULL, 0x0,
7974 "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 }
7976 { &hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable,
7977 { "Surface Conditions Enable", "cigi.maritime_surface_conditions_control.surface_conditions_enable",
7978 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
7979 "Determines the state of the specified surface conditions", HFILL }
7981 { &hf_cigi3_maritime_surface_conditions_control_whitecap_enable,
7982 { "Whitecap Enable", "cigi.maritime_surface_conditions_control.whitecap_enable",
7983 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
7984 "Determines whether whitecaps are enabled", HFILL }
7986 { &hf_cigi3_maritime_surface_conditions_control_scope,
7987 { "Scope", "cigi.maritime_surface_conditions_control.scope",
7988 FT_UINT8, BASE_DEC, VALS(cigi3_maritime_surface_conditions_control_scope_vals), 0x0c,
7989 "Specifies whether this packet is applied globally, applied to region, or assigned to an entity", HFILL }
7991 { &hf_cigi3_maritime_surface_conditions_control_sea_surface_height,
7992 { "Sea Surface Height (m)", "cigi.maritime_surface_conditions_control.sea_surface_height",
7993 FT_FLOAT, BASE_NONE, NULL, 0x0,
7994 "Specifies the height of the water above MSL at equilibrium", HFILL }
7996 { &hf_cigi3_maritime_surface_conditions_control_surface_water_temp,
7997 { "Surface Water Temperature (degrees C)", "cigi.maritime_surface_conditions_control.surface_water_temp",
7998 FT_FLOAT, BASE_NONE, NULL, 0x0,
7999 "Specifies the water temperature at the surface", HFILL }
8001 { &hf_cigi3_maritime_surface_conditions_control_surface_clarity,
8002 { "Surface Clarity (%)", "cigi.maritime_surface_conditions_control.surface_clarity",
8003 FT_FLOAT, BASE_NONE, NULL, 0x0,
8004 "Specifies the clarity of the water at its surface", HFILL }
8007 /* CIGI3 Wave Control */
8008 { &hf_cigi3_wave_control,
8009 { "Wave Control", "cigi.wave_control",
8010 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8011 "Wave Control Packet", HFILL }
8013 { &hf_cigi3_wave_control_entity_region_id,
8014 { "Entity ID/Region ID", "cigi.wave_control.entity_region_id",
8015 FT_UINT16, BASE_DEC, NULL, 0x0,
8016 "Specifies the surface entity for which the wave is defined or specifies the environmental region for which the wave is defined", HFILL }
8018 { &hf_cigi3_wave_control_wave_id,
8019 { "Wave ID", "cigi.wave_control.wave_id",
8020 FT_UINT8, BASE_DEC, NULL, 0x0,
8021 "Specifies the wave to which the attributes in this packet are applied", HFILL }
8023 { &hf_cigi3_wave_control_wave_enable,
8024 { "Wave Enable", "cigi.wave_control.wave_enable",
8025 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8026 "Determines whether the wave is enabled or disabled", HFILL }
8028 { &hf_cigi3_wave_control_scope,
8029 { "Scope", "cigi.wave_control.scope",
8030 FT_UINT8, BASE_DEC, VALS(cigi3_wave_control_scope_vals), 0x06,
8031 "Specifies whether the wave is defined for global, regional, or entity-controlled maritime surface conditions", HFILL }
8033 { &hf_cigi3_wave_control_breaker_type,
8034 { "Breaker Type", "cigi.wave_control.breaker_type",
8035 FT_UINT8, BASE_DEC, VALS(cigi3_wave_control_breaker_type_vals), 0x18,
8036 "Specifies the type of breaker within the surf zone", HFILL }
8038 { &hf_cigi3_wave_control_height,
8039 { "Wave Height (m)", "cigi.wave_control.height",
8040 FT_FLOAT, BASE_NONE, NULL, 0x0,
8041 "Specifies the average vertical distance from trough to crest produced by the wave", HFILL }
8043 { &hf_cigi3_wave_control_wavelength,
8044 { "Wavelength (m)", "cigi.wave_control.wavelength",
8045 FT_FLOAT, BASE_NONE, NULL, 0x0,
8046 "Specifies the distance from a particular phase on a wave to the same phase on an adjacent wave", HFILL }
8048 { &hf_cigi3_wave_control_period,
8049 { "Period (s)", "cigi.wave_control.period",
8050 FT_FLOAT, BASE_NONE, NULL, 0x0,
8051 "Specifies the time required for one complete oscillation of the wave", HFILL }
8053 { &hf_cigi3_wave_control_direction,
8054 { "Direction (degrees)", "cigi.wave_control.direction",
8055 FT_FLOAT, BASE_NONE, NULL, 0x0,
8056 "Specifies the direction in which the wave propagates", HFILL }
8058 { &hf_cigi3_wave_control_phase_offset,
8059 { "Phase Offset (degrees)", "cigi.wave_control.phase_offset",
8060 FT_FLOAT, BASE_NONE, NULL, 0x0,
8061 "Specifies a phase offset for the wave", HFILL }
8063 { &hf_cigi3_wave_control_leading,
8064 { "Leading (degrees)", "cigi.wave_control.leading",
8065 FT_FLOAT, BASE_NONE, NULL, 0x0,
8066 "Specifies the phase angle at which the crest occurs", HFILL }
8069 /* Terrestrial Surface Conditions Control */
8070 { &hf_cigi3_terrestrial_surface_conditions_control,
8071 { "Terrestrial Surface Conditions Control", "cigi.terrestrial_surface_conditions_control",
8072 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8073 "Terrestrial Surface Conditions Control Packet", HFILL }
8075 { &hf_cigi3_terrestrial_surface_conditions_control_entity_region_id,
8076 { "Entity ID/Region ID", "cigi.terrestrial_surface_conditions_control.entity_region_id",
8077 FT_UINT16, BASE_DEC, NULL, 0x0,
8078 "Specifies the environmental entity to which the surface condition attributes in this packet are applied", HFILL }
8080 { &hf_cigi3_terrestrial_surface_conditions_control_surface_condition_id,
8081 { "Surface Condition ID", "cigi.terrestrial_surface_conditions_control.surface_condition_id",
8082 FT_UINT16, BASE_DEC, NULL, 0x0,
8083 "Identifies a surface condition or contaminant", HFILL }
8085 { &hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable,
8086 { "Surface Condition Enable", "cigi.terrestrial_surface_conditions_control.surface_condition_enable",
8087 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8088 "Specifies whether the surface condition attribute identified by the Surface Condition ID parameter should be enabled", HFILL }
8090 { &hf_cigi3_terrestrial_surface_conditions_control_scope,
8091 { "Scope", "cigi.terrestrial_surface_conditions_control.scope",
8092 FT_UINT8, BASE_DEC, VALS(cigi3_terrestrial_surface_conditions_control_scope_vals), 0x06,
8093 "Determines whether the specified surface conditions are applied globally, regionally, or to an environmental entity", HFILL }
8095 { &hf_cigi3_terrestrial_surface_conditions_control_severity,
8096 { "Severity", "cigi.terrestrial_surface_conditions_control.severity",
8097 FT_UINT8, BASE_DEC, NULL, 0xf8,
8098 "Determines the degree of severity for the specified surface contaminant(s)", HFILL }
8100 { &hf_cigi3_terrestrial_surface_conditions_control_coverage,
8101 { "Coverage (%)", "cigi.terrestrial_surface_conditions_control.coverage",
8102 FT_UINT8, BASE_DEC, NULL, 0x0,
8103 "Determines the degree of coverage of the specified surface contaminant", HFILL }
8106 /* CIGI2 View Control */
8107 { &hf_cigi2_view_control,
8108 { "View Control", "cigi.view_control",
8109 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8110 "View Control Packet", HFILL }
8112 { &hf_cigi2_view_control_entity_id,
8113 { "Entity ID", "cigi.view_control.entity_id",
8114 FT_UINT16, BASE_DEC, NULL, 0x0,
8115 "Indicates the entity to which this view should be attached", HFILL }
8117 { &hf_cigi2_view_control_view_id,
8118 { "View ID", "cigi.view_control.view_id",
8119 FT_UINT8, BASE_DEC, NULL, 0xf8,
8120 "Specifies which view position is associated with offsets and rotation specified by this data packet", HFILL }
8122 { &hf_cigi2_view_control_view_group,
8123 { "View Group Select", "cigi.view_control.view_group",
8124 FT_UINT8, BASE_DEC, NULL, 0x07,
8125 "Specifies which view group is to be controlled by the offsets", HFILL }
8127 { &hf_cigi2_view_control_xoff_enable,
8128 { "X Offset Enable", "cigi.view_control.xoff_enable",
8129 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8130 "Identifies whether the x offset parameter should be applied to the specified view or view group", HFILL }
8132 { &hf_cigi2_view_control_yoff_enable,
8133 { "Y Offset Enable", "cigi.view_control.yoff_enable",
8134 FT_UINT8, BASE_DEC, NULL, 0x40,
8135 "Identifies whether the y offset parameter should be applied to the specified view or view group", HFILL }
8137 { &hf_cigi2_view_control_zoff_enable,
8138 { "Z Offset Enable", "cigi.view_control.zoff_enable",
8139 FT_UINT8, BASE_DEC, NULL, 0x20,
8140 "Identifies whether the z offset parameter should be applied to the specified view or view group", HFILL }
8142 { &hf_cigi2_view_control_roll_enable,
8143 { "Roll Enable", "cigi.view_control.roll_enable",
8144 FT_UINT8, BASE_DEC, NULL, 0x10,
8145 "Identifies whether the roll parameter should be applied to the specified view or view group", HFILL }
8147 { &hf_cigi2_view_control_pitch_enable,
8148 { "Pitch Enable", "cigi.view_control.pitch_enable",
8149 FT_UINT8, BASE_DEC, NULL, 0x08,
8150 "Identifies whether the pitch parameter should be applied to the specified view or view group", HFILL }
8152 { &hf_cigi2_view_control_yaw_enable,
8153 { "Yaw Enable", "cigi.view_control.yaw_enable",
8154 FT_UINT8, BASE_DEC, NULL, 0x04,
8155 "Identifies whether the yaw parameter should be applied to the specified view or view group", HFILL }
8157 { &hf_cigi2_view_control_x_offset,
8158 { "X Offset (m)", "cigi.view_control.x_offset",
8159 FT_FLOAT, BASE_NONE, NULL, 0x0,
8160 "Defines the X component of the view offset vector along the entity's longitudinal axis", HFILL }
8162 { &hf_cigi2_view_control_y_offset,
8163 { "Y Offset", "cigi.view_control.y_offset",
8164 FT_FLOAT, BASE_NONE, NULL, 0x0,
8165 "Defines the Y component of the view offset vector along the entity's lateral axis", HFILL }
8167 { &hf_cigi2_view_control_z_offset,
8168 { "Z Offset", "cigi.view_control.z_offset",
8169 FT_FLOAT, BASE_NONE, NULL, 0x0,
8170 "Defines the Z component of the view offset vector along the entity's vertical axis", HFILL }
8172 { &hf_cigi2_view_control_roll,
8173 { "Roll (degrees)", "cigi.view_control.roll",
8174 FT_FLOAT, BASE_NONE, NULL, 0x0,
8175 "The rotation about the view's X axis", HFILL }
8177 { &hf_cigi2_view_control_pitch,
8178 { "Pitch (degrees)", "cigi.view_control.pitch",
8179 FT_FLOAT, BASE_NONE, NULL, 0x0,
8180 "The rotation about the view's Y axis", HFILL }
8182 { &hf_cigi2_view_control_yaw,
8183 { "Yaw (degrees)", "cigi.view_control.yaw",
8184 FT_FLOAT, BASE_NONE, NULL, 0x0,
8185 "The rotation about the view's Z axis", HFILL }
8188 /* CIGI3 View Control */
8189 { &hf_cigi3_view_control,
8190 { "View Control", "cigi.view_control",
8191 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8192 "View Control Packet", HFILL }
8194 { &hf_cigi3_view_control_view_id,
8195 { "View ID", "cigi.view_control.view_id",
8196 FT_UINT16, BASE_DEC, NULL, 0x0,
8197 "Specifies the view to which the contents of this packet should be applied", HFILL }
8199 { &hf_cigi3_view_control_group_id,
8200 { "Group ID", "cigi.view_control.group_id",
8201 FT_UINT8, BASE_DEC, NULL, 0x0,
8202 "Specifies the view group to which the contents of this packet are applied", HFILL }
8204 { &hf_cigi3_view_control_xoff_enable,
8205 { "X Offset Enable", "cigi.view_control.xoff_enable",
8206 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8207 "Determines whether the X Offset parameter should be applied to the specified view or view group", HFILL }
8209 { &hf_cigi3_view_control_yoff_enable,
8210 { "Y Offset Enable", "cigi.view_control.yoff_enable",
8211 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8212 "Determines whether the Y Offset parameter should be applied to the specified view or view group", HFILL }
8214 { &hf_cigi3_view_control_zoff_enable,
8215 { "Z Offset Enable", "cigi.view_control.zoff_enable",
8216 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8217 "Determines whether the Z Offset parameter should be applied to the specified view or view group", HFILL }
8219 { &hf_cigi3_view_control_roll_enable,
8220 { "Roll Enable", "cigi.view_control.roll_enable",
8221 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8222 "Determines whether the Roll parameter should be applied to the specified view or view group", HFILL }
8224 { &hf_cigi3_view_control_pitch_enable,
8225 { "Pitch Enable", "cigi.view_control.pitch_enable",
8226 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8227 "Determines whether the Pitch parameter should be applied to the specified view or view group", HFILL }
8229 { &hf_cigi3_view_control_yaw_enable,
8230 { "Yaw Enable", "cigi.view_control.yaw_enable",
8231 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8232 "Determines whether the Yaw parameter should be applied to the specified view or view group", HFILL }
8234 { &hf_cigi3_view_control_entity_id,
8235 { "Entity ID", "cigi.view_control.entity_id",
8236 FT_UINT16, BASE_DEC, NULL, 0x0,
8237 "Specifies the entity to which the view or view group should be attached", HFILL }
8239 { &hf_cigi3_view_control_xoff,
8240 { "X Offset (m)", "cigi.view_control.xoff",
8241 FT_FLOAT, BASE_NONE, NULL, 0x0,
8242 "Specifies the position of the view eyepoint along the X axis of the entity specified by the Entity ID parameter", HFILL }
8244 { &hf_cigi3_view_control_yoff,
8245 { "Y Offset (m)", "cigi.view_control.yoff",
8246 FT_FLOAT, BASE_NONE, NULL, 0x0,
8247 "Specifies the position of the view eyepoint along the Y axis of the entity specified by the Entity ID parameter", HFILL }
8249 { &hf_cigi3_view_control_zoff,
8250 { "Z Offset (m)", "cigi.view_control.zoff",
8251 FT_FLOAT, BASE_NONE, NULL, 0x0,
8252 "Specifies the position of the view eyepoint along the Z axis of the entity specified by the Entity ID parameter", HFILL }
8254 { &hf_cigi3_view_control_roll,
8255 { "Roll (degrees)", "cigi.view_control.roll",
8256 FT_FLOAT, BASE_NONE, NULL, 0x0,
8257 "Specifies the angle of rotation of the view or view group about its X axis after yaw and pitch have been applied", HFILL }
8259 { &hf_cigi3_view_control_pitch,
8260 { "Pitch (degrees)", "cigi.view_control.pitch",
8261 FT_FLOAT, BASE_NONE, NULL, 0x0,
8262 "Specifies the angle of rotation of the view or view group about its Y axis after yaw has been applied", HFILL }
8264 { &hf_cigi3_view_control_yaw,
8265 { "Yaw (degrees)", "cigi.view_control.yaw",
8266 FT_FLOAT, BASE_NONE, NULL, 0x0,
8267 "Specifies the angle of rotation of the view or view group about its Z axis", HFILL }
8270 /* CIGI2 Sensor Control */
8271 { &hf_cigi2_sensor_control,
8272 { "Sensor Control", "cigi.sensor_control",
8273 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8274 "Sensor Control Packet", HFILL }
8276 { &hf_cigi2_sensor_control_view_id,
8277 { "View ID", "cigi.sensor_control.view_id",
8278 FT_UINT8, BASE_DEC, NULL, 0xf8,
8279 "Dictates to which view the corresponding sensor is assigned, regardless of the view group", HFILL }
8281 { &hf_cigi2_sensor_control_sensor_enable,
8282 { "Sensor On/Off", "cigi.sensor_control.sensor_enable",
8283 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x04,
8284 "Indicates whether the sensor is turned on or off", HFILL }
8286 { &hf_cigi2_sensor_control_polarity,
8287 { "Polarity", "cigi.sensor_control.polarity",
8288 FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x02,
8289 "Indicates whether this sensor is showing white hot or black hot", HFILL }
8291 { &hf_cigi2_sensor_control_line_dropout,
8292 { "Line-by-Line Dropout", "cigi.sensor_control.line_dropout",
8293 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x01,
8294 "Indicates whether the line-by-line dropout feature is enabled", HFILL }
8296 { &hf_cigi2_sensor_control_sensor_id,
8297 { "Sensor ID", "cigi.sensor_control.sensor_id",
8298 FT_UINT8, BASE_DEC, NULL, 0x0,
8299 "Identifies the sensor to which this packet should be applied", HFILL }
8301 { &hf_cigi2_sensor_control_track_mode,
8302 { "Track Mode", "cigi.sensor_control.track_mode",
8303 FT_UINT8, BASE_DEC, VALS(cigi2_sensor_control_track_mode_vals), 0xf0,
8304 "Indicates which track mode the sensor should be", HFILL }
8306 { &hf_cigi2_sensor_control_auto_gain,
8307 { "Automatic Gain", "cigi.sensor_control.auto_gain",
8308 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x08,
8309 "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 }
8311 { &hf_cigi2_sensor_control_track_polarity,
8312 { "Track White/Black", "cigi.sensor_control.track_polarity",
8313 FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x04,
8314 "Identifies whether the weapons sensor will track wither white or black", HFILL }
8316 { &hf_cigi2_sensor_control_gain,
8317 { "Gain", "cigi.sensor_control.gain",
8318 FT_FLOAT, BASE_NONE, NULL, 0x0,
8319 "Indicates the gain value for the weapon sensor option", HFILL }
8321 { &hf_cigi2_sensor_control_level,
8322 { "Level", "cigi.sensor_control.level",
8323 FT_FLOAT, BASE_NONE, NULL, 0x0,
8324 "Indicates the level value for the weapon sensor option", HFILL }
8326 { &hf_cigi2_sensor_control_ac_coupling,
8327 { "AC Coupling", "cigi.sensor_control.ac_coupling",
8328 FT_FLOAT, BASE_NONE, NULL, 0x0,
8329 "Indicates the AC Coupling decay rate for the weapon sensor option", HFILL }
8331 { &hf_cigi2_sensor_control_noise,
8332 { "Noise", "cigi.sensor_control.noise",
8333 FT_FLOAT, BASE_NONE, NULL, 0x0,
8334 "Indicates the detector-noise gain for the weapon sensor option", HFILL }
8337 /* CIGI3 Sensor Control */
8338 { &hf_cigi3_sensor_control,
8339 { "Sensor Control", "cigi.sensor_control",
8340 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8341 "Sensor Control Packet", HFILL }
8343 { &hf_cigi3_sensor_control_view_id,
8344 { "View ID", "cigi.sensor_control.view_id",
8345 FT_UINT16, BASE_DEC, NULL, 0x0,
8346 "Identifies the view to which the specified sensor is assigned", HFILL }
8348 { &hf_cigi3_sensor_control_sensor_id,
8349 { "Sensor ID", "cigi.sensor_control.sensor_id",
8350 FT_UINT8, BASE_DEC, NULL, 0x0,
8351 "Specifies the sensor to which the data in this packet are applied", HFILL }
8353 { &hf_cigi3_sensor_control_sensor_on_off,
8354 { "Sensor On/Off", "cigi.sensor_control.sensor_on_off",
8355 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x01,
8356 "Specifies whether the sensor is turned on or off", HFILL }
8358 { &hf_cigi3_sensor_control_polarity,
8359 { "Polarity", "cigi.sensor_control.polarity",
8360 FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_polarity_tfs), 0x02,
8361 "Specifies whether the sensor shows white hot or black hot", HFILL }
8363 { &hf_cigi3_sensor_control_line_dropout_enable,
8364 { "Line-by-Line Dropout Enable", "cigi.sensor_control.line_dropout_enable",
8365 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8366 "Specifies whether line-by-line dropout is enabled", HFILL }
8368 { &hf_cigi3_sensor_control_auto_gain,
8369 { "Automatic Gain", "cigi.sensor_control.auto_gain",
8370 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8371 "Specifies whether the sensor automatically adjusts the gain value to optimize the brightness and contrast of the sensor display", HFILL }
8373 { &hf_cigi3_sensor_control_track_white_black,
8374 { "Track White/Black", "cigi.sensor_control.track_white_black",
8375 FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_track_white_black_tfs), 0x10,
8376 "Specifies whether the sensor tracks white or black", HFILL }
8378 { &hf_cigi3_sensor_control_track_mode,
8379 { "Track Mode", "cigi.sensor_control.track_mode",
8380 FT_UINT8, BASE_DEC, VALS(cigi3_sensor_control_track_mode_vals), 0xe0,
8381 "Specifies which track mode the sensor should use", HFILL }
8383 { &hf_cigi3_sensor_control_response_type,
8384 { "Response Type", "cigi.sensor_control.response_type",
8385 FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_response_type_tfs), 0x01,
8386 "Specifies whether the IG should return a Sensor Response packet or a Sensor Extended Response packet", HFILL }
8388 { &hf_cigi3_sensor_control_gain,
8389 { "Gain", "cigi.sensor_control.gain",
8390 FT_FLOAT, BASE_NONE, NULL, 0x0,
8391 "Specifies the contrast for the sensor display", HFILL }
8393 { &hf_cigi3_sensor_control_level,
8394 { "Level", "cigi.sensor_control.level",
8395 FT_FLOAT, BASE_NONE, NULL, 0x0,
8396 "Specifies the brightness for the sensor display", HFILL }
8398 { &hf_cigi3_sensor_control_ac_coupling,
8399 { "AC Coupling (microseconds)", "cigi.sensor_control.ac_coupling",
8400 FT_FLOAT, BASE_NONE, NULL, 0x0,
8401 "Specifies the AC coupling decay constant for the sensor display", HFILL }
8403 { &hf_cigi3_sensor_control_noise,
8404 { "Noise", "cigi.sensor_control.noise",
8405 FT_FLOAT, BASE_NONE, NULL, 0x0,
8406 "Specifies the amount of detector noise for the sensor", HFILL }
8409 /* Motion Tracker Control */
8410 { &hf_cigi3_motion_tracker_control,
8411 { "Motion Tracker Control", "cigi.motion_tracker_control",
8412 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8413 "Motion Tracker Control Packet", HFILL }
8415 { &hf_cigi3_motion_tracker_control_view_group_id,
8416 { "View/View Group ID", "cigi.motion_tracker_control.view_group_id",
8417 FT_UINT16, BASE_DEC, NULL, 0x0,
8418 "Specifies the view or view group to which the tracking device is attached", HFILL }
8420 { &hf_cigi3_motion_tracker_control_tracker_id,
8421 { "Tracker ID", "cigi.motion_tracker_control.tracker_id",
8422 FT_UINT8, BASE_DEC, NULL, 0x0,
8423 "Specifies the tracker whose state the data in this packet represents", HFILL }
8425 { &hf_cigi3_motion_tracker_control_tracker_enable,
8426 { "Tracker Enable", "cigi.motion_tracker_control.tracker_enable",
8427 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8428 "Specifies whether the tracking device is enabled", HFILL }
8430 { &hf_cigi3_motion_tracker_control_boresight_enable,
8431 { "Boresight Enable", "cigi.motion_tracker_control.boresight_enable",
8432 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8433 "Sets the boresight state of the external tracking device", HFILL }
8435 { &hf_cigi3_motion_tracker_control_x_enable,
8436 { "X Enable", "cigi.motion_tracker_control.x_enable",
8437 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8438 "Used to enable or disable the X-axis position of the motion tracker", HFILL }
8440 { &hf_cigi3_motion_tracker_control_y_enable,
8441 { "Y Enable", "cigi.motion_tracker_control.y_enable",
8442 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8443 "Used to enable or disable the Y-axis position of the motion tracker", HFILL }
8445 { &hf_cigi3_motion_tracker_control_z_enable,
8446 { "Z Enable", "cigi.motion_tracker_control.z_enable",
8447 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8448 "Used to enable or disable the Z-axis position of the motion tracker", HFILL }
8450 { &hf_cigi3_motion_tracker_control_roll_enable,
8451 { "Roll Enable", "cigi.motion_tracker_control.roll_enable",
8452 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8453 "Used to enable or disable the roll of the motion tracker", HFILL }
8455 { &hf_cigi3_motion_tracker_control_pitch_enable,
8456 { "Pitch Enable", "cigi.motion_tracker_control.pitch_enable",
8457 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
8458 "Used to enable or disable the pitch of the motion tracker", HFILL }
8460 { &hf_cigi3_motion_tracker_control_yaw_enable,
8461 { "Yaw Enable", "cigi.motion_tracker_control.yaw_enable",
8462 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8463 "Used to enable or disable the yaw of the motion tracker", HFILL }
8465 { &hf_cigi3_motion_tracker_control_view_group_select,
8466 { "View/View Group Select", "cigi.motion_tracker_control.view_group_select",
8467 FT_BOOLEAN, 8, TFS(&cigi3_motion_tracker_control_view_group_select_tfs), 0x01,
8468 "Specifies whether the tracking device is attached to a single view or a view group", HFILL }
8471 /* CIGI3 Earth Reference Model Definition */
8472 { &hf_cigi3_earth_reference_model_definition,
8473 { "Earth Reference Model Definition", "cigi.earth_ref_model_def",
8474 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8475 "Earth Reference Model Definition Packet", HFILL }
8477 { &hf_cigi3_earth_reference_model_definition_erm_enable,
8478 { "Custom ERM Enable", "cigi.earth_ref_model_def.erm_enable",
8479 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8480 "Specifies whether the IG should use the Earth Reference Model defined by this packet", HFILL }
8482 { &hf_cigi3_earth_reference_model_definition_equatorial_radius,
8483 { "Equatorial Radius (m)", "cigi.earth_ref_model_def.equatorial_radius",
8484 FT_DOUBLE, BASE_NONE, NULL, 0x0,
8485 "Specifies the semi-major axis of the ellipsoid", HFILL }
8487 { &hf_cigi3_earth_reference_model_definition_flattening,
8488 { "Flattening (m)", "cigi.earth_ref_model_def.flattening",
8489 FT_DOUBLE, BASE_NONE, NULL, 0x0,
8490 "Specifies the flattening of the ellipsoid", HFILL }
8493 /* CIGI2 Trajectory Definition */
8494 { &hf_cigi2_trajectory_definition,
8495 { "Trajectory Definition", "cigi.trajectory_def",
8496 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8497 "Trajectory Definition Packet", HFILL }
8499 { &hf_cigi2_trajectory_definition_entity_id,
8500 { "Entity ID", "cigi.trajectory_def.entity_id",
8501 FT_UINT16, BASE_DEC, NULL, 0x0,
8502 "Indicates which entity is being influenced by this trajectory behavior", HFILL }
8504 { &hf_cigi2_trajectory_definition_acceleration,
8505 { "Acceleration Factor (m/s^2)", "cigi.trajectory_def.acceleration",
8506 FT_FLOAT, BASE_NONE, NULL, 0x0,
8507 "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 }
8509 { &hf_cigi2_trajectory_definition_retardation,
8510 { "Retardation Rate (m/s)", "cigi.trajectory_def.retardation",
8511 FT_FLOAT, BASE_NONE, NULL, 0x0,
8512 "Indicates what retardation factor will be applied to the object's motion", HFILL }
8514 { &hf_cigi2_trajectory_definition_terminal_velocity,
8515 { "Terminal Velocity (m/s)", "cigi.trajectory_def.terminal_velocity",
8516 FT_FLOAT, BASE_NONE, NULL, 0x0,
8517 "Indicates what final velocity the object will be allowed to obtain", HFILL }
8520 /* CIGI3 Trajectory Definition */
8521 { &hf_cigi3_trajectory_definition,
8522 { "Trajectory Definition", "cigi.trajectory_def",
8523 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8524 "Trajectory Definition Packet", HFILL }
8526 { &hf_cigi3_trajectory_definition_entity_id,
8527 { "Entity ID", "cigi.trajectory_def.entity_id",
8528 FT_UINT16, BASE_DEC, NULL, 0x0,
8529 "Identifies the entity for which the trajectory is defined", HFILL }
8531 { &hf_cigi3_trajectory_definition_acceleration_x,
8532 { "Acceleration X (m/s^2)", "cigi.trajectory_def.acceleration_x",
8533 FT_FLOAT, BASE_NONE, NULL, 0x0,
8534 "Specifies the X component of the acceleration vector", HFILL }
8536 { &hf_cigi3_trajectory_definition_acceleration_y,
8537 { "Acceleration Y (m/s^2)", "cigi.trajectory_def.acceleration_y",
8538 FT_FLOAT, BASE_NONE, NULL, 0x0,
8539 "Specifies the Y component of the acceleration vector", HFILL }
8541 { &hf_cigi3_trajectory_definition_acceleration_z,
8542 { "Acceleration Z (m/s^2)", "cigi.trajectory_def.acceleration_z",
8543 FT_FLOAT, BASE_NONE, NULL, 0x0,
8544 "Specifies the Z component of the acceleration vector", HFILL }
8546 { &hf_cigi3_trajectory_definition_retardation_rate,
8547 { "Retardation Rate (m/s^2)", "cigi.trajectory_def.retardation_rate",
8548 FT_FLOAT, BASE_NONE, NULL, 0x0,
8549 "Specifies the magnitude of an acceleration applied against the entity's instantaneous linear velocity vector", HFILL }
8551 { &hf_cigi3_trajectory_definition_terminal_velocity,
8552 { "Terminal Velocity (m/s)", "cigi.trajectory_def.terminal_velocity",
8553 FT_FLOAT, BASE_NONE, NULL, 0x0,
8554 "Specifies the maximum velocity the entity can sustain", HFILL }
8557 /* CIGI2 Special Effect Definition */
8558 { &hf_cigi2_special_effect_definition,
8559 { "Special Effect Definition", "cigi.special_effect_def",
8560 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8561 "Special Effect Definition Packet", HFILL }
8563 { &hf_cigi2_special_effect_definition_entity_id,
8564 { "Entity ID", "cigi.special_effect_def.entity_id",
8565 FT_UINT16, BASE_DEC, NULL, 0x0,
8566 "Indicates which effect is being modified", HFILL }
8568 { &hf_cigi2_special_effect_definition_seq_direction,
8569 { "Sequence Direction", "cigi.special_effect_def.seq_direction",
8570 FT_BOOLEAN, 8, TFS(&cigi2_special_effect_definition_seq_direction_tfs), 0x80,
8571 "Indicates whether the effect animation sequence should be sequence from beginning to end or vice versa", HFILL }
8573 { &hf_cigi2_special_effect_definition_color_enable,
8574 { "Color Enable", "cigi.special_effect_def.color_enable",
8575 FT_BOOLEAN, 8, TFS(&tfs_on_off), 0x40,
8576 "Indicates whether the red, green, and blue color values will be applied to the special effect", HFILL }
8578 { &hf_cigi2_special_effect_definition_red,
8579 { "Red Color Value", "cigi.special_effect_def.red",
8580 FT_UINT8, BASE_DEC, NULL, 0x0,
8581 "Specifies the red component of a color to be applied to the effect", HFILL }
8583 { &hf_cigi2_special_effect_definition_green,
8584 { "Green Color Value", "cigi.special_effect_def.green",
8585 FT_UINT8, BASE_DEC, NULL, 0x0,
8586 "Specifies the green component of a color to be applied to the effect", HFILL }
8588 { &hf_cigi2_special_effect_definition_blue,
8589 { "Blue Color Value", "cigi.special_effect_def.blue",
8590 FT_UINT8, BASE_DEC, NULL, 0x0,
8591 "Specifies the blue component of a color to be applied to the effect", HFILL }
8593 { &hf_cigi2_special_effect_definition_x_scale,
8594 { "X Scale", "cigi.special_effect_def.x_scale",
8595 FT_FLOAT, BASE_NONE, NULL, 0x0,
8596 "Specifies a scale factor to apply along the effect's X axis", HFILL }
8598 { &hf_cigi2_special_effect_definition_y_scale,
8599 { "Y Scale", "cigi.special_effect_def.y_scale",
8600 FT_FLOAT, BASE_NONE, NULL, 0x0,
8601 "Specifies a scale factor to apply along the effect's Y axis", HFILL }
8603 { &hf_cigi2_special_effect_definition_z_scale,
8604 { "Z Scale", "cigi.special_effect_def.z_scale",
8605 FT_FLOAT, BASE_NONE, NULL, 0x0,
8606 "Specifies a scale factor to apply along the effect's Z axis", HFILL }
8608 { &hf_cigi2_special_effect_definition_time_scale,
8609 { "Time Scale", "cigi.special_effect_def.time_scale",
8610 FT_FLOAT, BASE_NONE, NULL, 0x0,
8611 "Specifies a scale factor to apply to the time period for the effect's animation sequence", HFILL }
8613 { &hf_cigi2_special_effect_definition_effect_count,
8614 { "Effect Count", "cigi.special_effect_def.effect_count",
8615 FT_UINT16, BASE_DEC, NULL, 0x0,
8616 "Indicates how many effects are contained within a single burst", HFILL }
8618 { &hf_cigi2_special_effect_definition_separation,
8619 { "Separation (m)", "cigi.special_effect_def.separation",
8620 FT_FLOAT, BASE_NONE, NULL, 0x0,
8621 "Indicates the distance between particles within a burst", HFILL }
8623 { &hf_cigi2_special_effect_definition_burst_interval,
8624 { "Burst Interval (s)", "cigi.special_effect_def.burst_interval",
8625 FT_FLOAT, BASE_NONE, NULL, 0x0,
8626 "Indicates the time between successive bursts", HFILL }
8628 { &hf_cigi2_special_effect_definition_duration,
8629 { "Duration (s)", "cigi.special_effect_def.duration",
8630 FT_FLOAT, BASE_NONE, NULL, 0x0,
8631 "Indicates how long an effect or sequence of burst will be active", HFILL }
8634 /* CIGI2 View Definition */
8635 { &hf_cigi2_view_definition,
8636 { "View Definition", "cigi.view_def",
8637 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8638 "View Definition Packet", HFILL }
8640 { &hf_cigi2_view_definition_view_id,
8641 { "View ID", "cigi.view_def.view_id",
8642 FT_UINT8, BASE_DEC, NULL, 0xf8,
8643 "Specifies the view to which this packet should be applied", HFILL }
8645 { &hf_cigi2_view_definition_view_group,
8646 { "View Group", "cigi.view_def.view_group",
8647 FT_UINT8, BASE_DEC, NULL, 0x07,
8648 "Specifies the view group to which the view is to be assigned", HFILL }
8650 { &hf_cigi2_view_definition_view_type,
8651 { "View Type", "cigi.view_def.view_type",
8652 FT_UINT8, BASE_DEC, NULL, 0xe0,
8653 "Specifies the view type", HFILL }
8655 { &hf_cigi2_view_definition_pixel_rep,
8656 { "Pixel Replication", "cigi.view_def.pixel_rep",
8657 FT_UINT8, BASE_DEC, VALS(cigi2_view_definition_pixel_rep_vals), 0x1c,
8658 "Specifies what pixel replication function should be applied to the view", HFILL }
8660 { &hf_cigi2_view_definition_mirror,
8661 { "View Mirror", "cigi.view_def.mirror",
8662 FT_UINT8, BASE_DEC, VALS(cigi2_view_definition_mirror_vals), 0x03,
8663 "Specifies what mirroring function should be applied to the view", HFILL }
8665 { &hf_cigi2_view_definition_tracker_assign,
8666 { "Tracker Assign", "cigi.view_def.tracker_assign",
8667 FT_BOOLEAN, 8, TFS(&tfs_true_false), 0x80,
8668 "Specifies whether the view should be controlled by an external tracking device", HFILL }
8670 { &hf_cigi2_view_definition_near_enable,
8671 { "Field of View Near Enable", "cigi.view_def.near_enable",
8672 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40,
8673 "Identifies whether the field of view near value is manipulated from the Host", HFILL }
8675 { &hf_cigi2_view_definition_far_enable,
8676 { "Field of View Far Enable", "cigi.view_def.far_enable",
8677 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8678 "Identifies whether the field of view far value is manipulated from the Host", HFILL }
8680 { &hf_cigi2_view_definition_left_enable,
8681 { "Field of View Left Enable", "cigi.view_def.left_enable",
8682 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8683 "Identifies whether the field of view left value is manipulated from the Host", HFILL }
8685 { &hf_cigi2_view_definition_right_enable,
8686 { "Field of View Right Enable", "cigi.view_def.right_enable",
8687 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8688 "Identifies whether the field of view right value is manipulated from the Host", HFILL }
8690 { &hf_cigi2_view_definition_top_enable,
8691 { "Field of View Top Enable", "cigi.view_def.top_enable",
8692 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8693 "Identifies whether the field of view top value is manipulated from the Host", HFILL }
8695 { &hf_cigi2_view_definition_bottom_enable,
8696 { "Field of View Bottom Enable", "cigi.view_def.bottom_enable",
8697 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8698 "Identifies whether the field of view bottom value is manipulated from the Host", HFILL }
8700 { &hf_cigi2_view_definition_fov_near,
8701 { "Field of View Near (m)", "cigi.view_def.fov_near",
8702 FT_FLOAT, BASE_NONE, NULL, 0x0,
8703 "Defines the near clipping plane for the view", HFILL }
8705 { &hf_cigi2_view_definition_fov_far,
8706 { "Field of View Far (m)", "cigi.view_def.fov_far",
8707 FT_FLOAT, BASE_NONE, NULL, 0x0,
8708 "Defines the far clipping plane for the view", HFILL }
8710 { &hf_cigi2_view_definition_fov_left,
8711 { "Field of View Left (degrees)", "cigi.view_def.fov_left",
8712 FT_FLOAT, BASE_NONE, NULL, 0x0,
8713 "Defines the left clipping plane for the view", HFILL }
8715 { &hf_cigi2_view_definition_fov_right,
8716 { "Field of View Right (degrees)", "cigi.view_def.fov_right",
8717 FT_FLOAT, BASE_NONE, NULL, 0x0,
8718 "Defines the right clipping plane for the view", HFILL }
8720 { &hf_cigi2_view_definition_fov_top,
8721 { "Field of View Top (degrees)", "cigi.view_def.fov_top",
8722 FT_FLOAT, BASE_NONE, NULL, 0x0,
8723 "Defines the top clipping plane for the view", HFILL }
8725 { &hf_cigi2_view_definition_fov_bottom,
8726 { "Field of View Bottom (degrees)", "cigi.view_def.fov_bottom",
8727 FT_FLOAT, BASE_NONE, NULL, 0x0,
8728 "Defines the bottom clipping plane for the view", HFILL }
8731 /* CIGI3 View Definition */
8732 { &hf_cigi3_view_definition,
8733 { "View Definition", "cigi.view_def",
8734 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8735 "View Definition Packet", HFILL }
8737 { &hf_cigi3_view_definition_view_id,
8738 { "View ID", "cigi.view_def.view_id",
8739 FT_UINT16, BASE_DEC, NULL, 0x0,
8740 "Specifies the view to which the data in this packet will be applied", HFILL }
8742 { &hf_cigi3_view_definition_group_id,
8743 { "Group ID", "cigi.view_def.group_id",
8744 FT_UINT8, BASE_DEC, NULL, 0x0,
8745 "Specifies the group to which the view is to be assigned", HFILL }
8747 { &hf_cigi3_view_definition_near_enable,
8748 { "Near Enable", "cigi.view_def.near_enable",
8749 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8750 "Specifies whether the near clipping plane will be set to the value of the Near parameter within this packet", HFILL }
8752 { &hf_cigi3_view_definition_far_enable,
8753 { "Far Enable", "cigi.view_def.far_enable",
8754 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02,
8755 "Specifies whether the far clipping plane will be set to the value of the Far parameter within this packet", HFILL }
8757 { &hf_cigi3_view_definition_left_enable,
8758 { "Left Enable", "cigi.view_def.left_enable",
8759 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04,
8760 "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 }
8762 { &hf_cigi3_view_definition_right_enable,
8763 { "Right Enable", "cigi.view_def.right_enable",
8764 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
8765 "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 }
8767 { &hf_cigi3_view_definition_top_enable,
8768 { "Top Enable", "cigi.view_def.top_enable",
8769 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10,
8770 "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 }
8772 { &hf_cigi3_view_definition_bottom_enable,
8773 { "Bottom Enable", "cigi.view_def.bottom_enable",
8774 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20,
8775 "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 }
8777 { &hf_cigi3_view_definition_mirror_mode,
8778 { "Mirror Mode", "cigi.view_def.mirror_mode",
8779 FT_UINT8, BASE_DEC, VALS(cigi3_view_definition_mirror_mode_vals), 0xc0,
8780 "Specifies the mirroring function to be performed on the view", HFILL }
8782 { &hf_cigi3_view_definition_pixel_replication,
8783 { "Pixel Replication Mode", "cigi.view_def.pixel_replication",
8784 FT_UINT8, BASE_DEC, VALS(cigi3_view_definition_pixel_replication_vals), 0x07,
8785 "Specifies the pixel replication function to be performed on the view", HFILL }
8787 { &hf_cigi3_view_definition_projection_type,
8788 { "Projection Type", "cigi.view_def.projection_type",
8789 FT_BOOLEAN, 8, TFS(&cigi3_view_definition_projection_type_tfs), 0x08,
8790 "Specifies whether the view projection should be perspective or orthographic parallel", HFILL }
8792 { &hf_cigi3_view_definition_reorder,
8793 { "Reorder", "cigi.view_def.reorder",
8794 FT_BOOLEAN, 8, TFS(&cigi3_view_definition_reorder_tfs), 0x10,
8795 "Specifies whether the view should be moved to the top of any overlapping views", HFILL }
8797 { &hf_cigi3_view_definition_view_type,
8798 { "View Type", "cigi.view_def.view_type",
8799 FT_UINT8, BASE_DEC, NULL, 0xe0,
8800 "Specifies an IG-defined type for the indicated view", HFILL }
8802 { &hf_cigi3_view_definition_near,
8803 { "Near (m)", "cigi.view_def.near",
8804 FT_FLOAT, BASE_NONE, NULL, 0x0,
8805 "Specifies the position of the view's near clipping plane", HFILL }
8807 { &hf_cigi3_view_definition_far,
8808 { "Far (m)", "cigi.view_def.far",
8809 FT_FLOAT, BASE_NONE, NULL, 0x0,
8810 "Specifies the position of the view's far clipping plane", HFILL }
8812 { &hf_cigi3_view_definition_left,
8813 { "Left (degrees)", "cigi.view_def.left",
8814 FT_FLOAT, BASE_NONE, NULL, 0x0,
8815 "Specifies the left half-angle of the view frustum", HFILL }
8817 { &hf_cigi3_view_definition_right,
8818 { "Right (degrees)", "cigi.view_def.right",
8819 FT_FLOAT, BASE_NONE, NULL, 0x0,
8820 "Specifies the right half-angle of the view frustum", HFILL }
8822 { &hf_cigi3_view_definition_top,
8823 { "Top (degrees)", "cigi.view_def.top",
8824 FT_FLOAT, BASE_NONE, NULL, 0x0,
8825 "Specifies the top half-angle of the view frustum", HFILL }
8827 { &hf_cigi3_view_definition_bottom,
8828 { "Bottom (degrees)", "cigi.view_def.bottom",
8829 FT_FLOAT, BASE_NONE, NULL, 0x0,
8830 "Specifies the bottom half-angle of the view frustum", HFILL }
8833 /* CIGI2 Collision Detection Segment Definition */
8834 { &hf_cigi2_collision_detection_segment_definition,
8835 { "Collision Detection Segment Definition", "cigi.coll_det_seg_def",
8836 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8837 "Collision Detection Segment Definition Packet", HFILL }
8839 { &hf_cigi2_collision_detection_segment_definition_entity_id,
8840 { "Entity ID", "cigi.coll_det_seg_def.entity_id",
8841 FT_UINT16, BASE_DEC, NULL, 0x0,
8842 "Indicates the entity to which this collision detection definition is assigned", HFILL }
8844 { &hf_cigi2_collision_detection_segment_definition_segment_enable,
8845 { "Segment Enable", "cigi.coll_det_seg_def.segment_enable",
8846 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8847 "Indicates whether the defined segment is enabled for collision testing", HFILL }
8849 { &hf_cigi2_collision_detection_segment_definition_segment_id,
8850 { "Segment ID", "cigi.coll_det_seg_def.segment_id",
8851 FT_UINT8, BASE_DEC, NULL, 0x7f,
8852 "Indicates which segment is being uniquely defined for the given entity", HFILL }
8854 { &hf_cigi2_collision_detection_segment_definition_collision_mask,
8855 { "Collision Mask", "cigi.coll_det_seg_def.collision_mask",
8856 FT_BYTES, BASE_NONE, NULL, 0x0,
8857 "Indicates which environment features will be included in or excluded from consideration for collision detection testing", HFILL }
8859 { &hf_cigi2_collision_detection_segment_definition_x_start,
8860 { "Segment X Start (m)", "cigi.coll_det_seg_def.x_start",
8861 FT_FLOAT, BASE_NONE, NULL, 0x0,
8862 "Specifies the starting point of the collision segment in the X-axis with respect to the entity's reference point", HFILL }
8864 { &hf_cigi2_collision_detection_segment_definition_y_start,
8865 { "Segment Y Start (m)", "cigi.coll_det_seg_def.y_start",
8866 FT_FLOAT, BASE_NONE, NULL, 0x0,
8867 "Specifies the starting point of the collision segment in the Y-axis with respect to the entity's reference point", HFILL }
8869 { &hf_cigi2_collision_detection_segment_definition_z_start,
8870 { "Segment Z Start (m)", "cigi.coll_det_seg_def.z_start",
8871 FT_FLOAT, BASE_NONE, NULL, 0x0,
8872 "Specifies the starting point of the collision segment in the Z-axis with respect to the entity's reference point", HFILL }
8874 { &hf_cigi2_collision_detection_segment_definition_x_end,
8875 { "Segment X End (m)", "cigi.coll_det_seg_def.x_end",
8876 FT_FLOAT, BASE_NONE, NULL, 0x0,
8877 "Specifies the ending point of the collision segment in the X-axis with respect to the entity's reference point", HFILL }
8879 { &hf_cigi2_collision_detection_segment_definition_y_end,
8880 { "Segment Y End (m)", "cigi.coll_det_seg_def.y_end",
8881 FT_FLOAT, BASE_NONE, NULL, 0x0,
8882 "Specifies the ending point of the collision segment in the Y-axis with respect to the entity's reference point", HFILL }
8884 { &hf_cigi2_collision_detection_segment_definition_z_end,
8885 { "Segment Z End (m)", "cigi.coll_det_seg_def.z_end",
8886 FT_FLOAT, BASE_NONE, NULL, 0x0,
8887 "Specifies the ending point of the collision segment in the Z-axis with respect to the entity's reference point", HFILL }
8890 /* CIGI3 Collision Detection Segment Definition */
8891 { &hf_cigi3_collision_detection_segment_definition,
8892 { "Collision Detection Segment Definition", "cigi.coll_det_seg_def",
8893 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8894 "Collision Detection Segment Definition Packet", HFILL }
8896 { &hf_cigi3_collision_detection_segment_definition_entity_id,
8897 { "Entity ID", "cigi.coll_det_seg_def.entity_id",
8898 FT_UINT16, BASE_DEC, NULL, 0x0,
8899 "Specifies the entity for which the segment is defined", HFILL }
8901 { &hf_cigi3_collision_detection_segment_definition_segment_id,
8902 { "Segment ID", "cigi.coll_det_seg_def.segment_id",
8903 FT_UINT8, BASE_DEC, NULL, 0x0,
8904 "Specifies the ID of the segment", HFILL }
8906 { &hf_cigi3_collision_detection_segment_definition_segment_enable,
8907 { "Segment Enable", "cigi.coll_det_seg_def.segment_enable",
8908 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
8909 "Specifies whether the segment is enabled or disabled", HFILL }
8911 { &hf_cigi3_collision_detection_segment_definition_x1,
8912 { "X1 (m)", "cigi.coll_det_seg_def.x1",
8913 FT_FLOAT, BASE_NONE, NULL, 0x0,
8914 "Specifies the X offset of one endpoint of the collision segment", HFILL }
8916 { &hf_cigi3_collision_detection_segment_definition_y1,
8917 { "Y1 (m)", "cigi.coll_det_seg_def.y1",
8918 FT_FLOAT, BASE_NONE, NULL, 0x0,
8919 "Specifies the Y offset of one endpoint of the collision segment", HFILL }
8921 { &hf_cigi3_collision_detection_segment_definition_z1,
8922 { "Z1 (m)", "cigi.coll_det_seg_def.z1",
8923 FT_FLOAT, BASE_NONE, NULL, 0x0,
8924 "Specifies the Z offset of one endpoint of the collision segment", HFILL }
8926 { &hf_cigi3_collision_detection_segment_definition_x2,
8927 { "X2 (m)", "cigi.coll_det_seg_def.x2",
8928 FT_FLOAT, BASE_NONE, NULL, 0x0,
8929 "Specifies the X offset of one endpoint of the collision segment", HFILL }
8931 { &hf_cigi3_collision_detection_segment_definition_y2,
8932 { "Y2 (m)", "cigi.coll_det_seg_def.y2",
8933 FT_FLOAT, BASE_NONE, NULL, 0x0,
8934 "Specifies the Y offset of one endpoint of the collision segment", HFILL }
8936 { &hf_cigi3_collision_detection_segment_definition_z2,
8937 { "Z2 (m)", "cigi.coll_det_seg_def.z2",
8938 FT_FLOAT, BASE_NONE, NULL, 0x0,
8939 "Specifies the Z offset of one endpoint of the collision segment", HFILL }
8941 { &hf_cigi3_collision_detection_segment_definition_material_mask,
8942 { "Material Mask", "cigi.coll_det_seg_def.material_mask",
8943 FT_UINT32, BASE_DEC, NULL, 0x0,
8944 "Specifies the environmental and cultural features to be included in or excluded from consideration for collision testing", HFILL }
8947 /* CIGI2 Collision Detection Volume Definition */
8948 { &hf_cigi2_collision_detection_volume_definition,
8949 { "Collision Detection Volume Definition", "cigi.coll_det_vol_def",
8950 FT_STRINGZ, BASE_NONE, NULL, 0x0,
8951 "Collision Detection Volume Definition Packet", HFILL }
8953 { &hf_cigi2_collision_detection_volume_definition_entity_id,
8954 { "Entity ID", "cigi.coll_det_vol_def.entity_id",
8955 FT_UINT16, BASE_DEC, NULL, 0x0,
8956 "Indicates the entity to which this collision detection definition is assigned", HFILL }
8958 { &hf_cigi2_collision_detection_volume_definition_volume_enable,
8959 { "Volume Enable", "cigi.coll_det_vol_def.volume_enable",
8960 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80,
8961 "Indicates whether the defined volume is enabled for collision testing", HFILL }
8963 { &hf_cigi2_collision_detection_volume_definition_volume_id,
8964 { "Volume ID", "cigi.coll_det_vol_def.volume_id",
8965 FT_UINT8, BASE_DEC, NULL, 0x7f,
8966 "Indicates which volume is being uniquely defined for a given entity", HFILL }
8968 { &hf_cigi2_collision_detection_volume_definition_x_offset,
8969 { "Centroid X Offset (m)", "cigi.coll_det_vol_def.x_offset",
8970 FT_FLOAT, BASE_NONE, NULL, 0x0,
8971 "Specifies the offset of the volume's centroid along the X axis with respect to the entity's reference point", HFILL }
8973 { &hf_cigi2_collision_detection_volume_definition_y_offset,
8974 { "Centroid Y Offset (m)", "cigi.coll_det_vol_def.y_offset",
8975 FT_FLOAT, BASE_NONE, NULL, 0x0,
8976 "Specifies the offset of the volume's centroid along the Y axis with respect to the entity's reference point", HFILL }
8978 { &hf_cigi2_collision_detection_volume_definition_z_offset,
8979 { "Centroid Z Offset (m)", "cigi.coll_det_vol_def.z_offset",
8980 FT_FLOAT, BASE_NONE, NULL, 0x0,
8981 "Specifies the offset of the volume's centroid along the Z axis with respect to the entity's reference point", HFILL }
8983 { &hf_cigi2_collision_detection_volume_definition_height,
8984 { "Height (m)", "cigi.coll_det_vol_def.height",
8985 FT_FLOAT, BASE_NONE, NULL, 0x0,
8986 "Specifies the height of the volume", HFILL }
8988 { &hf_cigi2_collision_detection_volume_definition_width,
8989 { "Width (m)", "cigi.coll_det_vol_def.width",
8990 FT_FLOAT, BASE_NONE, NULL, 0x0,
8991 "Specifies the width of the volume", HFILL }
8993 { &hf_cigi2_collision_detection_volume_definition_depth,
8994 { "Depth (m)", "cigi.coll_det_vol_def.depth",
8995 FT_FLOAT, BASE_NONE, NULL, 0x0,
8996 "Specifies the depth of the volume", HFILL }
8999 /* CIGI3 Collision Detection Volume Definition */
9000 { &hf_cigi3_collision_detection_volume_definition,
9001 { "Collision Detection Volume Definition", "cigi.coll_det_vol_def",
9002 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9003 "Collision Detection Volume Definition Packet", HFILL }
9005 { &hf_cigi3_collision_detection_volume_definition_entity_id,
9006 { "Entity ID", "cigi.coll_det_vol_def.entity_id",
9007 FT_UINT16, BASE_DEC, NULL, 0x0,
9008 "Specifies the entity for which the volume is defined", HFILL }
9010 { &hf_cigi3_collision_detection_volume_definition_volume_id,
9011 { "Volume ID", "cigi.coll_det_vol_def.volume_id",
9012 FT_UINT8, BASE_DEC, NULL, 0x0,
9013 "Specifies the ID of the volume", HFILL }
9015 { &hf_cigi3_collision_detection_volume_definition_volume_enable,
9016 { "Volume Enable", "cigi.coll_det_vol_def.volume_enable",
9017 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01,
9018 "Specifies whether the volume is enabled or disabled", HFILL }
9020 { &hf_cigi3_collision_detection_volume_definition_volume_type,
9021 { "Volume Type", "cigi.coll_det_vol_def.volume_type",
9022 FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_volume_definition_volume_type_tfs), 0x02,
9023 "Specified whether the volume is spherical or cuboid", HFILL }
9025 { &hf_cigi3_collision_detection_volume_definition_x,
9026 { "X (m)", "cigi.coll_det_vol_def.x",
9027 FT_FLOAT, BASE_NONE, NULL, 0x0,
9028 "Specifies the X offset of the center of the volume", HFILL }
9030 { &hf_cigi3_collision_detection_volume_definition_y,
9031 { "Y (m)", "cigi.coll_det_vol_def.y",
9032 FT_FLOAT, BASE_NONE, NULL, 0x0,
9033 "Specifies the Y offset of the center of the volume", HFILL }
9035 { &hf_cigi3_collision_detection_volume_definition_z,
9036 { "Z (m)", "cigi.coll_det_vol_def.z",
9037 FT_FLOAT, BASE_NONE, NULL, 0x0,
9038 "Specifies the Z offset of the center of the volume", HFILL }
9040 { &hf_cigi3_collision_detection_volume_definition_radius_height,
9041 { "Radius (m)/Height (m)", "cigi.coll_det_vol_def.radius_height",
9042 FT_FLOAT, BASE_NONE, NULL, 0x0,
9043 "Specifies the radius of the sphere or specifies the length of the cuboid along its Z axis", HFILL }
9045 { &hf_cigi3_collision_detection_volume_definition_width,
9046 { "Width (m)", "cigi.coll_det_vol_def.width",
9047 FT_FLOAT, BASE_NONE, NULL, 0x0,
9048 "Specifies the length of the cuboid along its Y axis", HFILL }
9050 { &hf_cigi3_collision_detection_volume_definition_depth,
9051 { "Depth (m)", "cigi.coll_det_vol_def.depth",
9052 FT_FLOAT, BASE_NONE, NULL, 0x0,
9053 "Specifies the length of the cuboid along its X axis", HFILL }
9055 { &hf_cigi3_collision_detection_volume_definition_roll,
9056 { "Roll (degrees)", "cigi.coll_det_vol_def.roll",
9057 FT_FLOAT, BASE_NONE, NULL, 0x0,
9058 "Specifies the roll of the cuboid with respect to the entity's coordinate system", HFILL }
9060 { &hf_cigi3_collision_detection_volume_definition_pitch,
9061 { "Pitch (degrees)", "cigi.coll_det_vol_def.pitch",
9062 FT_FLOAT, BASE_NONE, NULL, 0x0,
9063 "Specifies the pitch of the cuboid with respect to the entity's coordinate system", HFILL }
9065 { &hf_cigi3_collision_detection_volume_definition_yaw,
9066 { "Yaw (degrees)", "cigi.coll_det_vol_def.yaw",
9067 FT_FLOAT, BASE_NONE, NULL, 0x0,
9068 "Specifies the yaw of the cuboid with respect to the entity's coordinate system", HFILL }
9071 /* CIGI2 Height Above Terrain Request */
9072 { &hf_cigi2_height_above_terrain_request,
9073 { "Height Above Terrain Request", "cigi.hat_request",
9074 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9075 "Height Above Terrain Request Packet", HFILL }
9077 { &hf_cigi2_height_above_terrain_request_hat_id,
9078 { "HAT ID", "cigi.hat_request.hat_id",
9079 FT_UINT16, BASE_DEC, NULL, 0x0,
9080 "Identifies the HAT request", HFILL }
9082 { &hf_cigi2_height_above_terrain_request_alt,
9083 { "Altitude (m)", "cigi.hat_request.alt",
9084 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9085 "Specifies the altitude from which the HAT request is being made", HFILL }
9087 { &hf_cigi2_height_above_terrain_request_lat,
9088 { "Latitude (degrees)", "cigi.hat_request.lat",
9089 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9090 "Specifies the latitudinal position from which the HAT request is being made", HFILL }
9092 { &hf_cigi2_height_above_terrain_request_lon,
9093 { "Longitude (degrees)", "cigi.hat_request.lon",
9094 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9095 "Specifies the longitudinal position from which the HAT request is being made", HFILL }
9098 /* CIGI2 Line of Sight Occult Request */
9099 { &hf_cigi2_line_of_sight_occult_request,
9100 { "Line of Sight Occult Request", "cigi.los_occult_request",
9101 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9102 "Line of Sight Occult Request Packet", HFILL }
9104 { &hf_cigi2_line_of_sight_occult_request_los_id,
9105 { "LOS ID", "cigi.los_occult_request.los_id",
9106 FT_UINT16, BASE_DEC, NULL, 0x0,
9107 "Identifies the LOS request", HFILL }
9109 { &hf_cigi2_line_of_sight_occult_request_source_alt,
9110 { "Source Altitude (m)", "cigi.los_occult_request.source_alt",
9111 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9112 "Specifies the altitude of the source point for the LOS request segment", HFILL }
9114 { &hf_cigi2_line_of_sight_occult_request_source_lat,
9115 { "Source Latitude (degrees)", "cigi.los_occult_request.source_lat",
9116 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9117 "Specifies the latitudinal position of the source point for the LOS request segment", HFILL }
9119 { &hf_cigi2_line_of_sight_occult_request_source_lon,
9120 { "Source Longitude (degrees)", "cigi.los_occult_request.source_lon",
9121 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9122 "Specifies the longitudinal position of the source point for the LOS request segment", HFILL }
9124 { &hf_cigi2_line_of_sight_occult_request_dest_alt,
9125 { "Destination Altitude (m)", "cigi.los_occult_request.dest_alt",
9126 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9127 "Specifies the altitude of the destination point for the LOS request segment", HFILL }
9129 { &hf_cigi2_line_of_sight_occult_request_dest_lat,
9130 { "Destination Latitude (degrees)", "cigi.los_occult_request.dest_lat",
9131 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9132 "Specifies the latitudinal position for the destination point for the LOS request segment", HFILL }
9134 { &hf_cigi2_line_of_sight_occult_request_dest_lon,
9135 { "Destination Longitude (degrees)", "cigi.los_occult_request.dest_lon",
9136 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9137 "Specifies the longitudinal position of the destination point for the LOS request segment", HFILL }
9140 /* CIGI2 Line of Sight Range Request */
9141 { &hf_cigi2_line_of_sight_range_request,
9142 { "Line of Sight Range Request", "cigi.los_range_request",
9143 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9144 "Line of Sight Range Request Packet", HFILL }
9146 { &hf_cigi2_line_of_sight_range_request_los_id,
9147 { "LOS ID", "cigi.los_range_request.los_id",
9148 FT_UINT16, BASE_DEC, NULL, 0x0,
9149 "Identifies the LOS request", HFILL }
9151 { &hf_cigi2_line_of_sight_range_request_azimuth,
9152 { "Azimuth (degrees)", "cigi.los_range_request.azimuth",
9153 FT_FLOAT, BASE_NONE, NULL, 0x0,
9154 "Specifies the azimuth of the LOS vector", HFILL }
9156 { &hf_cigi2_line_of_sight_range_request_elevation,
9157 { "Elevation (degrees)", "cigi.los_range_request.elevation",
9158 FT_FLOAT, BASE_NONE, NULL, 0x0,
9159 "Specifies the elevation for the LOS vector", HFILL }
9161 { &hf_cigi2_line_of_sight_range_request_min_range,
9162 { "Minimum Range (m)", "cigi.los_range_request.min_range",
9163 FT_FLOAT, BASE_NONE, NULL, 0x0,
9164 "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 }
9166 { &hf_cigi2_line_of_sight_range_request_max_range,
9167 { "Maximum Range (m)", "cigi.los_range_request.max_range",
9168 FT_FLOAT, BASE_NONE, NULL, 0x0,
9169 "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 }
9171 { &hf_cigi2_line_of_sight_range_request_source_alt,
9172 { "Source Altitude (m)", "cigi.los_range_request.source_alt",
9173 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9174 "Specifies the altitude of the source point of the LOS request vector", HFILL }
9176 { &hf_cigi2_line_of_sight_range_request_source_lat,
9177 { "Source Latitude (degrees)", "cigi.los_range_request.source_lat",
9178 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9179 "Specifies the latitudinal position of the source point of the LOS request vector", HFILL }
9181 { &hf_cigi2_line_of_sight_range_request_source_lon,
9182 { "Source Longitude (degrees)", "cigi.los_range_request.source_lon",
9183 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9184 "Specifies the longitudinal position of the source point of the LOS request vector", HFILL }
9187 /* CIGI2 Height of Terrain Request */
9188 { &hf_cigi2_height_of_terrain_request,
9189 { "Height of Terrain Request", "cigi.hot_request",
9190 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9191 "Height of Terrain Request Packet", HFILL }
9193 { &hf_cigi2_height_of_terrain_request_hot_id,
9194 { "HOT ID", "cigi.hot_request.hot_id",
9195 FT_UINT16, BASE_DEC, NULL, 0x0,
9196 "Identifies the HOT request", HFILL }
9198 { &hf_cigi2_height_of_terrain_request_lat,
9199 { "Latitude (degrees)", "cigi.hot_request.lat",
9200 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9201 "Specifies the latitudinal position from which the HOT request is made", HFILL }
9203 { &hf_cigi2_height_of_terrain_request_lon,
9204 { "Longitude (degrees)", "cigi.hot_request.lon",
9205 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9206 "Specifies the longitudinal position from which the HOT request is made", HFILL }
9209 /* CIGI3 HAT/HOT Request */
9210 { &hf_cigi3_hat_hot_request,
9211 { "HAT/HOT Request", "cigi.hat_hot_request",
9212 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9213 "HAT/HOT Request Packet", HFILL }
9215 { &hf_cigi3_hat_hot_request_hat_hot_id,
9216 { "HAT/HOT ID", "cigi.hat_hot_request.hat_hot_id",
9217 FT_UINT16, BASE_DEC, NULL, 0x0,
9218 "Identifies the HAT/HOT request", HFILL }
9220 { &hf_cigi3_hat_hot_request_type,
9221 { "Request Type", "cigi.hat_hot_request.type",
9222 FT_UINT8, BASE_DEC, VALS(cigi3_hat_hot_request_type_vals), 0x03,
9223 "Determines the type of response packet the IG should return for this packet", HFILL }
9225 { &hf_cigi3_hat_hot_request_coordinate_system,
9226 { "Coordinate System", "cigi.hat_hot_request.coordinate_system",
9227 FT_BOOLEAN, 8, TFS(&cigi3_hat_hot_request_coordinate_system_tfs), 0x04,
9228 "Specifies the coordinate system within which the test point is defined", HFILL }
9230 { &hf_cigi3_hat_hot_request_entity_id,
9231 { "Entity ID", "cigi.hat_hot_request.entity_id",
9232 FT_UINT16, BASE_DEC, NULL, 0x0,
9233 "Specifies the entity relative to which the test point is defined", HFILL }
9235 { &hf_cigi3_hat_hot_request_lat_xoff,
9236 { "Latitude (degrees)/X Offset (m)", "cigi.hat_hot_request.lat_xoff",
9237 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9238 "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 }
9240 { &hf_cigi3_hat_hot_request_lon_yoff,
9241 { "Longitude (degrees)/Y Offset (m)", "cigi.hat_hot_request.lon_yoff",
9242 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9243 "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 }
9245 { &hf_cigi3_hat_hot_request_alt_zoff,
9246 { "Altitude (m)/Z Offset (m)", "cigi.hat_hot_request.alt_zoff",
9247 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9248 "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 }
9251 /* CIGI3_2 HAT/HOT Request */
9252 { &hf_cigi3_2_hat_hot_request,
9253 { "HAT/HOT Request", "cigi.hat_hot_request",
9254 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9255 "HAT/HOT Request Packet", HFILL }
9257 { &hf_cigi3_2_hat_hot_request_hat_hot_id,
9258 { "HAT/HOT ID", "cigi.hat_hot_request.hat_hot_id",
9259 FT_UINT16, BASE_DEC, NULL, 0x0,
9260 "Identifies the HAT/HOT request", HFILL }
9262 { &hf_cigi3_2_hat_hot_request_type,
9263 { "Request Type", "cigi.hat_hot_request.type",
9264 FT_UINT8, BASE_DEC, VALS(cigi3_2_hat_hot_request_type_vals), 0x03,
9265 "Determines the type of response packet the IG should return for this packet", HFILL }
9267 { &hf_cigi3_2_hat_hot_request_coordinate_system,
9268 { "Coordinate System", "cigi.hat_hot_request.coordinate_system",
9269 FT_BOOLEAN, 8, TFS(&cigi3_2_hat_hot_request_coordinate_system_tfs), 0x04,
9270 "Specifies the coordinate system within which the test point is defined", HFILL }
9272 { &hf_cigi3_2_hat_hot_request_update_period,
9273 { "Update Period", "cigi.hat_hot_request.update_period",
9274 FT_UINT8, BASE_DEC, NULL, 0x0,
9275 "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 }
9277 { &hf_cigi3_2_hat_hot_request_entity_id,
9278 { "Entity ID", "cigi.hat_hot_request.entity_id",
9279 FT_UINT16, BASE_DEC, NULL, 0x0,
9280 "Specifies the entity relative to which the test point is defined", HFILL }
9282 { &hf_cigi3_2_hat_hot_request_lat_xoff,
9283 { "Latitude (degrees)/X Offset (m)", "cigi.hat_hot_request.lat_xoff",
9284 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9285 "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 }
9287 { &hf_cigi3_2_hat_hot_request_lon_yoff,
9288 { "Longitude (degrees)/Y Offset (m)", "cigi.hat_hot_request.lon_yoff",
9289 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9290 "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 }
9292 { &hf_cigi3_2_hat_hot_request_alt_zoff,
9293 { "Altitude (m)/Z Offset (m)", "cigi.hat_hot_request.alt_zoff",
9294 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9295 "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 }
9298 /* CIGI3 Line of Sight Segment Request */
9299 { &hf_cigi3_line_of_sight_segment_request,
9300 { "Line of Sight Segment Request", "cigi.los_segment_request",
9301 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9302 "Line of Sight Segment Request Packet", HFILL }
9304 { &hf_cigi3_line_of_sight_segment_request_los_id,
9305 { "LOS ID", "cigi.los_segment_request.los_id",
9306 FT_UINT16, BASE_DEC, NULL, 0x0,
9307 "Identifies the LOS request", HFILL }
9309 { &hf_cigi3_line_of_sight_segment_request_type,
9310 { "Request Type", "cigi.los_segment_request.type",
9311 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_type_tfs), 0x01,
9312 "Determines what type of response the IG should return for this request", HFILL }
9314 { &hf_cigi3_line_of_sight_segment_request_source_coord,
9315 { "Source Point Coordinate System", "cigi.los_segment_request.source_coord",
9316 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x02,
9317 "Indicates the coordinate system relative to which the test segment source endpoint is specified", HFILL }
9319 { &hf_cigi3_line_of_sight_segment_request_destination_coord,
9320 { "Destination Point Coordinate System", "cigi.los_segment_request.destination_coord",
9321 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x04,
9322 "Indicates the coordinate system relative to which the test segment destination endpoint is specified", HFILL }
9324 { &hf_cigi3_line_of_sight_segment_request_response_coord,
9325 { "Response Coordinate System", "cigi.los_segment_request.response_coord",
9326 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x08,
9327 "Specifies the coordinate system to be used in the response", HFILL }
9329 { &hf_cigi3_line_of_sight_segment_request_alpha_threshold,
9330 { "Alpha Threshold", "cigi.los_segment_request.alpha_threshold",
9331 FT_UINT8, BASE_DEC, NULL, 0x0,
9332 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9334 { &hf_cigi3_line_of_sight_segment_request_entity_id,
9335 { "Entity ID", "cigi.los_segment_request.entity_id",
9336 FT_UINT16, BASE_DEC, NULL, 0x0,
9337 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9339 { &hf_cigi3_line_of_sight_segment_request_source_lat_xoff,
9340 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_segment_request.source_lat_xoff",
9341 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9342 "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 }
9344 { &hf_cigi3_line_of_sight_segment_request_source_lon_yoff,
9345 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_segment_request.source_lon_yoff",
9346 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9347 "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 }
9349 { &hf_cigi3_line_of_sight_segment_request_source_alt_zoff,
9350 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_segment_request.source_alt_zoff",
9351 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9352 "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 }
9354 { &hf_cigi3_line_of_sight_segment_request_destination_lat_xoff,
9355 { "Destination Latitude (degrees)/ Destination X Offset (m)", "cigi.los_segment_request.destination_lat_xoff",
9356 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9357 "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 }
9359 { &hf_cigi3_line_of_sight_segment_request_destination_lon_yoff,
9360 { "Destination Longitude (degrees)/Destination Y Offset (m)", "cigi.los_segment_request.destination_lon_yoff",
9361 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9362 "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 }
9364 { &hf_cigi3_line_of_sight_segment_request_destination_alt_zoff,
9365 { "Destination Altitude (m)/ Destination Z Offset (m)", "cigi.los_segment_request.destination_alt_zoff",
9366 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9367 "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 }
9369 { &hf_cigi3_line_of_sight_segment_request_material_mask,
9370 { "Material Mask", "cigi.los_segment_request.material_mask",
9371 FT_UINT32, BASE_DEC, NULL, 0x0,
9372 "Specifies the environmental and cultural features to be included in or excluded from consideration for the LOS segment testing", HFILL }
9375 /* CIGI3_2 Line of Sight Segment Request */
9376 { &hf_cigi3_2_line_of_sight_segment_request,
9377 { "Line of Sight Segment Request", "cigi.los_segment_request",
9378 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9379 "Line of Sight Segment Request Packet", HFILL }
9381 { &hf_cigi3_2_line_of_sight_segment_request_los_id,
9382 { "LOS ID", "cigi.los_segment_request.los_id",
9383 FT_UINT16, BASE_DEC, NULL, 0x0,
9384 "Identifies the LOS request", HFILL }
9386 { &hf_cigi3_2_line_of_sight_segment_request_type,
9387 { "Request Type", "cigi.los_segment_request.type",
9388 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_type_tfs), 0x01,
9389 "Determines what type of response the IG should return for this request", HFILL }
9391 { &hf_cigi3_2_line_of_sight_segment_request_source_coord,
9392 { "Source Point Coordinate System", "cigi.los_segment_request.source_coord",
9393 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_coord_tfs), 0x02,
9394 "Indicates the coordinate system relative to which the test segment source endpoint is specified", HFILL }
9396 { &hf_cigi3_2_line_of_sight_segment_request_destination_coord,
9397 { "Destination Point Coordinate System", "cigi.los_segment_request.destination_coord",
9398 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_coord_tfs), 0x04,
9399 "Indicates the coordinate system relative to which the test segment destination endpoint is specified", HFILL }
9401 { &hf_cigi3_2_line_of_sight_segment_request_response_coord,
9402 { "Response Coordinate System", "cigi.los_segment_request.response_coord",
9403 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_segment_request_coord_tfs), 0x08,
9404 "Specifies the coordinate system to be used in the response", HFILL }
9406 { &hf_cigi3_2_line_of_sight_segment_request_destination_entity_id_valid,
9407 { "Destination Entity ID Valid", "cigi.los_segment_request.destination_entity_id_valid",
9408 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x10,
9409 "Destination Entity ID is valid.", HFILL }
9411 { &hf_cigi3_2_line_of_sight_segment_request_alpha_threshold,
9412 { "Alpha Threshold", "cigi.los_segment_request.alpha_threshold",
9413 FT_UINT8, BASE_DEC, NULL, 0x0,
9414 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9416 { &hf_cigi3_2_line_of_sight_segment_request_entity_id,
9417 { "Entity ID", "cigi.los_segment_request.entity_id",
9418 FT_UINT16, BASE_DEC, NULL, 0x0,
9419 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9421 { &hf_cigi3_2_line_of_sight_segment_request_source_lat_xoff,
9422 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_segment_request.source_lat_xoff",
9423 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9424 "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 }
9426 { &hf_cigi3_2_line_of_sight_segment_request_source_lon_yoff,
9427 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_segment_request.source_lon_yoff",
9428 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9429 "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 }
9431 { &hf_cigi3_2_line_of_sight_segment_request_source_alt_zoff,
9432 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_segment_request.source_alt_zoff",
9433 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9434 "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 }
9436 { &hf_cigi3_2_line_of_sight_segment_request_destination_lat_xoff,
9437 { "Destination Latitude (degrees)/ Destination X Offset (m)", "cigi.los_segment_request.destination_lat_xoff",
9438 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9439 "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 }
9441 { &hf_cigi3_2_line_of_sight_segment_request_destination_lon_yoff,
9442 { "Destination Longitude (degrees)/Destination Y Offset (m)", "cigi.los_segment_request.destination_lon_yoff",
9443 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9444 "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 }
9446 { &hf_cigi3_2_line_of_sight_segment_request_destination_alt_zoff,
9447 { "Destination Altitude (m)/ Destination Z Offset (m)", "cigi.los_segment_request.destination_alt_zoff",
9448 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9449 "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 }
9451 { &hf_cigi3_2_line_of_sight_segment_request_material_mask,
9452 { "Material Mask", "cigi.los_segment_request.material_mask",
9453 FT_UINT32, BASE_DEC, NULL, 0x0,
9454 "Specifies the environmental and cultural features to be included in or excluded from consideration for the LOS segment testing", HFILL }
9456 { &hf_cigi3_2_line_of_sight_segment_request_update_period,
9457 { "Update Period", "cigi.los_segment_request.update_period",
9458 FT_UINT8, BASE_DEC, NULL, 0x0,
9459 "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 }
9461 { &hf_cigi3_2_line_of_sight_segment_request_destination_entity_id,
9462 { "Destination Entity ID", "cigi.los_segment_request.destination_entity_id",
9463 FT_UINT16, BASE_DEC, NULL, 0x0,
9464 "Indicates the entity with respect to which the Destination X Offset, Y Offset, and Destination Z Offset parameters are specified", HFILL }
9467 /* CIGI3 Line of Sight Vector Request */
9468 { &hf_cigi3_line_of_sight_vector_request,
9469 { "Line of Sight Vector Request", "cigi.los_vector_request",
9470 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9471 "Line of Sight Vector Request Packet", HFILL }
9473 { &hf_cigi3_line_of_sight_vector_request_los_id,
9474 { "LOS ID", "cigi.los_vector_request.los_id",
9475 FT_UINT16, BASE_DEC, NULL, 0x0,
9476 "Identifies the LOS request", HFILL }
9478 { &hf_cigi3_line_of_sight_vector_request_type,
9479 { "Request Type", "cigi.los_vector_request.type",
9480 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_type_tfs), 0x01,
9481 "Determines what type of response the IG should return for this request", HFILL }
9483 { &hf_cigi3_line_of_sight_vector_request_source_coord,
9484 { "Source Point Coordinate System", "cigi.los_vector_request.source_coord",
9485 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_coord_tfs), 0x02,
9486 "Indicates the coordinate system relative to which the test vector source point is specified", HFILL }
9488 { &hf_cigi3_line_of_sight_vector_request_response_coord,
9489 { "Response Coordinate System", "cigi.los_vector_request.response_coord",
9490 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_coord_tfs), 0x04,
9491 "Specifies the coordinate system to be used in the response", HFILL }
9493 { &hf_cigi3_line_of_sight_vector_request_alpha,
9494 { "Alpha Threshold", "cigi.los_vector_request.alpha",
9495 FT_UINT8, BASE_DEC, NULL, 0x0,
9496 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9498 { &hf_cigi3_line_of_sight_vector_request_entity_id,
9499 { "Entity ID", "cigi.los_vector_request.entity_id",
9500 FT_UINT16, BASE_DEC, NULL, 0x0,
9501 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9503 { &hf_cigi3_line_of_sight_vector_request_azimuth,
9504 { "Azimuth (degrees)", "cigi.los_vector_request.azimuth",
9505 FT_FLOAT, BASE_NONE, NULL, 0x0,
9506 "Specifies the horizontal angle of the LOS test vector", HFILL }
9508 { &hf_cigi3_line_of_sight_vector_request_elevation,
9509 { "Elevation (degrees)", "cigi.los_vector_request.elevation",
9510 FT_FLOAT, BASE_NONE, NULL, 0x0,
9511 "Specifies the vertical angle of the LOS test vector", HFILL }
9513 { &hf_cigi3_line_of_sight_vector_request_min_range,
9514 { "Minimum Range (m)", "cigi.los_vector_request.min_range",
9515 FT_FLOAT, BASE_NONE, NULL, 0x0,
9516 "Specifies the minimum range along the LOS test vector at which intersection testing should occur", HFILL }
9518 { &hf_cigi3_line_of_sight_vector_request_max_range,
9519 { "Maximum Range (m)", "cigi.los_vector_request.max_range",
9520 FT_FLOAT, BASE_NONE, NULL, 0x0,
9521 "Specifies the maximum range along the LOS test vector at which intersection testing should occur", HFILL }
9523 { &hf_cigi3_line_of_sight_vector_request_source_lat_xoff,
9524 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_vector_request.source_lat_xoff",
9525 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9526 "Specifies the latitude of the source point of the LOS test vector", HFILL }
9528 { &hf_cigi3_line_of_sight_vector_request_source_lon_yoff,
9529 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_vector_request.source_lon_yoff",
9530 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9531 "Specifies the longitude of the source point of the LOS test vector", HFILL }
9533 { &hf_cigi3_line_of_sight_vector_request_source_alt_zoff,
9534 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_vector_request.source_alt_zoff",
9535 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9536 "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 }
9538 { &hf_cigi3_line_of_sight_vector_request_material_mask,
9539 { "Material Mask", "cigi.los_vector_request.material_mask",
9540 FT_UINT32, BASE_DEC, NULL, 0x0,
9541 "Specifies the environmental and cultural features to be included in LOS segment testing", HFILL }
9544 /* CIGI3_2 Line of Sight Vector Request */
9545 { &hf_cigi3_2_line_of_sight_vector_request,
9546 { "Line of Sight Vector Request", "cigi.los_vector_request",
9547 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9548 "Line of Sight Vector Request Packet", HFILL }
9550 { &hf_cigi3_2_line_of_sight_vector_request_los_id,
9551 { "LOS ID", "cigi.los_vector_request.los_id",
9552 FT_UINT16, BASE_DEC, NULL, 0x0,
9553 "Identifies the LOS request", HFILL }
9555 { &hf_cigi3_2_line_of_sight_vector_request_type,
9556 { "Request Type", "cigi.los_vector_request.type",
9557 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_vector_request_type_tfs), 0x01,
9558 "Determines what type of response the IG should return for this request", HFILL }
9560 { &hf_cigi3_2_line_of_sight_vector_request_source_coord,
9561 { "Source Point Coordinate System", "cigi.los_vector_request.source_coord",
9562 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_vector_request_coord_tfs), 0x02,
9563 "Indicates the coordinate system relative to which the test vector source point is specified", HFILL }
9565 { &hf_cigi3_2_line_of_sight_vector_request_response_coord,
9566 { "Response Coordinate System", "cigi.los_vector_request.response_coord",
9567 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_vector_request_coord_tfs), 0x04,
9568 "Specifies the coordinate system to be used in the response", HFILL }
9570 { &hf_cigi3_2_line_of_sight_vector_request_alpha,
9571 { "Alpha Threshold", "cigi.los_vector_request.alpha",
9572 FT_UINT8, BASE_DEC, NULL, 0x0,
9573 "Specifies the minimum alpha value a surface may have for an LOS response to be generated", HFILL }
9575 { &hf_cigi3_2_line_of_sight_vector_request_entity_id,
9576 { "Entity ID", "cigi.los_vector_request.entity_id",
9577 FT_UINT16, BASE_DEC, NULL, 0x0,
9578 "Specifies the entity relative to which the test segment endpoints are defined", HFILL }
9580 { &hf_cigi3_2_line_of_sight_vector_request_azimuth,
9581 { "Azimuth (degrees)", "cigi.los_vector_request.azimuth",
9582 FT_FLOAT, BASE_NONE, NULL, 0x0,
9583 "Specifies the horizontal angle of the LOS test vector", HFILL }
9585 { &hf_cigi3_2_line_of_sight_vector_request_elevation,
9586 { "Elevation (degrees)", "cigi.los_vector_request.elevation",
9587 FT_FLOAT, BASE_NONE, NULL, 0x0,
9588 "Specifies the vertical angle of the LOS test vector", HFILL }
9590 { &hf_cigi3_2_line_of_sight_vector_request_min_range,
9591 { "Minimum Range (m)", "cigi.los_vector_request.min_range",
9592 FT_FLOAT, BASE_NONE, NULL, 0x0,
9593 "Specifies the minimum range along the LOS test vector at which intersection testing should occur", HFILL }
9595 { &hf_cigi3_2_line_of_sight_vector_request_max_range,
9596 { "Maximum Range (m)", "cigi.los_vector_request.max_range",
9597 FT_FLOAT, BASE_NONE, NULL, 0x0,
9598 "Specifies the maximum range along the LOS test vector at which intersection testing should occur", HFILL }
9600 { &hf_cigi3_2_line_of_sight_vector_request_source_lat_xoff,
9601 { "Source Latitude (degrees)/Source X Offset (m)", "cigi.los_vector_request.source_lat_xoff",
9602 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9603 "Specifies the latitude of the source point of the LOS test vector", HFILL }
9605 { &hf_cigi3_2_line_of_sight_vector_request_source_lon_yoff,
9606 { "Source Longitude (degrees)/Source Y Offset (m)", "cigi.los_vector_request.source_lon_yoff",
9607 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9608 "Specifies the longitude of the source point of the LOS test vector", HFILL }
9610 { &hf_cigi3_2_line_of_sight_vector_request_source_alt_zoff,
9611 { "Source Altitude (m)/Source Z Offset (m)", "cigi.los_vector_request.source_alt_zoff",
9612 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9613 "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 }
9615 { &hf_cigi3_2_line_of_sight_vector_request_material_mask,
9616 { "Material Mask", "cigi.los_vector_request.material_mask",
9617 FT_UINT32, BASE_DEC, NULL, 0x0,
9618 "Specifies the environmental and cultural features to be included in LOS segment testing", HFILL }
9620 { &hf_cigi3_2_line_of_sight_vector_request_update_period,
9621 { "Update Period", "cigi.los_vector_request.update_period",
9622 FT_UINT8, BASE_DEC, NULL, 0x0,
9623 "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 }
9626 /* CIGI3 Position Request */
9627 { &hf_cigi3_position_request,
9628 { "Position Request", "cigi.pos_request",
9629 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9630 "Position Request Packet", HFILL }
9632 { &hf_cigi3_position_request_object_id,
9633 { "Object ID", "cigi.pos_request.object_id",
9634 FT_UINT16, BASE_DEC, NULL, 0x0,
9635 "Identifies the entity, view, view group, or motion tracking device whose position is being requested", HFILL }
9637 { &hf_cigi3_position_request_part_id,
9638 { "Articulated Part ID", "cigi.pos_request.part_id",
9639 FT_UINT8, BASE_DEC, NULL, 0x0,
9640 "Identifies the articulated part whose position is being requested", HFILL }
9642 { &hf_cigi3_position_request_update_mode,
9643 { "Update Mode", "cigi.pos_request.update_mode",
9644 FT_BOOLEAN, 8, TFS(&cigi3_position_request_update_mode_tfs), 0x01,
9645 "Specifies whether the IG should report the position of the requested object each frame", HFILL }
9647 { &hf_cigi3_position_request_object_class,
9648 { "Object Class", "cigi.pos_request.object_class",
9649 FT_UINT8, BASE_DEC, VALS(cigi3_position_request_object_class_vals), 0x0e,
9650 "Specifies the type of object whose position is being requested", HFILL }
9652 { &hf_cigi3_position_request_coord_system,
9653 { "Coordinate System", "cigi.pos_request.coord_system",
9654 FT_UINT8, BASE_DEC, VALS(cigi3_position_request_coord_system_vals), 0x30,
9655 "Specifies the desired coordinate system relative to which the position and orientation should be given", HFILL }
9658 /* CIGI3 Environmental Conditions Request */
9659 { &hf_cigi3_environmental_conditions_request,
9660 { "Environmental Conditions Request", "cigi.env_cond_request",
9661 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9662 "Environmental Conditions Request Packet", HFILL }
9664 { &hf_cigi3_environmental_conditions_request_type,
9665 { "Request Type", "cigi.env_cond_request.type",
9666 FT_UINT8, BASE_DEC, VALS(cigi3_environmental_conditions_request_type_vals), 0x0f,
9667 "Specifies the desired response type for the request", HFILL }
9669 { &hf_cigi3_environmental_conditions_request_id,
9670 { "Request ID", "cigi.env_cond_request.id",
9671 FT_UINT8, BASE_DEC, NULL, 0x0,
9672 "Identifies the environmental conditions request", HFILL }
9674 { &hf_cigi3_environmental_conditions_request_lat,
9675 { "Latitude (degrees)", "cigi.env_cond_request.lat",
9676 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9677 "Specifies the geodetic latitude at which the environmental state is requested", HFILL }
9679 { &hf_cigi3_environmental_conditions_request_lon,
9680 { "Longitude (degrees)", "cigi.env_cond_request.lon",
9681 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9682 "Specifies the geodetic longitude at which the environmental state is requested", HFILL }
9684 { &hf_cigi3_environmental_conditions_request_alt,
9685 { "Altitude (m)", "cigi.env_cond_request.alt",
9686 FT_DOUBLE, BASE_NONE, NULL, 0x0,
9687 "Specifies the geodetic altitude at which the environmental state is requested", HFILL }
9690 /* CIGI3_3 Symbol Surface Definition */
9691 { &hf_cigi3_3_symbol_surface_definition,
9692 { "Symbol Surface Definition", "cigi.symbl_srfc_def",
9693 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9694 "Symbol Surface Definition Packet", HFILL }
9696 { &hf_cigi3_3_symbol_surface_definition_surface_id,
9697 { "Surface ID", "cigi.symbl_srfc_def.surface_id",
9698 FT_UINT16, BASE_DEC, NULL, 0x0,
9699 "Identifies the symbol surface to which this packet is applied", HFILL }
9701 { &hf_cigi3_3_symbol_surface_definition_surface_state,
9702 { "Surface State", "cigi.symbl_srfc_def.surface_state",
9703 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_surface_definition_surface_state_tfs), 0x01,
9704 "Specifies whether the symbol surface should be active or destroyed", HFILL }
9706 { &hf_cigi3_3_symbol_surface_definition_attach_type,
9707 { "Attach Type", "cigi.symbl_srfc_def.attach_type",
9708 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_surface_definition_attach_type_tfs), 0x02,
9709 "Specifies whether the surface should be attached to an entity or view", HFILL }
9711 { &hf_cigi3_3_symbol_surface_definition_billboard,
9712 { "Billboard", "cigi.symbl_srfc_def.billboard",
9713 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_surface_definition_billboard_tfs), 0x04,
9714 "Specifies whether the surface is treated as a billboard", HFILL }
9716 { &hf_cigi3_3_symbol_surface_definition_perspective_growth_enable,
9717 { "Perspective Growth Enable", "cigi.symbl_srfc_def.perspective_growth_enable",
9718 FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08,
9719 "Specifies whether the surface appears to maintain a constant size or has perspective growth", HFILL }
9721 { &hf_cigi3_3_symbol_surface_definition_entity_view_id,
9722 { "Entity ID/View ID", "cigi.symbl_srfc_def.entity_view_id",
9723 FT_UINT16, BASE_DEC, NULL, 0x0,
9724 "Specifies the entity or view to which this symbol surface is attached", HFILL }
9726 { &hf_cigi3_3_symbol_surface_definition_xoff_left,
9727 { "X Offset (m)/Left", "cigi.symbl_srfc_def.xoff_left",
9728 FT_FLOAT, BASE_NONE, NULL, 0x0,
9729 "Specifies the x offset or leftmost boundary for the symbol surface", HFILL }
9731 { &hf_cigi3_3_symbol_surface_definition_yoff_right,
9732 { "Y Offset (m)/Right", "cigi.symbl_srfc_def.yoff_right",
9733 FT_FLOAT, BASE_NONE, NULL, 0x0,
9734 "Specifies the y offset or rightmost boundary for the symbol surface", HFILL }
9736 { &hf_cigi3_3_symbol_surface_definition_zoff_top,
9737 { "Z Offset (m)/Top", "cigi.symbl_srfc_def.zoff_top",
9738 FT_FLOAT, BASE_NONE, NULL, 0x0,
9739 "Specifies the z offset or topmost boundary for the symbol surface", HFILL }
9741 { &hf_cigi3_3_symbol_surface_definition_yaw_bottom,
9742 { "Yaw (degrees)/Bottom", "cigi.symbl_srfc_def.yaw_bottom",
9743 FT_FLOAT, BASE_NONE, NULL, 0x0,
9744 "Specifies the rotation about the surface's Z axis or bottommost boundary for the symbol surface", HFILL }
9746 { &hf_cigi3_3_symbol_surface_definition_pitch,
9747 { "Pitch (degrees)", "cigi.symbl_srfc_def.pitch",
9748 FT_FLOAT, BASE_NONE, NULL, 0x0,
9749 "Specifies the rotation about the surface's Y axis", HFILL }
9751 { &hf_cigi3_3_symbol_surface_definition_roll,
9752 { "Roll (degrees)", "cigi.symbl_srfc_def.roll",
9753 FT_FLOAT, BASE_NONE, NULL, 0x0,
9754 "Specifies the rotation about the surface's X axis", HFILL }
9756 { &hf_cigi3_3_symbol_surface_definition_width,
9757 { "Width (m/degrees)", "cigi.symbl_srfc_def.width",
9758 FT_FLOAT, BASE_NONE, NULL, 0x0,
9759 "Specifies the width of the symbol surface", HFILL }
9761 { &hf_cigi3_3_symbol_surface_definition_height,
9762 { "Height (m/degrees)", "cigi.symbl_srfc_def.height",
9763 FT_FLOAT, BASE_NONE, NULL, 0x0,
9764 "Specifies the height of the symbol surface", HFILL }
9766 { &hf_cigi3_3_symbol_surface_definition_min_u,
9767 { "Min U (surface horizontal units)", "cigi.symbl_srfc_def.min_u",
9768 FT_FLOAT, BASE_NONE, NULL, 0x0,
9769 "Specifies the minimum U coordinate of the symbol surface's viewable area", HFILL }
9771 { &hf_cigi3_3_symbol_surface_definition_max_u,
9772 { "Max U (surface horizontal units)", "cigi.symbl_srfc_def.max_u",
9773 FT_FLOAT, BASE_NONE, NULL, 0x0,
9774 "Specifies the maximum U coordinate of the symbol surface's viewable area", HFILL }
9776 { &hf_cigi3_3_symbol_surface_definition_min_v,
9777 { "Min V (surface vertical units)", "cigi.symbl_srfc_def.min_v",
9778 FT_FLOAT, BASE_NONE, NULL, 0x0,
9779 "Specifies the minimum V coordinate of the symbol surface's viewable area", HFILL }
9781 { &hf_cigi3_3_symbol_surface_definition_max_v,
9782 { "Max V (surface vertical units)", "cigi.symbl_srfc_def.max_v",
9783 FT_FLOAT, BASE_NONE, NULL, 0x0,
9784 "Specifies the maximum V coordinate of the symbol surface's viewable area", HFILL }
9787 /* CIGI3_3 Symbol Text Definition */
9788 { &hf_cigi3_3_symbol_text_definition,
9789 { "Symbol Text Definition", "cigi.symbol_text_def",
9790 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9791 "Symbol Text Definition Packet", HFILL }
9793 { &hf_cigi3_3_symbol_text_definition_symbol_id,
9794 { "Symbol ID", "cigi.symbol_text_def.symbol_id",
9795 FT_UINT16, BASE_DEC, NULL, 0x0,
9796 "Specifies the identifier of the symbol that is being defined", HFILL }
9798 { &hf_cigi3_3_symbol_text_definition_alignment,
9799 { "Alignment", "cigi.symbol_text_def.alignment",
9800 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_text_definition_alignment_vals), 0x0f,
9801 "Specifies the position of the symbol's reference point", HFILL }
9803 { &hf_cigi3_3_symbol_text_definition_orientation,
9804 { "Orientation", "cigi.symbol_text_def.orientation",
9805 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_text_definition_orientation_vals), 0x30,
9806 "Specifies the orientation of the text", HFILL }
9808 { &hf_cigi3_3_symbol_text_definition_font_ident,
9809 { "Font ID", "cigi.symbol_text_def.font_ident",
9810 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_text_definition_font_ident_vals), 0x0,
9811 "Specifies the font to be used", HFILL }
9813 { &hf_cigi3_3_symbol_text_definition_font_size,
9814 { "Font Size", "cigi.symbol_text_def.font_size",
9815 FT_FLOAT, BASE_NONE, NULL, 0x0,
9816 "Specifies the font size", HFILL }
9818 { &hf_cigi3_3_symbol_text_definition_text,
9819 { "Text", "cigi.symbol_text_def.text",
9820 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9821 "Symbol text", HFILL }
9824 /* CIGI3_3 Symbol Circle Definition */
9825 { &hf_cigi3_3_symbol_circle_definition,
9826 { "Symbol Circle Definition", "cigi.symbol_circle_def",
9827 FT_STRINGZ, BASE_NONE, NULL, 0x0,
9828 "Symbol Circle Definition Packet", HFILL }
9830 { &hf_cigi3_3_symbol_circle_definition_symbol_id,
9831 { "Symbol ID", "cigi.symbol_circle_def.symbol_id",
9832 FT_UINT16, BASE_DEC, NULL, 0x0,
9833 "Specifies the identifier of the symbol that is being defined", HFILL }
9835 { &hf_cigi3_3_symbol_circle_definition_drawing_style,
9836 { "Drawing Style", "cigi.symbl_circle_def.drawing_style",
9837 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_circle_definition_drawing_style_tfs), 0x01,
9838 "Specifies whether the circles and arcs are curved lines or filled areas", HFILL }
9840 { &hf_cigi3_3_symbol_circle_definition_stipple_pattern,
9841 { "Stipple Pattern", "cigi.symbol_circle_def.stipple_pattern",
9842 FT_UINT16, BASE_HEX, NULL, 0x0,
9843 "Specifies the dash pattern used", HFILL }
9845 { &hf_cigi3_3_symbol_circle_definition_line_width,
9846 { "Line Width (scaled symbol surface units)", "cigi.symbol_circle_def.line_width",
9847 FT_FLOAT, BASE_NONE, NULL, 0x0,
9848 "Specifies the thickness of the line", HFILL }
9850 { &hf_cigi3_3_symbol_circle_definition_stipple_pattern_length,
9851 { "Stipple Pattern Length (scaled symbol surface units)", "cigi.symbol_circle_def.stipple_pattern_length",
9852 FT_FLOAT, BASE_NONE, NULL, 0x0,
9853 "Specifies the length of one complete repetition of the stipple pattern", HFILL }
9855 { &hf_cigi3_3_symbol_circle_definition_center_u[0],
9856 { "Center U 1 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u1",
9857 FT_FLOAT, BASE_NONE, NULL, 0x0,
9858 "Specifies the u position of the center", HFILL }
9860 { &hf_cigi3_3_symbol_circle_definition_center_v[0],
9861 { "Center V 1 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v1",
9862 FT_FLOAT, BASE_NONE, NULL, 0x0,
9863 "Specifies the v position of the center", HFILL }
9865 { &hf_cigi3_3_symbol_circle_definition_radius[0],
9866 { "Radius 1 (scaled symbol surface units)", "cigi.symbol_circle_def.radius1",
9867 FT_FLOAT, BASE_NONE, NULL, 0x0,
9868 "Specifies the radius", HFILL }
9870 { &hf_cigi3_3_symbol_circle_definition_inner_radius[0],
9871 { "Inner Radius 1 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius1",
9872 FT_FLOAT, BASE_NONE, NULL, 0x0,
9873 "Specifies the inner radius", HFILL }
9875 { &hf_cigi3_3_symbol_circle_definition_start_angle[0],
9876 { "Start Angle 1 (degrees)", "cigi.symbol_circle_def.start_angle1",
9877 FT_FLOAT, BASE_NONE, NULL, 0x0,
9878 "Specifies the start angle", HFILL }
9880 { &hf_cigi3_3_symbol_circle_definition_end_angle[0],
9881 { "End Angle 1 (degrees)", "cigi.symbol_circle_def.end_angle1",
9882 FT_FLOAT, BASE_NONE, NULL, 0x0,
9883 "Specifies the end angle", HFILL }
9885 { &hf_cigi3_3_symbol_circle_definition_center_u[1],
9886 { "Center U 2 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u2",
9887 FT_FLOAT, BASE_NONE, NULL, 0x0,
9888 "Specifies the u position of the center", HFILL }
9890 { &hf_cigi3_3_symbol_circle_definition_center_v[1],
9891 { "Center V 2 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v2",
9892 FT_FLOAT, BASE_NONE, NULL, 0x0,
9893 "Specifies the v position of the center", HFILL }
9895 { &hf_cigi3_3_symbol_circle_definition_radius[1],
9896 { "Radius 2 (scaled symbol surface units)", "cigi.symbol_circle_def.radius2",
9897 FT_FLOAT, BASE_NONE, NULL, 0x0,
9898 "Specifies the radius", HFILL }
9900 { &hf_cigi3_3_symbol_circle_definition_inner_radius[1],
9901 { "Inner Radius 2 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius2",
9902 FT_FLOAT, BASE_NONE, NULL, 0x0,
9903 "Specifies the inner radius", HFILL }
9905 { &hf_cigi3_3_symbol_circle_definition_start_angle[1],
9906 { "Start Angle 2 (degrees)", "cigi.symbol_circle_def.start_angle2",
9907 FT_FLOAT, BASE_NONE, NULL, 0x0,
9908 "Specifies the start angle", HFILL }
9910 { &hf_cigi3_3_symbol_circle_definition_end_angle[1],
9911 { "End Angle 2 (degrees)", "cigi.symbol_circle_def.end_angle2",
9912 FT_FLOAT, BASE_NONE, NULL, 0x0,
9913 "Specifies the end angle", HFILL }
9915 { &hf_cigi3_3_symbol_circle_definition_center_u[2],
9916 { "Center U 3 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u3",
9917 FT_FLOAT, BASE_NONE, NULL, 0x0,
9918 "Specifies the u position of the center", HFILL }
9920 { &hf_cigi3_3_symbol_circle_definition_center_v[2],
9921 { "Center V 3 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v3",
9922 FT_FLOAT, BASE_NONE, NULL, 0x0,
9923 "Specifies the v position of the center", HFILL }
9925 { &hf_cigi3_3_symbol_circle_definition_radius[2],
9926 { "Radius 3 (scaled symbol surface units)", "cigi.symbol_circle_def.radius3",
9927 FT_FLOAT, BASE_NONE, NULL, 0x0,
9928 "Specifies the radius", HFILL }
9930 { &hf_cigi3_3_symbol_circle_definition_inner_radius[2],
9931 { "Inner Radius 3 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius3",
9932 FT_FLOAT, BASE_NONE, NULL, 0x0,
9933 "Specifies the inner radius", HFILL }
9935 { &hf_cigi3_3_symbol_circle_definition_start_angle[2],
9936 { "Start Angle 3 (degrees)", "cigi.symbol_circle_def.start_angle3",
9937 FT_FLOAT, BASE_NONE, NULL, 0x0,
9938 "Specifies the start angle", HFILL }
9940 { &hf_cigi3_3_symbol_circle_definition_end_angle[2],
9941 { "End Angle 3 (degrees)", "cigi.symbol_circle_def.end_angle3",
9942 FT_FLOAT, BASE_NONE, NULL, 0x0,
9943 "Specifies the end angle", HFILL }
9945 { &hf_cigi3_3_symbol_circle_definition_center_u[3],
9946 { "Center U 4 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u4",
9947 FT_FLOAT, BASE_NONE, NULL, 0x0,
9948 "Specifies the u position of the center", HFILL }
9950 { &hf_cigi3_3_symbol_circle_definition_center_v[3],
9951 { "Center V 4 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v4",
9952 FT_FLOAT, BASE_NONE, NULL, 0x0,
9953 "Specifies the v position of the center", HFILL }
9955 { &hf_cigi3_3_symbol_circle_definition_radius[3],
9956 { "Radius 4 (scaled symbol surface units)", "cigi.symbol_circle_def.radius4",
9957 FT_FLOAT, BASE_NONE, NULL, 0x0,
9958 "Specifies the radius", HFILL }
9960 { &hf_cigi3_3_symbol_circle_definition_inner_radius[3],
9961 { "Inner Radius 4 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius4",
9962 FT_FLOAT, BASE_NONE, NULL, 0x0,
9963 "Specifies the inner radius", HFILL }
9965 { &hf_cigi3_3_symbol_circle_definition_start_angle[3],
9966 { "Start Angle 4 (degrees)", "cigi.symbol_circle_def.start_angle4",
9967 FT_FLOAT, BASE_NONE, NULL, 0x0,
9968 "Specifies the start angle", HFILL }
9970 { &hf_cigi3_3_symbol_circle_definition_end_angle[3],
9971 { "End Angle 4 (degrees)", "cigi.symbol_circle_def.end_angle4",
9972 FT_FLOAT, BASE_NONE, NULL, 0x0,
9973 "Specifies the end angle", HFILL }
9975 { &hf_cigi3_3_symbol_circle_definition_center_u[4],
9976 { "Center U 5 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u5",
9977 FT_FLOAT, BASE_NONE, NULL, 0x0,
9978 "Specifies the u position of the center", HFILL }
9980 { &hf_cigi3_3_symbol_circle_definition_center_v[4],
9981 { "Center V 5 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v5",
9982 FT_FLOAT, BASE_NONE, NULL, 0x0,
9983 "Specifies the v position of the center", HFILL }
9985 { &hf_cigi3_3_symbol_circle_definition_radius[4],
9986 { "Radius 5 (scaled symbol surface units)", "cigi.symbol_circle_def.radius5",
9987 FT_FLOAT, BASE_NONE, NULL, 0x0,
9988 "Specifies the radius", HFILL }
9990 { &hf_cigi3_3_symbol_circle_definition_inner_radius[4],
9991 { "Inner Radius 5 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius5",
9992 FT_FLOAT, BASE_NONE, NULL, 0x0,
9993 "Specifies the inner radius", HFILL }
9995 { &hf_cigi3_3_symbol_circle_definition_start_angle[4],
9996 { "Start Angle 5 (degrees)", "cigi.symbol_circle_def.start_angle5",
9997 FT_FLOAT, BASE_NONE, NULL, 0x0,
9998 "Specifies the start angle", HFILL }
10000 { &hf_cigi3_3_symbol_circle_definition_end_angle[4],
10001 { "End Angle 5 (degrees)", "cigi.symbol_circle_def.end_angle5",
10002 FT_FLOAT, BASE_NONE, NULL, 0x0,
10003 "Specifies the end angle", HFILL }
10005 { &hf_cigi3_3_symbol_circle_definition_center_u[5],
10006 { "Center U 6 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u6",
10007 FT_FLOAT, BASE_NONE, NULL, 0x0,
10008 "Specifies the u position of the center", HFILL }
10010 { &hf_cigi3_3_symbol_circle_definition_center_v[5],
10011 { "Center V 6 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v6",
10012 FT_FLOAT, BASE_NONE, NULL, 0x0,
10013 "Specifies the v position of the center", HFILL }
10015 { &hf_cigi3_3_symbol_circle_definition_radius[5],
10016 { "Radius 6 (scaled symbol surface units)", "cigi.symbol_circle_def.radius6",
10017 FT_FLOAT, BASE_NONE, NULL, 0x0,
10018 "Specifies the radius", HFILL }
10020 { &hf_cigi3_3_symbol_circle_definition_inner_radius[5],
10021 { "Inner Radius 6 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius6",
10022 FT_FLOAT, BASE_NONE, NULL, 0x0,
10023 "Specifies the inner radius", HFILL }
10025 { &hf_cigi3_3_symbol_circle_definition_start_angle[5],
10026 { "Start Angle 6 (degrees)", "cigi.symbol_circle_def.start_angle6",
10027 FT_FLOAT, BASE_NONE, NULL, 0x0,
10028 "Specifies the start angle", HFILL }
10030 { &hf_cigi3_3_symbol_circle_definition_end_angle[5],
10031 { "End Angle 6 (degrees)", "cigi.symbol_circle_def.end_angle6",
10032 FT_FLOAT, BASE_NONE, NULL, 0x0,
10033 "Specifies the end angle", HFILL }
10035 { &hf_cigi3_3_symbol_circle_definition_center_u[6],
10036 { "Center U 7 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u7",
10037 FT_FLOAT, BASE_NONE, NULL, 0x0,
10038 "Specifies the u position of the center", HFILL }
10040 { &hf_cigi3_3_symbol_circle_definition_center_v[6],
10041 { "Center V 7 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v7",
10042 FT_FLOAT, BASE_NONE, NULL, 0x0,
10043 "Specifies the v position of the center", HFILL }
10045 { &hf_cigi3_3_symbol_circle_definition_radius[6],
10046 { "Radius 7 (scaled symbol surface units)", "cigi.symbol_circle_def.radius7",
10047 FT_FLOAT, BASE_NONE, NULL, 0x0,
10048 "Specifies the radius", HFILL }
10050 { &hf_cigi3_3_symbol_circle_definition_inner_radius[6],
10051 { "Inner Radius 7 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius7",
10052 FT_FLOAT, BASE_NONE, NULL, 0x0,
10053 "Specifies the inner radius", HFILL }
10055 { &hf_cigi3_3_symbol_circle_definition_start_angle[6],
10056 { "Start Angle 7 (degrees)", "cigi.symbol_circle_def.start_angle7",
10057 FT_FLOAT, BASE_NONE, NULL, 0x0,
10058 "Specifies the start angle", HFILL }
10060 { &hf_cigi3_3_symbol_circle_definition_end_angle[6],
10061 { "End Angle 7 (degrees)", "cigi.symbol_circle_def.end_angle7",
10062 FT_FLOAT, BASE_NONE, NULL, 0x0,
10063 "Specifies the end angle", HFILL }
10065 { &hf_cigi3_3_symbol_circle_definition_center_u[7],
10066 { "Center U 8 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u8",
10067 FT_FLOAT, BASE_NONE, NULL, 0x0,
10068 "Specifies the u position of the center", HFILL }
10070 { &hf_cigi3_3_symbol_circle_definition_center_v[7],
10071 { "Center V 8 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v8",
10072 FT_FLOAT, BASE_NONE, NULL, 0x0,
10073 "Specifies the v position of the center", HFILL }
10075 { &hf_cigi3_3_symbol_circle_definition_radius[7],
10076 { "Radius 8 (scaled symbol surface units)", "cigi.symbol_circle_def.radius8",
10077 FT_FLOAT, BASE_NONE, NULL, 0x0,
10078 "Specifies the radius", HFILL }
10080 { &hf_cigi3_3_symbol_circle_definition_inner_radius[7],
10081 { "Inner Radius 8 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius8",
10082 FT_FLOAT, BASE_NONE, NULL, 0x0,
10083 "Specifies the inner radius", HFILL }
10085 { &hf_cigi3_3_symbol_circle_definition_start_angle[7],
10086 { "Start Angle 8 (degrees)", "cigi.symbol_circle_def.start_angle8",
10087 FT_FLOAT, BASE_NONE, NULL, 0x0,
10088 "Specifies the start angle", HFILL }
10090 { &hf_cigi3_3_symbol_circle_definition_end_angle[7],
10091 { "End Angle 8 (degrees)", "cigi.symbol_circle_def.end_angle8",
10092 FT_FLOAT, BASE_NONE, NULL, 0x0,
10093 "Specifies the end angle", HFILL }
10095 { &hf_cigi3_3_symbol_circle_definition_center_u[8],
10096 { "Center U 9 (scaled symbol surface units)", "cigi.symbol_circle_def.center_u9",
10097 FT_FLOAT, BASE_NONE, NULL, 0x0,
10098 "Specifies the u position of the center", HFILL }
10100 { &hf_cigi3_3_symbol_circle_definition_center_v[8],
10101 { "Center V 9 (scaled symbol surface units)", "cigi.symbol_circle_def.center_v9",
10102 FT_FLOAT, BASE_NONE, NULL, 0x0,
10103 "Specifies the v position of the center", HFILL }
10105 { &hf_cigi3_3_symbol_circle_definition_radius[8],
10106 { "Radius 9 (scaled symbol surface units)", "cigi.symbol_circle_def.radius9",
10107 FT_FLOAT, BASE_NONE, NULL, 0x0,
10108 "Specifies the radius", HFILL }
10110 { &hf_cigi3_3_symbol_circle_definition_inner_radius[8],
10111 { "Inner Radius 9 (scaled symbol surface units)", "cigi.symbol_circle_def.inner_radius9",
10112 FT_FLOAT, BASE_NONE, NULL, 0x0,
10113 "Specifies the inner radius", HFILL }
10115 { &hf_cigi3_3_symbol_circle_definition_start_angle[8],
10116 { "Start Angle 9 (degrees)", "cigi.symbol_circle_def.start_angle9",
10117 FT_FLOAT, BASE_NONE, NULL, 0x0,
10118 "Specifies the start angle", HFILL }
10120 { &hf_cigi3_3_symbol_circle_definition_end_angle[8],
10121 { "End Angle 9 (degrees)", "cigi.symbol_circle_def.end_angle9",
10122 FT_FLOAT, BASE_NONE, NULL, 0x0,
10123 "Specifies the end angle", HFILL }
10126 /* CIGI3_3 Symbol Line Definition */
10127 { &hf_cigi3_3_symbol_line_definition,
10128 { "Symbol Line Definition", "cigi.symbol_line_def",
10129 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10130 "Symbol Line Definition Packet", HFILL }
10132 { &hf_cigi3_3_symbol_line_definition_symbol_id,
10133 { "Symbol ID", "cigi.symbol_line_def.symbol_id",
10134 FT_UINT16, BASE_DEC, NULL, 0x0,
10135 "Specifies the identifier of the symbol that is being defined", HFILL }
10137 { &hf_cigi3_3_symbol_line_definition_primitive_type,
10138 { "Drawing Style", "cigi.symbl_line_def.primitive_type",
10139 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_circle_definition_drawing_style_tfs), 0x01,
10140 "Specifies the type of point or line primitive used", HFILL }
10142 { &hf_cigi3_3_symbol_line_definition_stipple_pattern,
10143 { "Stipple Pattern", "cigi.symbol_line_def.stipple_pattern",
10144 FT_UINT16, BASE_HEX, NULL, 0x0,
10145 "Specifies the dash pattern used", HFILL }
10147 { &hf_cigi3_3_symbol_line_definition_line_width,
10148 { "Line Width (scaled symbol surface units)", "cigi.symbol_line_def.line_width",
10149 FT_FLOAT, BASE_NONE, NULL, 0x0,
10150 "Specifies the thickness of the line", HFILL }
10152 { &hf_cigi3_3_symbol_line_definition_stipple_pattern_length,
10153 { "Stipple Pattern Length (scaled symbol surface units)", "cigi.symbol_line_def.stipple_pattern_length",
10154 FT_FLOAT, BASE_NONE, NULL, 0x0,
10155 "Specifies the length of one complete repetition of the stipple pattern", HFILL }
10157 { &hf_cigi3_3_symbol_line_definition_vertex_u[0],
10158 { "Vertex U 1 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u1",
10159 FT_FLOAT, BASE_NONE, NULL, 0x0,
10160 "Specifies the u position of the vertex", HFILL }
10162 { &hf_cigi3_3_symbol_line_definition_vertex_v[0],
10163 { "Vertex V 1 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v1",
10164 FT_FLOAT, BASE_NONE, NULL, 0x0,
10165 "Specifies the v position of the vertex", HFILL }
10167 { &hf_cigi3_3_symbol_line_definition_vertex_u[1],
10168 { "Vertex U 2 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u2",
10169 FT_FLOAT, BASE_NONE, NULL, 0x0,
10170 "Specifies the u position of the vertex", HFILL }
10172 { &hf_cigi3_3_symbol_line_definition_vertex_v[1],
10173 { "Vertex V 2 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v2",
10174 FT_FLOAT, BASE_NONE, NULL, 0x0,
10175 "Specifies the v position of the vertex", HFILL }
10177 { &hf_cigi3_3_symbol_line_definition_vertex_u[2],
10178 { "Vertex U 3 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u3",
10179 FT_FLOAT, BASE_NONE, NULL, 0x0,
10180 "Specifies the u position of the vertex", HFILL }
10182 { &hf_cigi3_3_symbol_line_definition_vertex_v[2],
10183 { "Vertex V 3 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v3",
10184 FT_FLOAT, BASE_NONE, NULL, 0x0,
10185 "Specifies the v position of the vertex", HFILL }
10187 { &hf_cigi3_3_symbol_line_definition_vertex_u[3],
10188 { "Vertex U 4 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u4",
10189 FT_FLOAT, BASE_NONE, NULL, 0x0,
10190 "Specifies the u position of the vertex", HFILL }
10192 { &hf_cigi3_3_symbol_line_definition_vertex_v[3],
10193 { "Vertex V 4 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v4",
10194 FT_FLOAT, BASE_NONE, NULL, 0x0,
10195 "Specifies the v position of the vertex", HFILL }
10197 { &hf_cigi3_3_symbol_line_definition_vertex_u[4],
10198 { "Vertex U 5 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u5",
10199 FT_FLOAT, BASE_NONE, NULL, 0x0,
10200 "Specifies the u position of the vertex", HFILL }
10202 { &hf_cigi3_3_symbol_line_definition_vertex_v[4],
10203 { "Vertex V 5 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v5",
10204 FT_FLOAT, BASE_NONE, NULL, 0x0,
10205 "Specifies the v position of the vertex", HFILL }
10207 { &hf_cigi3_3_symbol_line_definition_vertex_u[5],
10208 { "Vertex U 6 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u6",
10209 FT_FLOAT, BASE_NONE, NULL, 0x0,
10210 "Specifies the u position of the vertex", HFILL }
10212 { &hf_cigi3_3_symbol_line_definition_vertex_v[5],
10213 { "Vertex V 6 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v6",
10214 FT_FLOAT, BASE_NONE, NULL, 0x0,
10215 "Specifies the v position of the vertex", HFILL }
10217 { &hf_cigi3_3_symbol_line_definition_vertex_u[6],
10218 { "Vertex U 7 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u7",
10219 FT_FLOAT, BASE_NONE, NULL, 0x0,
10220 "Specifies the u position of the vertex", HFILL }
10222 { &hf_cigi3_3_symbol_line_definition_vertex_v[6],
10223 { "Vertex V 7 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v7",
10224 FT_FLOAT, BASE_NONE, NULL, 0x0,
10225 "Specifies the v position of the vertex", HFILL }
10227 { &hf_cigi3_3_symbol_line_definition_vertex_u[7],
10228 { "Vertex U 8 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u8",
10229 FT_FLOAT, BASE_NONE, NULL, 0x0,
10230 "Specifies the u position of the vertex", HFILL }
10232 { &hf_cigi3_3_symbol_line_definition_vertex_v[7],
10233 { "Vertex V 8 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v8",
10234 FT_FLOAT, BASE_NONE, NULL, 0x0,
10235 "Specifies the v position of the vertex", HFILL }
10237 { &hf_cigi3_3_symbol_line_definition_vertex_u[8],
10238 { "Vertex U 9 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u9",
10239 FT_FLOAT, BASE_NONE, NULL, 0x0,
10240 "Specifies the u position of the vertex", HFILL }
10242 { &hf_cigi3_3_symbol_line_definition_vertex_v[8],
10243 { "Vertex V 9 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v9",
10244 FT_FLOAT, BASE_NONE, NULL, 0x0,
10245 "Specifies the v position of the vertex", HFILL }
10247 { &hf_cigi3_3_symbol_line_definition_vertex_u[9],
10248 { "Vertex U 10 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u10",
10249 FT_FLOAT, BASE_NONE, NULL, 0x0,
10250 "Specifies the u position of the vertex", HFILL }
10252 { &hf_cigi3_3_symbol_line_definition_vertex_v[9],
10253 { "Vertex V 10 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v10",
10254 FT_FLOAT, BASE_NONE, NULL, 0x0,
10255 "Specifies the v position of the vertex", HFILL }
10257 { &hf_cigi3_3_symbol_line_definition_vertex_u[10],
10258 { "Vertex U 11 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u11",
10259 FT_FLOAT, BASE_NONE, NULL, 0x0,
10260 "Specifies the u position of the vertex", HFILL }
10262 { &hf_cigi3_3_symbol_line_definition_vertex_v[10],
10263 { "Vertex V 11 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v11",
10264 FT_FLOAT, BASE_NONE, NULL, 0x0,
10265 "Specifies the v position of the vertex", HFILL }
10267 { &hf_cigi3_3_symbol_line_definition_vertex_u[11],
10268 { "Vertex U 12 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u12",
10269 FT_FLOAT, BASE_NONE, NULL, 0x0,
10270 "Specifies the u position of the vertex", HFILL }
10272 { &hf_cigi3_3_symbol_line_definition_vertex_v[11],
10273 { "Vertex V 12 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v12",
10274 FT_FLOAT, BASE_NONE, NULL, 0x0,
10275 "Specifies the v position of the vertex", HFILL }
10277 { &hf_cigi3_3_symbol_line_definition_vertex_u[12],
10278 { "Vertex U 13 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u13",
10279 FT_FLOAT, BASE_NONE, NULL, 0x0,
10280 "Specifies the u position of the vertex", HFILL }
10282 { &hf_cigi3_3_symbol_line_definition_vertex_v[12],
10283 { "Vertex V 13 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v13",
10284 FT_FLOAT, BASE_NONE, NULL, 0x0,
10285 "Specifies the v position of the vertex", HFILL }
10287 { &hf_cigi3_3_symbol_line_definition_vertex_u[13],
10288 { "Vertex U 14 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u14",
10289 FT_FLOAT, BASE_NONE, NULL, 0x0,
10290 "Specifies the u position of the vertex", HFILL }
10292 { &hf_cigi3_3_symbol_line_definition_vertex_v[13],
10293 { "Vertex V 14 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v14",
10294 FT_FLOAT, BASE_NONE, NULL, 0x0,
10295 "Specifies the v position of the vertex", HFILL }
10297 { &hf_cigi3_3_symbol_line_definition_vertex_u[14],
10298 { "Vertex U 15 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u15",
10299 FT_FLOAT, BASE_NONE, NULL, 0x0,
10300 "Specifies the u position of the vertex", HFILL }
10302 { &hf_cigi3_3_symbol_line_definition_vertex_v[14],
10303 { "Vertex V 15 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v15",
10304 FT_FLOAT, BASE_NONE, NULL, 0x0,
10305 "Specifies the v position of the vertex", HFILL }
10307 { &hf_cigi3_3_symbol_line_definition_vertex_u[15],
10308 { "Vertex U 16 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u16",
10309 FT_FLOAT, BASE_NONE, NULL, 0x0,
10310 "Specifies the u position of the vertex", HFILL }
10312 { &hf_cigi3_3_symbol_line_definition_vertex_v[15],
10313 { "Vertex V 16 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v16",
10314 FT_FLOAT, BASE_NONE, NULL, 0x0,
10315 "Specifies the v position of the vertex", HFILL }
10317 { &hf_cigi3_3_symbol_line_definition_vertex_u[16],
10318 { "Vertex U 17 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u17",
10319 FT_FLOAT, BASE_NONE, NULL, 0x0,
10320 "Specifies the u position of the vertex", HFILL }
10322 { &hf_cigi3_3_symbol_line_definition_vertex_v[16],
10323 { "Vertex V 17 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v17",
10324 FT_FLOAT, BASE_NONE, NULL, 0x0,
10325 "Specifies the v position of the vertex", HFILL }
10327 { &hf_cigi3_3_symbol_line_definition_vertex_u[17],
10328 { "Vertex U 18 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u18",
10329 FT_FLOAT, BASE_NONE, NULL, 0x0,
10330 "Specifies the u position of the vertex", HFILL }
10332 { &hf_cigi3_3_symbol_line_definition_vertex_v[17],
10333 { "Vertex V 18 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v18",
10334 FT_FLOAT, BASE_NONE, NULL, 0x0,
10335 "Specifies the v position of the vertex", HFILL }
10337 { &hf_cigi3_3_symbol_line_definition_vertex_u[18],
10338 { "Vertex U 19 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u19",
10339 FT_FLOAT, BASE_NONE, NULL, 0x0,
10340 "Specifies the u position of the vertex", HFILL }
10342 { &hf_cigi3_3_symbol_line_definition_vertex_v[18],
10343 { "Vertex V 19 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v19",
10344 FT_FLOAT, BASE_NONE, NULL, 0x0,
10345 "Specifies the v position of the vertex", HFILL }
10347 { &hf_cigi3_3_symbol_line_definition_vertex_u[19],
10348 { "Vertex U 20 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u20",
10349 FT_FLOAT, BASE_NONE, NULL, 0x0,
10350 "Specifies the u position of the vertex", HFILL }
10352 { &hf_cigi3_3_symbol_line_definition_vertex_v[19],
10353 { "Vertex V 20 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v20",
10354 FT_FLOAT, BASE_NONE, NULL, 0x0,
10355 "Specifies the v position of the vertex", HFILL }
10357 { &hf_cigi3_3_symbol_line_definition_vertex_u[20],
10358 { "Vertex U 21 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u21",
10359 FT_FLOAT, BASE_NONE, NULL, 0x0,
10360 "Specifies the u position of the vertex", HFILL }
10362 { &hf_cigi3_3_symbol_line_definition_vertex_v[20],
10363 { "Vertex V 21 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v21",
10364 FT_FLOAT, BASE_NONE, NULL, 0x0,
10365 "Specifies the v position of the vertex", HFILL }
10367 { &hf_cigi3_3_symbol_line_definition_vertex_u[21],
10368 { "Vertex U 22 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u22",
10369 FT_FLOAT, BASE_NONE, NULL, 0x0,
10370 "Specifies the u position of the vertex", HFILL }
10372 { &hf_cigi3_3_symbol_line_definition_vertex_v[21],
10373 { "Vertex V 22 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v22",
10374 FT_FLOAT, BASE_NONE, NULL, 0x0,
10375 "Specifies the v position of the vertex", HFILL }
10377 { &hf_cigi3_3_symbol_line_definition_vertex_u[22],
10378 { "Vertex U 23 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u23",
10379 FT_FLOAT, BASE_NONE, NULL, 0x0,
10380 "Specifies the u position of the vertex", HFILL }
10382 { &hf_cigi3_3_symbol_line_definition_vertex_v[22],
10383 { "Vertex V 23 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v23",
10384 FT_FLOAT, BASE_NONE, NULL, 0x0,
10385 "Specifies the v position of the vertex", HFILL }
10387 { &hf_cigi3_3_symbol_line_definition_vertex_u[23],
10388 { "Vertex U 24 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u24",
10389 FT_FLOAT, BASE_NONE, NULL, 0x0,
10390 "Specifies the u position of the vertex", HFILL }
10392 { &hf_cigi3_3_symbol_line_definition_vertex_v[23],
10393 { "Vertex V 24 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v24",
10394 FT_FLOAT, BASE_NONE, NULL, 0x0,
10395 "Specifies the v position of the vertex", HFILL }
10397 { &hf_cigi3_3_symbol_line_definition_vertex_u[24],
10398 { "Vertex U 25 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u25",
10399 FT_FLOAT, BASE_NONE, NULL, 0x0,
10400 "Specifies the u position of the vertex", HFILL }
10402 { &hf_cigi3_3_symbol_line_definition_vertex_v[24],
10403 { "Vertex V 25 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v25",
10404 FT_FLOAT, BASE_NONE, NULL, 0x0,
10405 "Specifies the v position of the vertex", HFILL }
10407 { &hf_cigi3_3_symbol_line_definition_vertex_u[25],
10408 { "Vertex U 26 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u26",
10409 FT_FLOAT, BASE_NONE, NULL, 0x0,
10410 "Specifies the u position of the vertex", HFILL }
10412 { &hf_cigi3_3_symbol_line_definition_vertex_v[25],
10413 { "Vertex V 26 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v26",
10414 FT_FLOAT, BASE_NONE, NULL, 0x0,
10415 "Specifies the v position of the vertex", HFILL }
10417 { &hf_cigi3_3_symbol_line_definition_vertex_u[26],
10418 { "Vertex U 27 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u27",
10419 FT_FLOAT, BASE_NONE, NULL, 0x0,
10420 "Specifies the u position of the vertex", HFILL }
10422 { &hf_cigi3_3_symbol_line_definition_vertex_v[26],
10423 { "Vertex V 27 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v27",
10424 FT_FLOAT, BASE_NONE, NULL, 0x0,
10425 "Specifies the v position of the vertex", HFILL }
10427 { &hf_cigi3_3_symbol_line_definition_vertex_u[27],
10428 { "Vertex U 28 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u28",
10429 FT_FLOAT, BASE_NONE, NULL, 0x0,
10430 "Specifies the u position of the vertex", HFILL }
10432 { &hf_cigi3_3_symbol_line_definition_vertex_v[27],
10433 { "Vertex V 28 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v28",
10434 FT_FLOAT, BASE_NONE, NULL, 0x0,
10435 "Specifies the v position of the vertex", HFILL }
10437 { &hf_cigi3_3_symbol_line_definition_vertex_u[28],
10438 { "Vertex U 29 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_u29",
10439 FT_FLOAT, BASE_NONE, NULL, 0x0,
10440 "Specifies the u position of the vertex", HFILL }
10442 { &hf_cigi3_3_symbol_line_definition_vertex_v[28],
10443 { "Vertex V 29 (scaled symbol surface units)", "cigi.symbol_line_def.vertex_v29",
10444 FT_FLOAT, BASE_NONE, NULL, 0x0,
10445 "Specifies the v position of the vertex", HFILL }
10448 /* CIGI3_3 Symbol Clone */
10449 { &hf_cigi3_3_symbol_clone,
10450 { "Symbol Surface Definition", "cigi.symbol_clone",
10451 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10452 "Symbol Clone Packet", HFILL }
10454 { &hf_cigi3_3_symbol_clone_symbol_id,
10455 { "Symbol ID", "cigi.symbol_clone.symbol_id",
10456 FT_UINT16, BASE_DEC, NULL, 0x0,
10457 "Specifies the identifier of the symbol that is being defined", HFILL }
10459 { &hf_cigi3_3_symbol_clone_source_type,
10460 { "Source Type", "cigi.symbol_clone.source_type",
10461 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_clone_source_type_tfs), 0x04,
10462 "Identifies the source as an existing symbol or symbol template", HFILL }
10464 { &hf_cigi3_3_symbol_clone_source_id,
10465 { "Source ID", "cigi.symbol_clone.source_id",
10466 FT_UINT16, BASE_DEC, NULL, 0x0,
10467 "Identifies the symbol to copy or template to instantiate", HFILL }
10470 /* CIGI3_3 Symbol Control */
10471 { &hf_cigi3_3_symbol_control,
10472 { "Symbol Control", "cigi.symbol_control",
10473 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10474 "Symbol Control Packet", HFILL }
10476 { &hf_cigi3_3_symbol_control_symbol_id,
10477 { "Symbol ID", "cigi.symbol_control.symbol_id",
10478 FT_UINT16, BASE_DEC, NULL, 0x0,
10479 "Specifies the symbol to which this packet is applied", HFILL }
10481 { &hf_cigi3_3_symbol_control_symbol_state,
10482 { "Symbol State", "cigi.symbol_control.symbol_state",
10483 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_control_symbol_state_vals), 0x03,
10484 "Specifies whether the symbol should be hidden, visible, or destroyed", HFILL }
10486 { &hf_cigi3_3_symbol_control_attach_state,
10487 { "Attach State", "cigi.symbol_control.attach_state",
10488 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_attach_state_tfs), 0x04,
10489 "Specifies whether this symbol should be attached to another", HFILL }
10491 { &hf_cigi3_3_symbol_control_flash_control,
10492 { "Flash Control", "cigi.symbol_control.flash_control",
10493 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_flash_control_tfs), 0x08,
10494 "Specifies whether the flash cycle is continued or restarted", HFILL }
10496 { &hf_cigi3_3_symbol_control_inherit_color,
10497 { "Inherit Color", "cigi.symbol_control.inherit_color",
10498 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
10499 "Specifies whether the symbol inherits color from a parent symbol", HFILL }
10501 { &hf_cigi3_3_symbol_control_parent_symbol_ident,
10502 { "Parent Symbol ID", "cigi.symbol_control.parent_symbol_id",
10503 FT_UINT16, BASE_DEC, NULL, 0x0,
10504 "Specifies the parent for the symbol", HFILL }
10506 { &hf_cigi3_3_symbol_control_surface_ident,
10507 { "Surface ID", "cigi.symbol_control.surface_id",
10508 FT_UINT16, BASE_DEC, NULL, 0x0,
10509 "Specifies the symbol surface for the symbol", HFILL }
10511 { &hf_cigi3_3_symbol_control_layer,
10512 { "Layer", "cigi.symbol_control.layer",
10513 FT_UINT8, BASE_DEC, NULL, 0x0,
10514 "Specifies the layer for the symbol", HFILL }
10516 { &hf_cigi3_3_symbol_control_flash_duty_cycle,
10517 { "Flash Duty Cycle (%)", "cigi.symbol_control.flash_duty_cycle",
10518 FT_UINT8, BASE_DEC, NULL, 0x0,
10519 "Specifies the duty cycle for a flashing symbol", HFILL }
10521 { &hf_cigi3_3_symbol_control_flash_period,
10522 { "Flash Period (seconds)", "cigi.symbol_control.flash_period",
10523 FT_FLOAT, BASE_NONE, NULL, 0x0,
10524 "Specifies the duration of a single flash cycle", HFILL }
10526 { &hf_cigi3_3_symbol_control_position_u,
10527 { "Position U (scaled symbol surface units)", "cigi.symbol_control.position_u",
10528 FT_FLOAT, BASE_NONE, NULL, 0x0,
10529 "Specifies the u position", HFILL }
10531 { &hf_cigi3_3_symbol_control_position_v,
10532 { "Position V (scaled symbol surface units)", "cigi.symbol_control.position_v",
10533 FT_FLOAT, BASE_NONE, NULL, 0x0,
10534 "Specifies the v position", HFILL }
10536 { &hf_cigi3_3_symbol_control_rotation,
10537 { "Rotation (degrees)", "cigi.symbol_control.rotation",
10538 FT_FLOAT, BASE_NONE, NULL, 0x0,
10539 "Specifies the rotation", HFILL }
10541 { &hf_cigi3_3_symbol_control_red,
10542 { "Red", "cigi.symbol_control.red",
10543 FT_UINT8, BASE_DEC, NULL, 0x0,
10544 "Specifies the red color component", HFILL }
10546 { &hf_cigi3_3_symbol_control_green,
10547 { "Green", "cigi.symbol_control.green",
10548 FT_UINT8, BASE_DEC, NULL, 0x0,
10549 "Specifies the green color component", HFILL }
10551 { &hf_cigi3_3_symbol_control_blue,
10552 { "Blue", "cigi.symbol_control.blue",
10553 FT_UINT8, BASE_DEC, NULL, 0x0,
10554 "Specifies the blue color component", HFILL }
10556 { &hf_cigi3_3_symbol_control_alpha,
10557 { "Alpha", "cigi.symbol_control.alpha",
10558 FT_UINT8, BASE_DEC, NULL, 0x0,
10559 "Specifies the alpha color component", HFILL }
10561 { &hf_cigi3_3_symbol_control_scale_u,
10562 { "Scale U", "cigi.symbol_control.scale_u",
10563 FT_FLOAT, BASE_NONE, NULL, 0x0,
10564 "Specifies the u scaling factor", HFILL }
10566 { &hf_cigi3_3_symbol_control_scale_v,
10567 { "Scale V", "cigi.symbol_control.scale_v",
10568 FT_FLOAT, BASE_NONE, NULL, 0x0,
10569 "Specifies the v scaling factor", HFILL }
10572 /* CIGI3_3 Short Symbol Control */
10573 { &hf_cigi3_3_short_symbol_control,
10574 { "Short Symbol Control", "cigi.short_symbol_control",
10575 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10576 "Short Symbol Control Packet", HFILL }
10578 { &hf_cigi3_3_short_symbol_control_symbol_id,
10579 { "Symbol ID", "cigi.short_symbol_control.symbol_id",
10580 FT_UINT16, BASE_DEC, NULL, 0x0,
10581 "Specifies the symbol to which this packet is applied", HFILL }
10583 { &hf_cigi3_3_short_symbol_control_symbol_state,
10584 { "Symbol State", "cigi.short_symbol_control.symbol_state",
10585 FT_UINT8, BASE_DEC, VALS(cigi3_3_symbol_control_symbol_state_vals), 0x03,
10586 "Specifies whether the symbol should be hidden, visible, or destroyed", HFILL }
10588 { &hf_cigi3_3_short_symbol_control_attach_state,
10589 { "Atach State", "cigi.short_symbol_control.attach_state",
10590 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_attach_state_tfs), 0x04,
10591 "Specifies whether this symbol should be attached to another", HFILL }
10593 { &hf_cigi3_3_short_symbol_control_flash_control,
10594 { "Flash Control", "cigi.short_symbol_control.flash_control",
10595 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_flash_control_tfs), 0x08,
10596 "Specifies whether the flash cycle is continued or restarted", HFILL }
10598 { &hf_cigi3_3_short_symbol_control_inherit_color,
10599 { "Inherit Color", "cigi.short_symbol_control.inherit_color",
10600 FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
10601 "Specifies whether the symbol inherits color from a parent symbol", HFILL }
10603 { &hf_cigi3_3_short_symbol_control_attribute_select1,
10604 { "Attribute Select 1", "cigi.short_symbol_control.attribute_select1",
10605 FT_UINT8, BASE_DEC, VALS(cigi3_3_short_symbol_control_attribute_select_vals), 0x0,
10606 "Identifies the attribute whose value is specified in Attribute Value 1", HFILL }
10608 { &hf_cigi3_3_short_symbol_control_attribute_select2,
10609 { "Attribute Select 2", "cigi.short_symbol_control.attribute_select2",
10610 FT_UINT8, BASE_DEC, VALS(cigi3_3_short_symbol_control_attribute_select_vals), 0x0,
10611 "Identifies the attribute whose value is specified in Attribute Value 2", HFILL }
10613 { &hf_cigi3_3_short_symbol_control_attribute_value1,
10614 { "Value 1", "cigi.short_symbol_control.value1",
10615 FT_UINT32, BASE_DEC, NULL, 0x0,
10616 "Specifies the value for attribute 1", HFILL }
10618 { &hf_cigi3_3_short_symbol_control_attribute_value2,
10619 { "Value 2", "cigi.short_symbol_control.value2",
10620 FT_UINT32, BASE_DEC, NULL, 0x0,
10621 "Specifies the value for attribute 2", HFILL }
10623 { &hf_cigi3_3_short_symbol_control_attribute_value1f,
10624 { "Value 1", "cigi.short_symbol_control.value1",
10625 FT_FLOAT, BASE_NONE, NULL, 0x0,
10626 "Specifies the value for attribute 1", HFILL }
10628 { &hf_cigi3_3_short_symbol_control_attribute_value2f,
10629 { "Value 2", "cigi.short_symbol_control.value2",
10630 FT_FLOAT, BASE_NONE, NULL, 0x0,
10631 "Specifies the value for attribute 2", HFILL }
10633 { &hf_cigi3_3_short_symbol_control_red1,
10634 { "Red 1", "cigi.short_symbol_control.red1",
10635 FT_UINT8, BASE_DEC, NULL, 0x0,
10636 "Specifies the red color component", HFILL }
10638 { &hf_cigi3_3_short_symbol_control_green1,
10639 { "Green 1", "cigi.short_symbol_control.green1",
10640 FT_UINT8, BASE_DEC, NULL, 0x0,
10641 "Specifies the green color component", HFILL }
10643 { &hf_cigi3_3_short_symbol_control_blue1,
10644 { "Blue 1", "cigi.short_symbol_control.blue1",
10645 FT_UINT8, BASE_DEC, NULL, 0x0,
10646 "Specifies the blue color component", HFILL }
10648 { &hf_cigi3_3_short_symbol_control_alpha1,
10649 { "Alpha 1", "cigi.short_symbol_control.alpha1",
10650 FT_UINT8, BASE_DEC, NULL, 0x0,
10651 "Specifies the alpha color component", HFILL }
10653 { &hf_cigi3_3_short_symbol_control_red2,
10654 { "Red 2", "cigi.short_symbol_control.red2",
10655 FT_UINT8, BASE_DEC, NULL, 0x0,
10656 "Specifies the red color component", HFILL }
10658 { &hf_cigi3_3_short_symbol_control_green2,
10659 { "Green 2", "cigi.short_symbol_control.green2",
10660 FT_UINT8, BASE_DEC, NULL, 0x0,
10661 "Specifies the green color component", HFILL }
10663 { &hf_cigi3_3_short_symbol_control_blue2,
10664 { "Blue 2", "cigi.short_symbol_control.blue2",
10665 FT_UINT8, BASE_DEC, NULL, 0x0,
10666 "Specifies the blue color component", HFILL }
10668 { &hf_cigi3_3_short_symbol_control_alpha2,
10669 { "Alpha 2", "cigi.short_symbol_control.alpha2",
10670 FT_UINT8, BASE_DEC, NULL, 0x0,
10671 "Specifies the alpha color component", HFILL }
10674 /* CIGI2 Start of Frame */
10675 { &hf_cigi2_start_of_frame,
10676 { "Start of Frame", "cigi.sof",
10677 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10678 "Start of Frame Packet", HFILL }
10680 { &hf_cigi2_start_of_frame_db_number,
10681 { "Database Number", "cigi.sof.db_number",
10682 FT_INT8, BASE_DEC, NULL, 0x0,
10683 "Indicates load status of the requested database", HFILL }
10685 { &hf_cigi2_start_of_frame_ig_status_code,
10686 { "IG Status Code", "cigi.sof.ig_status_code",
10687 FT_UINT8, BASE_DEC, NULL, 0x0,
10688 "Indicates the operational status of the IG", HFILL }
10690 { &hf_cigi2_start_of_frame_ig_mode,
10691 { "IG Mode", "cigi.sof.ig_mode",
10692 FT_UINT8, BASE_DEC, VALS(cigi2_start_of_frame_ig_mode_vals), 0xc0,
10693 "Identifies to the host the current operating mode of the IG", HFILL }
10695 { &hf_cigi2_start_of_frame_frame_ctr,
10696 { "IG to Host Frame Counter", "cigi.sof.frame_ctr",
10697 FT_UINT32, BASE_DEC, NULL, 0x0,
10698 "Contains a number representing a particular frame", HFILL }
10700 { &hf_cigi2_start_of_frame_time_tag,
10701 { "Timing Value (microseconds)", "cigi.sof.time_tag",
10702 FT_FLOAT, BASE_NONE, NULL, 0x0,
10703 "Contains a timing value that is used to time-tag the ethernet message during asynchronous operation", HFILL }
10706 /* CIGI3 Start of Frame */
10707 { &hf_cigi3_start_of_frame,
10708 { "Start of Frame", "cigi.sof",
10709 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10710 "Start of Frame Packet", HFILL }
10712 { &hf_cigi3_start_of_frame_db_number,
10713 { "Database Number", "cigi.sof.db_number",
10714 FT_INT8, BASE_DEC, NULL, 0x0,
10715 "Indicates to the Host which database is currently in use and if that database is being loaded into primary memory", HFILL }
10717 { &hf_cigi3_start_of_frame_ig_status,
10718 { "IG Status Code", "cigi.sof.ig_status",
10719 FT_UINT8, BASE_DEC, NULL, 0x0,
10720 "Indicates the error status of the IG", HFILL }
10722 { &hf_cigi3_start_of_frame_ig_mode,
10723 { "IG Mode", "cigi.sof.ig_mode",
10724 FT_UINT8, BASE_DEC, VALS(cigi3_start_of_frame_ig_mode_vals), 0x03,
10725 "Indicates the current IG mode", HFILL }
10727 { &hf_cigi3_start_of_frame_timestamp_valid,
10728 { "Timestamp Valid", "cigi.sof.timestamp_valid",
10729 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
10730 "Indicates whether the Timestamp parameter contains a valid value", HFILL }
10732 { &hf_cigi3_start_of_frame_earth_reference_model,
10733 { "Earth Reference Model", "cigi.sof.earth_reference_model",
10734 FT_BOOLEAN, 8, TFS(&cigi3_start_of_frame_earth_reference_model_tfs), 0x08,
10735 "Indicates whether the IG is using a custom Earth Reference Model or the default WGS 84 reference ellipsoid for coordinate conversion calculations", HFILL }
10737 { &hf_cigi3_start_of_frame_frame_ctr,
10738 { "Frame Counter", "cigi.sof.frame_ctr",
10739 FT_UINT32, BASE_DEC, NULL, 0x0,
10740 "Contains a number that identifies the frame", HFILL }
10742 { &hf_cigi3_start_of_frame_timestamp,
10743 { "Timestamp (microseconds)", "cigi.sof.timestamp",
10744 FT_UINT32, BASE_DEC, NULL, 0x0,
10745 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
10748 /* CIGI3_2 Start of Frame */
10749 { &hf_cigi3_2_start_of_frame,
10750 { "Start of Frame", "cigi.sof",
10751 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10752 "Start of Frame Packet", HFILL }
10754 { &hf_cigi3_2_start_of_frame_db_number,
10755 { "Database Number", "cigi.sof.db_number",
10756 FT_INT8, BASE_DEC, NULL, 0x0,
10757 "Indicates to the Host which database is currently in use and if that database is being loaded into primary memory", HFILL }
10759 { &hf_cigi3_2_start_of_frame_ig_status,
10760 { "IG Status Code", "cigi.sof.ig_status",
10761 FT_UINT8, BASE_DEC, NULL, 0x0,
10762 "Indicates the error status of the IG", HFILL }
10764 { &hf_cigi3_2_start_of_frame_ig_mode,
10765 { "IG Mode", "cigi.sof.ig_mode",
10766 FT_UINT8, BASE_DEC, VALS(cigi3_2_start_of_frame_ig_mode_vals), 0x03,
10767 "Indicates the current IG mode", HFILL }
10769 { &hf_cigi3_2_start_of_frame_timestamp_valid,
10770 { "Timestamp Valid", "cigi.sof.timestamp_valid",
10771 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
10772 "Indicates whether the Timestamp parameter contains a valid value", HFILL }
10774 { &hf_cigi3_2_start_of_frame_earth_reference_model,
10775 { "Earth Reference Model", "cigi.sof.earth_reference_model",
10776 FT_BOOLEAN, 8, TFS(&cigi3_2_start_of_frame_earth_reference_model_tfs), 0x08,
10777 "Indicates whether the IG is using a custom Earth Reference Model or the default WGS 84 reference ellipsoid for coordinate conversion calculations", HFILL }
10779 { &hf_cigi3_2_start_of_frame_ig_frame_number,
10780 { "IG Frame Number", "cigi.sof.ig_frame_number",
10781 FT_UINT32, BASE_DEC, NULL, 0x0,
10782 "Uniquely identifies the IG data frame", HFILL }
10784 { &hf_cigi3_2_start_of_frame_timestamp,
10785 { "Timestamp (microseconds)", "cigi.sof.timestamp",
10786 FT_UINT32, BASE_DEC, NULL, 0x0,
10787 "Indicates the number of 10 microsecond \"ticks\" since some initial reference time", HFILL }
10789 { &hf_cigi3_2_start_of_frame_last_host_frame_number,
10790 { "Last Host Frane Number", "cigi.sof.last_host_frame_number",
10791 FT_UINT32, BASE_DEC, NULL, 0x0,
10792 "Contains the value of the Host Frame parameter in the last IG Control packet received from the Host.", HFILL }
10795 /* CIGI2 Height Above Terrain Response */
10796 { &hf_cigi2_height_above_terrain_response,
10797 { "Height Above Terrain Response", "cigi.hat_response",
10798 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10799 "Height Above Terrain Response Packet", HFILL }
10801 { &hf_cigi2_height_above_terrain_response_hat_id,
10802 { "HAT ID", "cigi.hat_response.hat_id",
10803 FT_UINT16, BASE_DEC, NULL, 0x0,
10804 "Identifies the HAT response", HFILL }
10806 { &hf_cigi2_height_above_terrain_response_valid,
10807 { "Valid", "cigi.hat_response.valid",
10808 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80,
10809 "Indicates whether the response is valid or invalid", HFILL }
10811 { &hf_cigi2_height_above_terrain_response_material_type,
10812 { "Material Type", "cigi.hat_response.material_type",
10813 FT_INT32, BASE_DEC, NULL, 0x0,
10814 "Specifies the material type of the object intersected by the HAT test vector", HFILL }
10816 { &hf_cigi2_height_above_terrain_response_alt,
10817 { "Altitude (m)", "cigi.hat_response.alt",
10818 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10819 "Represents the altitude above or below the terrain for the position requested", HFILL }
10822 /* CIGI3 HAT/HOT Response */
10823 { &hf_cigi3_hat_hot_response,
10824 { "HAT/HOT Response", "cigi.hat_hot_response",
10825 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10826 "HAT/HOT Response Packet", HFILL }
10828 { &hf_cigi3_hat_hot_response_hat_hot_id,
10829 { "HAT/HOT ID", "cigi.hat_hot_response.hat_hot_id",
10830 FT_UINT16, BASE_DEC, NULL, 0x0,
10831 "Identifies the HAT or HOT response", HFILL }
10833 { &hf_cigi3_hat_hot_response_valid,
10834 { "Valid", "cigi.hat_hot_response.valid",
10835 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10836 "Indicates whether the Height parameter contains a valid number", HFILL }
10838 { &hf_cigi3_hat_hot_response_type,
10839 { "Response Type", "cigi.hat_hot_response.type",
10840 FT_BOOLEAN, 8, TFS(&cigi3_hat_hot_response_type_tfs), 0x02,
10841 "Indicates whether the Height parameter represent Height Above Terrain or Height Of Terrain", HFILL }
10843 { &hf_cigi3_hat_hot_response_height,
10844 { "Height", "cigi.hat_hot_response.height",
10845 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10846 "Contains the requested height", HFILL }
10849 /* CIGI3_2 HAT/HOT Response */
10850 { &hf_cigi3_2_hat_hot_response,
10851 { "HAT/HOT Response", "cigi.hat_hot_response",
10852 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10853 "HAT/HOT Response Packet", HFILL }
10855 { &hf_cigi3_2_hat_hot_response_hat_hot_id,
10856 { "HAT/HOT ID", "cigi.hat_hot_response.hat_hot_id",
10857 FT_UINT16, BASE_DEC, NULL, 0x0,
10858 "Identifies the HAT or HOT response", HFILL }
10860 { &hf_cigi3_2_hat_hot_response_valid,
10861 { "Valid", "cigi.hat_hot_response.valid",
10862 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10863 "Indicates whether the Height parameter contains a valid number", HFILL }
10865 { &hf_cigi3_2_hat_hot_response_type,
10866 { "Response Type", "cigi.hat_hot_response.type",
10867 FT_BOOLEAN, 8, TFS(&cigi3_2_hat_hot_response_type_tfs), 0x02,
10868 "Indicates whether the Height parameter represent Height Above Terrain or Height Of Terrain", HFILL }
10870 { &hf_cigi3_2_hat_hot_response_host_frame_number_lsn,
10871 { "Host Frame Number LSN", "cigi.hat_hot_response.host_frame_number_lsn",
10872 FT_UINT8, BASE_DEC, NULL, 0xf0,
10873 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
10875 { &hf_cigi3_2_hat_hot_response_height,
10876 { "Height", "cigi.hat_hot_response.height",
10877 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10878 "Contains the requested height", HFILL }
10881 /* CIGI3 HAT/HOT Extended Response */
10882 { &hf_cigi3_hat_hot_extended_response,
10883 { "HAT/HOT Extended Response", "cigi.hat_hot_ext_response",
10884 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10885 "HAT/HOT Extended Response Packet", HFILL }
10887 { &hf_cigi3_hat_hot_extended_response_hat_hot_id,
10888 { "HAT/HOT ID", "cigi.hat_hot_ext_response.hat_hot_id",
10889 FT_UINT16, BASE_DEC, NULL, 0x0,
10890 "Identifies the HAT/HOT response", HFILL }
10892 { &hf_cigi3_hat_hot_extended_response_valid,
10893 { "Valid", "cigi.hat_hot_ext_response.valid",
10894 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10895 "Indicates whether the remaining parameters in this packet contain valid numbers", HFILL }
10897 { &hf_cigi3_hat_hot_extended_response_hat,
10898 { "HAT", "cigi.hat_hot_ext_response.hat",
10899 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10900 "Indicates the height of the test point above the terrain", HFILL }
10902 { &hf_cigi3_hat_hot_extended_response_hot,
10903 { "HOT", "cigi.hat_hot_ext_response.hot",
10904 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10905 "Indicates the height of terrain above or below the test point", HFILL }
10907 { &hf_cigi3_hat_hot_extended_response_material_code,
10908 { "Material Code", "cigi.hat_hot_ext_response.material_code",
10909 FT_UINT32, BASE_DEC, NULL, 0x0,
10910 "Indicates the material code of the terrain surface at the point of intersection with the HAT/HOT test vector", HFILL }
10912 { &hf_cigi3_hat_hot_extended_response_normal_vector_azimuth,
10913 { "Normal Vector Azimuth (degrees)", "cigi.hat_hot_ext_response.normal_vector_azimuth",
10914 FT_FLOAT, BASE_NONE, NULL, 0x0,
10915 "Indicates the azimuth of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10917 { &hf_cigi3_hat_hot_extended_response_normal_vector_elevation,
10918 { "Normal Vector Elevation (degrees)", "cigi.hat_hot_ext_response.normal_vector_elevation",
10919 FT_FLOAT, BASE_NONE, NULL, 0x0,
10920 "Indicates the elevation of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10923 /* CIGI3_2 HAT/HOT Extended Response */
10924 { &hf_cigi3_2_hat_hot_extended_response,
10925 { "HAT/HOT Extended Response", "cigi.hat_hot_ext_response",
10926 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10927 "HAT/HOT Extended Response Packet", HFILL }
10929 { &hf_cigi3_2_hat_hot_extended_response_hat_hot_id,
10930 { "HAT/HOT ID", "cigi.hat_hot_ext_response.hat_hot_id",
10931 FT_UINT16, BASE_DEC, NULL, 0x0,
10932 "Identifies the HAT/HOT response", HFILL }
10934 { &hf_cigi3_2_hat_hot_extended_response_valid,
10935 { "Valid", "cigi.hat_hot_ext_response.valid",
10936 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
10937 "Indicates whether the remaining parameters in this packet contain valid numbers", HFILL }
10939 { &hf_cigi3_2_hat_hot_extended_response_host_frame_number_lsn,
10940 { "Host Frame Number LSN", "cigi.hat_hot_ext_response.host_frame_number_lsn",
10941 FT_UINT8, BASE_DEC, NULL, 0xf0,
10942 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
10944 { &hf_cigi3_2_hat_hot_extended_response_hat,
10945 { "HAT", "cigi.hat_hot_ext_response.hat",
10946 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10947 "Indicates the height of the test point above the terrain", HFILL }
10949 { &hf_cigi3_2_hat_hot_extended_response_hot,
10950 { "HOT", "cigi.hat_hot_ext_response.hot",
10951 FT_DOUBLE, BASE_NONE, NULL, 0x0,
10952 "Indicates the height of terrain above or below the test point", HFILL }
10954 { &hf_cigi3_2_hat_hot_extended_response_material_code,
10955 { "Material Code", "cigi.hat_hot_ext_response.material_code",
10956 FT_UINT32, BASE_DEC, NULL, 0x0,
10957 "Indicates the material code of the terrain surface at the point of intersection with the HAT/HOT test vector", HFILL }
10959 { &hf_cigi3_2_hat_hot_extended_response_normal_vector_azimuth,
10960 { "Normal Vector Azimuth (degrees)", "cigi.hat_hot_ext_response.normal_vector_azimuth",
10961 FT_FLOAT, BASE_NONE, NULL, 0x0,
10962 "Indicates the azimuth of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10964 { &hf_cigi3_2_hat_hot_extended_response_normal_vector_elevation,
10965 { "Normal Vector Elevation (degrees)", "cigi.hat_hot_ext_response.normal_vector_elevation",
10966 FT_FLOAT, BASE_NONE, NULL, 0x0,
10967 "Indicates the elevation of the normal unit vector of the surface intersected by the HAT/HOT test vector", HFILL }
10970 /* CIGI2 Line of Sight Response */
10971 { &hf_cigi2_line_of_sight_response,
10972 { "Line of Sight Response", "cigi.los_response",
10973 FT_STRINGZ, BASE_NONE, NULL, 0x0,
10974 "Line of Sight Response Packet", HFILL }
10976 { &hf_cigi2_line_of_sight_response_los_id,
10977 { "LOS ID", "cigi.los_response.los_id",
10978 FT_UINT16, BASE_DEC, NULL, 0x0,
10979 "Identifies the LOS response corresponding tot he associated LOS request", HFILL }
10981 { &hf_cigi2_line_of_sight_response_valid,
10982 { "Valid", "cigi.los_response.valid",
10983 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80,
10984 "Indicates whether the response is valid or invalid", HFILL }
10986 { &hf_cigi2_line_of_sight_response_occult_response,
10987 { "Occult Response", "cigi.los_response.occult_response",
10988 FT_BOOLEAN, 8, TFS(&cigi2_line_of_sight_occult_response_tfs), 0x40,
10989 "Used to respond to the LOS occult request data packet", HFILL }
10991 { &hf_cigi2_line_of_sight_response_material_type,
10992 { "Material Type", "cigi.los_response.material_type",
10993 FT_INT32, BASE_DEC, NULL, 0x0,
10994 "Specifies the material type of the object intersected by the LOS test segment", HFILL }
10996 { &hf_cigi2_line_of_sight_response_range,
10997 { "Range (m)", "cigi.los_response.range",
10998 FT_FLOAT, BASE_NONE, NULL, 0x0,
10999 "Used to respond to the Line of Sight Range Request data packet", HFILL }
11001 { &hf_cigi2_line_of_sight_response_alt,
11002 { "Intersection Altitude (m)", "cigi.los_response.alt",
11003 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11004 "Specifies the altitude of the point of intersection of the LOS request vector with an object", HFILL }
11006 { &hf_cigi2_line_of_sight_response_lat,
11007 { "Intersection Latitude (degrees)", "cigi.los_response.lat",
11008 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11009 "Specifies the latitudinal position of the intersection point of the LOS request vector with an object", HFILL }
11011 { &hf_cigi2_line_of_sight_response_lon,
11012 { "Intersection Longitude (degrees)", "cigi.los_response.lon",
11013 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11014 "Specifies the longitudinal position of the intersection point of the LOS request vector with an object", HFILL }
11017 /* CIGI3 Line of Sight Response */
11018 { &hf_cigi3_line_of_sight_response,
11019 { "Line of Sight Response", "cigi.los_response",
11020 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11021 "Line of Sight Response Packet", HFILL }
11023 { &hf_cigi3_line_of_sight_response_los_id,
11024 { "LOS ID", "cigi.los_response.los_id",
11025 FT_UINT16, BASE_DEC, NULL, 0x0,
11026 "Identifies the LOS response", HFILL }
11028 { &hf_cigi3_line_of_sight_response_valid,
11029 { "Valid", "cigi.los_response.valid",
11030 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11031 "Indicates whether the Range parameter is valid", HFILL }
11033 { &hf_cigi3_line_of_sight_response_entity_id_valid,
11034 { "Entity ID Valid", "cigi.los_response.entity_id_valid",
11035 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11036 "Indicates whether the LOS test vector or segment intersects with an entity or a non-entity", HFILL }
11038 { &hf_cigi3_line_of_sight_response_visible,
11039 { "Visible", "cigi.los_response.visible",
11040 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_response_visible_tfs), 0x04,
11041 "Indicates whether the destination point is visible from the source point", HFILL }
11043 { &hf_cigi3_line_of_sight_response_count,
11044 { "Response Count", "cigi.los_response.count",
11045 FT_UINT8, BASE_DEC, NULL, 0x0,
11046 "Indicates the total number of Line of Sight Response packets the IG will return for the corresponding request", HFILL }
11048 { &hf_cigi3_line_of_sight_response_entity_id,
11049 { "Entity ID", "cigi.los_response.entity_id",
11050 FT_UINT16, BASE_DEC, NULL, 0x0,
11051 "Indicates the entity with which an LOS test vector or segment intersects", HFILL }
11053 { &hf_cigi3_line_of_sight_response_range,
11054 { "Range (m)", "cigi.los_response.range",
11055 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11056 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with a polygon surface", HFILL }
11059 /* CIGI3_2 Line of Sight Response */
11060 { &hf_cigi3_2_line_of_sight_response,
11061 { "Line of Sight Response", "cigi.los_response",
11062 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11063 "Line of Sight Response Packet", HFILL }
11065 { &hf_cigi3_2_line_of_sight_response_los_id,
11066 { "LOS ID", "cigi.los_response.los_id",
11067 FT_UINT16, BASE_DEC, NULL, 0x0,
11068 "Identifies the LOS response", HFILL }
11070 { &hf_cigi3_2_line_of_sight_response_valid,
11071 { "Valid", "cigi.los_response.valid",
11072 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11073 "Indicates whether the Range parameter is valid", HFILL }
11075 { &hf_cigi3_2_line_of_sight_response_entity_id_valid,
11076 { "Entity ID Valid", "cigi.los_response.entity_id_valid",
11077 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11078 "Indicates whether the LOS test vector or segment intersects with an entity or a non-entity", HFILL }
11080 { &hf_cigi3_2_line_of_sight_response_visible,
11081 { "Visible", "cigi.los_response.visible",
11082 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_response_visible_tfs), 0x04,
11083 "Indicates whether the destination point is visible from the source point", HFILL }
11085 { &hf_cigi3_2_line_of_sight_response_host_frame_number_lsn,
11086 { "Host Frame Number LSN", "cigi.los_response.host_frame_number_lsn",
11087 FT_UINT8, BASE_DEC, NULL, 0xf0,
11088 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
11090 { &hf_cigi3_2_line_of_sight_response_count,
11091 { "Response Count", "cigi.los_response.count",
11092 FT_UINT8, BASE_DEC, NULL, 0x0,
11093 "Indicates the total number of Line of Sight Response packets the IG will return for the corresponding request", HFILL }
11095 { &hf_cigi3_2_line_of_sight_response_entity_id,
11096 { "Entity ID", "cigi.los_response.entity_id",
11097 FT_UINT16, BASE_DEC, NULL, 0x0,
11098 "Indicates the entity with which an LOS test vector or segment intersects", HFILL }
11100 { &hf_cigi3_2_line_of_sight_response_range,
11101 { "Range (m)", "cigi.los_response.range",
11102 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11103 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with a polygon surface", HFILL }
11106 /* CIGI3 Line of Sight Extended Response */
11107 { &hf_cigi3_line_of_sight_extended_response,
11108 { "Line of Sight Extended Response", "cigi.los_ext_response",
11109 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11110 "Line of Sight Extended Response Packet", HFILL }
11112 { &hf_cigi3_line_of_sight_extended_response_los_id,
11113 { "LOS ID", "cigi.los_ext_response.los_id",
11114 FT_UINT16, BASE_DEC, NULL, 0x0,
11115 "Identifies the LOS response", HFILL }
11117 { &hf_cigi3_line_of_sight_extended_response_valid,
11118 { "Valid", "cigi.los_ext_response.valid",
11119 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11120 "Indicates whether this packet contains valid data", HFILL }
11122 { &hf_cigi3_line_of_sight_extended_response_entity_id_valid,
11123 { "Entity ID Valid", "cigi.los_ext_response.entity_id_valid",
11124 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11125 "Indicates whether the LOS test vector or segment intersects with an entity", HFILL }
11127 { &hf_cigi3_line_of_sight_extended_response_range_valid,
11128 { "Range Valid", "cigi.los_ext_response.range_valid",
11129 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
11130 "Indicates whether the Range parameter is valid", HFILL }
11132 { &hf_cigi3_line_of_sight_extended_response_visible,
11133 { "Visible", "cigi.los_ext_response.visible",
11134 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_extended_response_visible_tfs), 0x08,
11135 "Indicates whether the destination point is visible from the source point", HFILL }
11137 { &hf_cigi3_line_of_sight_extended_response_intersection_coord,
11138 { "Intersection Point Coordinate System", "cigi.los_ext_response.intersection_coord",
11139 FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_extended_response_intersection_coord_tfs), 0x10,
11140 "Indicates the coordinate system relative to which the intersection point is specified", HFILL }
11142 { &hf_cigi3_line_of_sight_extended_response_response_count,
11143 { "Response Count", "cigi.los_ext_response.response_count",
11144 FT_UINT8, BASE_DEC, NULL, 0x0,
11145 "Indicates the total number of Line of Sight Extended Response packets the IG will return for the corresponding request", HFILL }
11147 { &hf_cigi3_line_of_sight_extended_response_entity_id,
11148 { "Entity ID", "cigi.los_ext_response.entity_id",
11149 FT_UINT16, BASE_DEC, NULL, 0x0,
11150 "Indicates the entity with which a LOS test vector or segment intersects", HFILL }
11152 { &hf_cigi3_line_of_sight_extended_response_range,
11153 { "Range (m)", "cigi.los_ext_response.range",
11154 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11155 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with an object", HFILL }
11157 { &hf_cigi3_line_of_sight_extended_response_lat_xoff,
11158 { "Latitude (degrees)/X Offset (m)", "cigi.los_ext_response.lat_xoff",
11159 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11160 "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 }
11162 { &hf_cigi3_line_of_sight_extended_response_lon_yoff,
11163 { "Longitude (degrees)/Y Offset (m)", "cigi.los_ext_response.lon_yoff",
11164 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11165 "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 }
11167 { &hf_cigi3_line_of_sight_extended_response_alt_zoff,
11168 { "Altitude (m)/Z Offset(m)", "cigi.los_ext_response.alt_zoff",
11169 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11170 "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 }
11172 { &hf_cigi3_line_of_sight_extended_response_red,
11173 { "Red", "cigi.los_ext_response.red",
11174 FT_UINT8, BASE_DEC, NULL, 0x0,
11175 "Indicates the red color component of the surface at the point of intersection", HFILL }
11177 { &hf_cigi3_line_of_sight_extended_response_green,
11178 { "Green", "cigi.los_ext_response.green",
11179 FT_UINT8, BASE_DEC, NULL, 0x0,
11180 "Indicates the green color component of the surface at the point of intersection", HFILL }
11182 { &hf_cigi3_line_of_sight_extended_response_blue,
11183 { "Blue", "cigi.los_ext_response.blue",
11184 FT_UINT8, BASE_DEC, NULL, 0x0,
11185 "Indicates the blue color component of the surface at the point of intersection", HFILL }
11187 { &hf_cigi3_line_of_sight_extended_response_alpha,
11188 { "Alpha", "cigi.los_ext_response.alpha",
11189 FT_UINT8, BASE_DEC, NULL, 0x0,
11190 "Indicates the alpha component of the surface at the point of intersection", HFILL }
11192 { &hf_cigi3_line_of_sight_extended_response_material_code,
11193 { "Material Code", "cigi.los_ext_response.material_code",
11194 FT_UINT32, BASE_DEC, NULL, 0x0,
11195 "Indicates the material code of the surface intersected by the LOS test segment of vector", HFILL }
11197 { &hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth,
11198 { "Normal Vector Azimuth (degrees)", "cigi.los_ext_response.normal_vector_azimuth",
11199 FT_FLOAT, BASE_NONE, NULL, 0x0,
11200 "Indicates the azimuth of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11202 { &hf_cigi3_line_of_sight_extended_response_normal_vector_elevation,
11203 { "Normal Vector Elevation (degrees)", "cigi.los_ext_response.normal_vector_elevation",
11204 FT_FLOAT, BASE_NONE, NULL, 0x0,
11205 "Indicates the elevation of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11208 /* CIGI3_2 Line of Sight Extended Response */
11209 { &hf_cigi3_2_line_of_sight_extended_response,
11210 { "Line of Sight Extended Response", "cigi.3_2_los_ext_response",
11211 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11212 "Line of Sight Extended Response Packet", HFILL }
11214 { &hf_cigi3_2_line_of_sight_extended_response_los_id,
11215 { "LOS ID", "cigi.3_2_los_ext_response.los_id",
11216 FT_UINT16, BASE_DEC, NULL, 0x0,
11217 "Identifies the LOS response", HFILL }
11219 { &hf_cigi3_2_line_of_sight_extended_response_valid,
11220 { "Valid", "cigi.3_2_los_ext_response.valid",
11221 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01,
11222 "Indicates whether this packet contains valid data", HFILL }
11224 { &hf_cigi3_2_line_of_sight_extended_response_entity_id_valid,
11225 { "Entity ID Valid", "cigi.3_2_los_ext_response.entity_id_valid",
11226 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02,
11227 "Indicates whether the LOS test vector or segment intersects with an entity", HFILL }
11229 { &hf_cigi3_2_line_of_sight_extended_response_range_valid,
11230 { "Range Valid", "cigi.3_2_los_ext_response.range_valid",
11231 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
11232 "Indicates whether the Range parameter is valid", HFILL }
11234 { &hf_cigi3_2_line_of_sight_extended_response_visible,
11235 { "Visible", "cigi.3_2_los_ext_response.visible",
11236 FT_BOOLEAN, 8, TFS(&cigi3_2_line_of_sight_extended_response_visible_tfs), 0x08,
11237 "Indicates whether the destination point is visible from the source point", HFILL }
11239 { &hf_cigi3_2_line_of_sight_extended_response_host_frame_number_lsn,
11240 { "Host Frame Number LSN", "cigi.3_2_los_ext_response.host_frame_number_lsn",
11241 FT_UINT8, BASE_DEC, NULL, 0xf0,
11242 "Least significant nibble of the host frame number parameter of the last IG Control packet received before the HAT or HOT is calculated", HFILL }
11244 { &hf_cigi3_2_line_of_sight_extended_response_response_count,
11245 { "Response Count", "cigi.3_2_los_ext_response.response_count",
11246 FT_UINT8, BASE_DEC, NULL, 0x0,
11247 "Indicates the total number of Line of Sight Extended Response packets the IG will return for the corresponding request", HFILL }
11249 { &hf_cigi3_2_line_of_sight_extended_response_entity_id,
11250 { "Entity ID", "cigi.3_2_los_ext_response.entity_id",
11251 FT_UINT16, BASE_DEC, NULL, 0x0,
11252 "Indicates the entity with which a LOS test vector or segment intersects", HFILL }
11254 { &hf_cigi3_2_line_of_sight_extended_response_range,
11255 { "Range (m)", "cigi.3_2_los_ext_response.range",
11256 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11257 "Indicates the distance along the LOS test segment or vector from the source point to the point of intersection with an object", HFILL }
11259 { &hf_cigi3_2_line_of_sight_extended_response_lat_xoff,
11260 { "Latitude (degrees)/X Offset (m)", "cigi.3_2_los_ext_response.lat_xoff",
11261 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11262 "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 }
11264 { &hf_cigi3_2_line_of_sight_extended_response_lon_yoff,
11265 { "Longitude (degrees)/Y Offset (m)", "cigi.3_2_los_ext_response.lon_yoff",
11266 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11267 "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 }
11269 { &hf_cigi3_2_line_of_sight_extended_response_alt_zoff,
11270 { "Altitude (m)/Z Offset(m)", "cigi.3_2_los_ext_response.alt_zoff",
11271 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11272 "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 }
11274 { &hf_cigi3_2_line_of_sight_extended_response_red,
11275 { "Red", "cigi.3_2_los_ext_response.red",
11276 FT_UINT8, BASE_DEC, NULL, 0x0,
11277 "Indicates the red color component of the surface at the point of intersection", HFILL }
11279 { &hf_cigi3_2_line_of_sight_extended_response_green,
11280 { "Green", "cigi.3_2_los_ext_response.green",
11281 FT_UINT8, BASE_DEC, NULL, 0x0,
11282 "Indicates the green color component of the surface at the point of intersection", HFILL }
11284 { &hf_cigi3_2_line_of_sight_extended_response_blue,
11285 { "Blue", "cigi.3_2_los_ext_response.blue",
11286 FT_UINT8, BASE_DEC, NULL, 0x0,
11287 "Indicates the blue color component of the surface at the point of intersection", HFILL }
11289 { &hf_cigi3_2_line_of_sight_extended_response_alpha,
11290 { "Alpha", "cigi.3_2_los_ext_response.alpha",
11291 FT_UINT8, BASE_DEC, NULL, 0x0,
11292 "Indicates the alpha component of the surface at the point of intersection", HFILL }
11294 { &hf_cigi3_2_line_of_sight_extended_response_material_code,
11295 { "Material Code", "cigi.3_2_los_ext_response.material_code",
11296 FT_UINT32, BASE_DEC, NULL, 0x0,
11297 "Indicates the material code of the surface intersected by the LOS test segment of vector", HFILL }
11299 { &hf_cigi3_2_line_of_sight_extended_response_normal_vector_azimuth,
11300 { "Normal Vector Azimuth (degrees)", "cigi.3_2_los_ext_response.normal_vector_azimuth",
11301 FT_FLOAT, BASE_NONE, NULL, 0x0,
11302 "Indicates the azimuth of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11304 { &hf_cigi3_2_line_of_sight_extended_response_normal_vector_elevation,
11305 { "Normal Vector Elevation (degrees)", "cigi.3_2_los_ext_response.normal_vector_elevation",
11306 FT_FLOAT, BASE_NONE, NULL, 0x0,
11307 "Indicates the elevation of a unit vector normal to the surface intersected by the LOS test segment or vector", HFILL }
11310 /* CIGI2 Collision Detection Segment Response */
11311 { &hf_cigi2_collision_detection_segment_response,
11312 { "Collision Detection Segment Response", "cigi.coll_det_seg_response",
11313 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11314 "Collision Detection Segment Response Packet", HFILL }
11316 { &hf_cigi2_collision_detection_segment_response_entity_id,
11317 { "Entity ID", "cigi.coll_det_seg_response.entity_id",
11318 FT_UINT16, BASE_DEC, NULL, 0x0,
11319 "Indicates which entity experienced a collision", HFILL }
11321 { &hf_cigi2_collision_detection_segment_response_segment_id,
11322 { "Segment ID", "cigi.coll_det_seg_response.segment_id",
11323 FT_UINT8, BASE_DEC, NULL, 0xfe,
11324 "Identifies the collision segment", HFILL }
11326 { &hf_cigi2_collision_detection_segment_response_contact,
11327 { "Entity/Non-Entity Contact", "cigi.coll_det_seg_response.contact",
11328 FT_BOOLEAN, 8, TFS(&cigi2_collision_detection_segment_response_contact_tfs), 0x01,
11329 "Indicates whether another entity was contacted during this collision", HFILL }
11331 { &hf_cigi2_collision_detection_segment_response_contacted_entity,
11332 { "Contacted Entity ID", "cigi.coll_det_seg_response.contacted_entity",
11333 FT_UINT16, BASE_DEC, NULL, 0x0,
11334 "Indicates which entity was contacted during the collision", HFILL }
11336 { &hf_cigi2_collision_detection_segment_response_material_type,
11337 { "Material Type", "cigi.coll_det_seg_response.material_type",
11338 FT_INT32, BASE_DEC, NULL, 0x0,
11339 "Specifies the material type of the surface that this collision test segment contacted", HFILL }
11341 { &hf_cigi2_collision_detection_segment_response_collision_x,
11342 { "Collision Point X (m)", "cigi.coll_det_seg_response.collision_x",
11343 FT_FLOAT, BASE_NONE, NULL, 0x0,
11344 "Specifies the X component of a vector, which lies along the defined segment where the segment intersected a surface", HFILL }
11346 { &hf_cigi2_collision_detection_segment_response_collision_y,
11347 { "Collision Point Y (m)", "cigi.coll_det_seg_response.collision_y",
11348 FT_FLOAT, BASE_NONE, NULL, 0x0,
11349 "Specifies the Y component of a vector, which lies along the defined segment where the segment intersected a surface", HFILL }
11351 { &hf_cigi2_collision_detection_segment_response_collision_z,
11352 { "Collision Point Z (m)", "cigi.coll_det_seg_response.collision_z",
11353 FT_FLOAT, BASE_NONE, NULL, 0x0,
11354 "Specifies the Z component of a vector, which lies along the defined segment where the segment intersected a surface", HFILL }
11357 /* CIGI2 Sensor Response */
11358 { &hf_cigi2_sensor_response,
11359 { "Sensor Response", "cigi.sensor_response",
11360 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11361 "Sensor Response Packet", HFILL }
11363 { &hf_cigi2_sensor_response_view_id,
11364 { "View ID", "cigi.sensor_response.view_id",
11365 FT_UINT8, BASE_DEC, NULL, 0xf8,
11366 "Indicates the sensor view", HFILL }
11368 { &hf_cigi2_sensor_response_status,
11369 { "Sensor Status", "cigi.sensor_response.status",
11370 FT_UINT8, BASE_DEC, VALS(cigi2_sensor_response_status_vals), 0x06,
11371 "Indicates the current sensor mode", HFILL }
11373 { &hf_cigi2_sensor_response_sensor_id,
11374 { "Sensor ID", "cigi.sensor_response.sensor_id",
11375 FT_UINT8, BASE_DEC, NULL, 0x0,
11376 "Identifies the sensor response corresponding to the associated sensor control data packet", HFILL }
11378 { &hf_cigi2_sensor_response_x_offset,
11379 { "Gate X Offset (degrees)", "cigi.sensor_response.x_offset",
11380 FT_UINT16, BASE_DEC, NULL, 0x0,
11381 "Specifies the target's horizontal offset from the view plane normal", HFILL }
11383 { &hf_cigi2_sensor_response_y_offset,
11384 { "Gate Y Offset (degrees)", "cigi.sensor_response.y_offset",
11385 FT_UINT16, BASE_DEC, NULL, 0x0,
11386 "Specifies the target's vertical offset from the view plane normal", HFILL }
11388 { &hf_cigi2_sensor_response_x_size,
11389 { "Gate X Size", "cigi.sensor_response.x_size",
11390 FT_UINT16, BASE_DEC, NULL, 0x0,
11391 "Specifies the target size in the X direction (horizontal) in pixels", HFILL }
11393 { &hf_cigi2_sensor_response_y_size,
11394 { "Gate Y Size", "cigi.sensor_response.y_size",
11395 FT_UINT16, BASE_DEC, NULL, 0x0,
11396 "Specifies the target size in the Y direction (vertical) in pixels", HFILL }
11399 /* CIGI3 Sensor Response */
11400 { &hf_cigi3_sensor_response,
11401 { "Sensor Response", "cigi.sensor_response",
11402 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11403 "Sensor Response Packet", HFILL }
11405 { &hf_cigi3_sensor_response_view_id,
11406 { "View ID", "cigi.sensor_response.view_id",
11407 FT_UINT16, BASE_DEC, NULL, 0x0,
11408 "Specifies the view that represents the sensor display", HFILL }
11410 { &hf_cigi3_sensor_response_sensor_id,
11411 { "Sensor ID", "cigi.sensor_response.sensor_id",
11412 FT_UINT8, BASE_DEC, NULL, 0x0,
11413 "Specifies the sensor to which the data in this packet apply", HFILL }
11415 { &hf_cigi3_sensor_response_sensor_status,
11416 { "Sensor Status", "cigi.sensor_response.sensor_status",
11417 FT_UINT8, BASE_DEC, VALS(cigi3_sensor_response_sensor_status_vals), 0x03,
11418 "Indicates the current tracking state of the sensor", HFILL }
11420 { &hf_cigi3_sensor_response_gate_x_size,
11421 { "Gate X Size (pixels or raster lines)", "cigi.sensor_response.gate_x_size",
11422 FT_UINT16, BASE_DEC, NULL, 0x0,
11423 "Specifies the gate symbol size along the view's X axis", HFILL }
11425 { &hf_cigi3_sensor_response_gate_y_size,
11426 { "Gate Y Size (pixels or raster lines)", "cigi.sensor_response.gate_y_size",
11427 FT_UINT16, BASE_DEC, NULL, 0x0,
11428 "Specifies the gate symbol size along the view's Y axis", HFILL }
11430 { &hf_cigi3_sensor_response_gate_x_pos,
11431 { "Gate X Position (degrees)", "cigi.sensor_response.gate_x_pos",
11432 FT_FLOAT, BASE_NONE, NULL, 0x0,
11433 "Specifies the gate symbol's position along the view's X axis", HFILL }
11435 { &hf_cigi3_sensor_response_gate_y_pos,
11436 { "Gate Y Position (degrees)", "cigi.sensor_response.gate_y_pos",
11437 FT_FLOAT, BASE_NONE, NULL, 0x0,
11438 "Specifies the gate symbol's position along the view's Y axis", HFILL }
11440 { &hf_cigi3_sensor_response_frame_ctr,
11441 { "Frame Counter", "cigi.sensor_response.frame_ctr",
11442 FT_UINT32, BASE_DEC, NULL, 0x0,
11443 "Indicates the IG's frame counter at the time that the IG calculates the gate and line-of-sight intersection data", HFILL }
11446 /* CIGI3 Sensor Extended Response */
11447 { &hf_cigi3_sensor_extended_response,
11448 { "Sensor Extended Response", "cigi.sensor_ext_response",
11449 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11450 "Sensor Extended Response Packet", HFILL }
11452 { &hf_cigi3_sensor_extended_response_view_id,
11453 { "View ID", "cigi.sensor_ext_response.view_id",
11454 FT_UINT16, BASE_DEC, NULL, 0x0,
11455 "Specifies the view that represents the sensor display", HFILL }
11457 { &hf_cigi3_sensor_extended_response_sensor_id,
11458 { "Sensor ID", "cigi.sensor_ext_response.sensor_id",
11459 FT_UINT8, BASE_DEC, NULL, 0x0,
11460 "Specifies the sensor to which the data in this packet apply", HFILL }
11462 { &hf_cigi3_sensor_extended_response_sensor_status,
11463 { "Sensor Status", "cigi.sensor_ext_response.sensor_status",
11464 FT_UINT8, BASE_DEC, VALS(cigi3_sensor_extended_response_sensor_status_vals), 0x03,
11465 "Indicates the current tracking state of the sensor", HFILL }
11467 { &hf_cigi3_sensor_extended_response_entity_id_valid,
11468 { "Entity ID Valid", "cigi.sensor_ext_response.entity_id_valid",
11469 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04,
11470 "Indicates whether the target is an entity or a non-entity object", HFILL }
11472 { &hf_cigi3_sensor_extended_response_entity_id,
11473 { "Entity ID", "cigi.sensor_ext_response.entity_id",
11474 FT_UINT16, BASE_DEC, NULL, 0x0,
11475 "Indicates the entity ID of the target", HFILL }
11477 { &hf_cigi3_sensor_extended_response_gate_x_size,
11478 { "Gate X Size (pixels or raster lines)", "cigi.sensor_ext_response.gate_x_size",
11479 FT_UINT16, BASE_DEC, NULL, 0x0,
11480 "Specifies the gate symbol size along the view's X axis", HFILL }
11482 { &hf_cigi3_sensor_extended_response_gate_y_size,
11483 { "Gate Y Size (pixels or raster lines)", "cigi.sensor_ext_response.gate_y_size",
11484 FT_UINT16, BASE_DEC, NULL, 0x0,
11485 "Specifies the gate symbol size along the view's Y axis", HFILL }
11487 { &hf_cigi3_sensor_extended_response_gate_x_pos,
11488 { "Gate X Position (degrees)", "cigi.sensor_ext_response.gate_x_pos",
11489 FT_FLOAT, BASE_NONE, NULL, 0x0,
11490 "Specifies the gate symbol's position along the view's X axis", HFILL }
11492 { &hf_cigi3_sensor_extended_response_gate_y_pos,
11493 { "Gate Y Position (degrees)", "cigi.sensor_ext_response.gate_y_pos",
11494 FT_FLOAT, BASE_NONE, NULL, 0x0,
11495 "Specifies the gate symbol's position along the view's Y axis", HFILL }
11497 { &hf_cigi3_sensor_extended_response_frame_ctr,
11498 { "Frame Counter", "cigi.sensor_ext_response.frame_ctr",
11499 FT_UINT32, BASE_DEC, NULL, 0x0,
11500 "Indicates the IG's frame counter at the time that the IG calculates the gate and line-of-sight intersection data", HFILL }
11502 { &hf_cigi3_sensor_extended_response_track_lat,
11503 { "Track Point Latitude (degrees)", "cigi.sensor_ext_response.track_lat",
11504 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11505 "Indicates the geodetic latitude of the point being tracked by the sensor", HFILL }
11507 { &hf_cigi3_sensor_extended_response_track_lon,
11508 { "Track Point Longitude (degrees)", "cigi.sensor_ext_response.track_lon",
11509 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11510 "Indicates the geodetic longitude of the point being tracked by the sensor", HFILL }
11512 { &hf_cigi3_sensor_extended_response_track_alt,
11513 { "Track Point Altitude (m)", "cigi.sensor_ext_response.track_alt",
11514 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11515 "Indicates the geodetic altitude of the point being tracked by the sensor", HFILL }
11518 /* CIGI2 Height of Terrain Response */
11519 { &hf_cigi2_height_of_terrain_response,
11520 { "Height of Terrain Response", "cigi.hot_response",
11521 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11522 "Height of Terrain Response Packet", HFILL }
11524 { &hf_cigi2_height_of_terrain_response_hot_id,
11525 { "HOT ID", "cigi.hot_response.hot_id",
11526 FT_UINT16, BASE_DEC, NULL, 0x0,
11527 "Identifies the HOT response corresponding to the associated HOT request", HFILL }
11529 { &hf_cigi2_height_of_terrain_response_valid,
11530 { "Valid", "cigi.hot_response.valid",
11531 FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80,
11532 "Indicates whether the response is valid or invalid", HFILL }
11534 { &hf_cigi2_height_of_terrain_response_material_type,
11535 { "Material Type", "cigi.hot_response.material_type",
11536 FT_INT32, BASE_DEC, NULL, 0x0,
11537 "Specifies the material type of the object intersected by the HOT test segment", HFILL }
11539 { &hf_cigi2_height_of_terrain_response_alt,
11540 { "Altitude (m)", "cigi.hot_response.alt",
11541 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11542 "Represents the altitude of the terrain for the position requested in the HOT request data packet", HFILL }
11545 /* CIGI2 Collision Detection Volume Response */
11546 { &hf_cigi2_collision_detection_volume_response,
11547 { "Collision Detection Volume Response", "cigi.coll_det_vol_response",
11548 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11549 "Collision Detection Volume Response Packet", HFILL }
11551 { &hf_cigi2_collision_detection_volume_response_entity_id,
11552 { "Entity ID", "cigi.coll_det_vol_response.entity_id",
11553 FT_UINT16, BASE_DEC, NULL, 0x0,
11554 "Indicates which entity experienced a collision", HFILL }
11556 { &hf_cigi2_collision_detection_volume_response_volume_id,
11557 { "Volume ID", "cigi.coll_det_vol_response.volume_id",
11558 FT_UINT8, BASE_DEC, NULL, 0xfe,
11559 "Identifies the collision volume corresponding to the associated Collision Detection Volume Request", HFILL }
11561 { &hf_cigi2_collision_detection_volume_response_contact,
11562 { "Entity/Non-Entity Contact", "cigi.coll_det_vol_response.contact",
11563 FT_BOOLEAN, 8, TFS(&cigi2_collision_detection_volume_response_contact_tfs), 0x01,
11564 "Indicates whether another entity was contacted during this collision", HFILL }
11566 { &hf_cigi2_collision_detection_volume_response_contact_entity,
11567 { "Contacted Entity ID", "cigi.coll_det_vol_response.contact_entity",
11568 FT_UINT16, BASE_DEC, NULL, 0x0,
11569 "Indicates which entity was contacted with during the collision", HFILL }
11572 /* CIGI3 Position Response */
11573 { &hf_cigi3_position_response,
11574 { "Position Response", "cigi.pos_response",
11575 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11576 "Position Response Packet", HFILL }
11578 { &hf_cigi3_position_response_object_id,
11579 { "Object ID", "cigi.pos_response.object_id",
11580 FT_UINT16, BASE_DEC, NULL, 0x0,
11581 "Identifies the entity, view, view group, or motion tracking device whose position is being reported", HFILL }
11583 { &hf_cigi3_position_response_part_id,
11584 { "Articulated Part ID", "cigi.pos_response.part_id",
11585 FT_UINT8, BASE_DEC, NULL, 0x0,
11586 "Identifies the articulated part whose position is being reported", HFILL }
11588 { &hf_cigi3_position_response_object_class,
11589 { "Object Class", "cigi.pos_response.object_class",
11590 FT_UINT8, BASE_DEC, VALS(cigi3_position_response_object_class_vals), 0x07,
11591 "Indicates the type of object whose position is being reported", HFILL }
11593 { &hf_cigi3_position_response_coord_system,
11594 { "Coordinate System", "cigi.pos_response.coord_system",
11595 FT_UINT8, BASE_DEC, VALS(cigi3_position_response_coord_system_vals), 0x18,
11596 "Indicates the coordinate system in which the position and orientation are specified", HFILL }
11598 { &hf_cigi3_position_response_lat_xoff,
11599 { "Latitude (degrees)/X Offset (m)", "cigi.pos_response.lat_xoff",
11600 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11601 "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 }
11603 { &hf_cigi3_position_response_lon_yoff,
11604 { "Longitude (degrees)/Y Offset (m)", "cigi.pos_response.lon_yoff",
11605 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11606 "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 }
11608 { &hf_cigi3_position_response_alt_zoff,
11609 { "Altitude (m)/Z Offset (m)", "cigi.pos_response.alt_zoff",
11610 FT_DOUBLE, BASE_NONE, NULL, 0x0,
11611 "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 }
11613 { &hf_cigi3_position_response_roll,
11614 { "Roll (degrees)", "cigi.pos_response.roll",
11615 FT_FLOAT, BASE_NONE, NULL, 0x0,
11616 "Indicates the roll angle of the specified entity, articulated part, view, or view group", HFILL }
11618 { &hf_cigi3_position_response_pitch,
11619 { "Pitch (degrees)", "cigi.pos_response.pitch",
11620 FT_FLOAT, BASE_NONE, NULL, 0x0,
11621 "Indicates the pitch angle of the specified entity, articulated part, view, or view group", HFILL }
11623 { &hf_cigi3_position_response_yaw,
11624 { "Yaw (degrees)", "cigi.pos_response.yaw",
11625 FT_FLOAT, BASE_NONE, NULL, 0x0,
11626 "Indicates the yaw angle of the specified entity, articulated part, view, or view group", HFILL }
11629 /* CIGI3 Weather Conditions Response */
11630 { &hf_cigi3_weather_conditions_response,
11631 { "Weather Conditions Response", "cigi.wea_cond_response",
11632 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11633 "Weather Conditions Response Packet", HFILL }
11635 { &hf_cigi3_weather_conditions_response_request_id,
11636 { "Request ID", "cigi.wea_cond_response.request_id",
11637 FT_UINT8, BASE_DEC, NULL, 0x0,
11638 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11640 { &hf_cigi3_weather_conditions_response_humidity,
11641 { "Humidity (%)", "cigi.wea_cond_response.humidity",
11642 FT_UINT8, BASE_DEC, NULL, 0x0,
11643 "Indicates the humidity at the request location", HFILL }
11645 { &hf_cigi3_weather_conditions_response_air_temp,
11646 { "Air Temperature (degrees C)", "cigi.wea_cond_response.air_temp",
11647 FT_FLOAT, BASE_NONE, NULL, 0x0,
11648 "Indicates the air temperature at the requested location", HFILL }
11650 { &hf_cigi3_weather_conditions_response_visibility_range,
11651 { "Visibility Range (m)", "cigi.wea_cond_response.visibility_range",
11652 FT_FLOAT, BASE_NONE, NULL, 0x0,
11653 "Indicates the visibility range at the requested location", HFILL }
11655 { &hf_cigi3_weather_conditions_response_horiz_speed,
11656 { "Horizontal Wind Speed (m/s)", "cigi.wea_cond_response.horiz_speed",
11657 FT_FLOAT, BASE_NONE, NULL, 0x0,
11658 "Indicates the local wind speed parallel to the ellipsoid-tangential reference plane", HFILL }
11660 { &hf_cigi3_weather_conditions_response_vert_speed,
11661 { "Vertical Wind Speed (m/s)", "cigi.wea_cond_response.vert_speed",
11662 FT_FLOAT, BASE_NONE, NULL, 0x0,
11663 "Indicates the local vertical wind speed", HFILL }
11665 { &hf_cigi3_weather_conditions_response_wind_direction,
11666 { "Wind Direction (degrees)", "cigi.wea_cond_response.wind_direction",
11667 FT_FLOAT, BASE_NONE, NULL, 0x0,
11668 "Indicates the local wind direction", HFILL }
11670 { &hf_cigi3_weather_conditions_response_barometric_pressure,
11671 { "Barometric Pressure (mb or hPa)", "cigi.wea_cond_response.barometric_pressure",
11672 FT_FLOAT, BASE_NONE, NULL, 0x0,
11673 "Indicates the atmospheric pressure at the requested location", HFILL }
11676 /* CIGI3 Aerosol Concentration Response */
11677 { &hf_cigi3_aerosol_concentration_response,
11678 { "Aerosol Concentration Response", "cigi.aerosol_concentration_response",
11679 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11680 "Aerosol Concentration Response Packet", HFILL }
11682 { &hf_cigi3_aerosol_concentration_response_request_id,
11683 { "Request ID", "cigi.aerosol_concentration_response.request_id",
11684 FT_UINT8, BASE_DEC, NULL, 0x0,
11685 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11687 { &hf_cigi3_aerosol_concentration_response_layer_id,
11688 { "Layer ID", "cigi.aerosol_concentration_response.layer_id",
11689 FT_UINT8, BASE_DEC, NULL, 0x0,
11690 "Identifies the weather layer whose aerosol concentration is being described", HFILL }
11692 { &hf_cigi3_aerosol_concentration_response_aerosol_concentration,
11693 { "Aerosol Concentration (g/m^3)", "cigi.aerosol_concentration_response.aerosol_concentration",
11694 FT_FLOAT, BASE_NONE, NULL, 0x0,
11695 "Identifies the concentration of airborne particles", HFILL }
11698 /* CIGI3 Maritime Surface Conditions Response */
11699 { &hf_cigi3_maritime_surface_conditions_response,
11700 { "Maritime Surface Conditions Response", "cigi.maritime_surface_conditions_response",
11701 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11702 "Maritime Surface Conditions Response Packet", HFILL }
11704 { &hf_cigi3_maritime_surface_conditions_response_request_id,
11705 { "Request ID", "cigi.maritime_surface_conditions_response.request_id",
11706 FT_UINT8, BASE_DEC, NULL, 0x0,
11707 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11709 { &hf_cigi3_maritime_surface_conditions_response_sea_surface_height,
11710 { "Sea Surface Height (m)", "cigi.maritime_surface_conditions_response.sea_surface_height",
11711 FT_FLOAT, BASE_NONE, NULL, 0x0,
11712 "Indicates the height of the sea surface at equilibrium", HFILL }
11714 { &hf_cigi3_maritime_surface_conditions_response_surface_water_temp,
11715 { "Surface Water Temperature (degrees C)", "cigi.maritime_surface_conditions_response.surface_water_temp",
11716 FT_FLOAT, BASE_NONE, NULL, 0x0,
11717 "Indicates the water temperature at the sea surface", HFILL }
11719 { &hf_cigi3_maritime_surface_conditions_response_surface_clarity,
11720 { "Surface Clarity (%)", "cigi.maritime_surface_conditions_response.surface_clarity",
11721 FT_FLOAT, BASE_NONE, NULL, 0x0,
11722 "Indicates the clarity of the water at its surface", HFILL }
11725 /* CIGI3 Terrestrial Surface Conditions Response */
11726 { &hf_cigi3_terrestrial_surface_conditions_response,
11727 { "Terrestrial Surface Conditions Response", "cigi.terr_surface_cond_response",
11728 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11729 "Terrestrial Surface Conditions Response Packet", HFILL }
11731 { &hf_cigi3_terrestrial_surface_conditions_response_request_id,
11732 { "Request ID", "cigi.terr_surface_cond_response.request_id",
11733 FT_UINT8, BASE_DEC, NULL, 0x0,
11734 "Identifies the environmental conditions request to which this response packet corresponds", HFILL }
11736 { &hf_cigi3_terrestrial_surface_conditions_response_surface_id,
11737 { "Surface Condition ID", "cigi.terr_surface_cond_response.surface_id",
11738 FT_UINT32, BASE_DEC, NULL, 0x0,
11739 "Indicates the presence of a specific surface condition or contaminant at the test point", HFILL }
11742 /* CIGI3 Collision Detection Segment Notification */
11743 { &hf_cigi3_collision_detection_segment_notification,
11744 { "Collision Detection Segment Notification", "cigi.coll_det_seg_notification",
11745 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11746 "Collision Detection Segment Notification Packet", HFILL }
11748 { &hf_cigi3_collision_detection_segment_notification_entity_id,
11749 { "Entity ID", "cigi.coll_det_seg_notification.entity_id",
11750 FT_UINT16, BASE_DEC, NULL, 0x0,
11751 "Indicates the entity to which the collision detection segment belongs", HFILL }
11753 { &hf_cigi3_collision_detection_segment_notification_segment_id,
11754 { "Segment ID", "cigi.coll_det_seg_notification.segment_id",
11755 FT_UINT8, BASE_DEC, NULL, 0x0,
11756 "Indicates the ID of the collision detection segment along which the collision occurred", HFILL }
11758 { &hf_cigi3_collision_detection_segment_notification_type,
11759 { "Collision Type", "cigi.coll_det_seg_notification.type",
11760 FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_segment_notification_type_tfs), 0x01,
11761 "Indicates whether the collision occurred with another entity or with a non-entity object", HFILL }
11763 { &hf_cigi3_collision_detection_segment_notification_contacted_entity_id,
11764 { "Contacted Entity ID", "cigi.coll_det_seg_notification.contacted_entity_id",
11765 FT_UINT16, BASE_DEC, NULL, 0x0,
11766 "Indicates the entity with which the collision occurred", HFILL }
11768 { &hf_cigi3_collision_detection_segment_notification_material_code,
11769 { "Material Code", "cigi.coll_det_seg_notification.material_code",
11770 FT_UINT32, BASE_DEC, NULL, 0x0,
11771 "Indicates the material code of the surface at the point of collision", HFILL }
11773 { &hf_cigi3_collision_detection_segment_notification_intersection_distance,
11774 { "Intersection Distance (m)", "cigi.coll_det_seg_notification.intersection_distance",
11775 FT_FLOAT, BASE_NONE, NULL, 0x0,
11776 "Indicates the distance along the collision test vector from the source endpoint to the point of intersection", HFILL }
11779 /* CIGI3 Collision Detection Volume Notification */
11780 { &hf_cigi3_collision_detection_volume_notification,
11781 { "Collision Detection Volume Notification", "cigi.coll_det_vol_notification",
11782 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11783 "Collision Detection Volume Notification Packet", HFILL }
11785 { &hf_cigi3_collision_detection_volume_notification_entity_id,
11786 { "Entity ID", "cigi.coll_det_vol_notification.entity_id",
11787 FT_UINT16, BASE_DEC, NULL, 0x0,
11788 "Indicates the entity to which the collision detection volume belongs", HFILL }
11790 { &hf_cigi3_collision_detection_volume_notification_volume_id,
11791 { "Volume ID", "cigi.coll_det_vol_notification.volume_id",
11792 FT_UINT8, BASE_DEC, NULL, 0x0,
11793 "Indicates the ID of the collision detection volume within which the collision occurred", HFILL }
11795 { &hf_cigi3_collision_detection_volume_notification_type,
11796 { "Collision Type", "cigi.coll_det_vol_notification.type",
11797 FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_volume_notification_type_tfs), 0x01,
11798 "Indicates whether the collision occurred with another entity or with a non-entity object", HFILL }
11800 { &hf_cigi3_collision_detection_volume_notification_contacted_entity_id,
11801 { "Contacted Entity ID", "cigi.coll_det_vol_notification.contacted_entity_id",
11802 FT_UINT16, BASE_DEC, NULL, 0x0,
11803 "Indicates the entity with which the collision occurred", HFILL }
11805 { &hf_cigi3_collision_detection_volume_notification_contacted_volume_id,
11806 { "Contacted Volume ID", "cigi.coll_det_vol_notification.contacted_volume_id",
11807 FT_UINT8, BASE_DEC, NULL, 0x0,
11808 "Indicates the ID of the collision detection volume with which the collision occurred", HFILL }
11811 /* CIGI3 Animation Stop Notification */
11812 { &hf_cigi3_animation_stop_notification,
11813 { "Animation Stop Notification", "cigi.animation_stop_notification",
11814 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11815 "Animation Stop Notification Packet", HFILL }
11817 { &hf_cigi3_animation_stop_notification_entity_id,
11818 { "Entity ID", "cigi.animation_stop_notification.entity_id",
11819 FT_UINT16, BASE_DEC, NULL, 0x0,
11820 "Indicates the entity ID of the animation that has stopped", HFILL }
11823 /* CIGI3 Event Notification */
11824 { &hf_cigi3_event_notification,
11825 { "Event Notification", "cigi.event_notification",
11826 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11827 "Event Notification Packet", HFILL }
11829 { &hf_cigi3_event_notification_event_id,
11830 { "Event ID", "cigi.event_notification.event_id",
11831 FT_UINT16, BASE_DEC, NULL, 0x0,
11832 "Indicates which event has occurred", HFILL }
11834 { &hf_cigi3_event_notification_data_1,
11835 { "Event Data 1", "cigi.event_notification.data_1",
11836 FT_BYTES, BASE_NONE, NULL, 0x0,
11837 "Used for user-defined event data", HFILL }
11839 { &hf_cigi3_event_notification_data_2,
11840 { "Event Data 2", "cigi.event_notification.data_2",
11841 FT_BYTES, BASE_NONE, NULL, 0x0,
11842 "Used for user-defined event data", HFILL }
11844 { &hf_cigi3_event_notification_data_3,
11845 { "Event Data 3", "cigi.event_notification.data_3",
11846 FT_BYTES, BASE_NONE, NULL, 0x0,
11847 "Used for user-defined event data", HFILL }
11850 /* CIGI2 Image Generator Message */
11851 { &hf_cigi2_image_generator_message,
11852 { "Image Generator Message", "cigi.image_generator_message",
11853 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11854 "Image Generator Message Packet", HFILL }
11856 { &hf_cigi2_image_generator_message_id,
11857 { "Message ID", "cigi.image_generator_message.message_id",
11858 FT_UINT16, BASE_DEC, NULL, 0x0,
11859 "Uniquely identifies an instance of an Image Generator Response Message", HFILL }
11861 { &hf_cigi2_image_generator_message_message,
11862 { "Message", "cigi.image_generator_message.message",
11863 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11864 "Image generator message", HFILL }
11867 /* CIGI3 Image Generator Message */
11868 { &hf_cigi3_image_generator_message,
11869 { "Image Generator Message", "cigi.image_generator_message",
11870 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11871 "Image Generator Message Packet", HFILL }
11873 { &hf_cigi3_image_generator_message_id,
11874 { "Message ID", "cigi.image_generator_message.message_id",
11875 FT_UINT16, BASE_DEC, NULL, 0x0,
11876 "Specifies a numerical identifier for the message", HFILL }
11878 { &hf_cigi3_image_generator_message_message,
11879 { "Message", "cigi.image_generator_message.message",
11880 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11881 "Message string", HFILL }
11884 /* CIGI2 User Definable */
11885 { &hf_cigi2_user_definable,
11886 { "User Definable", "cigi.user_definable",
11887 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11888 "User definable packet", HFILL }
11891 /* CIGI3 User-Defined Packets */
11892 { &hf_cigi3_user_defined,
11893 { "User-Defined", "cigi.user_defined",
11894 FT_STRINGZ, BASE_NONE, NULL, 0x0,
11895 "User-Defined Packet", HFILL }
11899 /* CIGI preferences */
11900 static enum_val_t cigi_versions[] = {
11901 { "from_packet", "From Packet", CIGI_VERSION_FROM_PACKET },
11902 { "cigi2", "CIGI 2", CIGI_VERSION_2 },
11903 { "cigi3", "CIGI 3", CIGI_VERSION_3 },
11907 static enum_val_t cigi_byte_orders[] = {
11908 { "from_packet", "From Packet", CIGI_BYTE_ORDER_FROM_PACKET },
11909 { "big_endian", "Big-Endian", CIGI_BYTE_ORDER_BIG_ENDIAN },
11910 { "little_endian", "Little-Endian", CIGI_BYTE_ORDER_LITTLE_ENDIAN },
11914 /* Setup protocol subtree array */
11915 static gint *ett[] = {
11919 /* Register the protocol name and description */
11920 proto_cigi = proto_register_protocol("Common Image Generator Interface",
11923 /* Required function calls to register the header fields and subtrees used */
11924 proto_register_field_array(proto_cigi, hf, array_length(hf));
11925 proto_register_subtree_array(ett, array_length(ett));
11927 /* Register preferences module */
11928 cigi_module = prefs_register_protocol(proto_cigi, proto_reg_handoff_cigi);
11930 /* Register preferences */
11931 prefs_register_enum_preference(cigi_module, "version", "CIGI version", "The version of CIGI with which to dissect packets", &global_cigi_version, cigi_versions, FALSE);
11932 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);
11933 prefs_register_string_preference(cigi_module, "host", "Host IP", "IPv4 address or hostname of the host", &global_host_ip);
11934 prefs_register_string_preference(cigi_module, "ig", "Image Generator IP", "IPv4 address or hostname of the image generator", &global_ig_ip);
11938 /* This function is also called by preferences whenever "Apply" is pressed
11939 (see prefs_register_protocol above) so it should accommodate being called
11943 proto_reg_handoff_cigi(void)
11945 static gboolean inited = FALSE;
11947 /* If the CIGI version preference was changed update the cigi version
11948 * information for all packets */
11949 if ( global_cigi_version != CIGI_VERSION_FROM_PACKET ) {
11950 cigi_version = global_cigi_version;
11953 /* If the CIGI byte order preference was changed update the cigi byte
11954 * order information for all packets */
11955 if ( global_cigi_byte_order != CIGI_BYTE_ORDER_FROM_PACKET ) {
11956 cigi_byte_order = global_cigi_byte_order;
11961 cigi_handle = new_create_dissector_handle(dissect_cigi, proto_cigi);
11962 dissector_add_handle("udp.port", cigi_handle);
11963 dissector_add_handle("tcp.port", cigi_handle);
11964 heur_dissector_add("udp", dissect_cigi_heur, proto_cigi);