diff options
-rw-r--r-- | epan/dissectors/packet-cigi.c | 626 |
1 files changed, 285 insertions, 341 deletions
diff --git a/epan/dissectors/packet-cigi.c b/epan/dissectors/packet-cigi.c index 950fce0b10..6e12bebfc0 100644 --- a/epan/dissectors/packet-cigi.c +++ b/epan/dissectors/packet-cigi.c @@ -132,44 +132,29 @@ dissector_handle_t cigi_handle; /* Initialize the protocol and registered fields */ static int proto_cigi = -1; -static const value_string cigi_boolean_vals[] = { - {FALSE, "False"}, - {TRUE, "True"}, - {0, NULL}, +static const true_false_string cigi_boolean_tfs = { + "True", + "False" }; -static const value_string cigi_enable_vals[] = { - {FALSE, "Disable"}, - {TRUE, "Enable"}, - {0, NULL}, -}; - -static const value_string cigi_active_vals[] = { - {FALSE, "Inactive"}, - {TRUE, "Active"}, - {0, NULL}, +static const true_false_string cigi_enable_tfs = { + "Enable", + "Disable" }; -static const value_string cigi_on_vals[] = { - {FALSE, "Off"}, - {TRUE, "On"}, - {0, NULL}, -}; - -static const value_string cigi_valid_vals[] = { - {FALSE, "Invalid"}, - {TRUE, "Valid"}, - {0, NULL}, +static const true_false_string cigi_active_tfs = { + "Active", + "Inactive" }; -static const true_false_string cigi_timestamp_valid_tfs = { - "The timestamp is VALID", - "The timestamp is NOT valid" +static const true_false_string cigi_on_tfs = { + "On", + "Off" }; -static const true_false_string cigi_sof_timestamp_valid_tfs = { - "The sof timestamp is VALID", - "The sof timestamp is NOT valid" +static const true_false_string cigi_valid_tfs = { + "Valid", + "Invalid" }; @@ -312,10 +297,9 @@ static const value_string cigi2_entity_control_entity_state_vals[] = { {0, NULL}, }; -static const value_string cigi2_entity_control_attach_state_vals[] = { - {0, "Detach"}, - {1, "Attach"}, - {0, NULL}, +static const true_false_string cigi2_entity_control_attach_state_tfs = { + "Attach", + "Detach" }; static const value_string cigi2_entity_control_effect_state_vals[] = { @@ -457,10 +441,9 @@ static int hf_cigi2_sensor_control_level = -1; static int hf_cigi2_sensor_control_ac_coupling = -1; static int hf_cigi2_sensor_control_noise = -1; -static const value_string cigi2_sensor_control_polarity_vals[] = { - {0, "White"}, - {1, "Black"}, - {0, NULL}, +static const true_false_string cigi2_sensor_control_polarity_tfs = { + "Black", + "White" }; static const value_string cigi2_sensor_control_track_mode_vals[] = { @@ -498,10 +481,9 @@ static int hf_cigi2_special_effect_definition_separation = -1; static int hf_cigi2_special_effect_definition_burst_interval = -1; static int hf_cigi2_special_effect_definition_duration = -1; -static const value_string cigi2_special_effect_definition_seq_direction_vals[] = { - {0, "Forward"}, - {1, "Backward"}, - {0, NULL}, +static const true_false_string cigi2_special_effect_definition_seq_direction_tfs = { + "Backward", + "Forward" }; /* CIGI2 View Definition */ @@ -622,7 +604,7 @@ static int hf_cigi2_start_of_frame_time_tag = -1; static const value_string cigi2_start_of_frame_ig_mode_vals[] = { {0, "Standby/Reset"}, {1, "Operate"}, - {2, "Debug"}, + {2, "Debug"}, {3, "Off-Line Maintenance"}, {0, NULL}, }; @@ -647,10 +629,9 @@ static int hf_cigi2_line_of_sight_response_alt = -1; static int hf_cigi2_line_of_sight_response_lat = -1; static int hf_cigi2_line_of_sight_response_lon = -1; -static const value_string cigi2_line_of_sight_occult_response_vals[] = { - {0, "Occulted"}, - {1, "Visible"}, - {0, NULL}, +static const true_false_string cigi2_line_of_sight_occult_response_tfs = { + "Visible", + "Occulted" }; /* CIGI2 Collision Detection Segment Response */ @@ -665,10 +646,9 @@ static int hf_cigi2_collision_detection_segment_response_collision_x = -1; static int hf_cigi2_collision_detection_segment_response_collision_y = -1; static int hf_cigi2_collision_detection_segment_response_collision_z = -1; -static const value_string cigi2_collision_detection_segment_response_contact_vals[] = { - {0, "Contact with a non-entity surface"}, - {1, "Contact with a defined entity"}, - {0, NULL}, +static const true_false_string cigi2_collision_detection_segment_response_contact_tfs = { + "Contact with a defined entity", + "Contact with a non-entity surface" }; /* CIGI2 Sensor Response */ @@ -706,10 +686,9 @@ static int hf_cigi2_collision_detection_volume_response_volume_id = -1; static int hf_cigi2_collision_detection_volume_response_contact = -1; static int hf_cigi2_collision_detection_volume_response_contact_entity = -1; -static const value_string cigi2_collision_detection_volume_response_contact_vals[] = { - {0, "Contact with a non-entity surface"}, - {1, "Contact with a defined entity"}, - {0, NULL}, +static const true_false_string cigi2_collision_detection_volume_response_contact_tfs = { + "Contact with a defined entity", + "Contact with a non-entity surface" }; /* CIGI2 Image Generator Message */ @@ -931,22 +910,19 @@ static const value_string cigi3_entity_control_entity_state_vals[] = { {0, NULL}, }; -static const value_string cigi3_entity_control_attach_state_vals[] = { - {0, "Detach"}, - {1, "Attach"}, - {0, NULL}, +static const true_false_string cigi3_entity_control_attach_state_tfs = { + "Attach", + "Detach" }; -static const value_string cigi3_entity_control_collision_detection_request_vals[] = { - {0, "No Request"}, - {1, "Request"}, - {0, NULL}, +static const true_false_string cigi3_entity_control_collision_detection_request_tfs = { + "Request", + "No Request" }; -static const value_string cigi3_entity_control_inherit_alpha_vals[] = { - {0, "Not Inherited"}, - {1, "Inherited"}, - {0, NULL}, +static const true_false_string cigi3_entity_control_inherit_alpha_tfs = { + "Inherited", + "Not Inherited" }; static const value_string cigi3_entity_control_ground_ocean_clamp_vals[] = { @@ -956,16 +932,14 @@ static const value_string cigi3_entity_control_ground_ocean_clamp_vals[] = { {0, NULL}, }; -static const value_string cigi3_entity_control_animation_direction_vals[] = { - {0, "Forward"}, - {1, "Backward"}, - {0, NULL}, +static const true_false_string cigi3_entity_control_animation_direction_tfs = { + "Backward", + "Forward" }; -static const value_string cigi3_entity_control_animation_loop_mode_vals[] = { - {0, "One-Shot"}, - {1, "Continuous"}, - {0, NULL}, +static const true_false_string cigi3_entity_control_animation_loop_mode_tfs = { + "Continuous", + "One-Shot" }; static const value_string cigi3_entity_control_animation_state_vals[] = { @@ -1149,10 +1123,9 @@ static const value_string cigi3_environmental_region_control_region_state_vals[] {0, NULL}, }; -static const value_string cigi3_environmental_region_control_merge_properties_vals[] = { - {0, "Use Last"}, - {1, "Merge"}, - {0, NULL}, +static const true_false_string cigi3_environmental_region_control_merge_properties_tfs = { + "Merge", + "Use Last" }; /* CIGI3 Weather Control */ @@ -1334,22 +1307,19 @@ static const value_string cigi3_sensor_control_track_mode_vals[] = { {0, NULL}, }; -static const value_string cigi3_sensor_control_polarity_vals[] = { - {0, "White hot"}, - {1, "Black hot"}, - {0, NULL}, +static const true_false_string cigi3_sensor_control_polarity_tfs = { + "Black hot", + "White hot" }; -static const value_string cigi3_sensor_control_track_white_black_vals[] = { - {0, "White"}, - {1, "Black"}, - {0, NULL}, +static const true_false_string cigi3_sensor_control_track_white_black_tfs = { + "Black", + "White" }; -static const value_string cigi3_sensor_control_response_type_vals[] = { - {0, "Normal"}, - {1, "Extended"}, - {0, NULL}, +static const true_false_string cigi3_sensor_control_response_type_tfs = { + "Extended", + "Normal" }; /* CIGI3 Motion Tracker Control */ @@ -1367,10 +1337,9 @@ static int hf_cigi3_motion_tracker_control_pitch_enable = -1; static int hf_cigi3_motion_tracker_control_yaw_enable = -1; static int hf_cigi3_motion_tracker_control_view_group_select = -1; -static const value_string cigi3_motion_tracker_control_view_group_select_vals[] = { - {0, "View"}, - {1, "View Group"}, - {0, NULL}, +static const true_false_string cigi3_motion_tracker_control_view_group_select_tfs = { + "View Group", + "View" }; /* CIGI3 Earth Reference Model Definition */ @@ -1433,16 +1402,14 @@ static const value_string cigi3_view_definition_pixel_replication_vals[] = { {0, NULL}, }; -static const value_string cigi3_view_definition_projection_type_vals[] = { - {0, "Perspective"}, - {1, "Orthographic Parallel"}, - {0, NULL}, +static const true_false_string cigi3_view_definition_projection_type_tfs = { + "Orthographic Parallel", + "Perspective" }; -static const value_string cigi3_view_definition_reorder_vals[] = { - {0, "No Reorder"}, - {1, "Bring to Top"}, - {0, NULL}, +static const true_false_string cigi3_view_definition_reorder_tfs = { + "Bring to Top", + "No Reorder" }; /* CIGI3 Collision Detection Segment Definition */ @@ -1476,10 +1443,9 @@ static int hf_cigi3_collision_detection_volume_definition_roll = -1; static int hf_cigi3_collision_detection_volume_definition_pitch = -1; static int hf_cigi3_collision_detection_volume_definition_yaw = -1; -static const value_string cigi3_collision_detection_volume_definition_volume_type_vals[] = { - {0, "Sphere"}, - {1, "Cuboid"}, - {0, NULL}, +static const true_false_string cigi3_collision_detection_volume_definition_volume_type_tfs = { + "Cuboid", + "Sphere" }; /* CIGI3 HAT/HOT Request */ @@ -1500,10 +1466,9 @@ static const value_string cigi3_hat_hot_request_type_vals[] = { {0, NULL}, }; -static const value_string cigi3_hat_hot_request_coordinate_system_vals[] = { - {0, "Geodetic"}, - {1, "Entity"}, - {0, NULL}, +static const true_false_string cigi3_hat_hot_request_coordinate_system_tfs = { + "Entity", + "Geodetic" }; /* CIGI3 Line of Sight Segment Request */ @@ -1524,16 +1489,14 @@ static int hf_cigi3_line_of_sight_segment_request_destination_lon_yoff = -1; static int hf_cigi3_line_of_sight_segment_request_destination_alt_zoff = -1; static int hf_cigi3_line_of_sight_segment_request_material_mask = -1; -static const value_string cigi3_line_of_sight_segment_request_type_vals[] = { - {0, "Basic"}, - {1, "Extended"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_segment_request_type_tfs = { + "Extended", + "Basic" }; -static const value_string cigi3_line_of_sight_segment_request_coord_vals[] = { - {0, "Geodetic"}, - {1, "Entity"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_segment_request_coord_tfs = { + "Entity", + "Geodetic" }; /* CIGI3 Line of Sight Vector Request */ @@ -1554,16 +1517,14 @@ static int hf_cigi3_line_of_sight_vector_request_source_lon_yoff = -1; static int hf_cigi3_line_of_sight_vector_request_source_alt_zoff = -1; static int hf_cigi3_line_of_sight_vector_request_material_mask = -1; -static const value_string cigi3_line_of_sight_vector_request_type_vals[] = { - {0, "Basic"}, - {1, "Extended"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_vector_request_type_tfs = { + "Extended", + "Basic" }; -static const value_string cigi3_line_of_sight_vector_request_coord_vals[] = { - {0, "Geodetic"}, - {1, "Entity"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_vector_request_coord_tfs = { + "Entity", + "Geodetic" }; /* CIGI3 Position Request */ @@ -1575,10 +1536,9 @@ static int hf_cigi3_position_request_update_mode = -1; static int hf_cigi3_position_request_object_class = -1; static int hf_cigi3_position_request_coord_system = -1; -static const value_string cigi3_position_request_update_mode_vals[] = { - {0, "One-Shot"}, - {1, "Continuous"}, - {0, NULL}, +static const true_false_string cigi3_position_request_update_mode_tfs = { + "Continuous", + "One-Shot" }; static const value_string cigi3_position_request_object_class_vals[] = { @@ -1633,10 +1593,9 @@ static const value_string cigi3_start_of_frame_ig_mode_vals[] = { {0, NULL}, }; -static const value_string cigi3_start_of_frame_earth_reference_model_vals[] = { - {0, "WGS 84"}, - {1, "Host-Defined"}, - {0, NULL}, +static const true_false_string cigi3_start_of_frame_earth_reference_model_tfs = { + "Host-Defined", + "WGS 84" }; /* CIGI3 HAT/HOT Response */ @@ -1647,10 +1606,9 @@ static int hf_cigi3_hat_hot_response_valid = -1; static int hf_cigi3_hat_hot_response_type = -1; static int hf_cigi3_hat_hot_response_height = -1; -static const value_string cigi3_hat_hot_response_type_vals[] = { - {0, "HAT"}, - {1, "HOT"}, - {0, NULL}, +static const true_false_string cigi3_hat_hot_response_type_tfs = { + "HOT", + "HAT" }; /* CIGI3 HAT/HOT Extended Response */ @@ -1675,10 +1633,9 @@ static int hf_cigi3_line_of_sight_response_count = -1; static int hf_cigi3_line_of_sight_response_entity_id = -1; static int hf_cigi3_line_of_sight_response_range = -1; -static const value_string cigi3_line_of_sight_response_visible_vals[] = { - {0, "Occluded"}, - {1, "Visible"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_response_visible_tfs = { + "Visible", + "Occluded" }; /* CIGI3 Line of Sight Extended Response */ @@ -1704,16 +1661,14 @@ static int hf_cigi3_line_of_sight_extended_response_material_code = -1; static int hf_cigi3_line_of_sight_extended_response_normal_vector_azimuth = -1; static int hf_cigi3_line_of_sight_extended_response_normal_vector_elevation = -1; -static const value_string cigi3_line_of_sight_extended_response_visible_vals[] = { - {0, "Occluded"}, - {1, "Visible"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_extended_response_visible_tfs = { + "Visible", + "Occluded" }; -static const value_string cigi3_line_of_sight_extended_response_intersection_coord_vals[] = { - {0, "Geodetic"}, - {1, "Entity"}, - {0, NULL}, +static const true_false_string cigi3_line_of_sight_extended_response_intersection_coord_tfs = { + "Entity", + "Geodetic" }; /* CIGI3 Sensor Response */ @@ -1834,10 +1789,9 @@ static int hf_cigi3_collision_detection_segment_notification_contacted_entity_id static int hf_cigi3_collision_detection_segment_notification_material_code = -1; static int hf_cigi3_collision_detection_segment_notification_intersection_distance = -1; -static const value_string cigi3_collision_detection_segment_notification_type_vals[] = { - {0, "Non-entity"}, - {1, "Entity"}, - {0, NULL}, +static const true_false_string cigi3_collision_detection_segment_notification_type_tfs = { + "Entity", + "Non-entity" }; /* CIGI3 Collision Detection Volume Notification */ @@ -1849,10 +1803,9 @@ static int hf_cigi3_collision_detection_volume_notification_type = -1; static int hf_cigi3_collision_detection_volume_notification_contacted_entity_id = -1; static int hf_cigi3_collision_detection_volume_notification_contacted_volume_id = -1; -static const value_string cigi3_collision_detection_volume_notification_type_vals[] = { - {0, "Non-entity"}, - {1, "Entity"}, - {0, NULL}, +static const true_false_string cigi3_collision_detection_volume_notification_type_tfs = { + "Entity", + "Non-entity" }; /* CIGI3 Animation Stop Notification */ @@ -1910,7 +1863,7 @@ static gint cigi_byte_order = CIGI_BYTE_ORDER_BIG_ENDIAN; /* Code to actually dissect the CIGI packets */ -static int +static int dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { /* Set up structures needed to add the protocol subtree and manage it */ @@ -1924,62 +1877,51 @@ dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) const char* dest_str; const char* info_str; - unsigned char cigi_version, cigi_length, cigi_dbversion; - - /* - * first of all we must make sure this really looks like a CIGI packet - */ - - /* we need at least 4 bytes to verify this is CIGI increase this if there are more bytes in the header that can be used. */ - if(tvb_length(tvb)<4){ - return 0; - } + guint8 size; + guint8 version; + guint16 byte_swap; length = tvb_length(tvb); packet_id = tvb_get_guint8(tvb, 0); - cigi_length=tvb_get_guint8(tvb, 1); - /* verify the length byte is sane */ - if((cigi_length>tvb_reported_length(tvb)) - || (cigi_length!=16)){ - /* oops this is not cigi */ - return 0; - } - /* make sure packet_id is sane */ - switch(packet_id){ - case CIGI2_PACKET_ID_IG_CONTROL: - case CIGI2_PACKET_ID_START_OF_FRAME: - break; - default: - /* oops this is not cigi */ - return 0; - } + /* Make sure this looks like CIGI */ - /* check that version is either 2 or 3 else it is not cigi */ - cigi_version=tvb_get_guint8(tvb, 2); - switch(cigi_version){ - case 2: - /* do some more tests */ - break; - case 3: - /* do some more tests */ - break; - default: - /* this is not CIGI */ + /* CIGI 2 & 3 SOF and IG Control packets are 16 bytes */ + if ( length < 16 ) { return 0; } - - - /* verify the database version. database version must be 0-9 ? */ - cigi_dbversion=tvb_get_guint8(tvb, 3); - if(cigi_dbversion>9){ - /* oops this is not cigi */ + size = tvb_get_guint8(tvb, 1); + if (( size > tvb_reported_length(tvb) ) || ( size != 16 )) { return 0; } + /* CIGI 2 & 3 requires that the first packet is always the SOF or IG Control */ + switch ( packet_id ) { + case 1: + case 101: + break; + default: + return 0; + } - + /* Currently there are only 3 versions of CIGI */ + version = tvb_get_guint8(tvb, 2); + switch ( version ) { + case 1: + case 2: + break; + case 3: + /* CIGI 3 has the byte swap field which only allows two values. */ + byte_swap = tvb_get_ntohs(tvb, 6); + + if ( byte_swap != CIGI3_BYTE_SWAP_BIG_ENDIAN && byte_swap != CIGI3_BYTE_SWAP_LITTLE_ENDIAN ) { + return 0; + } + break; + default: + return 0; + } /* Make entries in Protocol column and Info column on summary display */ @@ -2009,7 +1951,8 @@ dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) dest_str = "IG"; } - info_str = g_strdup_printf("%s ⇒ %s (%i bytes)", src_str, dest_str, length); + /* XXX - Use ⇒ (U+21D2) in place of => */ + info_str = g_strdup_printf("%s => %s (%i bytes)", src_str, dest_str, length); if (check_col(pinfo->cinfo, COL_INFO)) { col_clear(pinfo->cinfo, COL_INFO); @@ -2032,7 +1975,9 @@ dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_uint_hidden(cigi_tree, hf_cigi_frame_size, tvb, 0, 0, length); /* Since the versions of CIGI are not backwards compatible, - * dissection is different for each version. */ + * dissection is different for each version. + * XXX - If another version of cigi is added to this dissector be + * sure to place the version in this statement.*/ if ( cigi_version == CIGI_VERSION_2 ) { cigi2_add_tree(tvb, cigi_tree); } else if ( cigi_version == CIGI_VERSION_3 ) { @@ -2044,9 +1989,8 @@ dissect_cigi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } } - /* if we got this far it is probably cigi and we probably ate - * the entire packet - */ + /* If we got this far it is probably CIGI and we probably ate the + * entire packet. */ return tvb_length(tvb); } @@ -4880,12 +4824,12 @@ proto_register_cigi(void) }, { &hf_cigi2_ig_control_tracking_enable, { "Tracking Device Enable", "cigi.ig_control.tracking_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Identifies the state of an external tracking device", HFILL } }, { &hf_cigi2_ig_control_boresight, { "Tracking Device Boresight", "cigi.ig_control.boresight", - FT_UINT8, BASE_DEC, VALS(cigi_boolean_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_boolean_tfs), 0x10, "Used by the host to enable boresight mode", HFILL } }, { &hf_cigi2_ig_control_frame_ctr, @@ -4917,7 +4861,7 @@ proto_register_cigi(void) }, { &hf_cigi3_ig_control_timestamp_valid, { "Timestamp Valid", "cigi.ig_control.timestamp_valid", - FT_BOOLEAN, 8, TFS(&cigi_timestamp_valid_tfs), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04, "Indicates whether the timestamp contains a valid value", HFILL } }, { &hf_cigi3_ig_control_frame_ctr, @@ -4949,12 +4893,12 @@ proto_register_cigi(void) }, { &hf_cigi2_entity_control_attach_state, { "Attach State", "cigi.entity_control.attach_state", - FT_UINT8, BASE_DEC, VALS(cigi2_entity_control_attach_state_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi2_entity_control_attach_state_tfs), 0x20, "Identifies whether the entity should be attach as a child to a parent", HFILL } }, { &hf_cigi2_entity_control_collision_detect, { "Collision Detection Request", "cigi.entity_control.collision_detect", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Identifies if collision detection is enabled for the entity", HFILL } }, { &hf_cigi2_entity_control_effect_state, @@ -5031,17 +4975,17 @@ proto_register_cigi(void) }, { &hf_cigi3_entity_control_attach_state, { "Attach State", "cigi.entity_control.attach_state", - FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_attach_state_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi3_entity_control_attach_state_tfs), 0x04, "Specifies whether the entity should be attached as a child to a parent", HFILL } }, { &hf_cigi3_entity_control_collision_detection_request, { "Collision Detection Request", "cigi.entity_control.coll_det_request", - FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_collision_detection_request_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi3_entity_control_collision_detection_request_tfs), 0x08, "Determines whether any collision detection segments and volumes associated with this entity are used as the source in collision testing", HFILL } }, { &hf_cigi3_entity_control_inherit_alpha, { "Inherit Alpha", "cigi.entity_control.inherit_alpha", - FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_inherit_alpha_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10, "Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL } }, { &hf_cigi3_entity_control_ground_ocean_clamp, @@ -5051,12 +4995,12 @@ proto_register_cigi(void) }, { &hf_cigi3_entity_control_animation_direction, { "Animation Direction", "cigi.entity_control.animation_dir", - FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_animation_direction_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_direction_tfs), 0x01, "Specifies the direction in which an animation plays", HFILL } }, { &hf_cigi3_entity_control_animation_loop_mode, { "Animation Loop Mode", "cigi.entity_control.animation_loop_mode", - FT_UINT8, BASE_DEC, VALS(cigi3_entity_control_animation_loop_mode_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi3_entity_control_animation_loop_mode_tfs), 0x02, "Specifies whether an animation should be a one-shot", HFILL } }, { &hf_cigi3_entity_control_animation_state, @@ -5286,32 +5230,32 @@ proto_register_cigi(void) }, { &hf_cigi2_articulated_parts_control_part_state, { "Articulated Part State", "cigi.art_part_control.part_state", - FT_UINT8, BASE_DEC, VALS(cigi_active_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_active_tfs), 0x80, "Indicates whether an articulated part is to be shown in the display", HFILL } }, { &hf_cigi2_articulated_parts_control_xoff_enable, { "X Offset Enable", "cigi.art_part_control.xoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40, "Identifies whether the articulated part x offset in this data packet is manipulated from the host", HFILL } }, { &hf_cigi2_articulated_parts_control_yoff_enable, { "Y Offset Enable", "cigi.art_part_control.yoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Identifies whether the articulated part y offset in this data packet is manipulated from the host", HFILL } }, { &hf_cigi2_articulated_parts_control_zoff_enable, { "Z Offset Enable", "cigi.art_part_control.zoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Identifies whether the articulated part z offset in this data packet is manipulated from the host", HFILL } }, { &hf_cigi2_articulated_parts_control_roll_enable, { "Roll Enable", "cigi.art_part_control.roll_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Identifies whether the articulated part roll enable in this data packet is manipulated from the host", HFILL } }, { &hf_cigi2_articulated_parts_control_pitch_enable, { "Pitch Enable", "cigi.art_part_control.pitch_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Identifies whether the articulated part pitch enable in this data packet is manipulated from the host", HFILL } }, { &hf_cigi2_articulated_parts_control_yaw_enable, @@ -5368,37 +5312,37 @@ proto_register_cigi(void) }, { &hf_cigi3_articulated_part_control_part_enable, { "Articulated Part Enable", "cigi.art_part_control.part_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Determines whether the articulated part submodel should be enabled or disabled within the scene graph", HFILL } }, { &hf_cigi3_articulated_part_control_xoff_enable, { "X Offset Enable", "cigi.art_part_control.xoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Determines whether the X Offset parameter of the current packet should be applied to the articulated part", HFILL } }, { &hf_cigi3_articulated_part_control_yoff_enable, { "Y Offset Enable", "cigi.art_part_control.yoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Determines whether the Y Offset parameter of the current packet should be applied to the articulated part", HFILL } }, { &hf_cigi3_articulated_part_control_zoff_enable, { "Z Offset Enable", "cigi.art_part_control.zoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Determines whether the Z Offset parameter of the current packet should be applied to the articulated part", HFILL } }, { &hf_cigi3_articulated_part_control_roll_enable, { "Roll Enable", "cigi.art_part_control.roll_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Determines whether the Roll parameter of the current packet should be applied to the articulated part", HFILL } }, { &hf_cigi3_articulated_part_control_pitch_enable, { "Pitch Enable", "cigi.art_part_control.pitch_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Determines whether the Pitch parameter of the current packet should be applied to the articulated part", HFILL } }, { &hf_cigi3_articulated_part_control_yaw_enable, { "Yaw Enable", "cigi.art_part_control.yaw_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40, "Determines whether the Yaw parameter of the current packet should be applied to the articulated part", HFILL } }, { &hf_cigi3_articulated_part_control_xoff, @@ -5465,12 +5409,12 @@ proto_register_cigi(void) }, { &hf_cigi3_short_articulated_part_control_part_enable_1, { "Articulated Part Enable 1", "cigi.short_art_part_control.part_enable_1", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40, "Determines whether the articulated part submodel specified by Articulated Part ID 1 should be enabled or disabled within the scene graph", HFILL } }, { &hf_cigi3_short_articulated_part_control_part_enable_2, { "Articulated Part Enable 2", "cigi.short_art_part_control.part_enable_2", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Determines whether the articulated part submodel specified by Articulated Part ID 2 should be enabled or disabled within the scene graph", HFILL } }, { &hf_cigi3_short_articulated_part_control_dof_1, @@ -5549,7 +5493,7 @@ proto_register_cigi(void) }, { &hf_cigi3_rate_control_apply_to_part, { "Apply to Articulated Part", "cigi.rate_control.apply_to_part", - FT_UINT8, BASE_DEC, VALS(cigi_boolean_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_boolean_tfs), 0x01, "Determines whether the rate is applied to the articulated part specified by the Articulated Part ID parameter", HFILL } }, { &hf_cigi3_rate_control_x_rate, @@ -5601,27 +5545,27 @@ proto_register_cigi(void) }, { &hf_cigi3_celestial_sphere_control_ephemeris_enable, { "Ephemeris Model Enable", "cigi.celestial_sphere_control.ephemeris_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Controls whether the time of day is static or continuous", HFILL } }, { &hf_cigi3_celestial_sphere_control_sun_enable, { "Sun Enable", "cigi.celestial_sphere_control.sun_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Specifies whether the sun is enabled in the sky model", HFILL } }, { &hf_cigi3_celestial_sphere_control_moon_enable, { "Moon Enable", "cigi.celestial_sphere_control.moon_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Specifies whether the moon is enabled in the sky model", HFILL } }, { &hf_cigi3_celestial_sphere_control_star_enable, { "Star Field Enable", "cigi.celestial_sphere_control.star_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Specifies whether the start field is enabled in the sky model", HFILL } }, { &hf_cigi3_celestial_sphere_control_date_time_valid, { "Date/Time Valid", "cigi.celestial_sphere_control.date_time_valid", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Specifies whether the Hour, Minute, and Date parameters are valid", HFILL } }, { &hf_cigi3_celestial_sphere_control_date, @@ -5643,7 +5587,7 @@ proto_register_cigi(void) }, { &hf_cigi3_atmosphere_control_atmospheric_model_enable, { "Atmospheric Model Enable", "cigi.atmosphere_control.atmospheric_model_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the IG should use an atmospheric model to determine spectral radiances for sensor applications", HFILL } }, { &hf_cigi3_atmosphere_control_humidity, @@ -5700,7 +5644,7 @@ proto_register_cigi(void) }, { &hf_cigi2_environment_control_ephemeris_enable, { "Ephemeris Enable", "cigi.env_control.ephemeris_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Identifies whether a continuous time of day or static time of day is used", HFILL } }, { &hf_cigi2_environment_control_humidity, @@ -5710,7 +5654,7 @@ proto_register_cigi(void) }, { &hf_cigi2_environment_control_modtran_enable, { "MODTRAN", "cigi.env_control.modtran_enable", - FT_UINT8, BASE_DEC, VALS(cigi_on_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_on_tfs), 0x80, "Identifies whether atmospherics will be included in the calculations", HFILL } }, { &hf_cigi2_environment_control_date, @@ -5767,22 +5711,22 @@ proto_register_cigi(void) }, { &hf_cigi3_environmental_region_control_merge_weather, { "Merge Weather Properties", "cigi.env_region_control.merge_weather", - FT_UINT8, BASE_DEC, VALS(cigi3_environmental_region_control_merge_properties_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x04, "Specifies whether atmospheric conditions within this region should be merged with those of other regions within areas of overlap", HFILL } }, { &hf_cigi3_environmental_region_control_merge_aerosol, { "Merge Aerosol Concentrations", "cigi.env_region_control.merge_aerosol", - FT_UINT8, BASE_DEC, VALS(cigi3_environmental_region_control_merge_properties_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x08, "Specifies whether the concentrations of aerosols found within this region should be merged with those of other regions within areas of overlap", HFILL } }, { &hf_cigi3_environmental_region_control_merge_maritime, { "Merge Maritime Surface Conditions", "cigi.env_region_control.merge_maritime", - FT_UINT8, BASE_DEC, VALS(cigi3_environmental_region_control_merge_properties_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x10, "Specifies whether the maritime surface conditions found within this region should be merged with those of other regions within areas of overlap", HFILL } }, { &hf_cigi3_environmental_region_control_merge_terrestrial, { "Merge Terrestrial Surface Conditions", "cigi.env_region_control.merge_terrestrial", - FT_UINT8, BASE_DEC, VALS(cigi3_environmental_region_control_merge_properties_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi3_environmental_region_control_merge_properties_tfs), 0x20, "Specifies whether the terrestrial surface conditions found within this region should be merged with those of other regions within areas of overlap", HFILL } }, { &hf_cigi3_environmental_region_control_lat, @@ -5834,17 +5778,17 @@ proto_register_cigi(void) }, { &hf_cigi2_weather_control_weather_enable, { "Weather Enable", "cigi.weather_control.weather_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Indicates whether the phenomena specified by this data packet is visible", HFILL } }, { &hf_cigi2_weather_control_scud_enable, { "Scud Enable", "cigi.weather_control.scud_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40, "Indicates whether there will be scud effects applied to the phenomenon specified by this data packet", HFILL } }, { &hf_cigi2_weather_control_random_winds, { "Random Winds Aloft", "cigi.weather_control.random_winds", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Indicates whether a random frequency and duration should be applied to the winds aloft value", HFILL } }, { &hf_cigi2_weather_control_severity, @@ -5926,17 +5870,17 @@ proto_register_cigi(void) }, { &hf_cigi3_weather_control_weather_enable, { "Weather Enable", "cigi.weather_control.weather_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether a weather layer and its atmospheric effects are enabled", HFILL } }, { &hf_cigi3_weather_control_scud_enable, { "Scud Enable", "cigi.weather_control.scud_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Specifies whether weather layer produces scud effects within its transition bands", HFILL } }, { &hf_cigi3_weather_control_random_winds_enable, { "Random Winds Enable", "cigi.weather_control.random_winds_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Specifies whether a random frequency and duration should be applied to the local wind effects", HFILL } }, { &hf_cigi3_weather_control_random_lightning_enable, @@ -6033,12 +5977,12 @@ proto_register_cigi(void) }, { &hf_cigi3_maritime_surface_conditions_control_surface_conditions_enable, { "Surface Conditions Enable", "cigi.maritime_surface_conditions_control.surface_conditions_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Determines the state of the specified surface conditions", HFILL } }, { &hf_cigi3_maritime_surface_conditions_control_whitecap_enable, { "Whitecap Enable", "cigi.maritime_surface_conditions_control.whitecap_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Determines whether whitecaps are enabled", HFILL } }, { &hf_cigi3_maritime_surface_conditions_control_scope, @@ -6080,7 +6024,7 @@ proto_register_cigi(void) }, { &hf_cigi3_wave_control_wave_enable, { "Wave Enable", "cigi.wave_control.wave_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Determines whether the wave is enabled or disabled", HFILL } }, { &hf_cigi3_wave_control_scope, @@ -6142,7 +6086,7 @@ proto_register_cigi(void) }, { &hf_cigi3_terrestrial_surface_conditions_control_surface_condition_enable, { "Surface Condition Enable", "cigi.terrestrial_surface_conditions_control.surface_condition_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the surface condition attribute identified by the Surface Condition ID parameter should be enabled", HFILL } }, { &hf_cigi3_terrestrial_surface_conditions_control_scope, @@ -6184,7 +6128,7 @@ proto_register_cigi(void) }, { &hf_cigi2_view_control_xoff_enable, { "X Offset Enable", "cigi.view_control.xoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Identifies whether the x offset parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi2_view_control_yoff_enable, @@ -6261,32 +6205,32 @@ proto_register_cigi(void) }, { &hf_cigi3_view_control_xoff_enable, { "X Offset Enable", "cigi.view_control.xoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Determines whether the X Offset parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi3_view_control_yoff_enable, { "Y Offset Enable", "cigi.view_control.yoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Determines whether the Y Offset parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi3_view_control_zoff_enable, { "Z Offset Enable", "cigi.view_control.zoff_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Determines whether the Z Offset parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi3_view_control_roll_enable, { "Roll Enable", "cigi.view_control.roll_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Determines whether the Roll parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi3_view_control_pitch_enable, { "Pitch Enable", "cigi.view_control.pitch_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Determines whether the Pitch parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi3_view_control_yaw_enable, { "Yaw Enable", "cigi.view_control.yaw_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Determines whether the Yaw parameter should be applied to the specified view or view group", HFILL } }, { &hf_cigi3_view_control_entity_id, @@ -6338,17 +6282,17 @@ proto_register_cigi(void) }, { &hf_cigi2_sensor_control_sensor_enable, { "Sensor On/Off", "cigi.sensor_control.sensor_enable", - FT_UINT8, BASE_DEC, VALS(cigi_on_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_on_tfs), 0x04, "Indicates whether the sensor is turned on or off", HFILL } }, { &hf_cigi2_sensor_control_polarity, { "Polarity", "cigi.sensor_control.polarity", - FT_UINT8, BASE_DEC, VALS(cigi2_sensor_control_polarity_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x02, "Indicates whether this sensor is showing white hot or black hot", HFILL } }, { &hf_cigi2_sensor_control_line_dropout, { "Line-by-Line Dropout", "cigi.sensor_control.line_dropout", - FT_UINT8, BASE_DEC, VALS(cigi_on_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_on_tfs), 0x01, "Indicates whether the line-by-line dropout feature is enabled", HFILL } }, { &hf_cigi2_sensor_control_sensor_id, @@ -6363,12 +6307,12 @@ proto_register_cigi(void) }, { &hf_cigi2_sensor_control_auto_gain, { "Automatic Gain", "cigi.sensor_control.auto_gain", - FT_UINT8, BASE_DEC, VALS(cigi_on_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_on_tfs), 0x08, "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 } }, { &hf_cigi2_sensor_control_track_polarity, { "Track White/Black", "cigi.sensor_control.track_polarity", - FT_UINT8, BASE_DEC, VALS(cigi2_sensor_control_polarity_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x04, "Identifies whether the weapons sensor will track wither white or black", HFILL } }, { &hf_cigi2_sensor_control_gain, @@ -6415,32 +6359,32 @@ proto_register_cigi(void) }, { &hf_cigi3_sensor_control_sensor_on_off, { "Sensor On/Off", "cigi.sensor_control.sensor_on_off", - FT_UINT8, BASE_DEC, VALS(cigi_on_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_on_tfs), 0x01, "Specifies whether the sensor is turned on or off", HFILL } }, { &hf_cigi3_sensor_control_polarity, { "Polarity", "cigi.sensor_control.polarity", - FT_UINT8, BASE_DEC, VALS(cigi3_sensor_control_polarity_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_polarity_tfs), 0x02, "Specifies whether the sensor shows white hot or black hot", HFILL } }, { &hf_cigi3_sensor_control_line_dropout_enable, { "Line-by-Line Dropout Enable", "cigi.sensor_control.line_dropout_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Specifies whether line-by-line dropout is enabled", HFILL } }, { &hf_cigi3_sensor_control_auto_gain, { "Automatic Gain", "cigi.sensor_control.auto_gain", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Specifies whether the sensor automatically adjusts the gain value to optimize the brightness and contrast of the sensor display", HFILL } }, { &hf_cigi3_sensor_control_track_white_black, { "Track White/Black", "cigi.sensor_control.track_white_black", - FT_UINT8, BASE_DEC, VALS(cigi3_sensor_control_track_white_black_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_track_white_black_tfs), 0x10, "Specifies whether the sensor tracks white or black", HFILL } }, { &hf_cigi3_sensor_control_response_type, { "Response Type", "cigi.sensor_control.response_type", - FT_UINT8, BASE_DEC, VALS(cigi3_sensor_control_response_type_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_response_type_tfs), 0x01, "Specifies whether the IG should return a Sensor Response packet or a Sensor Extended Response packet", HFILL } }, { &hf_cigi3_sensor_control_gain, @@ -6482,47 +6426,47 @@ proto_register_cigi(void) }, { &hf_cigi3_motion_tracker_control_tracker_enable, { "Tracker Enable", "cigi.motion_tracker_control.tracker_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the tracking device is enabled", HFILL } }, { &hf_cigi3_motion_tracker_control_boresight_enable, { "Boresight Enable", "cigi.motion_tracker_control.boresight_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Sets the boresight state of the external tracking device", HFILL } }, { &hf_cigi3_motion_tracker_control_x_enable, { "X Enable", "cigi.motion_tracker_control.x_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Used to enable or disable the X-axis position of the motion tracker", HFILL } }, { &hf_cigi3_motion_tracker_control_y_enable, { "Y Enable", "cigi.motion_tracker_control.y_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Used to enable or disable the Y-axis position of the motion tracker", HFILL } }, { &hf_cigi3_motion_tracker_control_z_enable, { "Z Enable", "cigi.motion_tracker_control.z_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Used to enable or disable the Z-axis position of the motion tracker", HFILL } }, { &hf_cigi3_motion_tracker_control_roll_enable, { "Roll Enable", "cigi.motion_tracker_control.roll_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Used to enable or disable the roll of the motion tracker", HFILL } }, { &hf_cigi3_motion_tracker_control_pitch_enable, { "Pitch Enable", "cigi.motion_tracker_control.pitch_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40, "Used to enable or disable the pitch of the motion tracker", HFILL } }, { &hf_cigi3_motion_tracker_control_yaw_enable, { "Yaw Enable", "cigi.motion_tracker_control.yaw_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Used to enable or disable the yaw of the motion tracker", HFILL } }, { &hf_cigi3_motion_tracker_control_view_group_select, { "View/View Group Select", "cigi.motion_tracker_control.view_group_select", - FT_UINT8, BASE_DEC, VALS(cigi3_motion_tracker_control_view_group_select_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_motion_tracker_control_view_group_select_tfs), 0x01, "Specifies whether the tracking device is attached to a single view or a view group", HFILL } }, @@ -6534,7 +6478,7 @@ proto_register_cigi(void) }, { &hf_cigi3_earth_reference_model_definition_erm_enable, { "Custom ERM Enable", "cigi.earth_ref_model_def.erm_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the IG should use the Earth Reference Model defined by this packet", HFILL } }, { &hf_cigi3_earth_reference_model_definition_equatorial_radius, @@ -6625,12 +6569,12 @@ proto_register_cigi(void) }, { &hf_cigi2_special_effect_definition_seq_direction, { "Sequence Direction", "cigi.special_effect_def.seq_direction", - FT_UINT8, BASE_DEC, VALS(cigi2_special_effect_definition_seq_direction_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi2_special_effect_definition_seq_direction_tfs), 0x80, "Indicates whether the effect animation sequence should be sequence from beginning to end or vice versa", HFILL } }, { &hf_cigi2_special_effect_definition_color_enable, { "Color Enable", "cigi.special_effect_def.color_enable", - FT_UINT8, BASE_DEC, VALS(cigi_on_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_on_tfs), 0x40, "Indicates whether the red, green, and blue color values will be applied to the special effect", HFILL } }, { &hf_cigi2_special_effect_definition_red, @@ -6722,37 +6666,37 @@ proto_register_cigi(void) }, { &hf_cigi2_view_definition_tracker_assign, { "Tracker Assign", "cigi.view_def.tracker_assign", - FT_UINT8, BASE_DEC, VALS(cigi_boolean_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_boolean_tfs), 0x80, "Specifies whether the view should be controlled by an external tracking device", HFILL } }, { &hf_cigi2_view_definition_near_enable, { "Field of View Near Enable", "cigi.view_def.near_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x40, "Identifies whether the field of view near value is manipulated from the Host", HFILL } }, { &hf_cigi2_view_definition_far_enable, { "Field of View Far Enable", "cigi.view_def.far_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "Identifies whether the field of view far value is manipulated from the Host", HFILL } }, { &hf_cigi2_view_definition_left_enable, { "Field of View Left Enable", "cigi.view_def.left_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "Identifies whether the field of view left value is manipulated from the Host", HFILL } }, { &hf_cigi2_view_definition_right_enable, { "Field of View Right Enable", "cigi.view_def.right_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "Identifies whether the field of view right value is manipulated from the Host", HFILL } }, { &hf_cigi2_view_definition_top_enable, { "Field of View Top Enable", "cigi.view_def.top_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "Identifies whether the field of view top value is manipulated from the Host", HFILL } }, { &hf_cigi2_view_definition_bottom_enable, { "Field of View Bottom Enable", "cigi.view_def.bottom_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Identifies whether the field of view bottom value is manipulated from the Host", HFILL } }, { &hf_cigi2_view_definition_fov_near, @@ -6804,32 +6748,32 @@ proto_register_cigi(void) }, { &hf_cigi3_view_definition_near_enable, { "Near Enable", "cigi.view_def.near_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the near clipping plane will be set to the value of the Near parameter within this packet", HFILL } }, { &hf_cigi3_view_definition_far_enable, { "Far Enable", "cigi.view_def.far_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x02, "Specifies whether the far clipping plane will be set to the value of the Far parameter within this packet", HFILL } }, { &hf_cigi3_view_definition_left_enable, { "Left Enable", "cigi.view_def.left_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x04, "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 } }, { &hf_cigi3_view_definition_right_enable, { "Right Enable", "cigi.view_def.right_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x08, "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 } }, { &hf_cigi3_view_definition_top_enable, { "Top Enable", "cigi.view_def.top_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x10, "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 } }, { &hf_cigi3_view_definition_bottom_enable, { "Bottom Enable", "cigi.view_def.bottom_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x20, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x20, "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 } }, { &hf_cigi3_view_definition_mirror_mode, @@ -6844,12 +6788,12 @@ proto_register_cigi(void) }, { &hf_cigi3_view_definition_projection_type, { "Projection Type", "cigi.view_def.projection_type", - FT_UINT8, BASE_DEC, VALS(cigi3_view_definition_projection_type_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi3_view_definition_projection_type_tfs), 0x08, "Specifies whether the view projection should be perspective or orthographic parallel", HFILL } }, { &hf_cigi3_view_definition_reorder, { "Reorder", "cigi.view_def.reorder", - FT_UINT8, BASE_DEC, VALS(cigi3_view_definition_reorder_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_view_definition_reorder_tfs), 0x01, "Specifies whether the view should be moved to the top of any overlapping views", HFILL } }, { &hf_cigi3_view_definition_view_type, @@ -6901,7 +6845,7 @@ proto_register_cigi(void) }, { &hf_cigi2_collision_detection_segment_definition_segment_enable, { "Segment Enable", "cigi.coll_det_seg_def.segment_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Indicates whether the defined segment is enabled for collision testing", HFILL } }, { &hf_cigi2_collision_detection_segment_definition_segment_id, @@ -6963,7 +6907,7 @@ proto_register_cigi(void) }, { &hf_cigi3_collision_detection_segment_definition_segment_enable, { "Segment Enable", "cigi.coll_det_seg_def.segment_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the segment is enabled or disabled", HFILL } }, { &hf_cigi3_collision_detection_segment_definition_x1, @@ -7015,7 +6959,7 @@ proto_register_cigi(void) }, { &hf_cigi2_collision_detection_volume_definition_volume_enable, { "Volume Enable", "cigi.coll_det_vol_def.volume_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x80, "Indicates whether the defined volume is enabled for collision testing", HFILL } }, { &hf_cigi2_collision_detection_volume_definition_volume_id, @@ -7072,12 +7016,12 @@ proto_register_cigi(void) }, { &hf_cigi3_collision_detection_volume_definition_volume_enable, { "Volume Enable", "cigi.coll_det_vol_def.volume_enable", - FT_UINT8, BASE_DEC, VALS(cigi_enable_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_enable_tfs), 0x01, "Specifies whether the volume is enabled or disabled", HFILL } }, { &hf_cigi3_collision_detection_volume_definition_volume_type, { "Volume Type", "cigi.coll_det_vol_def.volume_type", - FT_UINT8, BASE_DEC, VALS(cigi3_collision_detection_volume_definition_volume_type_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_volume_definition_volume_type_tfs), 0x02, "Specified whether the volume is spherical or cuboid", HFILL } }, { &hf_cigi3_collision_detection_volume_definition_x, @@ -7282,7 +7226,7 @@ proto_register_cigi(void) }, { &hf_cigi3_hat_hot_request_coordinate_system, { "Coordinate System", "cigi.hat_hot_request.coordinate_system", - FT_UINT8, BASE_DEC, VALS(cigi3_hat_hot_request_coordinate_system_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi3_hat_hot_request_coordinate_system_tfs), 0x04, "Specifies the coordinate system within which the test point is defined", HFILL } }, { &hf_cigi3_hat_hot_request_entity_id, @@ -7319,22 +7263,22 @@ proto_register_cigi(void) }, { &hf_cigi3_line_of_sight_segment_request_type, { "Request Type", "cigi.los_segment_request.type", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_segment_request_type_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_type_tfs), 0x01, "Determines what type of response the IG should return for this request", HFILL } }, { &hf_cigi3_line_of_sight_segment_request_source_coord, { "Source Point Coordinate System", "cigi.los_segment_request.source_coord", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_segment_request_coord_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x02, "Indicates the coordinate system relative to which the test segment source endpoint is specified", HFILL } }, { &hf_cigi3_line_of_sight_segment_request_destination_coord, { "Destination Point Coordinate System", "cigi.los_segment_request.destination_coord", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_segment_request_coord_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x04, "Indicates the coordinate system relative to which the test segment destination endpoint is specified", HFILL } }, { &hf_cigi3_line_of_sight_segment_request_response_coord, { "Response Coordinate System", "cigi.los_segment_request.response_coord", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_segment_request_coord_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_segment_request_coord_tfs), 0x08, "Specifies the coordinate system to be used in the response", HFILL } }, { &hf_cigi3_line_of_sight_segment_request_alpha_threshold, @@ -7396,17 +7340,17 @@ proto_register_cigi(void) }, { &hf_cigi3_line_of_sight_vector_request_type, { "Request Type", "cigi.los_vector_request.type", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_vector_request_type_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_type_tfs), 0x01, "Determines what type of response the IG should return for this request", HFILL } }, { &hf_cigi3_line_of_sight_vector_request_source_coord, { "Source Point Coordinate System", "cigi.los_vector_request.source_coord", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_vector_request_coord_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_coord_tfs), 0x02, "Indicates the coordinate system relative to which the test vector source point is specified", HFILL } }, { &hf_cigi3_line_of_sight_vector_request_response_coord, { "Response Coordinate System", "cigi.los_vector_request.response_coord", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_vector_request_coord_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_vector_request_coord_tfs), 0x04, "Specifies the coordinate system to be used in the response", HFILL } }, { &hf_cigi3_line_of_sight_vector_request_alpha, @@ -7478,7 +7422,7 @@ proto_register_cigi(void) }, { &hf_cigi3_position_request_update_mode, { "Update Mode", "cigi.pos_request.update_mode", - FT_UINT8, BASE_DEC, VALS(cigi3_position_request_update_mode_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_position_request_update_mode_tfs), 0x01, "Specifies whether the IG should report the position of the requested object each frame", HFILL } }, { &hf_cigi3_position_request_object_class, @@ -7542,7 +7486,7 @@ proto_register_cigi(void) }, { &hf_cigi2_start_of_frame_ig_mode, { "IG Mode", "cigi.sof.ig_mode", - FT_UINT8, BASE_DEC, VALS(cigi2_start_of_frame_ig_mode_vals), 0x80, + FT_UINT8, BASE_DEC, VALS(cigi2_start_of_frame_ig_mode_vals), 0xc0, "Identifies to the host the current operating mode of the IG", HFILL } }, { &hf_cigi2_start_of_frame_frame_ctr, @@ -7579,12 +7523,12 @@ proto_register_cigi(void) }, { &hf_cigi3_start_of_frame_timestamp_valid, { "Timestamp Valid", "cigi.sof.timestamp_valid", - FT_BOOLEAN, 8, TFS(&cigi_sof_timestamp_valid_tfs), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04, "Indicates whether the Timestamp parameter contains a valid value", HFILL } }, { &hf_cigi3_start_of_frame_earth_reference_model, { "Earth Reference Model", "cigi.sof.earth_reference_model", - FT_UINT8, BASE_DEC, VALS(cigi3_start_of_frame_earth_reference_model_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi3_start_of_frame_earth_reference_model_tfs), 0x08, "Indicates whether the IG is using a custom Earth Reference Model or the default WGS 84 reference ellipsoid for coordinate conversion calculations", HFILL } }, { &hf_cigi3_start_of_frame_frame_ctr, @@ -7611,7 +7555,7 @@ proto_register_cigi(void) }, { &hf_cigi2_height_above_terrain_response_valid, { "Valid", "cigi.hat_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80, "Indicates whether the response is valid or invalid", HFILL } }, { &hf_cigi2_height_above_terrain_response_material_type, @@ -7638,12 +7582,12 @@ proto_register_cigi(void) }, { &hf_cigi3_hat_hot_response_valid, { "Valid", "cigi.hat_hot_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01, "Indicates whether the Height parameter contains a valid number", HFILL } }, { &hf_cigi3_hat_hot_response_type, { "Response Type", "cigi.hat_hot_response.type", - FT_UINT8, BASE_DEC, VALS(cigi3_hat_hot_response_type_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi3_hat_hot_response_type_tfs), 0x02, "Indicates whether the Height parameter represent Height Above Terrain or Height Of Terrain", HFILL } }, { &hf_cigi3_hat_hot_response_height, @@ -7665,7 +7609,7 @@ proto_register_cigi(void) }, { &hf_cigi3_hat_hot_extended_response_valid, { "Valid", "cigi.hat_hot_ext_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01, "Indicates whether the remaining parameters in this packet contain valid numbers", HFILL } }, { &hf_cigi3_hat_hot_extended_response_hat, @@ -7707,12 +7651,12 @@ proto_register_cigi(void) }, { &hf_cigi2_line_of_sight_response_valid, { "Valid", "cigi.los_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80, "Indicates whether the response is valid or invalid", HFILL } }, { &hf_cigi2_line_of_sight_response_occult_response, { "Occult Response", "cigi.los_response.occult_response", - FT_UINT8, BASE_DEC, VALS(cigi2_line_of_sight_occult_response_vals), 0x40, + FT_BOOLEAN, 8, TFS(&cigi2_line_of_sight_occult_response_tfs), 0x40, "Used to respond to the LOS occult request data packet", HFILL } }, { &hf_cigi2_line_of_sight_response_material_type, @@ -7754,17 +7698,17 @@ proto_register_cigi(void) }, { &hf_cigi3_line_of_sight_response_valid, { "Valid", "cigi.los_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01, "Indicates whether the Range parameter is valid", HFILL } }, { &hf_cigi3_line_of_sight_response_entity_id_valid, { "Entity ID Valid", "cigi.los_response.entity_id_valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02, "Indicates whether the LOS test vector or segment intersects with an entity or a non-entity", HFILL } }, { &hf_cigi3_line_of_sight_response_visible, { "Visible", "cigi.los_response.visible", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_response_visible_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_response_visible_tfs), 0x04, "Indicates whether the destination point is visible from the source point", HFILL } }, { &hf_cigi3_line_of_sight_response_count, @@ -7796,27 +7740,27 @@ proto_register_cigi(void) }, { &hf_cigi3_line_of_sight_extended_response_valid, { "Valid", "cigi.los_ext_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x01, "Indicates whether this packet contains valid data", HFILL } }, { &hf_cigi3_line_of_sight_extended_response_entity_id_valid, { "Entity ID Valid", "cigi.los_ext_response.entity_id_valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x02, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x02, "Indicates whether the LOS test vector or segment intersects with an entity", HFILL } }, { &hf_cigi3_line_of_sight_extended_response_range_valid, { "Range Valid", "cigi.los_ext_response.range_valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04, "Indicates whether the Range parameter is valid", HFILL } }, { &hf_cigi3_line_of_sight_extended_response_visible, { "Visible", "cigi.los_ext_response.visible", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_extended_response_visible_vals), 0x08, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_extended_response_visible_tfs), 0x08, "Indicates whether the destination point is visible from the source point", HFILL } }, { &hf_cigi3_line_of_sight_extended_response_intersection_coord, { "Intersection Point Coordinate System", "cigi.los_ext_response.intersection_coord", - FT_UINT8, BASE_DEC, VALS(cigi3_line_of_sight_extended_response_intersection_coord_vals), 0x10, + FT_BOOLEAN, 8, TFS(&cigi3_line_of_sight_extended_response_intersection_coord_tfs), 0x10, "Indicates the coordinate system relative to which the intersection point is specified", HFILL } }, { &hf_cigi3_line_of_sight_extended_response_response_count, @@ -7903,7 +7847,7 @@ proto_register_cigi(void) }, { &hf_cigi2_collision_detection_segment_response_contact, { "Entity/Non-Entity Contact", "cigi.coll_det_seg_response.contact", - FT_UINT8, BASE_DEC, VALS(cigi2_collision_detection_segment_response_contact_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi2_collision_detection_segment_response_contact_tfs), 0x01, "Indicates whether another entity was contacted during this collision", HFILL } }, { &hf_cigi2_collision_detection_segment_response_contacted_entity, @@ -8050,7 +7994,7 @@ proto_register_cigi(void) }, { &hf_cigi3_sensor_extended_response_entity_id_valid, { "Entity ID Valid", "cigi.sensor_ext_response.entity_id_valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x04, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x04, "Indicates whether the target is an entity or a non-entity object", HFILL } }, { &hf_cigi3_sensor_extended_response_entity_id, @@ -8112,7 +8056,7 @@ proto_register_cigi(void) }, { &hf_cigi2_height_of_terrain_response_valid, { "Valid", "cigi.hot_response.valid", - FT_UINT8, BASE_DEC, VALS(cigi_valid_vals), 0x80, + FT_BOOLEAN, 8, TFS(&cigi_valid_tfs), 0x80, "Indicates whether the response is valid or invalid", HFILL } }, { &hf_cigi2_height_of_terrain_response_material_type, @@ -8144,7 +8088,7 @@ proto_register_cigi(void) }, { &hf_cigi2_collision_detection_volume_response_contact, { "Entity/Non-Entity Contact", "cigi.coll_det_vol_response.contact", - FT_UINT8, BASE_DEC, VALS(cigi2_collision_detection_volume_response_contact_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi2_collision_detection_volume_response_contact_tfs), 0x01, "Indicates whether another entity was contacted during this collision", HFILL } }, { &hf_cigi2_collision_detection_volume_response_contact_entity, @@ -8341,7 +8285,7 @@ proto_register_cigi(void) }, { &hf_cigi3_collision_detection_segment_notification_type, { "Collision Type", "cigi.coll_det_seg_notification.type", - FT_UINT8, BASE_DEC, VALS(cigi3_collision_detection_segment_notification_type_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_segment_notification_type_tfs), 0x01, "Indicates whether the collision occurred with another entity or with a non-entity object", HFILL } }, { &hf_cigi3_collision_detection_segment_notification_contacted_entity_id, @@ -8378,7 +8322,7 @@ proto_register_cigi(void) }, { &hf_cigi3_collision_detection_volume_notification_type, { "Collision Type", "cigi.coll_det_vol_notification.type", - FT_UINT8, BASE_DEC, VALS(cigi3_collision_detection_volume_notification_type_vals), 0x01, + FT_BOOLEAN, 8, TFS(&cigi3_collision_detection_volume_notification_type_tfs), 0x01, "Indicates whether the collision occurred with another entity or with a non-entity object", HFILL } }, { &hf_cigi3_collision_detection_volume_notification_contacted_entity_id, @@ -8502,7 +8446,7 @@ proto_register_cigi(void) global_cigi_udp_ports = range_empty(); cigi_udp_ports = range_empty(); - + /* Register the protocol name and description */ proto_cigi = proto_register_protocol("Common Image Generator Interface", "CIGI", "cigi"); @@ -8549,7 +8493,7 @@ proto_reg_handoff_cigi(void) cigi_handle = new_create_dissector_handle(dissect_cigi, proto_cigi); dissector_add_handle("udp.port", cigi_handle); dissector_add_handle("tcp.port", cigi_handle); - heur_dissector_add("udp", dissect_cigi, proto_cigi); + heur_dissector_add("udp", dissect_cigi, proto_cigi); inited = TRUE; } else { |