aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-05-11 21:28:15 -0400
committerEvan Huus <eapache@gmail.com>2014-05-12 01:41:23 +0000
commit9554b2fc62ebf12c9738c6e003b4e9a9b5cc0e41 (patch)
treed1a003837aaaf1e1b48c70acf4b371bdf8864983
parentd73400a607ce9ae96cada2f042bc2086eaccef98 (diff)
Condense DIS dissector to a single file.
This doesn't appears to be "autogenerated", and it certainly isn't the biggest dissector even after the merge. This avoid file pollution, makes less non-static variables/functions and makes the check* scripts job easier. Change-Id: If94857e4a3e602c3d45201b1aebbf466ba3e1dd1 Reviewed-on: https://code.wireshark.org/review/1597 Reviewed-by: Michael Mann <mmann78@netscape.net> Reviewed-by: Evan Huus <eapache@gmail.com>
-rw-r--r--epan/CMakeLists.txt3
-rw-r--r--epan/dissectors/Makefile.common6
-rw-r--r--epan/dissectors/packet-dis-enums.c2201
-rw-r--r--epan/dissectors/packet-dis-enums.h2063
-rw-r--r--epan/dissectors/packet-dis-fields.c1143
-rw-r--r--epan/dissectors/packet-dis-fields.h415
-rw-r--r--epan/dissectors/packet-dis-pdus.c1702
-rw-r--r--epan/dissectors/packet-dis-pdus.h114
-rw-r--r--epan/dissectors/packet-dis.c6080
9 files changed, 5992 insertions, 7735 deletions
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 675e6fc4e2..1c2814c7a7 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -568,9 +568,6 @@ set(DISSECTOR_SRC
dissectors/packet-diameter.c
dissectors/packet-diameter_3gpp.c
dissectors/packet-diffserv-mpls-common.c
- dissectors/packet-dis-enums.c
- dissectors/packet-dis-fields.c
- dissectors/packet-dis-pdus.c
dissectors/packet-dis.c
dissectors/packet-distcc.c
dissectors/packet-dlm3.c
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 07019f2546..013477c76a 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -488,9 +488,6 @@ DISSECTOR_SRC = \
packet-diameter.c \
packet-diameter_3gpp.c \
packet-diffserv-mpls-common.c \
- packet-dis-enums.c \
- packet-dis-fields.c \
- packet-dis-pdus.c \
packet-dis.c \
packet-distcc.c \
packet-dlm3.c \
@@ -1402,9 +1399,6 @@ DISSECTOR_INCLUDES = \
packet-diameter.h \
packet-diffserv-mpls-common.h \
packet-disp.h \
- packet-dis-enums.h \
- packet-dis-fields.h \
- packet-dis-pdus.h \
packet-dns.h \
packet-dop.h \
packet-dsp.h \
diff --git a/epan/dissectors/packet-dis-enums.c b/epan/dissectors/packet-dis-enums.c
deleted file mode 100644
index 9643d83ff3..0000000000
--- a/epan/dissectors/packet-dis-enums.c
+++ /dev/null
@@ -1,2201 +0,0 @@
-/* packet-dis-enums.c
- * String definitions for DIS enumerations.
- * Copyright 2005, Scientific Research Corporation
- * Initial implementation by Jeremy Ouellette <jouellet@scires.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include "packet-dis-enums.h"
-#include <epan/value_string.h>
-
-const value_string DIS_PDU_ProtocolVersion_Strings[] =
-{
- { DIS_VERSION_OTHER, "Other" },
- { DIS_VERSION_1_0, "DIS PDU version 1.0 (May 92)" },
- { DIS_VERSION_IEEE_1278_1993, "IEEE 1278-1993" },
- { DIS_VERSION_2_0_3RD_DRAFT, "DIS PDU version 2.0 - third draft (May 93)" },
- { DIS_VERSION_2_0_4TH_DRAFT, "DIS PDU version 2.0 - fourth draft (revised) March 16, 1994" },
- { DIS_VERSION_IEEE_1278_1_1995, "IEEE 1278.1-1995" },
- { DIS_VERSION_IEEE_1278_1A_1998, "IEEE 1278.1A-1998" },
- { DIS_VERSION_IEEE_1278_1_200X, "IEEE 1278.1-200X" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ProtocolFamily_Strings[] =
-{
- { DIS_PROTOCOLFAMILY_OTHER, "Other" },
- { DIS_PROTOCOLFAMILY_ENTITY_INFORMATION_INTERACTION, "Entity information / interaction" },
- { DIS_PROTOCOLFAMILY_WARFARE, "Warfare" },
- { DIS_PROTOCOLFAMILY_LOGISTICS, "Logistics" },
- { DIS_PROTOCOLFAMILY_RADIO_COMMUNICATIONS, "Radio communications" },
- { DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT, "Simulation management" },
- { DIS_PROTOCOLFAMILY_DISTRIBUTED_EMISSION_REGENERATION, "Distributed emission regeneration" },
- { DIS_PROTOCOLFAMILY_ENTITY_MANAGEMENT, "Entity management" },
- { DIS_PROTOCOLFAMILY_MINEFIELD, "Minefield" },
- { DIS_PROTOCOLFAMILY_SYNTHETIC_ENVIRONMENT, "Synthetic environment" },
- { DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT_WITH_RELIABILITY, "Simulation management with reliability" },
- { DIS_PROTOCOLFAMILY_LIVE_ENTITY, "Live entity" },
- { DIS_PROTOCOLFAMILY_NON_REAL_TIME, "Non-real time" },
- { DIS_PROTOCOLFAMILY_INFORMATION_OPERATIONS, "Information Operations" },
- { DIS_PROTOCOLFAMILY_EXPERIMENTAL_COMPUTER_GENERATED_FORCES, "Experimental - Computer Generated Forces" },
- { DIS_PROTOCOLFAMILY_EXPERIMENTAL_VDIS, "Experimental - V-DIS" },
- { DIS_PROTOCOLFAMILY_PERSISTENT_OBJECT, "Persistent object" },
- { DIS_PROTOCOLFAMILY_EXPERIMENTAL, "Experimental" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Type_Strings[] =
-{
- { DIS_PDUTYPE_OTHER, "Other" },
- { DIS_PDUTYPE_ENTITY_STATE, "Entity State" },
- { DIS_PDUTYPE_FIRE, "Fire" },
- { DIS_PDUTYPE_DETONATION, "Detonation" },
- { DIS_PDUTYPE_COLLISION, "Collision" },
- { DIS_PDUTYPE_SERVICE_REQUEST, "Service Request" },
- { DIS_PDUTYPE_RESUPPLY_OFFER, "Resupply Offer" },
- { DIS_PDUTYPE_RESUPPLY_RECEIVED, "Resupply Received" },
- { DIS_PDUTYPE_RESUPPLY_CANCEL, "Resupply Cancel" },
- { DIS_PDUTYPE_REPAIR_COMPLETE, "Repair Complete" },
- { DIS_PDUTYPE_REPAIR_RESPONSE, "Repair Response" },
- { DIS_PDUTYPE_CREATE_ENTITY, "Create Entity" },
- { DIS_PDUTYPE_REMOVE_ENTITY, "Remove Entity" },
- { DIS_PDUTYPE_START_RESUME, "Start / Resume" },
- { DIS_PDUTYPE_STOP_FREEZE, "Stop / Freeze" },
- { DIS_PDUTYPE_ACKNOWLEDGE, "Acknowledge" },
- { DIS_PDUTYPE_ACTION_REQUEST, "Action Request" },
- { DIS_PDUTYPE_ACTION_RESPONSE, "Action Response" },
- { DIS_PDUTYPE_DATA_QUERY, "Data Query" },
- { DIS_PDUTYPE_SET_DATA, "Set Data" },
- { DIS_PDUTYPE_DATA, "Data" },
- { DIS_PDUTYPE_EVENT_REPORT, "Event Report" },
- { DIS_PDUTYPE_COMMENT, "Comment" },
- { DIS_PDUTYPE_ELECTROMAGNETIC_EMISSION, "Electromagnetic Emission" },
- { DIS_PDUTYPE_DESIGNATOR, "Designator" },
- { DIS_PDUTYPE_TRANSMITTER, "Transmitter" },
- { DIS_PDUTYPE_SIGNAL, "Signal" },
- { DIS_PDUTYPE_RECEIVER, "Receiver" },
- { DIS_PDUTYPE_IFF_ATC_NAVAIDS, "IFF / ATC / NAVAIDS" },
- { DIS_PDUTYPE_UNDERWATER_ACOUSTIC, "Underwater Acoustic" },
- { DIS_PDUTYPE_SUPPLEMENTAL_EMISSION_ENTITY_STATE, "Supplemental Emission Entity State" },
- { DIS_PDUTYPE_INTERCOM_SIGNAL, "Intercom Signal" },
- { DIS_PDUTYPE_INTERCOM_CONTROL, "Intercom Control" },
- { DIS_PDUTYPE_AGGREGATE_STATE, "Aggregate State" },
- { DIS_PDUTYPE_IS_GROUP_OF, "IsGroupOf" },
- { DIS_PDUTYPE_TRANSFER_CONTROL, "Transfer Control" },
- { DIS_PDUTYPE_IS_PART_OF, "IsPartOf" },
- { DIS_PDUTYPE_MINEFIELD_STATE, "Minefield State" },
- { DIS_PDUTYPE_MINEFIELD_QUERY, "Minefield Query" },
- { DIS_PDUTYPE_MINEFIELD_DATA, "Minefield Data" },
- { DIS_PDUTYPE_MINEFIELD_RESPONSE_NAK, "Minefield Response NAK" },
- { DIS_PDUTYPE_ENVIRONMENTAL_PROCESS, "Environmental Process" },
- { DIS_PDUTYPE_GRIDDED_DATA, "Gridded Data" },
- { DIS_PDUTYPE_POINT_OBJECT_STATE, "Point Object State" },
- { DIS_PDUTYPE_LINEAR_OBJECT_STATE, "Linear Object State" },
- { DIS_PDUTYPE_AREAL_OBJECT_STATE, "Areal Object State" },
- { DIS_PDUTYPE_TSPI, "TSPI" },
- { DIS_PDUTYPE_APPEARANCE, "Appearance" },
- { DIS_PDUTYPE_ARTICULATED_PARTS, "Articulated Parts" },
- { DIS_PDUTYPE_LE_FIRE, "LE Fire" },
- { DIS_PDUTYPE_LE_DETONATION, "LE Detonation" },
- { DIS_PDUTYPE_CREATE_ENTITY_R, "Create Entity-R" },
- { DIS_PDUTYPE_REMOVE_ENTITY_R, "Remove Entity-R" },
- { DIS_PDUTYPE_START_RESUME_R, "Start / Resume-R" },
- { DIS_PDUTYPE_STOP_FREEZE_R, "Stop / Freeze-R" },
- { DIS_PDUTYPE_ACKNOWLEDGE_R, "Acknowledge-R" },
- { DIS_PDUTYPE_ACTION_REQUEST_R, "Action Request-R" },
- { DIS_PDUTYPE_ACTION_RESPONSE_R, "Action Response-R" },
- { DIS_PDUTYPE_DATA_QUERY_R, "Data Query-R" },
- { DIS_PDUTYPE_SET_DATA_R, "Set Data-R" },
- { DIS_PDUTYPE_DATA_R, "Data-R" },
- { DIS_PDUTYPE_EVENT_REPORT_R, "Event Report-R" },
- { DIS_PDUTYPE_COMMENT_R, "Comment-R" },
- { DIS_PDUTYPE_RECORD_R, "Record-R" },
- { DIS_PDUTYPE_SET_RECORD_R, "Set Record-R" },
- { DIS_PDUTYPE_RECORD_QUERY_R, "Record Query-R" },
- { DIS_PDUTYPE_COLLISION_ELASTIC, "Collision Elastic" },
- { DIS_PDUTYPE_ENTITY_STATE_UPDATE, "Entity State Update" },
- { DIS_PDUTYPE_DIRECTED_ENERGY_FIRE, "Directed Energy Fire" },
- { DIS_PDUTYPE_ENTITY_DAMAGE_STATUS, "Entity Damage Status" },
- { DIS_PDUTYPE_INFORMATION_OPERATIONS_ACTION, "Info Operations Action" },
- { DIS_PDUTYPE_INFORMATION_OPERATIONS_REPORT, "Info Operations Report" },
- { DIS_PDUTYPE_ATTRIBUTE, "Attribute" },
- { DIS_PDUTYPE_ANNOUNCE_OBJECT, "Announce Object" },
- { DIS_PDUTYPE_DELETE_OBJECT, "Delete Object" },
- { DIS_PDUTYPE_DESCRIBE_APPLICATION, "Describe Application" },
- { DIS_PDUTYPE_DESCRIBE_EVENT, "Describe Event" },
- { DIS_PDUTYPE_DESCRIBE_OBJECT, "Describe Object" },
- { DIS_PDUTYPE_REQUEST_EVENT, "Request Event" },
- { DIS_PDUTYPE_REQUEST_OBJECT, "Request Object" },
- { DIS_PDUTYPE_APPLICATION_CONTROL, "Application Control" },
- { DIS_PDUTYPE_STEALTH_STATE, "Stealth State" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_EntityKind_Strings[] =
-{
- { DIS_ENTITYKIND_OTHER, "Other" },
- { DIS_ENTITYKIND_PLATFORM, "Platform" },
- { DIS_ENTITYKIND_MUNITION, "Munition" },
- { DIS_ENTITYKIND_LIFE_FORM, "Life form" },
- { DIS_ENTITYKIND_ENVIRONMENTAL, "Environmental" },
- { DIS_ENTITYKIND_CULTURAL_FEATURE, "Cultural feature" },
- { DIS_ENTITYKIND_SUPPLY, "Supply" },
- { DIS_ENTITYKIND_RADIO, "Radio" },
- { DIS_ENTITYKIND_EXPENDABLE, "Expendable" },
- { DIS_ENTITYKIND_SENSOR_EMITTER, "Sensor/Emitter" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Domain_Strings[] =
-{
- { DIS_DOMAIN_OTHER, "Other" },
- { DIS_DOMAIN_LAND, "Land" },
- { DIS_DOMAIN_AIR, "Air" },
- { DIS_DOMAIN_SURFACE, "Surface" },
- { DIS_DOMAIN_SUBSURFACE, "Subsurface" },
- { DIS_DOMAIN_SPACE, "Space" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Category_LandPlatform_Strings[] =
-{
- { DIS_CATEGORY_LANDPLATFORM_OTHER, "Other" },
- { DIS_CATEGORY_LANDPLATFORM_TANK, "Tank" },
- { DIS_CATEGORY_LANDPLATFORM_ARMORED_FIGHTING_VEHICLE, "Armored fighting vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_ARMORED_UTILITY_VEHICLE, "Armored utility vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_SELF_PROPELLED_ARTILLERY, "Self-propelled artillery" },
- { DIS_CATEGORY_LANDPLATFORM_TOWED_ARTILLERY, "Towed artillery" },
- { DIS_CATEGORY_LANDPLATFORM_SMALL_WHEELED_UTILITY_VEHICLE, "Small wheeled utility vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_LARGE_WHEELED_UTILITY_VEHICLE, "Large wheeled utility vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_SMALL_TRACKED_UTILITY_VEHICLE, "Small tracked utility vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_LARGE_TRACKED_UTILITY_VEHICLE, "Large tracked utility vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_MORTAR, "Mortar" },
- { DIS_CATEGORY_LANDPLATFORM_MINE_PLOW, "Mine plow" },
- { DIS_CATEGORY_LANDPLATFORM_MINE_RAKE, "Mine rake" },
- { DIS_CATEGORY_LANDPLATFORM_MINE_ROLLER, "Mine roller" },
- { DIS_CATEGORY_LANDPLATFORM_CARGO_TRAILER, "Cargo trailer" },
- { DIS_CATEGORY_LANDPLATFORM_FUEL_TRAILER, "Fuel trailer" },
- { DIS_CATEGORY_LANDPLATFORM_GENERATOR_TRAILER, "Generator trailer" },
- { DIS_CATEGORY_LANDPLATFORM_WATER_TRAILER, "Water trailer" },
- { DIS_CATEGORY_LANDPLATFORM_ENGINEER_EQUIPMENT, "Engineer equipment" },
- { DIS_CATEGORY_LANDPLATFORM_HEAVY_EQUIPMENT_TRANSPORT_TRAILER, "Heavy equipment transport trailer" },
- { DIS_CATEGORY_LANDPLATFORM_MAINTENANCE_EQUIPMENT_TRAILER, "Maintenance equipment trailer" },
- { DIS_CATEGORY_LANDPLATFORM_LIMBER, "Limber" },
- { DIS_CATEGORY_LANDPLATFORM_CHEMICAL_DECONTAMINATION_TRAILER, "Chemical decontamination trailer" },
- { DIS_CATEGORY_LANDPLATFORM_WARNING_SYSTEM, "Warning system" },
- { DIS_CATEGORY_LANDPLATFORM_TRAIN_ENGINE, "Train engine" },
- { DIS_CATEGORY_LANDPLATFORM_TRAIN_CAR, "Train car" },
- { DIS_CATEGORY_LANDPLATFORM_TRAIN_CABOOSE, "Train caboose" },
- { DIS_CATEGORY_LANDPLATFORM_CIVILIAN_VEHICLE, "Civilian vehicle" },
- { DIS_CATEGORY_LANDPLATFORM_AIR_DEFENSE_MISSILE_DEFENSE_UNIT_EQUIPMENT, "Air defense / missile defense unit equipment" },
- { DIS_CATEGORY_LANDPLATFORM_C3I_SYSTEM, "C3I system" },
- { DIS_CATEGORY_LANDPLATFORM_OPERATIONS_FACILITY, "Operations facility" },
- { DIS_CATEGORY_LANDPLATFORM_INTELLIGENCE_FACILITY, "Intelligence facility" },
- { DIS_CATEGORY_LANDPLATFORM_SURVEILLANCE_FACILITY, "Surveillance facility" },
- { DIS_CATEGORY_LANDPLATFORM_COMMUNICATIONS_FACILITY, "Communications facility" },
- { DIS_CATEGORY_LANDPLATFORM_COMMAND_FACILITY, "Command facility" },
- { DIS_CATEGORY_LANDPLATFORM_C4I_FACILITY, "C4I facility" },
- { DIS_CATEGORY_LANDPLATFORM_CONTROL_FACILITY, "Control facility" },
- { DIS_CATEGORY_LANDPLATFORM_FIRE_CONTROL_FACILITY, "Fire control facility" },
- { DIS_CATEGORY_LANDPLATFORM_MISSILE_DEFENSE_FACILITY, "Missile defense facility" },
- { DIS_CATEGORY_LANDPLATFORM_FIELD_COMMAND_POST, "Field command post" },
- { DIS_CATEGORY_LANDPLATFORM_OBSERVATION_POST, "Field observation post" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Category_AirPlatform_Strings[] =
-{
- { DIS_CATEGORY_AIRPLATFORM_OTHER, "Other" },
- { DIS_CATEGORY_AIRPLATFORM_FIGHTER_AIR_DEFENSE, "Fighter / air defense" },
- { DIS_CATEGORY_AIRPLATFORM_ATTACK_STRIKE, "Attack / strike" },
- { DIS_CATEGORY_AIRPLATFORM_BOMBER, "Bomber" },
- { DIS_CATEGORY_AIRPLATFORM_CARGO_TANKER, "Cargo tanker" },
- { DIS_CATEGORY_AIRPLATFORM_ASW_PATROL_OBSERVATION, "ASW / patrol / observation" },
- { DIS_CATEGORY_AIRPLATFORM_ELECTRONIC_WARFARE, "Electronic warfare" },
- { DIS_CATEGORY_AIRPLATFORM_RECONNAISSANCE, "Reconnaissance" },
- { DIS_CATEGORY_AIRPLATFORM_SURVEILLANCE_C2, "Surveillance / C2" },
- { DIS_CATEGORY_AIRPLATFORM_ATTACK_HELICOPTER, "Attack helicopter" },
- { DIS_CATEGORY_AIRPLATFORM_UTILITY_HELICOPTER, "Utility helicopter" },
- { DIS_CATEGORY_AIRPLATFORM_ANTISUB_WARFARE_PATROL_HELICOPTER, "Antisubmarine warfare / patrol helicopter" },
- { DIS_CATEGORY_AIRPLATFORM_CARGO_HELICOPTER, "Cargo helicopter" },
- { DIS_CATEGORY_AIRPLATFORM_OBSERVATION_HELICOPTER, "Observation helicopter" },
- { DIS_CATEGORY_AIRPLATFORM_SPECIAL_OPERATIONS_HELICOPTER, "Special operations helicopter" },
- { DIS_CATEGORY_AIRPLATFORM_TRAINER, "Trainer" },
- { DIS_CATEGORY_AIRPLATFORM_UNMANNED, "Unmanned" },
- { DIS_CATEGORY_AIRPLATFORM_NON_COMBATANT_COMMERCIAL_AIRCRAFT, "Non-combatant commercial aircraft" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Category_SurfacePlatform_Strings[] =
-{
- { DIS_CATEGORY_SURFACEPLATFORM_OTHER, "Other" },
- { 0, NULL}
-};
-
-const value_string DIS_PDU_Category_SubsurfacePlatform_Strings[] =
-{
- { DIS_CATEGORY_SUBSURFACEPLATFORM_OTHER, "Other" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Category_SpacePlatform_Strings[] =
-{
- { DIS_CATEGORY_SPACEPLATFORM_OTHER, "Other" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Encoding_Class_Strings[] =
-{
- { DIS_ENCODING_CLASS_ENCODED_AUDIO, "Encoded Audio" },
- { DIS_ENCODING_CLASS_RAW_BINARY_DATA, "Raw Binary Data" },
- { DIS_ENCODING_CLASS_APPL_SPEC_DATA, "Application-Specific Data" },
- { DIS_ENCODING_CLASS_DB_INDEX, "Database index" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Encoding_Type_Strings[] =
-{
- { DIS_ENCODING_TYPE_OTHER, "Other" },
- { DIS_ENCODING_TYPE_MU_LAW, "8-bit mu-law" },
- { DIS_ENCODING_TYPE_CVSD, "CVSD per MIL-STD-188-113" },
- { DIS_ENCODING_TYPE_ADPCM_G721, "ADPCM per CCITT G.721" },
- { DIS_ENCODING_TYPE_16BIT_LINEAR_PCM, "16-bit linear PCM" },
- { DIS_ENCODING_TYPE_8BIT_LINEAR_PCM, "8-bit linear PCM" },
- { DIS_ENCODING_TYPE_VECTOR_QUANTIZATION, "VQ (Vector Quantization" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_TDL_Type_Strings[] =
-{
- {DIS_TDL_TYPE_OTHER, "Other" },
- {DIS_TDL_TYPE_PADIL, "PADIL" },
- {DIS_TDL_TYPE_NATO_LINK1, "NATO Link-1" },
- {DIS_TDL_TYPE_ATDL1, "ATDL-1" },
- {DIS_TDL_TYPE_LINK_11B, "Link 11B (TADIL B)" },
- {DIS_TDL_TYPE_SADL, "Situational Awareness Data Link (SADL)" },
- {DIS_TDL_TYPE_JTIDS_TADIL_J, "Link 16 Legacy Format (JTIDS/TADIL-J) " },
- {DIS_TDL_TYPE_JTIDS_FDL_TADIL_J, "Link 16 Legacy Format (JTIDS/FDL/TADIL-J)" },
- {DIS_TDL_TYPE_LINK_11A, "Link 11A (TADIL A)" },
- {DIS_TDL_TYPE_IJMS, "IJMS" },
- {DIS_TDL_TYPE_LINK_4A, "Link 4A (TADIL C)" },
- {DIS_TDL_TYPE_LINK_4C, "Link 4C" },
- {DIS_TDL_TYPE_TIBS, "TIBS" },
- {DIS_TDL_TYPE_ATL, "ATL" },
- {DIS_TDL_TYPE_CONSTANT_SRC, "Constant Source" },
- {DIS_TDL_TYPE_ABBRV_CC, "Abbreviated Command and Control" },
- {DIS_TDL_TYPE_MILSTAR, "MILSTAR" },
- {DIS_TDL_TYPE_ATHS, "ATHS" },
- {DIS_TDL_TYPE_OTHGOLD, "OTHGOLD" },
- {DIS_TDL_TYPE_TACELINT, "TACELINT" },
- {DIS_TDL_TYPE_AWW13, "Weapons Data Link (AWW-13)" },
- {DIS_TDL_TYPE_ABBRV_CC_2, "Abbreviated Command and Control" },
- {DIS_TDL_TYPE_EPLRS, "Enhanced Position Location Reporting System (EPLRS)" },
- {DIS_TDL_TYPE_PLRS, "Position Location Reporting System (PLRS)" },
- {DIS_TDL_TYPE_SINCGARS, "SINCGARS" },
- {DIS_TDL_TYPE_HAVE_QUICK_I, "Have Quick I" },
- {DIS_TDL_TYPE_HAVE_QUICK_II, "Have Quick II" },
- {DIS_TDL_TYPE_HAVE_QUICK_IIA, "Have Quick IIA (Saturn)" },
- {DIS_TDL_TYPE_IFDL1, "Intra-Flight Data Link 1" },
- {DIS_TDL_TYPE_IFDL2, "Intra-Flight Data Link 2" },
- {DIS_TDL_TYPE_IDM, "Improved Data Modem (IDM)" },
- {DIS_TDL_TYPE_AFAPD, "Air Force Application Program Development (AFAPD)" },
- {DIS_TDL_TYPE_CEC, "Cooperative Engagement Capability (CEC)" },
- {DIS_TDL_TYPE_FAAD_FDL, "Forward Area Air Defense (FAAD) Data Link (FDL)" },
- {DIS_TDL_TYPE_GBDL, "Ground Based Data Link (GBDL)" },
- {DIS_TDL_TYPE_IVIS, "Intra Vehicular Info System (IVIS)" },
- {DIS_TDL_TYPE_MTS, "Marine Tactical System (MTS)" },
- {DIS_TDL_TYPE_TACFIRE, "Tactical Fire Direction System (TACFIRE)" },
- {DIS_TDL_TYPE_IBS, "Integrated Broadcast Service (IBS)" },
- {DIS_TDL_TYPE_ABIT, "Airborne Information Transfer (ABIT)" },
- {DIS_TDL_TYPE_ATARS, "Advanced Tactical Airborne Reconnaissance System (ATARS) Data Link" },
- {DIS_TDL_TYPE_BGPHES, "Battle Group Passive Horizon Extension System (BGPHES) Data Link" },
- {DIS_TDL_TYPE_CHBDL, "Common High Bandwidth Data Link (CHBDL)" },
- {DIS_TDL_TYPE_GUARDRAIL_IDL, "Guardrail Interoperable Data Link (IDL)" },
- {DIS_TDL_TYPE_GUARDRAIL_CSS1, "Guardrail Common Sensor System One (CSS1) Data Link" },
- {DIS_TDL_TYPE_GUARDRAIL_CSS2, "Guardrail Common Sensor System Two (CSS2) Data Link" },
- {DIS_TDL_TYPE_GUARDRAIL_CSS2_MRDL, "Guardrail CSS2 Multi-Role Data Link (MRDL)" },
- {DIS_TDL_TYPE_GUARDRAIL_CSS2_DASR, "Guardrail CSS2 Direct Air to Satellite Relay (DASR) Data Link" },
- {DIS_TDL_TYPE_LOS_TETHER, "Line of Sight (LOS) Data Link Implementation (LOS tether)" },
- {DIS_TDL_TYPE_LWCDL, "Lightweight CDL (LWCDL)" },
- {DIS_TDL_TYPE_L_52M, "L-52M (SR-71)" },
- {DIS_TDL_TYPE_RR_ROWL_DL, "Rivet Reach/Rivet Owl Data Link" },
- {DIS_TDL_TYPE_SENIOR_SPAN, "Senior Span" },
- {DIS_TDL_TYPE_SENIOR_SPUR, "Senior Spur" },
- {DIS_TDL_TYPE_SENIOR_STRETCH, "Senior Stretch." },
- {DIS_TDL_TYPE_SENIOR_YEAR_IDL, "Senior Year Interoperable Data Link (IDL)" },
- {DIS_TDL_TYPE_SPACE_CDL, "Space CDL" },
- {DIS_TDL_TYPE_TR_1_MIST_ADL, "TR-1 mode MIST Airborne Data Link" },
- {DIS_TDL_TYPE_KU_BAND_SATCOM, "Ku-band SATCOM Data Link Implementation (UAV)" },
- {DIS_TDL_TYPE_MECDL, "Mission Equipment Control Data link (MECDL)" },
- {DIS_TDL_TYPE_RADAR_DATA_TSDL, "Radar Data Transmitting Set Data Link" },
- {DIS_TDL_TYPE_SCDL, "Surveillance and Control Data Link (SCDL)" },
- {DIS_TDL_TYPE_TACTICAL_UAV_VIDEO, "Tactical UAV Video" },
- {DIS_TDL_TYPE_UHF_SATCOM, "UHF SATCOM Data Link Implementation (UAV)" },
- {DIS_TDL_TYPE_TCDL, "Tactical Common Data Link (TCDL)" },
- {DIS_TDL_TYPE_LLAPI, "Low Level Air Picture Interface (LLAPI)" },
- {DIS_TDL_TYPE_WEAPONS_DL, "Weapons Data Link (AGM-130)" },
- {DIS_TDL_TYPE_GC3, "GC3" },
- {DIS_TDL_TYPE_LINK16_STD, "Link 16 Standardized Format (JTIDS/MIDS/TADIL J)" },
- {DIS_TDL_TYPE_LINK16_EDR, "Link 16 Enhanced Data Rate (EDR JTIDS/MIDS/TADIL-J)" },
- {DIS_TDL_TYPE_JTIDS_NET_DATA_LOAD, "JTIDS/MIDS Net Data Load (TIMS/TOMS)" },
- {DIS_TDL_TYPE_LINK22, "Link 22" },
- {DIS_TDL_TYPE_AFIWC_IADS, "AFIWC IADS Communications Links" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_RadioCategory_Strings[] =
-{
- {0, "Other" },
- {1, "Voice Transmission/Reception" },
- {2, "Data Link Transmission/Reception" },
- {3, "Voice and Data Link Transmission/Reception" },
- {4, "Instrumented Landing System (ILS) Glideslope Transmitter" },
- {5, "Instrumented Landing System (ILS) Localizer Transmitter" },
- {6, "Instrumented Landing System (ILS) Outer Marker Beacon" },
- {7, "Instrumented Landing System (ILS) Middle Marker Beacon" },
- {8, "Instrumented Landing System (ILS) Inner Marker Beacon" },
- {9, "Instrumented Landing System (ILS) Receiver (Platform Radio)" },
- {10, "Tactical Air Navigation (TACAN) Transmitter (Ground Fixed Equipment)" },
- {11, "Tactical Air Navigation (TACAN) Receiver (Moving Platform Equipment)" },
- {12, "Tactical Air Navigation (TACAN) Transmitter/Receiver (Moving Platform Equipment)" },
- {13, "Variable Omni-Ranging (VOR) Transmitter (Ground Fixed Equipment)" },
- {14, "Variable Omni-Ranging (VOR) with Distance Measuring Equipment (DME) Transmitter (Ground Fixed Equipment)" },
- {15, "Combined VOR/ILS Receiver (Moving Platform Equipment)" },
- {16, "Combined VOR & TACAN (VORTAC) Transmitter" },
- {17, "Non-Directional Beacon (NDB) Transmitter" },
- {18, "Non-Directional Beacon (NDB) Receiver" },
- {19, "Non-Directional Beacon (NDB) with Distance Measuring Equipment (DME) Transmitter" },
- {20, "Distance Measuring Equipment (DME)" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_NomenclatureVersion_Strings[] =
-{
- {0, "Other" },
- {1, "Joint Electronics Type Designation System (JETDS) Nomenclature (AN/ per Mil-STD-196)" },
- {2, "Manufacturer Designation" },
- {3, "National Designation" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_Nomenclature_Strings[] =
-{
- {0, "Other" },
- {1, "AN/ARN-118" },
- {2, "AN/ARN-139" },
- {3, "Generic Ground Fixed Transmitter" },
- {4, "Generic Ground Mobile Transmitter" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_RadioTransmitState_Strings[] =
-{
- {0, "Off" },
- {1, "On but not transmitting" },
- {2, "On and transmitting" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_RadioInputSource_Strings[] =
-{
- {0, "Other" },
- {1, "Pilot" },
- {2, "Copilot" },
- {3, "First Officer" },
- {4, "Driver" },
- {5, "Loader" },
- {6, "Gunner" },
- {7, "Commander" },
- {8, "Digital Data Device" },
- {9, "Intercom" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_AntennaPatternType_Strings[] =
-{
- {0, "Omni-directional" },
- {1, "Beam" },
- {2, "Spherical harmonic" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_MajorModulation_Strings[] =
-{
- {DIS_MAJOR_MOD_OTHER, "Other" },
- {DIS_MAJOR_MOD_AMPLITUDE, "Amplitude" },
- {DIS_MAJOR_MOD_AMPLITUDE_AND_ANGLE, "Amplitude and Angle" },
- {DIS_MAJOR_MOD_ANGLE, "Angle" },
- {DIS_MAJOR_MOD_COMBINATION, "Combination" },
- {DIS_MAJOR_MOD_PULSE, "Pulse" },
- {DIS_MAJOR_MOD_UNMODULATED, "Unmodulated" },
- {DIS_MAJOR_MOD_CPSM, "Carrier Phase Shift Modulation (CPSM)" },
- {0, NULL }
-};
-
-const range_string DIS_PDU_Link16_CVLL_Strings[] = {
- { 0, 127, "Crypto Variable" },
- { 255, 255, "NO STATEMENT" },
- { 0, 0, NULL }
-};
-
-const value_string DIS_PDU_Link16_MessageType_Strings[] =
-{
- { DIS_MESSAGE_TYPE_JTIDS_HEADER_MESSAGES, "JTIDS Header/Messages" },
- { DIS_MESSAGE_TYPE_RTT_A_B, "RTT A/B" },
- { DIS_MESSAGE_TYPE_RTT_REPLY, "RTT Reply" },
- { DIS_MESSAGE_TYPE_JTIDS_VOICE_CVSD, "JTIDS Voice CVSD" },
- { DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC10, "JTIDS Voice LPC10" },
- { DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC12, "JTIDS Voice LPC12" },
- { DIS_MESSAGE_TYPE_JTIDS_LET, "JTIDS LET" },
- { DIS_MESSAGE_TYPE_VMF, "VMF" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_EmissionFunction_Strings[] =
-{
- {DIS_EMISSION_FUNCTION_OTHER, "Other" },
- {DIS_EMISSION_FUNCTION_MULTI_FUNCTION, "Multi-Function" },
- {DIS_EMISSION_FUNCTION_EARLY_WARNING_SURVEILLANCE,
- "Early Warning/Surveillance" },
- {DIS_EMISSION_FUNCTION_HEIGHT_FINDING, "Height Finding" },
- {DIS_EMISSION_FUNCTION_FIRE_CONTROL, "Fire Control" },
- {DIS_EMISSION_FUNCTION_ACQUISITION_DETECTION, "Acquisition/Detection" },
- {DIS_EMISSION_FUNCTION_TRACKING, "Tracking" },
- {DIS_EMISSION_FUNCTION_GUIDANCE_ILLUMINATION, "Guidance/Illumination" },
- {DIS_EMISSION_FUNCTION_FIRING_POINT_LAUNCH_POINT_LOCATION,
- "Firing point/launch point location" },
- {DIS_EMISSION_FUNCTION_RANGING, "Ranging" },
- {DIS_EMISSION_FUNCTION_RADAR_ALTIMETER, "Radar Altimeter" },
- {DIS_EMISSION_FUNCTION_IMAGING, "Imaging" },
- {DIS_EMISSION_FUNCTION_MOTION_DETECTION, "Motion Detection" },
- {DIS_EMISSION_FUNCTION_NAVIGATION, "Navigation" },
- {DIS_EMISSION_FUNCTION_WEATHER_METEROLOGICAL, "Weather / Meterological"},
- {DIS_EMISSION_FUNCTION_INSTRUMENTATION, "Instrumentation" },
- {DIS_EMISSION_FUNCTION_IDENTIFICATION_CLASSIFICATION_INCLUDING_IFF,
- "Identification/Classification (including IFF)" },
- {DIS_EMISSION_FUNCTION_AAA_FIRE_CONTROL,
- "AAA (Anti-Aircraft Artillery) Fire Control" },
- {DIS_EMISSION_FUNCTION_AIR_SEARCH_BOMB, "Air Search/Bomb" },
- {DIS_EMISSION_FUNCTION_AIR_INTERCEPT, "Air Intercept" },
- {DIS_EMISSION_FUNCTION_ALTIMETER, "Altimeter" },
- {DIS_EMISSION_FUNCTION_AIR_MAPPING, "Air Mapping" },
- {DIS_EMISSION_FUNCTION_AIR_TRAFFIC_CONTROL, "Air Traffic Control" },
- {DIS_EMISSION_FUNCTION_BEACON, "Beacon" },
- {DIS_EMISSION_FUNCTION_BATTLEFIELD_SURVEILLANCE,
- "Battlefield Surveillance" },
- {DIS_EMISSION_FUNCTION_GROUND_CONTROL_APPROACH,
- "Ground Control Approach" },
- {DIS_EMISSION_FUNCTION_GROUND_CONTROL_INTERCEPT,
- "Ground Control Intercept" },
- {DIS_EMISSION_FUNCTION_COASTAL_SURVEILLANCE, "Coastal Surveillance" },
- {DIS_EMISSION_FUNCTION_DECOY_MIMIC, "Decoy/Mimic" },
- {DIS_EMISSION_FUNCTION_DATA_TRANSMISSION, "Data Transmission" },
- {DIS_EMISSION_FUNCTION_EARTH_SURVEILLANCE, "Earth Surveillance" },
- {DIS_EMISSION_FUNCTION_GUN_LAY_BEACON, "Gun Lay Beacon" },
- {DIS_EMISSION_FUNCTION_GROUND_MAPPING, "Ground Mapping" },
- {DIS_EMISSION_FUNCTION_HARBOR_SURVEILLANCE, "Harbor Surveillance" },
- {DIS_EMISSION_FUNCTION_ILS,
- "ILS (Instrument Landing System)" },
- {DIS_EMISSION_FUNCTION_IONOSPHERIC_SOUND, "Ionospheric Sound" },
- {DIS_EMISSION_FUNCTION_INTERROGATOR, "Interrogator" },
- {DIS_EMISSION_FUNCTION_BARRAGE_JAMMING, "Barrage Jamming" },
- {DIS_EMISSION_FUNCTION_CLICK_JAMMING, "Click Jamming" },
- {DIS_EMISSION_FUNCTION_FREQUENCY_SWEPT_JAMMING,
- "Frequency Swept Jamming" },
- {DIS_EMISSION_FUNCTION_JAMMING, "Jamming" },
- {DIS_EMISSION_FUNCTION_PULSED_JAMMING, "Pulsed Jamming" },
- {DIS_EMISSION_FUNCTION_REPEATER_JAMMING, "Repeater Jamming" },
- {DIS_EMISSION_FUNCTION_SPOT_NOISE_JAMMING, "Spot Noise Jamming" },
- {DIS_EMISSION_FUNCTION_MISSILE_ACQUISITION, "Missile Acquisition" },
- {DIS_EMISSION_FUNCTION_MISSILE_DOWNLINK, "Missile Downlink" },
- {DIS_EMISSION_FUNCTION_SPACE, "Space" },
- {DIS_EMISSION_FUNCTION_SURFACE_SEARCH, "Surface Search" },
- {DIS_EMISSION_FUNCTION_SHELL_TRACKING, "Shell Tracking" },
- {DIS_EMISSION_FUNCTION_TELEVISION, "Television" },
- {DIS_EMISSION_FUNCTION_UNKNOWN, "Unknown" },
- {DIS_EMISSION_FUNCTION_VIDEO_REMOTING, "Video Remoting" },
- {DIS_EMISSION_FUNCTION_EXPERIMENTAL_OR_TRAINING,
- "Experimental or training" },
- {DIS_EMISSION_FUNCTION_MISSILE_GUIDANCE, "Missile Guidance" },
- {DIS_EMISSION_FUNCTION_MISSILE_HOMING, "Missile Homing" },
- {DIS_EMISSION_FUNCTION_MISSILE_TRACKING, "Missile Tracking" },
- {DIS_EMISSION_FUNCTION_JAMMING_NOISE, "Jamming, noise" },
- {DIS_EMISSION_FUNCTION_JAMMING_DECEPTION, "Jamming, deception" },
- {DIS_EMISSION_FUNCTION_NAVIGATION_DISTANCE_MEASURING_EQUIPMENT,
- "Navigation/Distance Measuring Equipment" },
- {DIS_EMISSION_FUNCTION_TERRAIN_FOLLOWING, "Terrain Following" },
- {DIS_EMISSION_FUNCTION_WEATHER_AVOIDANCE, "Weather Avoidance" },
- {DIS_EMISSION_FUNCTION_PROXIMITY_FUSE, "Proximity Fuse" },
- {DIS_EMISSION_FUNCTION_RADIOSONDE, "Radiosonde" },
- {DIS_EMISSION_FUNCTION_SONOBUOY, "Sonobuoy" },
- {DIS_EMISSION_FUNCTION_BATHYTHERMAL_SENSOR, "Bathythermal Sensor" },
- {DIS_EMISSION_FUNCTION_TOWED_COUNTER_MEASURE, "Towed Counter Measure"},
- {DIS_EMISSION_FUNCTION_WEAPON_NON_LETHAL, "Weapon, non-lethal" },
- {DIS_EMISSION_FUNCTION_WEAPON_LETHAL, "Weapon, lethal" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_BeamFunction_Strings[] =
-{
- {DIS_BEAM_FUNCTION_OTHER, "Other" },
- {DIS_BEAM_FUNCTION_SEARCH, "Search" },
- {DIS_BEAM_FUNCTION_HEIGHT_FINDER, "Height finder" },
- {DIS_BEAM_FUNCTION_ACQUISITION, "Acquisition" },
- {DIS_BEAM_FUNCTION_TRACKING, "Tracking" },
- {DIS_BEAM_FUNCTION_ACQUISITION_TRACKING,"Acquisition and tracking" },
- {DIS_BEAM_FUNCTION_COMMAND_GUIDANCE, "Command guidance" },
- {DIS_BEAM_FUNCTION_ILLUMINATION, "Illumination" },
- {DIS_BEAM_FUNCTION_RANGE_ONLY_RADAR, "Range only radar" },
- {DIS_BEAM_FUNCTION_MISSILE_BEACON, "Missile beacon" },
- {DIS_BEAM_FUNCTION_MISSILE_FUZE, "Missile fuze" },
- {DIS_BEAM_FUNCTION_ACTIVE_RADAR_MISSILE_SEEKER,
- "Active radar missile seeker" },
- {DIS_BEAM_FUNCTION_JAMMER, "Jammer" },
- {DIS_BEAM_FUNCTION_IFF, "IFF" },
- {DIS_BEAM_FUNCTION_NAVIGATIONAL_WEATHER,"Navigational/Weather" },
- {DIS_BEAM_FUNCTION_METEOROLOGICAL, "Meteorological" },
- {DIS_BEAM_FUNCTION_DATA_TRANSMISSION, "Data transmission" },
- {DIS_BEAM_FUNCTION_NAVIGATIONAL_DIRECTIONAL_BEACON,
- "Navigational directional beacon" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationAmplitude_Strings[] =
-{
- {0, "Other" },
- {1, "AFSK (Audio Frequency Shift Keying)" },
- {2, "AM (Amplitude Modulation)" },
- {3, "CW (Continuous Wave Modulation)" },
- {4, "DSB (Double Sideband)" },
- {5, "ISB (Independent Sideband)" },
- {6, "LSB (Single Band Suppressed Carrier, Lower Sideband Mode)" },
- {7, "SSB-Full (Single Sideband Full Carrier)" },
- {8, "SSB-Reduc (Single Band Reduced Carrier)" },
- {9, "USB (Single Band Suppressed Carrier, Upper Sideband Mode)" },
- {10, "VSB (Vestigial Sideband)" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationAmpAndAngle_Strings[] =
-{
- {0, "Other" },
- {1, "Amplitude and Angle" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationAngle_Strings[] =
-{
- {0, "Other" },
- {1, "FM (Frequency Modulation)" },
- {2, "FSK (Frequency Shift Keying)" },
- {3, "PM (Phase Modulation)" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationCombination_Strings[] =
-{
- {0, "Other" },
- {1, "Amplitude-Angle-Pulse" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationPulse_Strings[] =
-{
- {0, "Other" },
- {1, "Pulse" },
- {2, "X Band TACAN Pulse" },
- {3, "Y Band TACAN Pulse" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationUnmodulated_Strings[] =
-{
- {0, "Other" },
- {1, "Continuous Wave emission of an unmodulated carrier" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_DetailModulationCPSM_Strings[] =
-{
- {0, "Other" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_ModParamMsgStart_Strings[] =
-{
- {0, "Not start of message" },
- {1, "Start of Message" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_ModParamClrChannel_Strings[] =
-{
- {0, "Not clear channel" },
- {1, "Clear channel" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_TSAllocationFidelity_Strings[] =
-{
- {0, "Time Slot Allocation Fidelity Level 0" },
- {1, "Time Slot Allocation Fidelity Level 1" },
- {2, "Time Slot Allocation Fidelity Level 2" },
- {3, "Time Slot Allocation Fidelity Level 3" },
- {4, "Time Slot Allocation Fidelity Level 4" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_TerminalPrimaryMode_Strings[] =
-{
- {1, "NTR" },
- {2, "JTIDS Unit Participant" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_TerminalSecondaryMode_Strings[] =
-{
- {0, "None" },
- {1, "Net Position Reference" },
- {2, "Primary Navigation Controller" },
- {3, "Secondary Navigation Controller" },
- {0, NULL }
-};
-
-/* http://discussions.sisostds.org/threadview.aspx?fid=18&threadid=53172 */
-const value_string DIS_PDU_ModParamSyncState_Strings[] =
-{
- {2, "Coarse Synchronization" },
- {3, "Fine Synchronization" },
- {0, NULL }
-};
-
-
-const value_string DIS_PDU_SystemModulation_Strings[] =
-{
- {0, "Other" },
- {1, "Generic" },
- {2, "HQ" },
- {3, "HQII" },
- {4, "HQIIA" },
- {5, "SINCGARS" },
- {6, "CCTT SINCGARS" },
- {7, "EPLRS (Enhanced Position Location Reporting System)" },
- {8, "JTIDS/MIDS" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_CryptoSystem_Strings[] =
-{
- {0, "Other" },
- {1, "KY-28" },
- {2, "VINSON (KY-57, KY-58, SINCGARS ICOM)" },
- {3, "Narrow Spectrum Secure Voice (NSVE)" },
- {4, "Wide Spectrum Secure Voice (WSVE)" },
- {0, NULL }
-};
-
-const value_string DIS_PDU_AcknowledgeFlag_Strings[] =
-{
- { DIS_ACKNOWLEDGE_FLAG_CREATE_ENTITY, "Create Entity" },
- { DIS_ACKNOWLEDGE_FLAG_REMOVE_ENTITY, "Remove Entity" },
- { DIS_ACKNOWLEDGE_FLAG_START_RESUME, "Start Resume" },
- { DIS_ACKNOWLEDGE_FLAG_STOP_FREEZE, "Stop Freeze" },
- { DIS_ACKNOWLEDGE_FLAG_TRANSFER_CONTROL_REQUEST, "Transfer Control Request" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ActionId_Strings[] =
-{
- { DIS_ACTION_ID_OTHER, "Other" },
- { DIS_ACTION_ID_LOCAL_STORAGE_OF_THE_REQUESTED_INFORMATION, "LocalStorageOfTheRequestedInformation" },
- { DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_AMMUNITION, "InformSMofEventRanOutOfAmmunition" },
- { DIS_ACTION_ID_INFORM_SM_OF_EVENT_KILLED_IN_ACTION, "InformSMofEventKilledInAction" },
- { DIS_ACTION_ID_INFORM_SM_OF_EVENT_DAMAGE, "InformSMofEventDamage" },
- { DIS_ACTION_ID_INFORM_SM_OF_EVENT_MOBILITY_DISABLED, "InformSMofEventMobilityDisabled" },
- { DIS_ACTION_ID_INFORM_SM_OF_EVENT_FIRE_DISABLED, "InformSMofEventFireDisabled" },
- { DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_FUEL, "InformSMofEventRanOutOfFuel" },
- { DIS_ACTION_ID_RECALL_CHECKPOINT_DATA, "RecallCheckpointData" },
- { DIS_ACTION_ID_RECALL_INITIAL_PARAMETERS, "RecallInitialParameters" },
- { DIS_ACTION_ID_INITIATE_TETHER_LEAD, "InitiateTetherLead" },
- { DIS_ACTION_ID_INITIATE_TETHER_FOLLOW, "InitiateTetherFollow" },
- { DIS_ACTION_ID_UNTETHER, "Untether" },
- { DIS_ACTION_ID_INITIATE_SERVICE_STATION_RESUPPLY, "InitiateServiceStationResupply" },
- { DIS_ACTION_ID_INITIATE_TAILGATE_RESUPPLY, "InitiateTailgateResupply" },
- { DIS_ACTION_ID_INITIATE_HITCH_LEAD, "InitiateHitchLead" },
- { DIS_ACTION_ID_INITIATE_HITCH_FOLLOW, "InitiateHitchFollow" },
- { DIS_ACTION_ID_UNHITCH, "Unhitch" },
- { DIS_ACTION_ID_MOUNT, "Mount" },
- { DIS_ACTION_ID_DISMOUNT, "Dismount" },
- { DIS_ACTION_ID_START_DRC, "StartDRC" },
- { DIS_ACTION_ID_STOP_DRC, "StopDRC" },
- { DIS_ACTION_ID_DATA_QUERY, "DataQuery" },
- { DIS_ACTION_ID_STATUS_REQUEST, "StatusRequest" },
- { DIS_ACTION_ID_SEND_OBJECT_STATE_DATA, "SendObjectStateData" },
- { DIS_ACTION_ID_RECONSTITUTE, "Reconstitute" },
- { DIS_ACTION_ID_LOCK_SITE_CONFIGURATION, "LockSiteConfiguration" },
- { DIS_ACTION_ID_UNLOCK_SITE_CONFIGURATION, "UnlockSiteConfiguration" },
- { DIS_ACTION_ID_UPDATE_SITE_CONFIGURATION, "UpdateSiteConfiguration" },
- { DIS_ACTION_ID_QUERY_SITE_CONFIGURATION, "QuerySiteConfiguration" },
- { DIS_ACTION_ID_TETHERING_INFORMATION, "TetheringInformation" },
- { DIS_ACTION_ID_MOUNT_INTENT, "MountIntent" },
- { DIS_ACTION_ID_ACCEPT_SUBSCRIPTION, "AcceptSubscription" },
- { DIS_ACTION_ID_UNSUBSCRIBE, "Unsubscribe" },
- { DIS_ACTION_ID_TELEPORT_ENTITY, "TeleportEntity" },
- { DIS_ACTION_ID_CHANGE_AGGREGATE_STATE, "ChangeAggregateState" },
- { DIS_ACTION_ID_REQUEST_START_PDU, "RequestStartPdu" },
- { DIS_ACTION_ID_WAKEUP_GET_READY_FOR_INITIALIZATION, "WakeupGetReadyForInitialization" },
- { DIS_ACTION_ID_INITIALIZE_INTERNAL_PARAMETERS, "InitializeInternalParameters" },
- { DIS_ACTION_ID_SEND_PLAN_DATA, "SendPlanData" },
- { DIS_ACTION_ID_SYNCHRONIZE_INTERNAL_CLOCKS, "SynchronizeInternalClocks" },
- { DIS_ACTION_ID_RUN, "Run" },
- { DIS_ACTION_ID_SAVE_INTERNAL_PARAMETERS, "SaveInternalParameters" },
- { DIS_ACTION_ID_SIMULATE_MALFUNCTION, "SimulateMalfunction" },
- { DIS_ACTION_ID_JOIN_EXERCISE, "JoinExercise" },
- { DIS_ACTION_ID_RESIGN_EXERCISE, "ResignExercise" },
- { DIS_ACTION_ID_TIME_ADVANCE, "TimeAdvance" },
- { DIS_ACTION_ID_COMMAND_FROM_SIMULATOR, "CommandFromSimulator" },
- { DIS_ACTION_ID_SLING_LOAD_CAPABILITY_REQUEST, "SlingLoadCapabilityRequest" },
- { DIS_ACTION_ID_SLING_ATTACH_REQUEST, "SlingAttachRequest" },
- { DIS_ACTION_ID_SLING_RELEASE_REQUEST, "SlingReleaseRequest" },
- { DIS_ACTION_ID_AIRMOUNT_MOUNT_REQUEST, "AirmountMountRequest" },
- { DIS_ACTION_ID_AIRMOUNT_DISMOUNT_REQUEST, "AirmountDismountRequest" },
- { DIS_ACTION_ID_AIRMOUNT_INFO_REQUEST, "AirmountInfoRequest" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ApplicationGeneralStatus_Strings[] =
-{
- { DIS_APPLICATION_GENERAL_STATUS_UNKNOWN, "Unknown" },
- { DIS_APPLICATION_GENERAL_STATUS_FUNCTIONAL, "Functional" },
- { DIS_APPLICATION_GENERAL_STATUS_DEGRADED_BUT_FUNCTIONAL, "Degraded But Functional" },
- { DIS_APPLICATION_GENERAL_STATUS_NOT_FUNCTIONAL, "Not Functional" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ApplicationStatusType_Strings[] =
-{
- { DIS_APPLICATION_STATUS_TYPE_NOT_SPECIFIED, "Not Specified" },
- { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_USER, "Cpu Usage User" },
- { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_SYSTEM, "Cpu Usage System" },
- { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IO, "Cpu Usage Io" },
- { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IDLE, "Cpu Usage Idle" },
- { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_STEAL, "Cpu Usage Steal" },
- { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_NICE, "Cpu Usage Nice" },
- { DIS_APPLICATION_STATUS_TYPE_MEMORY_FREE, "Memory Free" },
- { DIS_APPLICATION_STATUS_TYPE_MEMORY_USED, "Memory Used" },
- { DIS_APPLICATION_STATUS_TYPE_SWAP_FREE, "Swap Free" },
- { DIS_APPLICATION_STATUS_TYPE_SWAP_USED, "Swap Used" },
- { DIS_APPLICATION_STATUS_TYPE_SWAP_CACHED, "Swap Cached" },
- { DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_PACKETS_SEC, "Transmitted Packets Sec" },
- { DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_BYTES_SEC, "Transmitted Bytes Sec" },
- { DIS_APPLICATION_STATUS_TYPE_RECEIVED_PACKETS_SEC, "Received Packets Sec" },
- { DIS_APPLICATION_STATUS_TYPE_RECEIVED_BYTES_SEC, "Received Bytes Sec" },
- { DIS_APPLICATION_STATUS_TYPE_NICE_LEVEL, "Nice Level" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ApplicationType_Strings[] =
-{
- { DIS_APPLICATION_TYPE_OTHER, "Other" },
- { DIS_APPLICATION_TYPE_RESOURCE_MANAGER, "Resource Manager" },
- { DIS_APPLICATION_TYPE_SIMULATION_MANAGER, "Simulation Manager" },
- { DIS_APPLICATION_TYPE_GATEWAY, "Gateway" },
- { DIS_APPLICATION_TYPE_STEALTH, "Stealth" },
- { DIS_APPLICATION_TYPE_TACTICAL_INTERNET_INTERFACE, "Tactical Internet Interface" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_DetonationResult_Strings[] =
-{
- { DIS_DETONATION_RESULT_OTHER, "Other" },
- { DIS_DETONATION_RESULT_ENTITY_IMPACT, "Entity impact" },
- { DIS_DETONATION_RESULT_ENTITY_PROXIMATE_DETONATION, "Entity proximate detonation" },
- { DIS_DETONATION_RESULT_GROUND_IMPACT, "Ground impact" },
- { DIS_DETONATION_RESULT_GROUND_PROXIMATE_DETONATION, "Ground proximate detonation" },
- { DIS_DETONATION_RESULT_DETONATION, "Detonation" },
- { DIS_DETONATION_RESULT_NONE_DUD, "None or no detonation (dud)" },
- { DIS_DETONATION_RESULT_HE_HIT_SMALL, "HE hit, small" },
- { DIS_DETONATION_RESULT_HE_HIT_MEDIUM, "HE hit, medium" },
- { DIS_DETONATION_RESULT_HE_HIT_LARGE, "HE hit, large" },
- { DIS_DETONATION_RESULT_ARMOR_PIERCING_HIT, "Armor-piercing hit" },
- { DIS_DETONATION_RESULT_DIRT_BLAST_SMALL, "Dirt blast, small" },
- { DIS_DETONATION_RESULT_DIRT_BLAST_MEDIUM, "Dirt blast, medium" },
- { DIS_DETONATION_RESULT_DIRT_BLAST_LARGE, "Dirt blast, large" },
- { DIS_DETONATION_RESULT_WATER_BLAST_SMALL, "Water blast, small" },
- { DIS_DETONATION_RESULT_WATER_BLAST_MEDIUM, "Water blast, medium" },
- { DIS_DETONATION_RESULT_WATER_BLAST_LARGE, "Water blast, large" },
- { DIS_DETONATION_RESULT_AIR_HIT, "Air hit" },
- { DIS_DETONATION_RESULT_BUILDING_HIT_SMALL, "Building hit, small" },
- { DIS_DETONATION_RESULT_BUILDING_HIT_MEDIUM, "Building hit, medium" },
- { DIS_DETONATION_RESULT_BUILDING_HIT_LARGE, "Building hit, large" },
- { DIS_DETONATION_RESULT_MINE_CLEARING_LINE_CHARGE, "Mine-clearing line charge" },
- { DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_IMPACT, "Environment object impact" },
- { DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_PROXIMATE_DETONATION, "Environment object proximate detonation" },
- { DIS_DETONATION_RESULT_WATER_IMPACT, "Water impact" },
- { DIS_DETONATION_RESULT_AIR_BURST, "Air burst" },
- { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1, "Kill with fragment type 1" },
- { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2, "Kill with fragment type 2" },
- { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_3, "Kill with fragment type 3" },
- { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1_AFTER_FOF, "Kill with fragment type 1 after fly-out failure" },
- { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2_AFTER_FOF, "Kill with fragment type 2 after fly-out failure" },
- { DIS_DETONATION_RESULT_MISS_DUE_TO_FOF, "Miss due to fly-out failure" },
- { DIS_DETONATION_RESULT_MISS_DUE_TO_ENDGAME_FAILURE, "Miss due to end-game failure" },
- { DIS_DETONATION_RESULT_MISS_DUE_TO_FOF_AND_ENDGAME_FAILURE, "Miss due to fly-out and end-game failure" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ControlId_Strings[] =
-{
- { DIS_CONTROL_ID_OTHER, "Other" },
- { DIS_CONTROL_ID_SHUTDOWN, "Shutdown" },
- { DIS_CONTROL_ID_DATA_QUERY, "Data Query" },
- { DIS_CONTROL_ID_DATA, "Data" },
- { DIS_CONTROL_ID_SET_DATA, "Set Data" },
- { DIS_CONTROL_ID_ADD_DATA, "Add Data" },
- { DIS_CONTROL_ID_REMOVE_DATA, "Remove Data" },
- { DIS_CONTROL_ID_STATUS, "Status" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_FrozenBehavior_Strings[] =
-{
- { DIS_FROZEN_BEHAVIOR_RUN_INTERNAL_SIMULATION_CLOCK, "Run Internal Simulation Clock" },
- { DIS_FROZEN_BEHAVIOR_TRANSMIT_PDUS, "Transmit PDUs" },
- { DIS_FROZEN_BEHAVIOR_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES, "Update Sim Models Of Other Entities" },
- { DIS_FROZEN_BEHAVIOR_CONTINUE_TRANSMIT_PDU, "Continue Transmit PDU" },
- { DIS_FROZEN_BEHAVIOR_CEASE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES, "Cease Update Sim Models Of Other Entities" },
- { DIS_FROZEN_BEHAVIOR_CONTINUE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES, "Continue Update Sim Models Of Other Entities" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_ParameterTypeDesignator_Strings[] =
-{
- { DIS_PARAM_TYPE_DESIG_ARTICULATED_PART, "Articulated Part" },
- { DIS_PARAM_TYPE_DESIG_ATTACHED_PART, "Attached Part" },
- { DIS_PARAM_TYPE_DESIG_SEPARATION, "Separation" },
- { DIS_PARAM_TYPE_DESIG_ENTITY_TYPE, "Entity Type" },
- { DIS_PARAM_TYPE_DESIG_ENTITY_ASSOCIATION, "Entity Association" },
- { DIS_PARAM_TYPE_DESIG_ANTENNA_LOCATION, "Antenna Location" },
- { DIS_PARAM_TYPE_DESIG_EXTENDED_PLATFORM_APPEARANCE, "Extended Platform Appearance" },
- { DIS_PARAM_TYPE_DESIG_EXTENDED_LIFEFORM_APPEARANCE, "Extended Lifeform Appearance" },
- { DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_LIGHTS, "High Fidelity Lights" },
- { DIS_PARAM_TYPE_DESIG_CHEVRON_MARKING, "Chevron Marking" },
- { DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_THERMAL_SENSOR, "High Fidelity Thermal Sensor" },
- { DIS_PARAM_TYPE_DESIG_ENTITY_OFFSET, "Entity Offset" },
- { DIS_PARAM_TYPE_DESIG_DEAD_RECKONING, "Dead Reckoning" },
- { DIS_PARAM_TYPE_DESIG_ARMY_TASK_ORGANIZATION, "Army Task Organization" },
- { DIS_PARAM_TYPE_DESIG_HEAD_GAZING_WEAPON_AIMING, "Head Gazing Weapon Aiming" },
- { DIS_PARAM_TYPE_DESIG_LIFEFORM_ACTION_SEQUENCE, "Lifeform Action Sequence" },
- { DIS_PARAM_TYPE_DESIG_LEGACY_EXTENDED_LIFEFORM_APPEARANCE, "Legacy Extended Lifeform Appearance" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_Reason_Strings[] =
-{
- { DIS_REASON_OTHER, "Other" },
- { DIS_REASON_RECESS, "Recess" },
- { DIS_REASON_TERMINATION, "Termination" },
- { DIS_REASON_SYSTEM_FAILURE, "System Failure" },
- { DIS_REASON_SECURITY_VIOLATION, "Security Violation" },
- { DIS_REASON_ENTITY_RECONSTITUTION, "Entity Reconstitution" },
- { DIS_REASON_STOP_FOR_RESET, "Stop For Reset" },
- { DIS_REASON_STOP_FOR_RESTART, "Stop For Restart" },
- { DIS_REASON_ABORT_TRAINING_RETURN_TO_TACTICAL_OPERATIONS, "Abort Training Return To Tactical Operations" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_RequestStatus_Strings[] =
-{
- { DIS_REQUEST_STATUS_OTHER, "Other" },
- { DIS_REQUEST_STATUS_PENDING, "Pending" },
- { DIS_REQUEST_STATUS_EXECUTING, "Executing" },
- { DIS_REQUEST_STATUS_PARTIALLY_COMPLETE, "Partially Complete" },
- { DIS_REQUEST_STATUS_COMPLETE, "Complete" },
- { DIS_REQUEST_STATUS_REQUEST_REJECTED, "Request Rejected" },
- { DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_NOW, "Retransmit Request Now" },
- { DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_LATER, "Retransmit Request Later" },
- { DIS_REQUEST_STATUS_INVALID_TIME_PARAMETERS, "Invalid Time Parameters" },
- { DIS_REQUEST_STATUS_SIMULATION_TIME_EXCEEDED, "Simulation Time Exceeded" },
- { DIS_REQUEST_STATUS_REQUEST_DONE, "Request Done" },
- { DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_1, "TACCSF LOS Reply Type 1" },
- { DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_2, "TACCSF LOS Reply Type 2" },
- { DIS_REQUEST_STATUS_JOIN_EXERCISE_REQUEST_REJECTED, "Join Exercise Request Rejected" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_RequiredReliabilityService_Strings[] =
-{
- { DIS_REQUIRED_RELIABILITY_SERVICE_ACKNOWLEDGED, "Acknowledged" },
- { DIS_REQUIRED_RELIABILITY_SERVICE_UNACKNOWLEDGED, "Unacknowledged" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_DisResponseFlag_Strings[] =
-{
- { DIS_RESPONSE_FLAG_OTHER, "Other" },
- { DIS_RESPONSE_FLAG_ABLE_TO_COMPLY, "Able To Comply" },
- { DIS_RESPONSE_FLAG_UNABLE_TO_COMPLY, "Unable To Comply" },
- { DIS_RESPONSE_FLAG_PENDING_OPERATOR_ACTION, "Pending Operator Action" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_PersistentObjectType_Strings[] =
-{
- { DIS_PERSISTENT_OBJECT_TYPE_OTHER, "Other" },
- { DIS_PERSISTENT_OBJECT_TYPE_SIMULATOR_PRESENT, "Simulator Present" },
- { DIS_PERSISTENT_OBJECT_TYPE_DESCRIBE_OBJECT, "Describe Object" },
- { DIS_PERSISTENT_OBJECT_TYPE_OBJECTS_PRESENT, "Objects Present" },
- { DIS_PERSISTENT_OBJECT_TYPE_OBJECT_REQUEST, "Object Request" },
- { DIS_PERSISTENT_OBJECT_TYPE_DELETE_OBJECTS, "Delete Objects" },
- { DIS_PERSISTENT_OBJECT_TYPE_SET_WORLD_STATE, "Set World State" },
- { DIS_PERSISTENT_OBJECT_TYPE_NOMINATION, "Nomination" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_PO_ObjectClass_Strings[] =
-{
- { DIS_PO_OBJECT_CLASS_OTHER, "Other" },
- { DIS_PO_OBJECT_CLASS_WORLD_STATE, "World State" },
- { DIS_PO_OBJECT_CLASS_OVERLAY, "Overlay" },
- { DIS_PO_OBJECT_CLASS_POINT, "Point" },
- { DIS_PO_OBJECT_CLASS_LINE, "Line" },
- { DIS_PO_OBJECT_CLASS_SECTOR, "Sector" },
- { DIS_PO_OBJECT_CLASS_TEXT, "Text" },
- { DIS_PO_OBJECT_CLASS_UNIT, "Unit" },
- { DIS_PO_OBJECT_CLASS_UNIT_DEFINITION, "Unit Definition" },
- { DIS_PO_OBJECT_CLASS_STEALTH_CONTROLLER, "Stealth Controller" },
- { DIS_PO_OBJECT_CLASS_H_HOUR, "H Hour" },
- { DIS_PO_OBJECT_CLASS_VARIABLE, "Variable" },
- { DIS_PO_OBJECT_CLASS_TASK, "Task" },
- { DIS_PO_OBJECT_CLASS_TASK_STATE, "Task State" },
- { DIS_PO_OBJECT_CLASS_TASK_FRAME, "Task Frame" },
- { DIS_PO_OBJECT_CLASS_TASK_AUTHORIZATION, "Task Authorization" },
- { DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT, "Parametric Input" },
- { DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT_HOLDER, "Parametric Input Holder" },
- { DIS_PO_OBJECT_CLASS_EXERCISE_INITIALIZER, "Exercise Initializer" },
- { DIS_PO_OBJECT_CLASS_FIRE_PARAMETERS, "Fire Parameters" },
- { DIS_PO_OBJECT_CLASS_MINEFIELD, "Minefield" },
- { DIS_PO_OBJECT_CLASS_SIMULATION_REQUEST, "Simulation Request" },
- { DIS_PO_OBJECT_CLASS_NET_SUBSCRIPTION, "Net Subscription" },
- { DIS_PO_OBJECT_CLASS_LINK, "Link" },
- { DIS_PO_OBJECT_CLASS_MINEFIELD_PARENT, "Minefield Parent" },
- { DIS_PO_OBJECT_CLASS_CHEMICAL, "Chemical" },
- { DIS_PO_OBJECT_CLASS_AlertUser, "Alert User" },
- { DIS_PO_OBJECT_CLASS_HAND_OFF, "Hand Off" },
- { DIS_PO_OBJECT_CLASS_CIRCUIT, "Circuit" },
- { DIS_PO_OBJECT_CLASS_CARGO, "Cargo" },
- { DIS_PO_OBJECT_CLASS_MCM_ROUTE, "Mcm Route" },
- { DIS_PO_OBJECT_CLASS_MESSAGE, "Message" },
- { 0, NULL }
-};
-
-const value_string DIS_PDU_EmitterName_Strings[] =
-{
- { DIS_EMITTER_NAME_10, "1RL138" },
- { DIS_EMITTER_NAME_45, "1226 DECCA MIL" },
- { DIS_EMITTER_NAME_80, "9GR400" },
- { DIS_EMITTER_NAME_90, "9GR600" },
- { DIS_EMITTER_NAME_135, "9LV 200 TA" },
- { DIS_EMITTER_NAME_180, "9LV 200 TV" },
- { DIS_EMITTER_NAME_225, "A310Z" },
- { DIS_EMITTER_NAME_270, "A325A" },
- { DIS_EMITTER_NAME_315, "A346Z" },
- { DIS_EMITTER_NAME_360, "A353B" },
- { DIS_EMITTER_NAME_405, "A372A" },
- { DIS_EMITTER_NAME_450, "A372B" },
- { DIS_EMITTER_NAME_495, "A372C" },
- { DIS_EMITTER_NAME_540, "A377A" },
- { DIS_EMITTER_NAME_585, "A377B" },
- { DIS_EMITTER_NAME_630, "A380Z" },
- { DIS_EMITTER_NAME_675, "A381Z" },
- { DIS_EMITTER_NAME_720, "A398Z" },
- { DIS_EMITTER_NAME_765, "A403Z" },
- { DIS_EMITTER_NAME_810, "A409A" },
- { DIS_EMITTER_NAME_855, "A418A" },
- { DIS_EMITTER_NAME_900, "A419Z" },
- { DIS_EMITTER_NAME_945, "A429Z" },
- { DIS_EMITTER_NAME_990, "A432Z" },
- { DIS_EMITTER_NAME_1035, "A434Z" },
- { DIS_EMITTER_NAME_1080, "A401A" },
- { DIS_EMITTER_NAME_1095, "AA-12 Seeker" },
- { DIS_EMITTER_NAME_1100, "Agave" },
- { DIS_EMITTER_NAME_1125, "AGRION 15" },
- { DIS_EMITTER_NAME_1170, "AI MK 23" },
- { DIS_EMITTER_NAME_1215, "AIDA II" },
- { DIS_EMITTER_NAME_1260, "Albatros MK2" },
- { DIS_EMITTER_NAME_1280, "1L13-3 (55G6), Box Spring" },
- { DIS_EMITTER_NAME_1282, "1L13-3 (55G6), Box Spring B" },
- { DIS_EMITTER_NAME_1305, "ANA SPS 502" },
- { DIS_EMITTER_NAME_1350, "ANRITSU Electric AR-30A" },
- { DIS_EMITTER_NAME_1395, "Antilope V" },
- { DIS_EMITTER_NAME_1400, "AN/ALE-50" },
- { DIS_EMITTER_NAME_1440, "AN/ALQ 99" },
- { DIS_EMITTER_NAME_1485, "AN/ALQ-100" },
- { DIS_EMITTER_NAME_1530, "AN/ALQ-101" },
- { DIS_EMITTER_NAME_1575, "AN/ALQ-119" },
- { DIS_EMITTER_NAME_1585, "AN/ALQ-122" },
- { DIS_EMITTER_NAME_1620, "AN/ALQ-126A" },
- { DIS_EMITTER_NAME_1626, "AN/ALQ-131" },
- { DIS_EMITTER_NAME_1628, "AN/ALQ-135C/D" },
- { DIS_EMITTER_NAME_1630, "AN/ALQ-144A(V)3" },
- { DIS_EMITTER_NAME_1632, "AN/ALQ-153" },
- { DIS_EMITTER_NAME_1634, "AN/ALQ-155" },
- { DIS_EMITTER_NAME_1636, "AN/ALQ-161/A" },
- { DIS_EMITTER_NAME_1638, "AN/ALQ-162" },
- { DIS_EMITTER_NAME_1640, "AN/ALQ-165" },
- { DIS_EMITTER_NAME_1642, "AN/ALQ-167" },
- { DIS_EMITTER_NAME_1644, "AN/ALQ-172(V)2" },
- { DIS_EMITTER_NAME_1646, "AN/ALQ-176" },
- { DIS_EMITTER_NAME_1648, "AN/ALQ-184" },
- { DIS_EMITTER_NAME_1650, "AN/ALQ-188" },
- { DIS_EMITTER_NAME_1652, "AN/ALR-56" },
- { DIS_EMITTER_NAME_1654, "AN/ALR-69" },
- { DIS_EMITTER_NAME_1656, "AN/ALT-16A" },
- { DIS_EMITTER_NAME_1658, "AN/ALT-28" },
- { DIS_EMITTER_NAME_1660, "AN/ALT-32A" },
- { DIS_EMITTER_NAME_1665, "AN/APD 10" },
- { DIS_EMITTER_NAME_1710, "AN/APG 53" },
- { DIS_EMITTER_NAME_1755, "AN/APG 59" },
- { DIS_EMITTER_NAME_1800, "AN/APG-63" },
- { DIS_EMITTER_NAME_1805, "AN/APG-63(V)1" },
- { DIS_EMITTER_NAME_1807, "AN/APG-63(V)2" },
- { DIS_EMITTER_NAME_1809, "AN/APG-63(V)3" },
- { DIS_EMITTER_NAME_1845, "AN/APG 65" },
- { DIS_EMITTER_NAME_1870, "AN/APG-66" },
- { DIS_EMITTER_NAME_1890, "AN/APG 68" },
- { DIS_EMITTER_NAME_1935, "AN/APG 70" },
- { DIS_EMITTER_NAME_1945, "AN/APG-73" },
- { DIS_EMITTER_NAME_1960, "AN/APG-77" },
- { DIS_EMITTER_NAME_1970, "AN/APG-78" },
- { DIS_EMITTER_NAME_1980, "AN/APG-502" },
- { DIS_EMITTER_NAME_2025, "AN/APN-1" },
- { DIS_EMITTER_NAME_2070, "AN/APN-22" },
- { DIS_EMITTER_NAME_2115, "AN/APN 59" },
- { DIS_EMITTER_NAME_2160, "AN/APN-69" },
- { DIS_EMITTER_NAME_2205, "AN/APN-81" },
- { DIS_EMITTER_NAME_2250, "AN/APN-117" },
- { DIS_EMITTER_NAME_2295, "AN/APN-118" },
- { DIS_EMITTER_NAME_2340, "AN/APN-130" },
- { DIS_EMITTER_NAME_2385, "AN/APN-131" },
- { DIS_EMITTER_NAME_2430, "AN/APN-133" },
- { DIS_EMITTER_NAME_2475, "AN/APN-134" },
- { DIS_EMITTER_NAME_2520, "AN/APN-147" },
- { DIS_EMITTER_NAME_2565, "AN/APN-150" },
- { DIS_EMITTER_NAME_2610, "AN/APN-153" },
- { DIS_EMITTER_NAME_2655, "AN/APN 154" },
- { DIS_EMITTER_NAME_2700, "AN/APN-155" },
- { DIS_EMITTER_NAME_2745, "AN/APN-159" },
- { DIS_EMITTER_NAME_2790, "AN/APN-182" },
- { DIS_EMITTER_NAME_2835, "AN/APN-187" },
- { DIS_EMITTER_NAME_2880, "AN/APN-190" },
- { DIS_EMITTER_NAME_2925, "AN/APN 194" },
- { DIS_EMITTER_NAME_2970, "AN/APN-195" },
- { DIS_EMITTER_NAME_3015, "AN/APN-198" },
- { DIS_EMITTER_NAME_3060, "AN/APN-200" },
- { DIS_EMITTER_NAME_3105, "AN/APN 202" },
- { DIS_EMITTER_NAME_3150, "AN/APN-217" },
- { DIS_EMITTER_NAME_3152, "AN/APN-218" },
- { DIS_EMITTER_NAME_3160, "AN/APN-238" },
- { DIS_EMITTER_NAME_3162, "AN/APN-239" },
- { DIS_EMITTER_NAME_3164, "AN/APN-241" },
- { DIS_EMITTER_NAME_3166, "AN/APN-242" },
- { DIS_EMITTER_NAME_3195, "AN/APN-506" },
- { DIS_EMITTER_NAME_3240, "AN/APQ-72" },
- { DIS_EMITTER_NAME_3285, "AN/APQ-99" },
- { DIS_EMITTER_NAME_3330, "AN/APQ 100" },
- { DIS_EMITTER_NAME_3375, "AN/APQ-102" },
- { DIS_EMITTER_NAME_3420, "AN/APQ-109" },
- { DIS_EMITTER_NAME_3465, "AN/APQ 113" },
- { DIS_EMITTER_NAME_3510, "AN/APQ 120" },
- { DIS_EMITTER_NAME_3555, "AN/APQ 126" },
- { DIS_EMITTER_NAME_3600, "AN/APQ-128" },
- { DIS_EMITTER_NAME_3645, "AN/APQ-129" },
- { DIS_EMITTER_NAME_3690, "AN/APQ 148" },
- { DIS_EMITTER_NAME_3735, "AN/APQ-153" },
- { DIS_EMITTER_NAME_3780, "AN/APQ 159" },
- { DIS_EMITTER_NAME_3785, "AN/APQ-164" },
- { DIS_EMITTER_NAME_3788, "AN/APQ-166" },
- { DIS_EMITTER_NAME_3795, "AN/APQ-181" },
- { DIS_EMITTER_NAME_3820, "AN/APS-31" },
- { DIS_EMITTER_NAME_3825, "AN/APS-42" },
- { DIS_EMITTER_NAME_3870, "AN/APS 80" },
- { DIS_EMITTER_NAME_3915, "AN/APS-88" },
- { DIS_EMITTER_NAME_3960, "AN/APS 115" },
- { DIS_EMITTER_NAME_4005, "AN/APS 116" },
- { DIS_EMITTER_NAME_4050, "AN/APS-120" },
- { DIS_EMITTER_NAME_4095, "AN/APS 121" },
- { DIS_EMITTER_NAME_4140, "AN/APS 124" },
- { DIS_EMITTER_NAME_4185, "AN/APS 125" },
- { DIS_EMITTER_NAME_4230, "AN/APS-128" },
- { DIS_EMITTER_NAME_4275, "AN/APS 130" },
- { DIS_EMITTER_NAME_4320, "AN/APS 133" },
- { DIS_EMITTER_NAME_4365, "AN/APS-134" },
- { DIS_EMITTER_NAME_4410, "AN/APS 137" },
- { DIS_EMITTER_NAME_4455, "AN/APS-138" },
- { DIS_EMITTER_NAME_4465, "AN/APS-143 (V) 1" },
- { DIS_EMITTER_NAME_4500, "AN/APW 22" },
- { DIS_EMITTER_NAME_4545, "AN/APW 23" },
- { DIS_EMITTER_NAME_4590, "AN/APX-6" },
- { DIS_EMITTER_NAME_4635, "AN/APX 7" },
- { DIS_EMITTER_NAME_4680, "AN/APX 39" },
- { DIS_EMITTER_NAME_4725, "AN/APX-72" },
- { DIS_EMITTER_NAME_4770, "AN/APX 76" },
- { DIS_EMITTER_NAME_4815, "AN/APX 78" },
- { DIS_EMITTER_NAME_4860, "AN/APX 101" },
- { DIS_EMITTER_NAME_4870, "AN/APX-113 AIFF" },
- { DIS_EMITTER_NAME_4900, "AN/APY-1" },
- { DIS_EMITTER_NAME_4905, "AN/APY 2" },
- { DIS_EMITTER_NAME_4950, "AN/APY 3" },
- { DIS_EMITTER_NAME_4953, "AN/APY-8, LYNX(tm)" },
- { DIS_EMITTER_NAME_4995, "AN/ARN 21" },
- { DIS_EMITTER_NAME_5040, "AN/ARN 52" },
- { DIS_EMITTER_NAME_5085, "AN/ARN 84" },
- { DIS_EMITTER_NAME_5130, "AN/ARN 118" },
- { DIS_EMITTER_NAME_5175, "AN/ARW 73" },
- { DIS_EMITTER_NAME_5220, "AN/ASB 1" },
- { DIS_EMITTER_NAME_5265, "AN/ASG 21" },
- { DIS_EMITTER_NAME_5280, "AN/ASQ-108" },
- { DIS_EMITTER_NAME_5310, "AN/AWG 9" },
- { DIS_EMITTER_NAME_5355, "AN/BPS-9" },
- { DIS_EMITTER_NAME_5400, "AN/BPS 15" },
- { DIS_EMITTER_NAME_5405, "AN/BPS-16" },
- { DIS_EMITTER_NAME_5420, "AN/CRM-30" },
- { DIS_EMITTER_NAME_5430, "AN/DPW-23" },
- { DIS_EMITTER_NAME_5445, "AN/DSQ 26 Phoenix MH" },
- { DIS_EMITTER_NAME_5490, "AN/DSQ 28 Harpoon MH" },
- { DIS_EMITTER_NAME_5495, "AN/FPN-40" },
- { DIS_EMITTER_NAME_5500, "AN/FPN-62" },
- { DIS_EMITTER_NAME_5505, "AN/FPS-16" },
- { DIS_EMITTER_NAME_5507, "AN/FPS-18" },
- { DIS_EMITTER_NAME_5508, "AN/FPS-89" },
- { DIS_EMITTER_NAME_5510, "AN/FPS-117" },
- { DIS_EMITTER_NAME_5515, "AN/FPS-20R" },
- { DIS_EMITTER_NAME_5520, "AN/FPS-77" },
- { DIS_EMITTER_NAME_5525, "AN/FPS-103" },
- { DIS_EMITTER_NAME_5527, "AN/GPN-12" },
- { DIS_EMITTER_NAME_5530, "AN/GPX-6" },
- { DIS_EMITTER_NAME_5535, "AN/GPX 8" },
- { DIS_EMITTER_NAME_5537, "AN/GRN-12" },
- { DIS_EMITTER_NAME_5540, "AN/MPQ-10" },
- { DIS_EMITTER_NAME_5545, "AN/MPQ-33/39/46/57/61 (HPIR) ILL" },
- { DIS_EMITTER_NAME_5550, "AN/MPQ-34/48/55/62 (CWAR) TA" },
- { DIS_EMITTER_NAME_5551, "AN/MPQ-49" },
- { DIS_EMITTER_NAME_5555, "AN/MPQ-35/50 (PAR) TA" },
- { DIS_EMITTER_NAME_5560, "AN/MPQ-37/51 (ROR) TT" },
- { DIS_EMITTER_NAME_5570, "AN/MPQ-53" },
- { DIS_EMITTER_NAME_5571, "AN/MPQ-63" },
- { DIS_EMITTER_NAME_5575, "AN/MPQ-64" },
- { DIS_EMITTER_NAME_5580, "AN/SPG-34" },
- { DIS_EMITTER_NAME_5625, "AN/SPG 50" },
- { DIS_EMITTER_NAME_5670, "AN/SPG 51" },
- { DIS_EMITTER_NAME_5715, "AN/SPG-51 CWI TI" },
- { DIS_EMITTER_NAME_5760, "AN/SPG-51 FC" },
- { DIS_EMITTER_NAME_5805, "AN/SPG 52" },
- { DIS_EMITTER_NAME_5850, "AN/SPG-53" },
- { DIS_EMITTER_NAME_5895, "AN/SPG 55B" },
- { DIS_EMITTER_NAME_5940, "AN/SPG 60" },
- { DIS_EMITTER_NAME_5985, "AN/SPG 62" },
- { DIS_EMITTER_NAME_6030, "AN/SPN 35" },
- { DIS_EMITTER_NAME_6075, "AN/SPN 43" },
- { DIS_EMITTER_NAME_6120, "AN/SPQ-2" },
- { DIS_EMITTER_NAME_6165, "AN/SPQ 9" },
- { DIS_EMITTER_NAME_6210, "AN/SPS-4" },
- { DIS_EMITTER_NAME_6255, "AN/SPS-5" },
- { DIS_EMITTER_NAME_6300, "AN/SPS-5C" },
- { DIS_EMITTER_NAME_6345, "AN/SPS-6" },
- { DIS_EMITTER_NAME_6390, "AN/SPS 10" },
- { DIS_EMITTER_NAME_6435, "AN/SPS 21" },
- { DIS_EMITTER_NAME_6480, "AN/SPS-28" },
- { DIS_EMITTER_NAME_6525, "AN/SPS-37" },
- { DIS_EMITTER_NAME_6570, "AN/SPS-39A" },
- { DIS_EMITTER_NAME_6615, "AN/SPS 40" },
- { DIS_EMITTER_NAME_6660, "AN/SPS-41" },
- { DIS_EMITTER_NAME_6705, "AN/SPS-48" },
- { DIS_EMITTER_NAME_6750, "AN/SPS-48C" },
- { DIS_EMITTER_NAME_6752, "AN/SPS-48E" },
- { DIS_EMITTER_NAME_6795, "AN/SPS-49" },
- { DIS_EMITTER_NAME_6796, "AN/SPS-49(V)1" },
- { DIS_EMITTER_NAME_6797, "AN/SPS-49(V)2" },
- { DIS_EMITTER_NAME_6798, "AN/SPS-49(V)3" },
- { DIS_EMITTER_NAME_6799, "AN/SPS-49(V)4" },
- { DIS_EMITTER_NAME_6800, "AN/SPS-49(V)5" },
- { DIS_EMITTER_NAME_6801, "AN/SPS-49(V)6" },
- { DIS_EMITTER_NAME_6802, "AN/SPS-49(V)7" },
- { DIS_EMITTER_NAME_6803, "AN/SPS-49(V)8" },
- { DIS_EMITTER_NAME_6804, "AN/SPS-49A(V)1" },
- { DIS_EMITTER_NAME_6840, "AN/SPS 52" },
- { DIS_EMITTER_NAME_6885, "AN/SPS 53" },
- { DIS_EMITTER_NAME_6930, "AN/SPS 55" },
- { DIS_EMITTER_NAME_6975, "AN/SPS-55 SS" },
- { DIS_EMITTER_NAME_7020, "AN/SPS-58" },
- { DIS_EMITTER_NAME_7065, "AN/SPS 59" },
- { DIS_EMITTER_NAME_7110, "AN/SPS 64" },
- { DIS_EMITTER_NAME_7155, "AN/SPS 65" },
- { DIS_EMITTER_NAME_7200, "AN/SPS 67" },
- { DIS_EMITTER_NAME_7245, "AN/SPY-1" },
- { DIS_EMITTER_NAME_7250, "AN/SPY-1A" },
- { DIS_EMITTER_NAME_7252, "AN/SPY-1B" },
- { DIS_EMITTER_NAME_7253, "AN/SPY-1B(V)" },
- { DIS_EMITTER_NAME_7260, "AN/SPY-1D" },
- { DIS_EMITTER_NAME_7261, "AN/SPY-1D(V)" },
- { DIS_EMITTER_NAME_7265, "AN/SPY-1F" },
- { DIS_EMITTER_NAME_7270, "AN/TPN-17" },
- { DIS_EMITTER_NAME_7275, "AN/TPN-24" },
- { DIS_EMITTER_NAME_7280, "AN/TPQ-18" },
- { DIS_EMITTER_NAME_7295, "AN/TPQ-36" },
- { DIS_EMITTER_NAME_7300, "AN/TPQ-37" },
- { DIS_EMITTER_NAME_7301, "AN/TPQ-38 (V8)" },
- { DIS_EMITTER_NAME_7303, "AN/TPQ-47" },
- { DIS_EMITTER_NAME_7305, "AN/TPS-43" },
- { DIS_EMITTER_NAME_7310, "AN/TPS-43E" },
- { DIS_EMITTER_NAME_7315, "AN/TPS-59" },
- { DIS_EMITTER_NAME_7320, "AN/TPS-63" },
- { DIS_EMITTER_NAME_7322, "AN/TPS-70 (V) 1" },
- { DIS_EMITTER_NAME_7325, "AN/TPS-75" },
- { DIS_EMITTER_NAME_7330, "AN/TPX-46(V)7" },
- { DIS_EMITTER_NAME_7335, "AN/ULQ-6A" },
- { DIS_EMITTER_NAME_7380, "AN/UPN 25" },
- { DIS_EMITTER_NAME_7425, "AN/UPS 1" },
- { DIS_EMITTER_NAME_7426, "AN/UPS-2" },
- { DIS_EMITTER_NAME_7470, "AN/UPX 1" },
- { DIS_EMITTER_NAME_7515, "AN/UPX 5" },
- { DIS_EMITTER_NAME_7560, "AN/UPX 11" },
- { DIS_EMITTER_NAME_7605, "AN/UPX 12" },
- { DIS_EMITTER_NAME_7650, "AN/UPX 17" },
- { DIS_EMITTER_NAME_7695, "AN/UPX 23" },
- { DIS_EMITTER_NAME_7740, "AN/VPS 2" },
- { DIS_EMITTER_NAME_7785, "Apelco AD 7 7" },
- { DIS_EMITTER_NAME_7830, "APG 71" },
- { DIS_EMITTER_NAME_7875, "APN 148" },
- { DIS_EMITTER_NAME_7920, "APN 227" },
- { DIS_EMITTER_NAME_7965, "(deleted)" },
- { DIS_EMITTER_NAME_8010, "(deleted)" },
- { DIS_EMITTER_NAME_8055, "(deleted)" },
- { DIS_EMITTER_NAME_8100, "APS 504 V3" },
- { DIS_EMITTER_NAME_8105, "AR 3D" },
- { DIS_EMITTER_NAME_8112, "Plessey AR-5" },
- { DIS_EMITTER_NAME_8115, "AR 320" },
- { DIS_EMITTER_NAME_8120, "AR 327" },
- { DIS_EMITTER_NAME_8145, "AR M31" },
- { DIS_EMITTER_NAME_8190, "ARI 5954" },
- { DIS_EMITTER_NAME_8235, "ARI 5955" },
- { DIS_EMITTER_NAME_8280, "ARI 5979" },
- { DIS_EMITTER_NAME_8325, "ARINC 564 BNDX/KING RDR 1E" },
- { DIS_EMITTER_NAME_8370, "ARINC 700 BNDX/KING RDR 1E" },
- { DIS_EMITTER_NAME_8375, "ARK-1" },
- { DIS_EMITTER_NAME_8380, "ARSR-3" },
- { DIS_EMITTER_NAME_8390, "ARSR-18" },
- { DIS_EMITTER_NAME_8415, "AS 2 Kipper" },
- { DIS_EMITTER_NAME_8460, "AS 2 Kipper MH" },
- { DIS_EMITTER_NAME_8505, "AS 4 Kitchen" },
- { DIS_EMITTER_NAME_8550, "AS 4 Kitchen MH" },
- { DIS_EMITTER_NAME_8595, "AS 5 Kelt MH" },
- { DIS_EMITTER_NAME_8640, "AS 6 Kingfish MH" },
- { DIS_EMITTER_NAME_8685, "AS 7 Kerry" },
- { DIS_EMITTER_NAME_8730, "AS 7 Kerry MG" },
- { DIS_EMITTER_NAME_8735, "AS 15 KENT altimeter" },
- { DIS_EMITTER_NAME_8760, "Aspide AAM/SAM ILL" },
- { DIS_EMITTER_NAME_8772, "ASR-4" },
- { DIS_EMITTER_NAME_8775, "ASR O" },
- { DIS_EMITTER_NAME_8780, "ASR-5" },
- { DIS_EMITTER_NAME_8782, "ASR-7" },
- { DIS_EMITTER_NAME_8785, "ASR-8" },
- { DIS_EMITTER_NAME_8790, "ASR-9" },
- { DIS_EMITTER_NAME_8812, "Raytheon ASR-10SS" },
- { DIS_EMITTER_NAME_8820, "AT 2 Swatter MG" },
- { DIS_EMITTER_NAME_8840, "ATCR-33" },
- { DIS_EMITTER_NAME_8845, "ATCR 33 K/M" },
- { DIS_EMITTER_NAME_8865, "Atlas Elektronk TRS N" },
- { DIS_EMITTER_NAME_8870, "ATLAS-9740 VTS" },
- { DIS_EMITTER_NAME_8910, "AVG 65" },
- { DIS_EMITTER_NAME_8955, "AVH 7" },
- { DIS_EMITTER_NAME_9000, "AVQ 20" },
- { DIS_EMITTER_NAME_9045, "AVQ30X" },
- { DIS_EMITTER_NAME_9075, "AVQ-50 (RCA)" },
- { DIS_EMITTER_NAME_9090, "AVQ 70" },
- { DIS_EMITTER_NAME_9135, "AWS 5" },
- { DIS_EMITTER_NAME_9180, "AWS 6" },
- { DIS_EMITTER_NAME_9200, "B597Z" },
- { DIS_EMITTER_NAME_9205, "B636Z" },
- { DIS_EMITTER_NAME_9225, "Back Net A B" },
- { DIS_EMITTER_NAME_9270, "Back Trap" },
- { DIS_EMITTER_NAME_9310, "BALTYK" },
- { DIS_EMITTER_NAME_9315, "Ball End" },
- { DIS_EMITTER_NAME_9360, "Ball Gun" },
- { DIS_EMITTER_NAME_9405, "Band Stand" },
- { DIS_EMITTER_NAME_9450, "P-35/37 (A); P-50 (B), Bar Lock" },
- { DIS_EMITTER_NAME_9495, "Bass Tilt" },
- { DIS_EMITTER_NAME_9540, "Beacon" },
- { DIS_EMITTER_NAME_9585, "Bean Sticks" },
- { DIS_EMITTER_NAME_9630, "Bee Hind" },
- { DIS_EMITTER_NAME_9640, "Bell Crown A" },
- { DIS_EMITTER_NAME_9642, "Bell Crown B" },
- { DIS_EMITTER_NAME_9645, "BIG BACK" },
- { DIS_EMITTER_NAME_9660, "Big Bird" },
- { DIS_EMITTER_NAME_9675, "Big Bulge" },
- { DIS_EMITTER_NAME_9720, "Big Bulge A" },
- { DIS_EMITTER_NAME_9765, "Big Bulge B" },
- { DIS_EMITTER_NAME_9780, "SNAR-10, Big Fred" },
- { DIS_EMITTER_NAME_9810, "Big Mesh" },
- { DIS_EMITTER_NAME_9855, "Big Net" },
- { DIS_EMITTER_NAME_9885, "9S15MT, Bill Board" },
- { DIS_EMITTER_NAME_9900, "Bill Fold" },
- { DIS_EMITTER_NAME_9905, "Blowpipe MG" },
- { DIS_EMITTER_NAME_9930, "Blue Fox, Sea Harrier FRS Mk 1/5" },
- { DIS_EMITTER_NAME_9935, "Blue Vixen, Sea Harrier F/A Mk 2" },
- { DIS_EMITTER_NAME_9945, "Blue Silk" },
- { DIS_EMITTER_NAME_9990, "Blue Parrot" },
- { DIS_EMITTER_NAME_10035, "Blue Orchid" },
- { DIS_EMITTER_NAME_10080, "Boat Sail" },
- { DIS_EMITTER_NAME_10125, "Bofors Electronic 9LV 331" },
- { DIS_EMITTER_NAME_10170, "Bofors Ericsson Sea Giraffe 50 HC" },
- { DIS_EMITTER_NAME_10215, "Bowl Mesh" },
- { DIS_EMITTER_NAME_10260, "Box Brick" },
- { DIS_EMITTER_NAME_10305, "Box Tail" },
- { DIS_EMITTER_NAME_10350, "BPS 11A" },
- { DIS_EMITTER_NAME_10395, "BPS 14" },
- { DIS_EMITTER_NAME_10440, "BPS 15A" },
- { DIS_EMITTER_NAME_10485, "BR-15 Tokyo KEIKI" },
- { DIS_EMITTER_NAME_10510, "BRIDGEMASTE" },
- { DIS_EMITTER_NAME_10530, "Bread Bin" },
- { DIS_EMITTER_NAME_10575, "BT 271" },
- { DIS_EMITTER_NAME_10620, "BX 732" },
- { DIS_EMITTER_NAME_10665, "Buzz Stand" },
- { DIS_EMITTER_NAME_10710, "C 5A Multi Mode Radar" },
- { DIS_EMITTER_NAME_10755, "Caiman" },
- { DIS_EMITTER_NAME_10800, "Cake Stand" },
- { DIS_EMITTER_NAME_10845, "Calypso C61" },
- { DIS_EMITTER_NAME_10890, "Calypso Ii" },
- { DIS_EMITTER_NAME_10895, "Cardion Coastal" },
- { DIS_EMITTER_NAME_10935, "Castor Ii" },
- { DIS_EMITTER_NAME_10940, "Castor 2J TT (Crotale NG)" },
- { DIS_EMITTER_NAME_10980, "Cat House" },
- { DIS_EMITTER_NAME_10985, "CDR-431" },
- { DIS_EMITTER_NAME_11000, "Chair Back TT" },
- { DIS_EMITTER_NAME_11010, "Chair Back ILL" },
- { DIS_EMITTER_NAME_11025, "Cheese Brick" },
- { DIS_EMITTER_NAME_11070, "Clam Pipe" },
- { DIS_EMITTER_NAME_11115, "Clamshell" },
- { DIS_EMITTER_NAME_11160, "Collins WXR-700X" },
- { DIS_EMITTER_NAME_11205, "Collins DN 101" },
- { DIS_EMITTER_NAME_11250, "Contraves Sea Hunter MK 4" },
- { DIS_EMITTER_NAME_11260, "Corn Can" },
- { DIS_EMITTER_NAME_11270, "CR-105 RMCA" },
- { DIS_EMITTER_NAME_11295, "Cross Bird" },
- { DIS_EMITTER_NAME_11340, "Cross Dome" },
- { DIS_EMITTER_NAME_11385, "Cross Legs" },
- { DIS_EMITTER_NAME_11430, "Cross Out" },
- { DIS_EMITTER_NAME_11475, "Cross Slot" },
- { DIS_EMITTER_NAME_11520, "Cross Sword" },
- { DIS_EMITTER_NAME_11565, "Cross Up" },
- { DIS_EMITTER_NAME_11610, "Cross Sword FC" },
- { DIS_EMITTER_NAME_11655, "Crotale Acquisition TA, THD-5000" },
- { DIS_EMITTER_NAME_11660, "Crotale NG TA, Griffon" },
- { DIS_EMITTER_NAME_11665, "Crotale TT" },
- { DIS_EMITTER_NAME_11700, "Crotale MGMissile System" },
- { DIS_EMITTER_NAME_11745, "CSS C 3C CAS 1M1 M2 MH" },
- { DIS_EMITTER_NAME_11790, "CSS C 2B HY 1A MH" },
- { DIS_EMITTER_NAME_11835, "CWS 2" },
- { DIS_EMITTER_NAME_11880, "Cylinder Head" },
- { DIS_EMITTER_NAME_11925, "Cyrano II" },
- { DIS_EMITTER_NAME_11970, "Cyrano IV" },
- { DIS_EMITTER_NAME_11975, "Cyrano IV-M" },
- { DIS_EMITTER_NAME_12010, "DA-01/00" },
- { DIS_EMITTER_NAME_12015, "DA 05 00" },
- { DIS_EMITTER_NAME_12060, "Dawn" },
- { DIS_EMITTER_NAME_12105, "Dead Duck" },
- { DIS_EMITTER_NAME_12110, "DECCA-20 V90/9" },
- { DIS_EMITTER_NAME_12111, "DECCA-20 V90S" },
- { DIS_EMITTER_NAME_12150, "DECCA 45" },
- { DIS_EMITTER_NAME_12195, "DECCA 50" },
- { DIS_EMITTER_NAME_12240, "DECCA 110" },
- { DIS_EMITTER_NAME_12285, "DECCA 170" },
- { DIS_EMITTER_NAME_12292, "DECCA HF 2" },
- { DIS_EMITTER_NAME_12330, "DECCA 202" },
- { DIS_EMITTER_NAME_12375, "DECCA D202" },
- { DIS_EMITTER_NAME_12420, "DECCA 303" },
- { DIS_EMITTER_NAME_12430, "DECCA 535" },
- { DIS_EMITTER_NAME_12465, "DECCA 626" },
- { DIS_EMITTER_NAME_12510, "DECCA 629" },
- { DIS_EMITTER_NAME_12555, "DECCA 914" },
- { DIS_EMITTER_NAME_12600, "DECCA 916" },
- { DIS_EMITTER_NAME_12610, "DECCA 926" },
- { DIS_EMITTER_NAME_12645, "DECCA 1226 Commercial" },
- { DIS_EMITTER_NAME_12690, "DECCA 1626" },
- { DIS_EMITTER_NAME_12735, "DECCA 2459" },
- { DIS_EMITTER_NAME_12780, "DECCA AWS 1" },
- { DIS_EMITTER_NAME_12782, "DECCA AWS 2" },
- { DIS_EMITTER_NAME_12785, "DECCA AWS 4" },
- { DIS_EMITTER_NAME_12787, "DECCA AWS-4 (2)" },
- { DIS_EMITTER_NAME_12800, "DECCA MAR" },
- { DIS_EMITTER_NAME_12805, "DECCA RM 326" },
- { DIS_EMITTER_NAME_12825, "DECCA RM 416" },
- { DIS_EMITTER_NAME_12870, "DECCA RM 914" },
- { DIS_EMITTER_NAME_12915, "DECCA RM 1690" },
- { DIS_EMITTER_NAME_12960, "DECCA Super 101 MK 3" },
- { DIS_EMITTER_NAME_13005, "DISS 1" },
- { DIS_EMITTER_NAME_13050, "Rapier TTDN 181, DN 181" },
- { DIS_EMITTER_NAME_13055, "Rapier 2000 TT, BLINDFIRE FSC TT" },
- { DIS_EMITTER_NAME_13095, "Dog Ear" },
- { DIS_EMITTER_NAME_13140, "Dog House" },
- { DIS_EMITTER_NAME_13185, "Don 2" },
- { DIS_EMITTER_NAME_13230, "Don A/B/2/Kay" },
- { DIS_EMITTER_NAME_13275, "Donets" },
- { DIS_EMITTER_NAME_13320, "Down Beat" },
- { DIS_EMITTER_NAME_13365, "DRAA 2A" },
- { DIS_EMITTER_NAME_13410, "DRAA 2B" },
- { DIS_EMITTER_NAME_13455, "DRAC 39" },
- { DIS_EMITTER_NAME_13500, "DRBC 30B" },
- { DIS_EMITTER_NAME_13545, "DRBC 31A" },
- { DIS_EMITTER_NAME_13590, "DRBC 32A" },
- { DIS_EMITTER_NAME_13635, "DRBC 32D" },
- { DIS_EMITTER_NAME_13680, "DRBC 33A" },
- { DIS_EMITTER_NAME_13725, "DRBI 10" },
- { DIS_EMITTER_NAME_13770, "DRBI 23" },
- { DIS_EMITTER_NAME_13815, "DRBJ 11B" },
- { DIS_EMITTER_NAME_13860, "DRBN 30" },
- { DIS_EMITTER_NAME_13905, "DRBN 32" },
- { DIS_EMITTER_NAME_13950, "DRBR 51" },
- { DIS_EMITTER_NAME_13995, "DRBV 20B" },
- { DIS_EMITTER_NAME_14040, "DRBV 22" },
- { DIS_EMITTER_NAME_14085, "DRBV 26C" },
- { DIS_EMITTER_NAME_14130, "DRBV 30" },
- { DIS_EMITTER_NAME_14175, "DRBV 50" },
- { DIS_EMITTER_NAME_14220, "DRBV 51" },
- { DIS_EMITTER_NAME_14265, "DRBV 51A" },
- { DIS_EMITTER_NAME_14310, "DRBV 51B" },
- { DIS_EMITTER_NAME_14355, "DRBV 51C" },
- { DIS_EMITTER_NAME_14400, "Drop Kick" },
- { DIS_EMITTER_NAME_14445, "DRUA 31" },
- { DIS_EMITTER_NAME_14490, "Drum Tilt" },
- { DIS_EMITTER_NAME_14535, "Drum Tilt A" },
- { DIS_EMITTER_NAME_14545, "Drum Tilt B" },
- { DIS_EMITTER_NAME_14580, "Dumbo" },
- { DIS_EMITTER_NAME_14600, "ECR-90" },
- { DIS_EMITTER_NAME_14625, "Egg Cup A/B" },
- { DIS_EMITTER_NAME_14670, "EKCO 190" },
- { DIS_EMITTER_NAME_14715, "EL M 2001B" },
- { DIS_EMITTER_NAME_14760, "EL M 2207" },
- { DIS_EMITTER_NAME_14770, "EL/M 2216(V)" },
- { DIS_EMITTER_NAME_14805, "ELTA EL/M 2221 GM STGR" },
- { DIS_EMITTER_NAME_14810, "ELTA SIS" },
- { DIS_EMITTER_NAME_14850, "EMD 2900" },
- { DIS_EMITTER_NAME_14895, "End Tray" },
- { DIS_EMITTER_NAME_14940, "Exocet 1" },
- { DIS_EMITTER_NAME_14985, "Exocet 1 MH" },
- { DIS_EMITTER_NAME_15030, "Exocet 2" },
- { DIS_EMITTER_NAME_15075, "Eye Bowl" },
- { DIS_EMITTER_NAME_15120, "Eye Shield" },
- { DIS_EMITTER_NAME_15140, "F332Z" },
- { DIS_EMITTER_NAME_15160, "FALCON" },
- { DIS_EMITTER_NAME_15165, "Fan Song A" },
- { DIS_EMITTER_NAME_15200, "Fan Song B/F TA" },
- { DIS_EMITTER_NAME_15210, "Fan Song B/F TT" },
- { DIS_EMITTER_NAME_15220, "Fan Song C/E TA" },
- { DIS_EMITTER_NAME_15230, "Fan Song C/E TT" },
- { DIS_EMITTER_NAME_15240, "Fan Song C/E MG" },
- { DIS_EMITTER_NAME_15255, "Fan Song B/FF MG" },
- { DIS_EMITTER_NAME_15300, "Fan Tail" },
- { DIS_EMITTER_NAME_15310, "FCR-1401" },
- { DIS_EMITTER_NAME_15345, "Fin Curve" },
- { DIS_EMITTER_NAME_15390, "Fire Can" },
- { DIS_EMITTER_NAME_15435, "Fire Dish" },
- { DIS_EMITTER_NAME_15470, "Fire Dome TA" },
- { DIS_EMITTER_NAME_15475, "Fire Dome TT" },
- { DIS_EMITTER_NAME_15480, "Fire Dome TI" },
- { DIS_EMITTER_NAME_15525, "Fire Iron" },
- { DIS_EMITTER_NAME_15570, "Fire Wheel" },
- { DIS_EMITTER_NAME_15615, "Fish Bowl" },
- { DIS_EMITTER_NAME_15660, "Flap Lid" },
- { DIS_EMITTER_NAME_15705, "Flap Truck" },
- { DIS_EMITTER_NAME_15750, "Flap Wheel" },
- { DIS_EMITTER_NAME_15795, "Flash Dance" },
- { DIS_EMITTER_NAME_15840, "P-15, Flat Face A B C D" },
- { DIS_EMITTER_NAME_15885, "Flat Screen" },
- { DIS_EMITTER_NAME_15930, "Flat Spin" },
- { DIS_EMITTER_NAME_15975, "Flat Twin" },
- { DIS_EMITTER_NAME_16020, "Fledermaus" },
- { DIS_EMITTER_NAME_16030, "FLYCATCHER" },
- { DIS_EMITTER_NAME_16065, "Fly Screen" },
- { DIS_EMITTER_NAME_16110, "Fly Screen A&B" },
- { DIS_EMITTER_NAME_16155, "Fly Trap B" },
- { DIS_EMITTER_NAME_16200, "Fog Lamp MG" },
- { DIS_EMITTER_NAME_16245, "Fog Lamp TT" },
- { DIS_EMITTER_NAME_16290, "Foil Two" },
- { DIS_EMITTER_NAME_16335, "Fox Hunter" },
- { DIS_EMITTER_NAME_16380, "FOX FIREFox Fire AL" },
- { DIS_EMITTER_NAME_16390, "FOX FIRE ILL" },
- { DIS_EMITTER_NAME_16400, "FR-151A" },
- { DIS_EMITTER_NAME_16410, "FR-1505 DA" },
- { DIS_EMITTER_NAME_16420, "FR-2000" },
- { DIS_EMITTER_NAME_16421, "FR-2855W" },
- { DIS_EMITTER_NAME_16425, "Front Dome" },
- { DIS_EMITTER_NAME_16470, "Front Door" },
- { DIS_EMITTER_NAME_16515, "Front Piece" },
- { DIS_EMITTER_NAME_16560, "Furuno" },
- { DIS_EMITTER_NAME_16561, "Furuno 1721" },
- { DIS_EMITTER_NAME_16605, "Furuno 701" },
- { DIS_EMITTER_NAME_16650, "Furuno 711 2" },
- { DIS_EMITTER_NAME_16695, "Furuno 2400" },
- { DIS_EMITTER_NAME_16740, "GA 01 00" },
- { DIS_EMITTER_NAME_16785, "Gage" },
- { DIS_EMITTER_NAME_16830, "Garpin" },
- { DIS_EMITTER_NAME_16875, "GEM BX 132" },
- { DIS_EMITTER_NAME_16880, "MPDR-12, Gepard TA" },
- { DIS_EMITTER_NAME_16884, "Gepard TT" },
- { DIS_EMITTER_NAME_16888, "GERAN-F" },
- { DIS_EMITTER_NAME_16900, "GIRAFFE" },
- { DIS_EMITTER_NAME_16915, "Gin Sling TA" },
- { DIS_EMITTER_NAME_16920, "Gin Sling, Gin Sling TT" },
- { DIS_EMITTER_NAME_16925, "Gin Sling MG" },
- { DIS_EMITTER_NAME_16945, "GPN-22" },
- { DIS_EMITTER_NAME_16950, "GRN-9" },
- { DIS_EMITTER_NAME_16965, "Green Stain" },
- { DIS_EMITTER_NAME_17010, "Grid Bow" },
- { DIS_EMITTER_NAME_17025, "9S32, GRILL PAN TT" },
- { DIS_EMITTER_NAME_17055, "Guardsman" },
- { DIS_EMITTER_NAME_17070, "RPK-2, GUN DISH (ZSU-23/4)" },
- { DIS_EMITTER_NAME_17100, "Hair Net" },
- { DIS_EMITTER_NAME_17145, "Half Plate A" },
- { DIS_EMITTER_NAME_17190, "Half Plate B" },
- { DIS_EMITTER_NAME_17220, "HARD" },
- { DIS_EMITTER_NAME_17235, "Hawk Screech" },
- { DIS_EMITTER_NAME_17280, "Head Light A" },
- { DIS_EMITTER_NAME_17325, "Head Lights" },
- { DIS_EMITTER_NAME_17370, "Head Lights C" },
- { DIS_EMITTER_NAME_17415, "Head Lights MG A" },
- { DIS_EMITTER_NAME_17460, "Head Lights MG B" },
- { DIS_EMITTER_NAME_17505, "Head Lights TT" },
- { DIS_EMITTER_NAME_17550, "Head Net" },
- { DIS_EMITTER_NAME_17595, "Hen Egg" },
- { DIS_EMITTER_NAME_17640, "Hen House" },
- { DIS_EMITTER_NAME_17685, "Hen Nest" },
- { DIS_EMITTER_NAME_17730, "Hen Roost" },
- { DIS_EMITTER_NAME_17775, "High Brick" },
- { DIS_EMITTER_NAME_17820, "High Fix" },
- { DIS_EMITTER_NAME_17865, "High Lark TI" },
- { DIS_EMITTER_NAME_17910, "High Lark 1" },
- { DIS_EMITTER_NAME_17955, "High Lark 2" },
- { DIS_EMITTER_NAME_18000, "High Lark 4" },
- { DIS_EMITTER_NAME_18045, "High Lune" },
- { DIS_EMITTER_NAME_18090, "High Pole A&B" },
- { DIS_EMITTER_NAME_18135, "High Scoop" },
- { DIS_EMITTER_NAME_18150, "9S19MT, HIGH SCREEN" },
- { DIS_EMITTER_NAME_18180, "High Sieve" },
- { DIS_EMITTER_NAME_18200, "HN-503" },
- { DIS_EMITTER_NAME_18225, "Home Talk" },
- { DIS_EMITTER_NAME_18270, "Horn Spoon" },
- { DIS_EMITTER_NAME_18280, "HOT BRICK" },
- { DIS_EMITTER_NAME_18315, "Hot Flash" },
- { DIS_EMITTER_NAME_18320, "IRL144M, Hot Shot TA" },
- { DIS_EMITTER_NAME_18325, "IRL144M, Hot Shot TT" },
- { DIS_EMITTER_NAME_18330, "IRL144M, Hot Shot MG" },
- { DIS_EMITTER_NAME_18360, "IFF MK XII AIMS UPX 29" },
- { DIS_EMITTER_NAME_18405, "IFF MK XV" },
- { DIS_EMITTER_NAME_18410, "Javelin MG" },
- { DIS_EMITTER_NAME_18450, "Jay Bird" },
- { DIS_EMITTER_NAME_18460, "JRC-NMD-401" },
- { DIS_EMITTER_NAME_18495, "Jupiter" },
- { DIS_EMITTER_NAME_18540, "Jupiter II" },
- { DIS_EMITTER_NAME_18550, "JY-8" },
- { DIS_EMITTER_NAME_18555, "JY-9" },
- { DIS_EMITTER_NAME_18560, "JY-14" },
- { DIS_EMITTER_NAME_18585, "K376Z" },
- { DIS_EMITTER_NAME_18630, "Kelvin Hughes 2A" },
- { DIS_EMITTER_NAME_18675, "Kelvin Hughes 14/9" },
- { DIS_EMITTER_NAME_18720, "Kelvin Hughes type 1006" },
- { DIS_EMITTER_NAME_18765, "Kelvin Hughes type 1007" },
- { DIS_EMITTER_NAME_18785, "KH-902M" },
- { DIS_EMITTER_NAME_18810, "Kite Screech" },
- { DIS_EMITTER_NAME_18855, "Kite Screech A" },
- { DIS_EMITTER_NAME_18900, "Kite Screech B" },
- { DIS_EMITTER_NAME_18945, "Kivach" },
- { DIS_EMITTER_NAME_18990, "Knife Rest" },
- { DIS_EMITTER_NAME_19035, "P-10, Knife Rest B" },
- { DIS_EMITTER_NAME_19037, "KNIFE REST C" },
- { DIS_EMITTER_NAME_19050, "KR-75" },
- { DIS_EMITTER_NAME_19080, "KSA SRN" },
- { DIS_EMITTER_NAME_19125, "KSA TSR" },
- { DIS_EMITTER_NAME_19170, "Land Fall" },
- { DIS_EMITTER_NAME_19215, "Land Roll MG" },
- { DIS_EMITTER_NAME_19260, "Land Roll TA" },
- { DIS_EMITTER_NAME_19305, "Land Roll TT" },
- { DIS_EMITTER_NAME_19310, "LC-150" },
- { DIS_EMITTER_NAME_19350, "Leningraf" },
- { DIS_EMITTER_NAME_19395, "Light Bulb" },
- { DIS_EMITTER_NAME_19400, "LMT NRAI-6A" },
- { DIS_EMITTER_NAME_19440, "LN 55" },
- { DIS_EMITTER_NAME_19485, "Ln 66" },
- { DIS_EMITTER_NAME_19530, "Long Bow" },
- { DIS_EMITTER_NAME_19575, "Long Brick" },
- { DIS_EMITTER_NAME_19620, "Long Bull" },
- { DIS_EMITTER_NAME_19665, "Long Eye" },
- { DIS_EMITTER_NAME_19710, "Long Head" },
- { DIS_EMITTER_NAME_19755, "Long Talk" },
- { DIS_EMITTER_NAME_19800, "Long Track" },
- { DIS_EMITTER_NAME_19845, "Long Trough" },
- { DIS_EMITTER_NAME_19890, "Look Two" },
- { DIS_EMITTER_NAME_19935, "LORAN" },
- { DIS_EMITTER_NAME_19950, "Low Blow TA" },
- { DIS_EMITTER_NAME_19955, "Low Blow TT" },
- { DIS_EMITTER_NAME_19960, "Low Blow MG" },
- { DIS_EMITTER_NAME_19980, "Low Sieve" },
- { DIS_EMITTER_NAME_20025, "Low Trough" },
- { DIS_EMITTER_NAME_20040, "TRS-2050, LP-23" },
- { DIS_EMITTER_NAME_20070, "LW 08" },
- { DIS_EMITTER_NAME_20090, "M-1983 FCR" },
- { DIS_EMITTER_NAME_20115, "M22-40" },
- { DIS_EMITTER_NAME_20160, "M44" },
- { DIS_EMITTER_NAME_20205, "M401Z" },
- { DIS_EMITTER_NAME_20250, "M585Z" },
- { DIS_EMITTER_NAME_20295, "M588Z" },
- { DIS_EMITTER_NAME_20340, "MA 1 IFF Portion" },
- { DIS_EMITTER_NAME_20360, "MARELD" },
- { DIS_EMITTER_NAME_20385, "MA Type 909#" },
- { DIS_EMITTER_NAME_20430, "Marconi 1810" },
- { DIS_EMITTER_NAME_20475, "Marconi Canada HC 75" },
- { DIS_EMITTER_NAME_20495, "Marconi S 713" },
- { DIS_EMITTER_NAME_20520, "Marconi S 1802" },
- { DIS_EMITTER_NAME_20530, "Marconi S247" },
- { DIS_EMITTER_NAME_20565, "Marconi S 810" },
- { DIS_EMITTER_NAME_20585, "Marconi SA 10" },
- { DIS_EMITTER_NAME_20610, "Marconi type 967" },
- { DIS_EMITTER_NAME_20655, "Marconi type 968" },
- { DIS_EMITTER_NAME_20700, "Marconi type 992" },
- { DIS_EMITTER_NAME_20745, "Marconi/signaal type 1022" },
- { DIS_EMITTER_NAME_20790, "Marconi/signaal type 910" },
- { DIS_EMITTER_NAME_20835, "Marconi/signaal type 911" },
- { DIS_EMITTER_NAME_20880, "Marconi/signaal type 992R" },
- { DIS_EMITTER_NAME_20925, "Mesh Brick" },
- { DIS_EMITTER_NAME_20950, "Mirage ILL" },
- { DIS_EMITTER_NAME_20970, "MK 15 CIWS" },
- { DIS_EMITTER_NAME_21015, "MK-23" },
- { DIS_EMITTER_NAME_21060, "MK 23 TAS" },
- { DIS_EMITTER_NAME_21105, "MK 25" },
- { DIS_EMITTER_NAME_21150, "MK-35 M2" },
- { DIS_EMITTER_NAME_21195, "MK 92" },
- { DIS_EMITTER_NAME_21240, "MK-92 CAS" },
- { DIS_EMITTER_NAME_21285, "MK-92 STIR" },
- { DIS_EMITTER_NAME_21330, "MK 95" },
- { DIS_EMITTER_NAME_21340, "MLA-1" },
- { DIS_EMITTER_NAME_21375, "MM APS 705" },
- { DIS_EMITTER_NAME_21420, "MM SPG 74" },
- { DIS_EMITTER_NAME_21465, "MM SPG 75" },
- { DIS_EMITTER_NAME_21490, "MM SPN 703" },
- { DIS_EMITTER_NAME_21510, "MM SPS 702" },
- { DIS_EMITTER_NAME_21555, "MM SPS 768" },
- { DIS_EMITTER_NAME_21600, "MM SPS 774" },
- { DIS_EMITTER_NAME_21645, "Moon 4" },
- { DIS_EMITTER_NAME_21650, "MMRS" },
- { DIS_EMITTER_NAME_21690, "MPDR 18 X" },
- { DIS_EMITTER_NAME_21710, "MT-305X" },
- { DIS_EMITTER_NAME_21735, "Muff Cob" },
- { DIS_EMITTER_NAME_21780, "Mushroom" },
- { DIS_EMITTER_NAME_21825, "Mushroom 1" },
- { DIS_EMITTER_NAME_21870, "Mushroom 2" },
- { DIS_EMITTER_NAME_21880, "N920Z" },
- { DIS_EMITTER_NAME_21890, "Nanjing B" },
- { DIS_EMITTER_NAME_21895, "Nanjing C" },
- { DIS_EMITTER_NAME_21915, "Nayada" },
- { DIS_EMITTER_NAME_21960, "Neptun" },
- { DIS_EMITTER_NAME_21980, "NIKE TT" },
- { DIS_EMITTER_NAME_22005, "NRBA 50" },
- { DIS_EMITTER_NAME_22050, "NRBA 51" },
- { DIS_EMITTER_NAME_22095, "NRBF 20A" },
- { DIS_EMITTER_NAME_22140, "Nysa B" },
- { DIS_EMITTER_NAME_22185, "O524A" },
- { DIS_EMITTER_NAME_22230, "O580B" },
- { DIS_EMITTER_NAME_22275, "O625Z" },
- { DIS_EMITTER_NAME_22320, "O626Z" },
- { DIS_EMITTER_NAME_22345, "Odd Group" },
- { DIS_EMITTER_NAME_22365, "Odd Lot" },
- { DIS_EMITTER_NAME_22410, "Odd Pair" },
- { DIS_EMITTER_NAME_22455, "Oka" },
- { DIS_EMITTER_NAME_22500, "OKEAN" },
- { DIS_EMITTER_NAME_22545, "OKINXE 12C" },
- { DIS_EMITTER_NAME_22590, "OMEGA" },
- { DIS_EMITTER_NAME_22635, "Omera ORB32" },
- { DIS_EMITTER_NAME_22680, "One Eye" },
- { DIS_EMITTER_NAME_22690, "OP-28" },
- { DIS_EMITTER_NAME_22725, "OPS-16B" },
- { DIS_EMITTER_NAME_22730, "OPS-18" },
- { DIS_EMITTER_NAME_22740, "OPS-28" },
- { DIS_EMITTER_NAME_22770, "OR-2" },
- { DIS_EMITTER_NAME_22810, "ORB-31S" },
- { DIS_EMITTER_NAME_22815, "ORB 32" },
- { DIS_EMITTER_NAME_22860, "Orion Rtn 10X" },
- { DIS_EMITTER_NAME_22905, "Otomat MK II Teseo" },
- { DIS_EMITTER_NAME_22950, "Owl Screech" },
- { DIS_EMITTER_NAME_22955, "P360Z" },
- { DIS_EMITTER_NAME_22960, "PA-1660" },
- { DIS_EMITTER_NAME_22995, "Palm Frond" },
- { DIS_EMITTER_NAME_23040, "Palm Frond AB" },
- { DIS_EMITTER_NAME_23085, "Pat Hand TT" },
- { DIS_EMITTER_NAME_23095, "Pat Hand MG" },
- { DIS_EMITTER_NAME_23130, "Patty Cake" },
- { DIS_EMITTER_NAME_23175, "Pawn Cake" },
- { DIS_EMITTER_NAME_23220, "PBR 4 Rubin" },
- { DIS_EMITTER_NAME_23265, "Pea Sticks" },
- { DIS_EMITTER_NAME_23310, "Peel Cone" },
- { DIS_EMITTER_NAME_23355, "Peel Group" },
- { DIS_EMITTER_NAME_23400, "Peel Group A" },
- { DIS_EMITTER_NAME_23445, "Peel Group B" },
- { DIS_EMITTER_NAME_23490, "Peel Pair" },
- { DIS_EMITTER_NAME_23535, "Philips 9LV 200" },
- { DIS_EMITTER_NAME_23580, "Philips 9LV 331" },
- { DIS_EMITTER_NAME_23625, "Philips LV 223" },
- { DIS_EMITTER_NAME_23670, "Philips Sea Giraffe 50 HC" },
- { DIS_EMITTER_NAME_23690, "Pin Jib" },
- { DIS_EMITTER_NAME_23710, "Plank Shad" },
- { DIS_EMITTER_NAME_23715, "Plank Shave" },
- { DIS_EMITTER_NAME_23760, "Plank Shave A" },
- { DIS_EMITTER_NAME_23805, "Plank Shave B" },
- { DIS_EMITTER_NAME_23850, "Plate Steer" },
- { DIS_EMITTER_NAME_23895, "Plessey AWS 1" },
- { DIS_EMITTER_NAME_23940, "Plessey AWS 4" },
- { DIS_EMITTER_NAME_23985, "Plessey AWS 6" },
- { DIS_EMITTER_NAME_23990, "Plessey RJ" },
- { DIS_EMITTER_NAME_24030, "Plessey type 996" },
- { DIS_EMITTER_NAME_24075, "Plinth Net" },
- { DIS_EMITTER_NAME_24095, "Pluto" },
- { DIS_EMITTER_NAME_24100, "POHJANPALO" },
- { DIS_EMITTER_NAME_24120, "POLLUX" },
- { DIS_EMITTER_NAME_24165, "Pop Group" },
- { DIS_EMITTER_NAME_24210, "Pop Group MG" },
- { DIS_EMITTER_NAME_24255, "Pop Group TA" },
- { DIS_EMITTER_NAME_24300, "Pop Group TT" },
- { DIS_EMITTER_NAME_24345, "Pork Trough" },
- { DIS_EMITTER_NAME_24390, "Post Bow" },
- { DIS_EMITTER_NAME_24435, "Post Lamp" },
- { DIS_EMITTER_NAME_24480, "Pot Drum" },
- { DIS_EMITTER_NAME_24525, "Pot Head" },
- { DIS_EMITTER_NAME_24570, "PRIMUS 40 WXD" },
- { DIS_EMITTER_NAME_24615, "PRIMUS 300SL" },
- { DIS_EMITTER_NAME_24620, "Primus 3000" },
- { DIS_EMITTER_NAME_24650, "PS-05A" },
- { DIS_EMITTER_NAME_24660, "PS 46 A" },
- { DIS_EMITTER_NAME_24705, "PS 70 R" },
- { DIS_EMITTER_NAME_24710, "PS-890" },
- { DIS_EMITTER_NAME_24750, "Puff Ball" },
- { DIS_EMITTER_NAME_24770, "R-76" },
- { DIS_EMITTER_NAME_24780, "RAC-30" },
- { DIS_EMITTER_NAME_24795, "Racal 1229" },
- { DIS_EMITTER_NAME_24840, "Racal AC 2690 BT" },
- { DIS_EMITTER_NAME_24885, "Racal Decca 1216" },
- { DIS_EMITTER_NAME_24930, "Racal Decca 360" },
- { DIS_EMITTER_NAME_24975, "Racal Decca AC 1290" },
- { DIS_EMITTER_NAME_25020, "Racal Decca TM 1229" },
- { DIS_EMITTER_NAME_25065, "Racal Decca TM 1626" },
- { DIS_EMITTER_NAME_25110, "Racal DRBN 34A" },
- { DIS_EMITTER_NAME_25155, "Radar 24" },
- { DIS_EMITTER_NAME_25200, "RAN 7S" },
- { DIS_EMITTER_NAME_25205, "RAN 10S" },
- { DIS_EMITTER_NAME_25245, "RAN 11 LX" },
- { DIS_EMITTER_NAME_25260, "Rapier TA" },
- { DIS_EMITTER_NAME_25265, "Rapier 2000 TA, Dagger" },
- { DIS_EMITTER_NAME_25270, "Rapier MG" },
- { DIS_EMITTER_NAME_25280, "RAT-31S" },
- { DIS_EMITTER_NAME_25285, "RATAC (LCT)" },
- { DIS_EMITTER_NAME_25290, "Raytheon 1220" },
- { DIS_EMITTER_NAME_25300, "Raytheon 1302" },
- { DIS_EMITTER_NAME_25335, "Raytheon 1500" },
- { DIS_EMITTER_NAME_25380, "Raytheon 1645" },
- { DIS_EMITTER_NAME_25425, "Raytheon 1650" },
- { DIS_EMITTER_NAME_25470, "Raytheon 1900" },
- { DIS_EMITTER_NAME_25515, "Raytheon 2502" },
- { DIS_EMITTER_NAME_25560, "Raytheon TM 1650/6X" },
- { DIS_EMITTER_NAME_25605, "Raytheon TM 1660/12S" },
- { DIS_EMITTER_NAME_25630, "RAY-1220XR" },
- { DIS_EMITTER_NAME_25635, "RAY-1401" },
- { DIS_EMITTER_NAME_25650, "Ray 2900" },
- { DIS_EMITTER_NAME_25695, "Raypath" },
- { DIS_EMITTER_NAME_25735, "RBE2" },
- { DIS_EMITTER_NAME_25740, "RDM" },
- { DIS_EMITTER_NAME_25760, "RDY" },
- { DIS_EMITTER_NAME_25785, "RDN 72" },
- { DIS_EMITTER_NAME_25830, "RDR 1A" },
- { DIS_EMITTER_NAME_25835, "RDR 1E" },
- { DIS_EMITTER_NAME_25840, "RDR 4A" },
- { DIS_EMITTER_NAME_25875, "RDR 1200" },
- { DIS_EMITTER_NAME_25885, "RDR 1400" },
- { DIS_EMITTER_NAME_25890, "RDR 1400 C" },
- { DIS_EMITTER_NAME_25895, "RDR 1500" },
- { DIS_EMITTER_NAME_25920, "Rice Lamp" },
- { DIS_EMITTER_NAME_25965, "Rice Pad" },
- { DIS_EMITTER_NAME_26010, "Rice Screen" },
- { DIS_EMITTER_NAME_26055, "ROLAND BN" },
- { DIS_EMITTER_NAME_26100, "ROLAND MG" },
- { DIS_EMITTER_NAME_26145, "ROLAND TA" },
- { DIS_EMITTER_NAME_26190, "ROLAND TT" },
- { DIS_EMITTER_NAME_26235, "Round Ball" },
- { DIS_EMITTER_NAME_26280, "Round House" },
- { DIS_EMITTER_NAME_26325, "Round House B" },
- { DIS_EMITTER_NAME_26330, "RT-02/50" },
- { DIS_EMITTER_NAME_26350, "RTN-1A" },
- { DIS_EMITTER_NAME_26370, "RV2" },
- { DIS_EMITTER_NAME_26415, "RV3" },
- { DIS_EMITTER_NAME_26460, "RV5" },
- { DIS_EMITTER_NAME_26505, "RV10" },
- { DIS_EMITTER_NAME_26550, "RV17" },
- { DIS_EMITTER_NAME_26595, "RV18" },
- { DIS_EMITTER_NAME_26610, "RV-377" },
- { DIS_EMITTER_NAME_26640, "RV UM" },
- { DIS_EMITTER_NAME_26660, "RXN 2-60" },
- { DIS_EMITTER_NAME_26670, "S-1810CD" },
- { DIS_EMITTER_NAME_26685, "SA 2 Guideline" },
- { DIS_EMITTER_NAME_26730, "SA 3 Goa" },
- { DIS_EMITTER_NAME_26775, "SA 8 Gecko DT" },
- { DIS_EMITTER_NAME_26795, "SA-12 TELAR ILL" },
- { DIS_EMITTER_NAME_26820, "SA N 7 Gadfly TI" },
- { DIS_EMITTER_NAME_26865, "SA N 11 Cads 1 UN" },
- { DIS_EMITTER_NAME_26910, "Salt Pot A&B" },
- { DIS_EMITTER_NAME_26955, "SATURNE II" },
- { DIS_EMITTER_NAME_27000, "Scan Can" },
- { DIS_EMITTER_NAME_27045, "Scan Fix" },
- { DIS_EMITTER_NAME_27090, "Scan Odd" },
- { DIS_EMITTER_NAME_27135, "Scan Three" },
- { DIS_EMITTER_NAME_27140, "SCANTER (CSR)" },
- { DIS_EMITTER_NAME_27141, "SCORADS" },
- { DIS_EMITTER_NAME_27150, "SCOREBOARD" },
- { DIS_EMITTER_NAME_27180, "Scoup Plate" },
- { DIS_EMITTER_NAME_27190, "SCR-584" },
- { DIS_EMITTER_NAME_27225, "Sea Archer 2" },
- { DIS_EMITTER_NAME_27270, "Sea Hunter 4 MG" },
- { DIS_EMITTER_NAME_27315, "Sea Hunter 4 TA" },
- { DIS_EMITTER_NAME_27360, "Sea Hunter 4 TT" },
- { DIS_EMITTER_NAME_27405, "Sea Gull" },
- { DIS_EMITTER_NAME_27450, "Sea Net" },
- { DIS_EMITTER_NAME_27495, "Sea Spray" },
- { DIS_EMITTER_NAME_27540, "Sea Tiger" },
- { DIS_EMITTER_NAME_27570, "Searchwater" },
- { DIS_EMITTER_NAME_27585, "Selenia Orion 7" },
- { DIS_EMITTER_NAME_27630, "Selenia type 912" },
- { DIS_EMITTER_NAME_27675, "Selennia RAN 12 L/X" },
- { DIS_EMITTER_NAME_27720, "Selennia RTN 10X" },
- { DIS_EMITTER_NAME_27765, "Selinia ARP 1645" },
- { DIS_EMITTER_NAME_27810, "SGR 102 00" },
- { DIS_EMITTER_NAME_27855, "SGR 103/02" },
- { DIS_EMITTER_NAME_27870, "SGR-104" },
- { DIS_EMITTER_NAME_27900, "Sheet Bend" },
- { DIS_EMITTER_NAME_27945, "Sheet Curve" },
- { DIS_EMITTER_NAME_27990, "Ship Globe" },
- { DIS_EMITTER_NAME_28035, "Ship Wheel" },
- { DIS_EMITTER_NAME_28080, "SGR 114" },
- { DIS_EMITTER_NAME_28125, "Shore Walk A" },
- { DIS_EMITTER_NAME_28170, "Short Horn" },
- { DIS_EMITTER_NAME_28215, "Shot Dome" },
- { DIS_EMITTER_NAME_28260, "Side Globe JN" },
- { DIS_EMITTER_NAME_28280, "PRV-11, Side Net" },
- { DIS_EMITTER_NAME_28305, "Side Walk A" },
- { DIS_EMITTER_NAME_28350, "Signaal DA 02" },
- { DIS_EMITTER_NAME_28395, "Signaal DA 05" },
- { DIS_EMITTER_NAME_28440, "Signaal DA 08" },
- { DIS_EMITTER_NAME_28485, "Signaal LW 08" },
- { DIS_EMITTER_NAME_28530, "Signaal LWOR" },
- { DIS_EMITTER_NAME_28575, "Signaal M45" },
- { DIS_EMITTER_NAME_28620, "Signaal MW 08" },
- { DIS_EMITTER_NAME_28665, "Signaal SMART" },
- { DIS_EMITTER_NAME_28710, "Signaal STING" },
- { DIS_EMITTER_NAME_28755, "Signaal STIR" },
- { DIS_EMITTER_NAME_28800, "Signaal WM 20/2" },
- { DIS_EMITTER_NAME_28845, "Signaal WM 25" },
- { DIS_EMITTER_NAME_28890, "Signaal WM 27" },
- { DIS_EMITTER_NAME_28935, "Signaal WM 28" },
- { DIS_EMITTER_NAME_28980, "Signaal ZW 01" },
- { DIS_EMITTER_NAME_29025, "Signaal ZW 06" },
- { DIS_EMITTER_NAME_29070, "Ski Pole" },
- { DIS_EMITTER_NAME_29115, "Skin Head" },
- { DIS_EMITTER_NAME_29160, "Skip Spin" },
- { DIS_EMITTER_NAME_29185, "SKYGUARD TA, UAR-1021" },
- { DIS_EMITTER_NAME_29190, "SKYGUARD TT, UAR-1021" },
- { DIS_EMITTER_NAME_29205, "Sky Watch" },
- { DIS_EMITTER_NAME_29215, "SKYSHADOW" },
- { DIS_EMITTER_NAME_29220, "SKYSHIELD TA" },
- { DIS_EMITTER_NAME_29250, "SL" },
- { DIS_EMITTER_NAME_29270, "SL/ALQ-234" },
- { DIS_EMITTER_NAME_29295, "Slap Shot E" },
- { DIS_EMITTER_NAME_29340, "Slim Net" },
- { DIS_EMITTER_NAME_29385, "Slot Back A" },
- { DIS_EMITTER_NAME_29400, "Slot Back ILL" },
- { DIS_EMITTER_NAME_29430, "Slot Back B" },
- { DIS_EMITTER_NAME_29440, "Slot Rest" },
- { DIS_EMITTER_NAME_29475, "SMA 3 RM" },
- { DIS_EMITTER_NAME_29520, "SMA 3 RM 20" },
- { DIS_EMITTER_NAME_29565, "SMA 3RM 20A/SMG" },
- { DIS_EMITTER_NAME_29610, "SMA BPS 704" },
- { DIS_EMITTER_NAME_29655, "SMA SPIN 749 (V) 2" },
- { DIS_EMITTER_NAME_29700, "SMA SPN 703" },
- { DIS_EMITTER_NAME_29745, "SMA SPN 751" },
- { DIS_EMITTER_NAME_29790, "SMA SPOS 748" },
- { DIS_EMITTER_NAME_29835, "SMA SPQ 2" },
- { DIS_EMITTER_NAME_29880, "SMA SPQ 2D" },
- { DIS_EMITTER_NAME_29925, "SMA SPQ 701" },
- { DIS_EMITTER_NAME_29970, "SMA SPS 702 UPX" },
- { DIS_EMITTER_NAME_30015, "SMA ST 2 OTOMAT II MH" },
- { DIS_EMITTER_NAME_30060, "SMA 718 Beacon" },
- { DIS_EMITTER_NAME_30080, "SNAP SHOT" },
- { DIS_EMITTER_NAME_30105, "Snoop Drift" },
- { DIS_EMITTER_NAME_30150, "Snoop Head" },
- { DIS_EMITTER_NAME_30195, "Snoop Pair" },
- { DIS_EMITTER_NAME_30240, "Snoop Plate" },
- { DIS_EMITTER_NAME_30285, "Snoop Slab" },
- { DIS_EMITTER_NAME_30330, "Snoop Tray" },
- { DIS_EMITTER_NAME_30375, "Snoop Tray 1" },
- { DIS_EMITTER_NAME_30420, "Snoop Tray 2" },
- { DIS_EMITTER_NAME_30465, "Snoop Watch" },
- { DIS_EMITTER_NAME_30470, "9S18M1, Snow Drift" },
- { DIS_EMITTER_NAME_30510, "SO-1" },
- { DIS_EMITTER_NAME_30520, "SO-12" },
- { DIS_EMITTER_NAME_30555, "SO A Communist" },
- { DIS_EMITTER_NAME_30580, "SO-69" },
- { DIS_EMITTER_NAME_30600, "Sock Eye" },
- { DIS_EMITTER_NAME_30645, "SOM 64" },
- { DIS_EMITTER_NAME_30670, "SPADA TT" },
- { DIS_EMITTER_NAME_30690, "Sparrow (AIM/RIM-7) ILL" },
- { DIS_EMITTER_NAME_30700, "Sperry M-3" },
- { DIS_EMITTER_NAME_30735, "SPG 53F" },
- { DIS_EMITTER_NAME_30780, "SPG 70 (RTN 10X)" },
- { DIS_EMITTER_NAME_30825, "SPG 74 (RTN 20X)" },
- { DIS_EMITTER_NAME_30870, "SPG 75 (RTN 30X)" },
- { DIS_EMITTER_NAME_30915, "SPG 76 (RTN 30X)" },
- { DIS_EMITTER_NAME_30960, "Spin Scan A" },
- { DIS_EMITTER_NAME_31005, "Spin Scan B" },
- { DIS_EMITTER_NAME_31050, "Spin Trough" },
- { DIS_EMITTER_NAME_31095, "Splash Drop" },
- { DIS_EMITTER_NAME_31140, "SPN 35A" },
- { DIS_EMITTER_NAME_31185, "SPN 41" },
- { DIS_EMITTER_NAME_31230, "SPN 42" },
- { DIS_EMITTER_NAME_31275, "SPN 43A" },
- { DIS_EMITTER_NAME_31320, "SPN 43B" },
- { DIS_EMITTER_NAME_31365, "SPN 44" },
- { DIS_EMITTER_NAME_31410, "SPN 46" },
- { DIS_EMITTER_NAME_31455, "SPN 703" },
- { DIS_EMITTER_NAME_31500, "SPN 728 (V) 1" },
- { DIS_EMITTER_NAME_31545, "SPN 748" },
- { DIS_EMITTER_NAME_31590, "SPN 750" },
- { DIS_EMITTER_NAME_31635, "Sponge Cake" },
- { DIS_EMITTER_NAME_31680, "P-12, Spoon Rest" },
- { DIS_EMITTER_NAME_31681, "P-18, Spoon Rest A" },
- { DIS_EMITTER_NAME_31682, "P-18, Spoon Rest B" },
- { DIS_EMITTER_NAME_31684, "P-18, Spoon Rest D" },
- { DIS_EMITTER_NAME_31725, "SPQ 712 (RAN 12 L/X)" },
- { DIS_EMITTER_NAME_31770, "SPS 6C" },
- { DIS_EMITTER_NAME_31815, "SPS 10F" },
- { DIS_EMITTER_NAME_31860, "SPS 12" },
- { DIS_EMITTER_NAME_31905, "(deleted)SPS 58" },
- { DIS_EMITTER_NAME_31950, "(deleted)SPS 64" },
- { DIS_EMITTER_NAME_31995, "SPS 768 (RAN EL)" },
- { DIS_EMITTER_NAME_32040, "SPS 774 (RAN 10S)" },
- { DIS_EMITTER_NAME_32085, "SPY 790" },
- { DIS_EMITTER_NAME_32130, "Square Head" },
- { DIS_EMITTER_NAME_32175, "Square Pair" },
- { DIS_EMITTER_NAME_32220, "Square Slot" },
- { DIS_EMITTER_NAME_32265, "Square Tie" },
- { DIS_EMITTER_NAME_32310, "Squash Dome" },
- { DIS_EMITTER_NAME_32330, "P-15M, Squat Eye" },
- { DIS_EMITTER_NAME_32355, "Squint Eye" },
- { DIS_EMITTER_NAME_32400, "SRN 6" },
- { DIS_EMITTER_NAME_32445, "SRN 15" },
- { DIS_EMITTER_NAME_32490, "SRN 745" },
- { DIS_EMITTER_NAME_32535, "SRO 1" },
- { DIS_EMITTER_NAME_32580, "SRO 2" },
- { DIS_EMITTER_NAME_32625, "SS C 2B Samlet MG" },
- { DIS_EMITTER_NAME_32670, "SS N 2A B CSSC" },
- { DIS_EMITTER_NAME_32715, "SS N 2A B CSSC 2A 3A2 MH" },
- { DIS_EMITTER_NAME_32760, "SS N 2C Seeker" },
- { DIS_EMITTER_NAME_32805, "SS N 2C D Styx" },
- { DIS_EMITTER_NAME_32850, "SS N 2C D Styx C D MH" },
- { DIS_EMITTER_NAME_32895, "SS N 3 SSC SS C 18 BN" },
- { DIS_EMITTER_NAME_32940, "SS N 3B Sepal AL" },
- { DIS_EMITTER_NAME_32985, "SS N 3B Sepal MH" },
- { DIS_EMITTER_NAME_33030, "SS N 9 Siren" },
- { DIS_EMITTER_NAME_33075, "SS N 9 Siren AL" },
- { DIS_EMITTER_NAME_33120, "SS N 9 Siren MH" },
- { DIS_EMITTER_NAME_33165, "SS N 12 Sandbox AL" },
- { DIS_EMITTER_NAME_33210, "SS N 12 Sandbox MH" },
- { DIS_EMITTER_NAME_33255, "SS N 19 Shipwreck" },
- { DIS_EMITTER_NAME_33300, "SS N 19 Shipwreck AL" },
- { DIS_EMITTER_NAME_33345, "SS N 19 Shipwreck MH" },
- { DIS_EMITTER_NAME_33390, "SS N 21 AL" },
- { DIS_EMITTER_NAME_33435, "SS N 22 Sunburn" },
- { DIS_EMITTER_NAME_33480, "SS N 22 Sunburn MH" },
- { DIS_EMITTER_NAME_33525, "Stone Cake" },
- { DIS_EMITTER_NAME_33570, "STR 41" },
- { DIS_EMITTER_NAME_33590, "Straight Flush TA" },
- { DIS_EMITTER_NAME_33595, "Straight Flush TT" },
- { DIS_EMITTER_NAME_33600, "Straight Flush ILL" },
- { DIS_EMITTER_NAME_33615, "Strike Out" },
- { DIS_EMITTER_NAME_33660, "Strut Curve" },
- { DIS_EMITTER_NAME_33705, "Strut Pair" },
- { DIS_EMITTER_NAME_33750, "Strut Pair 1" },
- { DIS_EMITTER_NAME_33795, "Strut Pair 2" },
- { DIS_EMITTER_NAME_33840, "Sun Visor" },
- { DIS_EMITTER_NAME_33860, "Superfledermaus" },
- { DIS_EMITTER_NAME_33885, "Swift Rod 1" },
- { DIS_EMITTER_NAME_33930, "Swift Rod 2" },
- { DIS_EMITTER_NAME_33975, "T1166" },
- { DIS_EMITTER_NAME_34020, "T1171" },
- { DIS_EMITTER_NAME_34040, "T1202" },
- { DIS_EMITTER_NAME_34065, "T6004" },
- { DIS_EMITTER_NAME_34110, "T6031" },
- { DIS_EMITTER_NAME_34155, "T8067" },
- { DIS_EMITTER_NAME_34200, "T8068" },
- { DIS_EMITTER_NAME_34245, "T8124" },
- { DIS_EMITTER_NAME_34290, "T8408" },
- { DIS_EMITTER_NAME_34335, "T8911" },
- { DIS_EMITTER_NAME_34380, "T8937" },
- { DIS_EMITTER_NAME_34425, "T8944" },
- { DIS_EMITTER_NAME_34470, "T8987" },
- { DIS_EMITTER_NAME_34515, "P-14, Tall King" },
- { DIS_EMITTER_NAME_34560, "Tall Mike" },
- { DIS_EMITTER_NAME_34605, "Tall Path" },
- { DIS_EMITTER_NAME_34625, "Team Work" },
- { DIS_EMITTER_NAME_34640, "THAAD GBR" },
- { DIS_EMITTER_NAME_34650, "THD 225" },
- { DIS_EMITTER_NAME_34670, "THD 1940, Picador" },
- { DIS_EMITTER_NAME_34695, "THD 5500" },
- { DIS_EMITTER_NAME_34740, "Thin Path" },
- { DIS_EMITTER_NAME_34785, "PRV-9, Thin Skin" },
- { DIS_EMITTER_NAME_34795, "Thompson CSF TA-10" },
- { DIS_EMITTER_NAME_34830, "Thompson CSF TH D 1040 Neptune" },
- { DIS_EMITTER_NAME_34875, "Thompson CSF Calypso" },
- { DIS_EMITTER_NAME_34920, "Thompson CSF CASTOR" },
- { DIS_EMITTER_NAME_34965, "Thompson CSF Castor II" },
- { DIS_EMITTER_NAME_35010, "Thompson CSF DRBC 32A" },
- { DIS_EMITTER_NAME_35055, "Thompson CSF DRBJ 11 D/E" },
- { DIS_EMITTER_NAME_35100, "Thompson CSF DRBV 15A" },
- { DIS_EMITTER_NAME_35145, "Thompson CSF DRBV 15C" },
- { DIS_EMITTER_NAME_35190, "Thompson CSF DRBV 22D" },
- { DIS_EMITTER_NAME_35235, "Thompson CSF DRBV 23B" },
- { DIS_EMITTER_NAME_35280, "Thompson CSF DRUA 33" },
- { DIS_EMITTER_NAME_35325, "Thompson CSF Mars DRBV 21A" },
- { DIS_EMITTER_NAME_35370, "Thompson CSF Sea Tiger" },
- { DIS_EMITTER_NAME_35415, "Thompson CSF Triton" },
- { DIS_EMITTER_NAME_35460, "Thompson CSF Vega with DRBC 32E" },
- { DIS_EMITTER_NAME_35480, "TRS-2105, TIGER-G" },
- { DIS_EMITTER_NAME_35490, "TRS-2100, TIGER-S" },
- { DIS_EMITTER_NAME_35505, "Tie Rods" },
- { DIS_EMITTER_NAME_35550, "36D6, Tin Shield" },
- { DIS_EMITTER_NAME_35570, "Tin Trap" },
- { DIS_EMITTER_NAME_35580, "TIRSPONDER" },
- { DIS_EMITTER_NAME_35595, "Toad Stool 1" },
- { DIS_EMITTER_NAME_35640, "Toad Stool 2" },
- { DIS_EMITTER_NAME_35685, "Toad Stool 3" },
- { DIS_EMITTER_NAME_35730, "Toad Stool 4" },
- { DIS_EMITTER_NAME_35775, "Toad Stool 5" },
- { DIS_EMITTER_NAME_35800, "Tomb Stone" },
- { DIS_EMITTER_NAME_35820, "Top Bow" },
- { DIS_EMITTER_NAME_35865, "Top Dome" },
- { DIS_EMITTER_NAME_35910, "Top Knot" },
- { DIS_EMITTER_NAME_35955, "Top Mesh" },
- { DIS_EMITTER_NAME_36000, "Top Pair" },
- { DIS_EMITTER_NAME_36045, "Top Plate" },
- { DIS_EMITTER_NAME_36090, "Top Sail" },
- { DIS_EMITTER_NAME_36135, "Top Steer" },
- { DIS_EMITTER_NAME_36180, "Top Trough" },
- { DIS_EMITTER_NAME_36220, "Scrum Half TA" },
- { DIS_EMITTER_NAME_36225, "TorScrum Half TT, Tor" },
- { DIS_EMITTER_NAME_36230, "Scrum Half MG" },
- { DIS_EMITTER_NAME_36270, "Track Dish" },
- { DIS_EMITTER_NAME_36315, "TORSO M" },
- { DIS_EMITTER_NAME_36360, "Trap Door" },
- { DIS_EMITTER_NAME_36380, "TRISPONDE" },
- { DIS_EMITTER_NAME_36405, "TRS 3033" },
- { DIS_EMITTER_NAME_36420, "TRS 3405" },
- { DIS_EMITTER_NAME_36425, "TRS 3410" },
- { DIS_EMITTER_NAME_36430, "TRS 3415" },
- { DIS_EMITTER_NAME_36450, "TRS-N" },
- { DIS_EMITTER_NAME_36495, "TSE 5000" },
- { DIS_EMITTER_NAME_36540, "TSR 333" },
- { DIS_EMITTER_NAME_36585, "Tube Arm" },
- { DIS_EMITTER_NAME_36630, "Twin Eyes" },
- { DIS_EMITTER_NAME_36675, "Twin Pill" },
- { DIS_EMITTER_NAME_36720, "Twin Scan" },
- { DIS_EMITTER_NAME_36765, "Twin Scan Ro" },
- { DIS_EMITTER_NAME_36810, "Two Spot" },
- { DIS_EMITTER_NAME_36855, "TYPE 262" },
- { DIS_EMITTER_NAME_36900, "TYPE 275" },
- { DIS_EMITTER_NAME_36945, "TYPE 293" },
- { DIS_EMITTER_NAME_36990, "TYPE 343 SUN VISOR B" },
- { DIS_EMITTER_NAME_37035, "TYPE 347B" },
- { DIS_EMITTER_NAME_37050, "Type-404A(CH)" },
- { DIS_EMITTER_NAME_37080, "Type 756" },
- { DIS_EMITTER_NAME_37125, "TYPE 903" },
- { DIS_EMITTER_NAME_37170, "TYPE 909 TI" },
- { DIS_EMITTER_NAME_37215, "TYPE 909 TT" },
- { DIS_EMITTER_NAME_37260, "TYPE 910" },
- { DIS_EMITTER_NAME_37265, "TYPE-931(CH)" },
- { DIS_EMITTER_NAME_37305, "TYPE 965" },
- { DIS_EMITTER_NAME_37350, "TYPE 967" },
- { DIS_EMITTER_NAME_37395, "TYPE 968" },
- { DIS_EMITTER_NAME_37440, "TYPE 974" },
- { DIS_EMITTER_NAME_37485, "TYPE 975" },
- { DIS_EMITTER_NAME_37530, "TYPE 978" },
- { DIS_EMITTER_NAME_37575, "TYPE 992" },
- { DIS_EMITTER_NAME_37620, "TYPE 993" },
- { DIS_EMITTER_NAME_37665, "TYPE 994" },
- { DIS_EMITTER_NAME_37710, "TYPE 1006(1)" },
- { DIS_EMITTER_NAME_37755, "TYPE 1006(2)" },
- { DIS_EMITTER_NAME_37800, "TYPE 1022" },
- { DIS_EMITTER_NAME_37845, "UK MK 10" },
- { DIS_EMITTER_NAME_37850, "UPS-220C" },
- { DIS_EMITTER_NAME_37890, "UPX 1 10" },
- { DIS_EMITTER_NAME_37935, "UPX 27" },
- { DIS_EMITTER_NAME_37980, "URN 20" },
- { DIS_EMITTER_NAME_38025, "URN 25" },
- { DIS_EMITTER_NAME_38045, "VOLEX III/IV" },
- { DIS_EMITTER_NAME_38070, "W8818" },
- { DIS_EMITTER_NAME_38115, "W8838" },
- { DIS_EMITTER_NAME_38120, "W8852" },
- { DIS_EMITTER_NAME_38160, "WAS-74S" },
- { DIS_EMITTER_NAME_38205, "Wasp Head" },
- { DIS_EMITTER_NAME_38210, "WATCHDOG" },
- { DIS_EMITTER_NAME_38250, "Watch Guard" },
- { DIS_EMITTER_NAME_38260, "Watchman" },
- { DIS_EMITTER_NAME_38295, "Western Electric MK 10" },
- { DIS_EMITTER_NAME_38320, "Westinghouse ADR-4 LRSR" },
- { DIS_EMITTER_NAME_38340, "Westinghouse Electric SPG 50" },
- { DIS_EMITTER_NAME_38385, "Westinghouse Electric W 120" },
- { DIS_EMITTER_NAME_38430, "Westinghouse SPS 29C" },
- { DIS_EMITTER_NAME_38475, "Westinghouse SPS 37" },
- { DIS_EMITTER_NAME_38520, "Wet Eye" },
- { DIS_EMITTER_NAME_38565, "Wet Eye Mod" },
- { DIS_EMITTER_NAME_38570, "WGU-41/B" },
- { DIS_EMITTER_NAME_38572, "WGU-44/B" },
- { DIS_EMITTER_NAME_38610, "Whiff" },
- { DIS_EMITTER_NAME_38655, "Whiff Brick" },
- { DIS_EMITTER_NAME_38700, "Whiff Fire" },
- { DIS_EMITTER_NAME_38715, "WHITE HOUSE" },
- { DIS_EMITTER_NAME_38745, "Wild Card" },
- { DIS_EMITTER_NAME_38790, "Witch Eight" },
- { DIS_EMITTER_NAME_38835, "Witch Five" },
- { DIS_EMITTER_NAME_38880, "WM2X Series" },
- { DIS_EMITTER_NAME_38925, "WM2X Series CAS" },
- { DIS_EMITTER_NAME_38950, "WSR-74C" },
- { DIS_EMITTER_NAME_38955, "WSR-74S" },
- { DIS_EMITTER_NAME_38970, "Wood Gage" },
- { DIS_EMITTER_NAME_39015, "Yard Rake" },
- { DIS_EMITTER_NAME_39060, "Yew Loop" },
- { DIS_EMITTER_NAME_39105, "Yo-Yo" },
- { DIS_EMITTER_NAME_39150, "(deleted)" },
- { 0, NULL }
-};
diff --git a/epan/dissectors/packet-dis-enums.h b/epan/dissectors/packet-dis-enums.h
deleted file mode 100644
index d55ad2da4c..0000000000
--- a/epan/dissectors/packet-dis-enums.h
+++ /dev/null
@@ -1,2063 +0,0 @@
-/* packet-dis-enums.h
- * Enumerated values and string array declarations for DIS enum parsing.
- * Copyright 2005, Scientific Research Corporation
- * Initial implementation by Jeremy Ouellette <jouellet@scires.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __PACKET_DIS_ENUMS_H__
-#define __PACKET_DIS_ENUMS_H__
-
-#include <epan/value_string.h>
-
-extern const value_string DIS_PDU_RadioCategory_Strings[];
-extern const value_string DIS_PDU_NomenclatureVersion_Strings[];
-extern const value_string DIS_PDU_Nomenclature_Strings[];
-extern const value_string DIS_PDU_RadioTransmitState_Strings[];
-extern const value_string DIS_PDU_RadioInputSource_Strings[];
-extern const value_string DIS_PDU_DetailModulationAmplitude_Strings[];
-extern const value_string DIS_PDU_DetailModulationAmpAndAngle_Strings[];
-extern const value_string DIS_PDU_DetailModulationAngle_Strings[];
-extern const value_string DIS_PDU_DetailModulationCombination_Strings[];
-extern const value_string DIS_PDU_DetailModulationPulse_Strings[];
-extern const value_string DIS_PDU_DetailModulationUnmodulated_Strings[];
-extern const value_string DIS_PDU_DetailModulationCPSM_Strings[];
-extern const value_string DIS_PDU_CryptoSystem_Strings[];
-extern const value_string DIS_PDU_ModParamMsgStart_Strings[];
-extern const value_string DIS_PDU_ModParamClrChannel_Strings[];
-extern const value_string DIS_PDU_TSAllocationFidelity_Strings[];
-extern const value_string DIS_PDU_TerminalPrimaryMode_Strings[];
-extern const value_string DIS_PDU_TerminalSecondaryMode_Strings[];
-extern const value_string DIS_PDU_ModParamSyncState_Strings[];
-extern const range_string DIS_PDU_Link16_CVLL_Strings[];
-extern const value_string DIS_PDU_Link16_MessageType_Strings[];
-
-
-typedef enum
-{
- DIS_VERSION_OTHER = 0,
- DIS_VERSION_1_0 = 1,
- DIS_VERSION_IEEE_1278_1993 = 2,
- DIS_VERSION_2_0_3RD_DRAFT = 3,
- DIS_VERSION_2_0_4TH_DRAFT = 4,
- DIS_VERSION_IEEE_1278_1_1995 = 5,
- DIS_VERSION_IEEE_1278_1A_1998 = 6,
- DIS_VERSION_IEEE_1278_1_200X = 7
-} DIS_PDU_ProtocolVersion;
-
-extern const value_string DIS_PDU_ProtocolVersion_Strings[];
-
-typedef enum
-{
- DIS_PROTOCOLFAMILY_OTHER = 0,
- DIS_PROTOCOLFAMILY_ENTITY_INFORMATION_INTERACTION = 1,
- DIS_PROTOCOLFAMILY_WARFARE = 2,
- DIS_PROTOCOLFAMILY_LOGISTICS = 3,
- DIS_PROTOCOLFAMILY_RADIO_COMMUNICATIONS = 4,
- DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT = 5,
- DIS_PROTOCOLFAMILY_DISTRIBUTED_EMISSION_REGENERATION = 6,
- DIS_PROTOCOLFAMILY_ENTITY_MANAGEMENT = 7,
- DIS_PROTOCOLFAMILY_MINEFIELD = 8,
- DIS_PROTOCOLFAMILY_SYNTHETIC_ENVIRONMENT = 9,
- DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT_WITH_RELIABILITY = 10,
- DIS_PROTOCOLFAMILY_LIVE_ENTITY = 11,
- DIS_PROTOCOLFAMILY_NON_REAL_TIME = 12,
- DIS_PROTOCOLFAMILY_INFORMATION_OPERATIONS = 13,
- DIS_PROTOCOLFAMILY_EXPERIMENTAL_COMPUTER_GENERATED_FORCES = 129,
- DIS_PROTOCOLFAMILY_EXPERIMENTAL_VDIS = 130,
- DIS_PROTOCOLFAMILY_PERSISTENT_OBJECT = 140,
- DIS_PROTOCOLFAMILY_EXPERIMENTAL = 150
-} DIS_PDU_ProtocolFamily;
-
-extern const value_string DIS_PDU_ProtocolFamily_Strings[];
-
-typedef enum
-{
- DIS_PDUTYPE_OTHER = 0,
- DIS_PDUTYPE_ENTITY_STATE = 1,
- DIS_PDUTYPE_FIRE = 2,
- DIS_PDUTYPE_DETONATION = 3,
- DIS_PDUTYPE_COLLISION = 4,
- DIS_PDUTYPE_SERVICE_REQUEST = 5,
- DIS_PDUTYPE_RESUPPLY_OFFER = 6,
- DIS_PDUTYPE_RESUPPLY_RECEIVED = 7,
- DIS_PDUTYPE_RESUPPLY_CANCEL = 8,
- DIS_PDUTYPE_REPAIR_COMPLETE = 9,
- DIS_PDUTYPE_REPAIR_RESPONSE = 10,
- DIS_PDUTYPE_CREATE_ENTITY = 11,
- DIS_PDUTYPE_REMOVE_ENTITY = 12,
- DIS_PDUTYPE_START_RESUME = 13,
- DIS_PDUTYPE_STOP_FREEZE = 14,
- DIS_PDUTYPE_ACKNOWLEDGE = 15,
- DIS_PDUTYPE_ACTION_REQUEST = 16,
- DIS_PDUTYPE_ACTION_RESPONSE = 17,
- DIS_PDUTYPE_DATA_QUERY = 18,
- DIS_PDUTYPE_SET_DATA = 19,
- DIS_PDUTYPE_DATA = 20,
- DIS_PDUTYPE_EVENT_REPORT = 21,
- DIS_PDUTYPE_COMMENT = 22,
- DIS_PDUTYPE_ELECTROMAGNETIC_EMISSION = 23,
- DIS_PDUTYPE_DESIGNATOR = 24,
- DIS_PDUTYPE_TRANSMITTER = 25,
- DIS_PDUTYPE_SIGNAL = 26,
- DIS_PDUTYPE_RECEIVER = 27,
- DIS_PDUTYPE_IFF_ATC_NAVAIDS = 28,
- DIS_PDUTYPE_UNDERWATER_ACOUSTIC = 29,
- DIS_PDUTYPE_SUPPLEMENTAL_EMISSION_ENTITY_STATE = 30,
- DIS_PDUTYPE_INTERCOM_SIGNAL = 31,
- DIS_PDUTYPE_INTERCOM_CONTROL = 32,
- DIS_PDUTYPE_AGGREGATE_STATE = 33,
- DIS_PDUTYPE_IS_GROUP_OF = 34,
- DIS_PDUTYPE_TRANSFER_CONTROL = 35,
- DIS_PDUTYPE_IS_PART_OF = 36,
- DIS_PDUTYPE_MINEFIELD_STATE = 37,
- DIS_PDUTYPE_MINEFIELD_QUERY = 38,
- DIS_PDUTYPE_MINEFIELD_DATA = 39,
- DIS_PDUTYPE_MINEFIELD_RESPONSE_NAK = 40,
- DIS_PDUTYPE_ENVIRONMENTAL_PROCESS = 41,
- DIS_PDUTYPE_GRIDDED_DATA = 42,
- DIS_PDUTYPE_POINT_OBJECT_STATE = 43,
- DIS_PDUTYPE_LINEAR_OBJECT_STATE = 44,
- DIS_PDUTYPE_AREAL_OBJECT_STATE = 45,
- DIS_PDUTYPE_TSPI = 46,
- DIS_PDUTYPE_APPEARANCE = 47,
- DIS_PDUTYPE_ARTICULATED_PARTS = 48,
- DIS_PDUTYPE_LE_FIRE = 49,
- DIS_PDUTYPE_LE_DETONATION = 50,
- DIS_PDUTYPE_CREATE_ENTITY_R = 51,
- DIS_PDUTYPE_REMOVE_ENTITY_R = 52,
- DIS_PDUTYPE_START_RESUME_R = 53,
- DIS_PDUTYPE_STOP_FREEZE_R = 54,
- DIS_PDUTYPE_ACKNOWLEDGE_R = 55,
- DIS_PDUTYPE_ACTION_REQUEST_R = 56,
- DIS_PDUTYPE_ACTION_RESPONSE_R = 57,
- DIS_PDUTYPE_DATA_QUERY_R = 58,
- DIS_PDUTYPE_SET_DATA_R = 59,
- DIS_PDUTYPE_DATA_R = 60,
- DIS_PDUTYPE_EVENT_REPORT_R = 61,
- DIS_PDUTYPE_COMMENT_R = 62,
- DIS_PDUTYPE_RECORD_R = 63,
- DIS_PDUTYPE_SET_RECORD_R = 64,
- DIS_PDUTYPE_RECORD_QUERY_R = 65,
- DIS_PDUTYPE_COLLISION_ELASTIC = 66,
- DIS_PDUTYPE_ENTITY_STATE_UPDATE = 67,
- DIS_PDUTYPE_DIRECTED_ENERGY_FIRE = 68,
- DIS_PDUTYPE_ENTITY_DAMAGE_STATUS = 69,
- DIS_PDUTYPE_INFORMATION_OPERATIONS_ACTION = 70,
- DIS_PDUTYPE_INFORMATION_OPERATIONS_REPORT = 71,
- DIS_PDUTYPE_ATTRIBUTE = 71,
- DIS_PDUTYPE_ANNOUNCE_OBJECT = 129,
- DIS_PDUTYPE_DELETE_OBJECT = 130,
- DIS_PDUTYPE_DESCRIBE_APPLICATION = 131,
- DIS_PDUTYPE_DESCRIBE_EVENT = 132,
- DIS_PDUTYPE_DESCRIBE_OBJECT = 133,
- DIS_PDUTYPE_REQUEST_EVENT = 134,
- DIS_PDUTYPE_REQUEST_OBJECT = 135,
- DIS_PDUTYPE_APPLICATION_CONTROL = 200,
- DIS_PDUTYPE_STEALTH_STATE = 201
-} DIS_PDU_Type;
-
-extern const value_string DIS_PDU_Type_Strings[];
-
-typedef enum
-{
- DIS_ENTITYKIND_OTHER = 0,
- DIS_ENTITYKIND_PLATFORM = 1,
- DIS_ENTITYKIND_MUNITION = 2,
- DIS_ENTITYKIND_LIFE_FORM = 3,
- DIS_ENTITYKIND_ENVIRONMENTAL = 4,
- DIS_ENTITYKIND_CULTURAL_FEATURE = 5,
- DIS_ENTITYKIND_SUPPLY = 6,
- DIS_ENTITYKIND_RADIO = 7,
- DIS_ENTITYKIND_EXPENDABLE = 8,
- DIS_ENTITYKIND_SENSOR_EMITTER = 9
-} DIS_PDU_EntityKind;
-
-extern const value_string DIS_PDU_EntityKind_Strings[];
-
-typedef enum
-{
- DIS_DOMAIN_OTHER = 0,
- DIS_DOMAIN_LAND = 1,
- DIS_DOMAIN_AIR = 2,
- DIS_DOMAIN_SURFACE = 3,
- DIS_DOMAIN_SUBSURFACE = 4,
- DIS_DOMAIN_SPACE = 5
-} DIS_PDU_Domain;
-
-extern const value_string DIS_PDU_Domain_Strings[];
-
-typedef enum
-{
- DIS_CATEGORY_LANDPLATFORM_OTHER = 0,
- DIS_CATEGORY_LANDPLATFORM_TANK = 1,
- DIS_CATEGORY_LANDPLATFORM_ARMORED_FIGHTING_VEHICLE = 2,
- DIS_CATEGORY_LANDPLATFORM_ARMORED_UTILITY_VEHICLE = 3,
- DIS_CATEGORY_LANDPLATFORM_SELF_PROPELLED_ARTILLERY = 4,
- DIS_CATEGORY_LANDPLATFORM_TOWED_ARTILLERY = 5,
- DIS_CATEGORY_LANDPLATFORM_SMALL_WHEELED_UTILITY_VEHICLE = 6,
- DIS_CATEGORY_LANDPLATFORM_LARGE_WHEELED_UTILITY_VEHICLE = 7,
- DIS_CATEGORY_LANDPLATFORM_SMALL_TRACKED_UTILITY_VEHICLE = 8,
- DIS_CATEGORY_LANDPLATFORM_LARGE_TRACKED_UTILITY_VEHICLE = 9,
- DIS_CATEGORY_LANDPLATFORM_MORTAR = 10,
- DIS_CATEGORY_LANDPLATFORM_MINE_PLOW = 11,
- DIS_CATEGORY_LANDPLATFORM_MINE_RAKE = 12,
- DIS_CATEGORY_LANDPLATFORM_MINE_ROLLER = 13,
- DIS_CATEGORY_LANDPLATFORM_CARGO_TRAILER = 14,
- DIS_CATEGORY_LANDPLATFORM_FUEL_TRAILER = 15,
- DIS_CATEGORY_LANDPLATFORM_GENERATOR_TRAILER = 16,
- DIS_CATEGORY_LANDPLATFORM_WATER_TRAILER = 17,
- DIS_CATEGORY_LANDPLATFORM_ENGINEER_EQUIPMENT = 18,
- DIS_CATEGORY_LANDPLATFORM_HEAVY_EQUIPMENT_TRANSPORT_TRAILER = 19,
- DIS_CATEGORY_LANDPLATFORM_MAINTENANCE_EQUIPMENT_TRAILER = 20,
- DIS_CATEGORY_LANDPLATFORM_LIMBER = 21,
- DIS_CATEGORY_LANDPLATFORM_CHEMICAL_DECONTAMINATION_TRAILER = 22,
- DIS_CATEGORY_LANDPLATFORM_WARNING_SYSTEM = 23,
- DIS_CATEGORY_LANDPLATFORM_TRAIN_ENGINE = 24,
- DIS_CATEGORY_LANDPLATFORM_TRAIN_CAR = 25,
- DIS_CATEGORY_LANDPLATFORM_TRAIN_CABOOSE = 26,
- DIS_CATEGORY_LANDPLATFORM_CIVILIAN_VEHICLE = 27,
- DIS_CATEGORY_LANDPLATFORM_AIR_DEFENSE_MISSILE_DEFENSE_UNIT_EQUIPMENT = 28,
- DIS_CATEGORY_LANDPLATFORM_C3I_SYSTEM = 29,
- DIS_CATEGORY_LANDPLATFORM_OPERATIONS_FACILITY = 30,
- DIS_CATEGORY_LANDPLATFORM_INTELLIGENCE_FACILITY = 31,
- DIS_CATEGORY_LANDPLATFORM_SURVEILLANCE_FACILITY = 32,
- DIS_CATEGORY_LANDPLATFORM_COMMUNICATIONS_FACILITY = 33,
- DIS_CATEGORY_LANDPLATFORM_COMMAND_FACILITY = 34,
- DIS_CATEGORY_LANDPLATFORM_C4I_FACILITY = 35,
- DIS_CATEGORY_LANDPLATFORM_CONTROL_FACILITY = 36,
- DIS_CATEGORY_LANDPLATFORM_FIRE_CONTROL_FACILITY = 37,
- DIS_CATEGORY_LANDPLATFORM_MISSILE_DEFENSE_FACILITY = 38,
- DIS_CATEGORY_LANDPLATFORM_FIELD_COMMAND_POST = 39,
- DIS_CATEGORY_LANDPLATFORM_OBSERVATION_POST = 40
-} DIS_PDU_Category_LandPlatform;
-
-extern const value_string DIS_PDU_Category_LandPlatform_Strings[];
-
-typedef enum
-{
- DIS_CATEGORY_AIRPLATFORM_OTHER = 0,
- DIS_CATEGORY_AIRPLATFORM_FIGHTER_AIR_DEFENSE = 1,
- DIS_CATEGORY_AIRPLATFORM_ATTACK_STRIKE = 2,
- DIS_CATEGORY_AIRPLATFORM_BOMBER = 3,
- DIS_CATEGORY_AIRPLATFORM_CARGO_TANKER = 4,
- DIS_CATEGORY_AIRPLATFORM_ASW_PATROL_OBSERVATION = 5,
- DIS_CATEGORY_AIRPLATFORM_ELECTRONIC_WARFARE = 6,
- DIS_CATEGORY_AIRPLATFORM_RECONNAISSANCE = 7,
- DIS_CATEGORY_AIRPLATFORM_SURVEILLANCE_C2 = 8,
- DIS_CATEGORY_AIRPLATFORM_ATTACK_HELICOPTER = 20,
- DIS_CATEGORY_AIRPLATFORM_UTILITY_HELICOPTER = 21,
- DIS_CATEGORY_AIRPLATFORM_ANTISUB_WARFARE_PATROL_HELICOPTER = 22,
- DIS_CATEGORY_AIRPLATFORM_CARGO_HELICOPTER = 23,
- DIS_CATEGORY_AIRPLATFORM_OBSERVATION_HELICOPTER = 24,
- DIS_CATEGORY_AIRPLATFORM_SPECIAL_OPERATIONS_HELICOPTER = 25,
- DIS_CATEGORY_AIRPLATFORM_TRAINER = 40,
- DIS_CATEGORY_AIRPLATFORM_UNMANNED = 50,
- DIS_CATEGORY_AIRPLATFORM_NON_COMBATANT_COMMERCIAL_AIRCRAFT = 57
-} DIS_PDU_Category_AirPlatform;
-
-extern const value_string DIS_PDU_Category_AirPlatform_Strings[];
-
-typedef enum
-{
- DIS_CATEGORY_SURFACEPLATFORM_OTHER = 0
-} DIS_PDU_Category_SurfacePlatform;
-
-extern const value_string DIS_PDU_Category_SurfacePlatform_Strings[];
-
-typedef enum
-{
- DIS_CATEGORY_SUBSURFACEPLATFORM_OTHER = 0
-} DIS_PDU_Category_SubsurfacePlatform;
-
-extern const value_string DIS_PDU_Category_SubsurfacePlatform_Strings[];
-
-typedef enum
-{
- DIS_CATEGORY_SPACEPLATFORM_OTHER = 0
-} DIS_PDU_Category_SpacePlatform;
-
-extern const value_string DIS_PDU_Category_SpacePlatform_Strings[];
-
-typedef enum
-{
- DIS_ENCODING_CLASS_ENCODED_AUDIO = 0,
- DIS_ENCODING_CLASS_RAW_BINARY_DATA = 1,
- DIS_ENCODING_CLASS_APPL_SPEC_DATA = 2,
- DIS_ENCODING_CLASS_DB_INDEX = 3
-} DIS_PDU_Encoding_Class;
-
-extern const value_string DIS_PDU_Encoding_Class_Strings[];
-
-typedef enum
-{
- DIS_ENCODING_TYPE_OTHER = 0,
- DIS_ENCODING_TYPE_MU_LAW = 1,
- DIS_ENCODING_TYPE_CVSD = 2,
- DIS_ENCODING_TYPE_ADPCM_G721 = 3,
- DIS_ENCODING_TYPE_16BIT_LINEAR_PCM = 4,
- DIS_ENCODING_TYPE_8BIT_LINEAR_PCM = 5,
- DIS_ENCODING_TYPE_VECTOR_QUANTIZATION = 6
-} DIS_PDU_Encoding_Type;
-
-extern const value_string DIS_PDU_Encoding_Type_Strings[];
-
-typedef enum
-{
- DIS_TDL_TYPE_OTHER = 0,
- DIS_TDL_TYPE_PADIL = 1,
- DIS_TDL_TYPE_NATO_LINK1 = 2,
- DIS_TDL_TYPE_ATDL1 = 3,
- DIS_TDL_TYPE_LINK_11B = 4,
- DIS_TDL_TYPE_SADL = 5,
- DIS_TDL_TYPE_JTIDS_TADIL_J = 6,
- DIS_TDL_TYPE_JTIDS_FDL_TADIL_J = 7,
- DIS_TDL_TYPE_LINK_11A = 8,
- DIS_TDL_TYPE_IJMS = 9,
- DIS_TDL_TYPE_LINK_4A = 10,
- DIS_TDL_TYPE_LINK_4C = 11,
- DIS_TDL_TYPE_TIBS = 12,
- DIS_TDL_TYPE_ATL = 13,
- DIS_TDL_TYPE_CONSTANT_SRC = 14,
- DIS_TDL_TYPE_ABBRV_CC = 15,
- DIS_TDL_TYPE_MILSTAR = 16,
- DIS_TDL_TYPE_ATHS = 17,
- DIS_TDL_TYPE_OTHGOLD = 18,
- DIS_TDL_TYPE_TACELINT = 19,
- DIS_TDL_TYPE_AWW13 = 20,
- DIS_TDL_TYPE_ABBRV_CC_2 = 21,
- DIS_TDL_TYPE_EPLRS = 22,
- DIS_TDL_TYPE_PLRS = 23,
- DIS_TDL_TYPE_SINCGARS = 24,
- DIS_TDL_TYPE_HAVE_QUICK_I = 25,
- DIS_TDL_TYPE_HAVE_QUICK_II = 26,
- DIS_TDL_TYPE_HAVE_QUICK_IIA = 27,
- DIS_TDL_TYPE_IFDL1 = 28,
- DIS_TDL_TYPE_IFDL2 = 29,
- DIS_TDL_TYPE_IDM = 30,
- DIS_TDL_TYPE_AFAPD = 31,
- DIS_TDL_TYPE_CEC = 32,
- DIS_TDL_TYPE_FAAD_FDL = 33,
- DIS_TDL_TYPE_GBDL = 34,
- DIS_TDL_TYPE_IVIS = 35,
- DIS_TDL_TYPE_MTS = 36,
- DIS_TDL_TYPE_TACFIRE = 37,
- DIS_TDL_TYPE_IBS = 38,
- DIS_TDL_TYPE_ABIT = 39,
- DIS_TDL_TYPE_ATARS = 40,
- DIS_TDL_TYPE_BGPHES = 41,
- DIS_TDL_TYPE_CHBDL = 42,
- DIS_TDL_TYPE_GUARDRAIL_IDL = 43,
- DIS_TDL_TYPE_GUARDRAIL_CSS1 = 44,
- DIS_TDL_TYPE_GUARDRAIL_CSS2 = 45,
- DIS_TDL_TYPE_GUARDRAIL_CSS2_MRDL = 46,
- DIS_TDL_TYPE_GUARDRAIL_CSS2_DASR = 47,
- DIS_TDL_TYPE_LOS_TETHER = 48,
- DIS_TDL_TYPE_LWCDL = 49,
- DIS_TDL_TYPE_L_52M = 50,
- DIS_TDL_TYPE_RR_ROWL_DL = 51,
- DIS_TDL_TYPE_SENIOR_SPAN = 52,
- DIS_TDL_TYPE_SENIOR_SPUR = 53,
- DIS_TDL_TYPE_SENIOR_STRETCH = 54,
- DIS_TDL_TYPE_SENIOR_YEAR_IDL = 55,
- DIS_TDL_TYPE_SPACE_CDL = 56,
- DIS_TDL_TYPE_TR_1_MIST_ADL = 57,
- DIS_TDL_TYPE_KU_BAND_SATCOM = 58,
- DIS_TDL_TYPE_MECDL = 59,
- DIS_TDL_TYPE_RADAR_DATA_TSDL = 60,
- DIS_TDL_TYPE_SCDL = 61,
- DIS_TDL_TYPE_TACTICAL_UAV_VIDEO = 62,
- DIS_TDL_TYPE_UHF_SATCOM = 63,
- DIS_TDL_TYPE_TCDL = 64,
- DIS_TDL_TYPE_LLAPI = 65,
- DIS_TDL_TYPE_WEAPONS_DL = 66,
- DIS_TDL_TYPE_GC3 = 99,
- DIS_TDL_TYPE_LINK16_STD = 100,
- DIS_TDL_TYPE_LINK16_EDR = 101,
- DIS_TDL_TYPE_JTIDS_NET_DATA_LOAD = 102,
- DIS_TDL_TYPE_LINK22 = 103,
- DIS_TDL_TYPE_AFIWC_IADS = 104
-} DIS_PDU_TDL_Type;
-
-extern const value_string DIS_PDU_TDL_Type_Strings[];
-
-typedef enum
-{
- DIS_PATTERN_OMNI_DIRECTIONAL = 0,
- DIS_PATTERN_BEAM = 1,
- DIS_PATTERN_SPHERICAL_HARMONIC = 2
-} DIS_PDU_AntennaPattern_Type;
-
-extern const value_string DIS_PDU_AntennaPatternType_Strings[];
-
-typedef enum
-{
- DIS_SYSTEM_MOD_OTHER = 0,
- DIS_SYSTEM_MOD_GENERIC = 1,
- DIS_SYSTEM_MOD_HQ = 2,
- DIS_SYSTEM_MOD_HQII = 3,
- DIS_SYSTEM_MOD_HQIIA = 4,
- DIS_SYSTEM_MOD_SINCGARS = 5,
- DIS_SYSTEM_MOD_CCTT_SINCGARS = 6,
- DIS_SYSTEM_MOD_EPLRS = 7,
- DIS_SYSTEM_MOD_JTIDS_MIDS = 8
-} DIS_PDU_SYSTEM_MODULATION_TYPE;
-
-extern const value_string DIS_PDU_SystemModulation_Strings[];
-
-typedef enum
-{
- DIS_MAJOR_MOD_OTHER = 0,
- DIS_MAJOR_MOD_AMPLITUDE = 1,
- DIS_MAJOR_MOD_AMPLITUDE_AND_ANGLE = 2,
- DIS_MAJOR_MOD_ANGLE = 3,
- DIS_MAJOR_MOD_COMBINATION = 4,
- DIS_MAJOR_MOD_PULSE = 5,
- DIS_MAJOR_MOD_UNMODULATED = 6,
- DIS_MAJOR_MOD_CPSM = 7
-} DIS_PDU_MAJOR_MODULATION_TYPE;
-
-extern const value_string DIS_PDU_MajorModulation_Strings[];
-
-typedef enum
-{
- DIS_MESSAGE_TYPE_JTIDS_HEADER_MESSAGES = 0,
- DIS_MESSAGE_TYPE_RTT_A_B,
- DIS_MESSAGE_TYPE_RTT_REPLY,
- DIS_MESSAGE_TYPE_JTIDS_VOICE_CVSD,
- DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC10,
- DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC12,
- DIS_MESSAGE_TYPE_JTIDS_LET,
- DIS_MESSAGE_TYPE_VMF
-} DIS_PDU_MessageType;
-
-extern const value_string DIS_PDU_JTIDS_MessageType_Strings[];
-
-typedef enum
-{
- DIS_EMISSION_FUNCTION_OTHER = 0,
- DIS_EMISSION_FUNCTION_MULTI_FUNCTION = 1,
- DIS_EMISSION_FUNCTION_EARLY_WARNING_SURVEILLANCE = 2,
- DIS_EMISSION_FUNCTION_HEIGHT_FINDING = 3,
- DIS_EMISSION_FUNCTION_FIRE_CONTROL = 4,
- DIS_EMISSION_FUNCTION_ACQUISITION_DETECTION = 5,
- DIS_EMISSION_FUNCTION_TRACKING = 6,
- DIS_EMISSION_FUNCTION_GUIDANCE_ILLUMINATION = 7,
- DIS_EMISSION_FUNCTION_FIRING_POINT_LAUNCH_POINT_LOCATION = 8,
- DIS_EMISSION_FUNCTION_RANGING = 9,
- DIS_EMISSION_FUNCTION_RADAR_ALTIMETER = 10,
- DIS_EMISSION_FUNCTION_IMAGING = 11,
- DIS_EMISSION_FUNCTION_MOTION_DETECTION = 12,
- DIS_EMISSION_FUNCTION_NAVIGATION = 13,
- DIS_EMISSION_FUNCTION_WEATHER_METEROLOGICAL = 14,
- DIS_EMISSION_FUNCTION_INSTRUMENTATION = 15,
- DIS_EMISSION_FUNCTION_IDENTIFICATION_CLASSIFICATION_INCLUDING_IFF = 16,
- DIS_EMISSION_FUNCTION_AAA_FIRE_CONTROL = 17,
- DIS_EMISSION_FUNCTION_AIR_SEARCH_BOMB = 18,
- DIS_EMISSION_FUNCTION_AIR_INTERCEPT = 19,
- DIS_EMISSION_FUNCTION_ALTIMETER = 20,
- DIS_EMISSION_FUNCTION_AIR_MAPPING = 21,
- DIS_EMISSION_FUNCTION_AIR_TRAFFIC_CONTROL = 22,
- DIS_EMISSION_FUNCTION_BEACON = 23,
- DIS_EMISSION_FUNCTION_BATTLEFIELD_SURVEILLANCE = 24,
- DIS_EMISSION_FUNCTION_GROUND_CONTROL_APPROACH = 25,
- DIS_EMISSION_FUNCTION_GROUND_CONTROL_INTERCEPT = 26,
- DIS_EMISSION_FUNCTION_COASTAL_SURVEILLANCE = 27,
- DIS_EMISSION_FUNCTION_DECOY_MIMIC = 28,
- DIS_EMISSION_FUNCTION_DATA_TRANSMISSION = 29,
- DIS_EMISSION_FUNCTION_EARTH_SURVEILLANCE = 30,
- DIS_EMISSION_FUNCTION_GUN_LAY_BEACON = 31,
- DIS_EMISSION_FUNCTION_GROUND_MAPPING = 32,
- DIS_EMISSION_FUNCTION_HARBOR_SURVEILLANCE = 33,
- /* enum 34 deleted */
- DIS_EMISSION_FUNCTION_ILS = 35,
- DIS_EMISSION_FUNCTION_IONOSPHERIC_SOUND = 36,
- DIS_EMISSION_FUNCTION_INTERROGATOR = 37,
- DIS_EMISSION_FUNCTION_BARRAGE_JAMMING = 38,
- DIS_EMISSION_FUNCTION_CLICK_JAMMING = 39,
- /* enum 40 deleted */
- DIS_EMISSION_FUNCTION_FREQUENCY_SWEPT_JAMMING = 41,
- DIS_EMISSION_FUNCTION_JAMMING = 42,
- /* enum 43 deleted */
- DIS_EMISSION_FUNCTION_PULSED_JAMMING = 44,
- DIS_EMISSION_FUNCTION_REPEATER_JAMMING = 45,
- DIS_EMISSION_FUNCTION_SPOT_NOISE_JAMMING = 46,
- DIS_EMISSION_FUNCTION_MISSILE_ACQUISITION = 47,
- DIS_EMISSION_FUNCTION_MISSILE_DOWNLINK = 48,
- /* enum 49 deleted */
- DIS_EMISSION_FUNCTION_SPACE = 50,
- DIS_EMISSION_FUNCTION_SURFACE_SEARCH = 51,
- DIS_EMISSION_FUNCTION_SHELL_TRACKING = 52,
- /* enums 52-55 unassigned */
- DIS_EMISSION_FUNCTION_TELEVISION = 56,
- DIS_EMISSION_FUNCTION_UNKNOWN = 57,
- DIS_EMISSION_FUNCTION_VIDEO_REMOTING = 58,
- DIS_EMISSION_FUNCTION_EXPERIMENTAL_OR_TRAINING = 59,
- DIS_EMISSION_FUNCTION_MISSILE_GUIDANCE = 60,
- DIS_EMISSION_FUNCTION_MISSILE_HOMING = 61,
- DIS_EMISSION_FUNCTION_MISSILE_TRACKING = 62,
- /* enum 63 unassigned */
- DIS_EMISSION_FUNCTION_JAMMING_NOISE = 64,
- DIS_EMISSION_FUNCTION_JAMMING_DECEPTION = 65,
- /* enum 66 deleted */
- /* enums 67-70 unassigned */
- DIS_EMISSION_FUNCTION_NAVIGATION_DISTANCE_MEASURING_EQUIPMENT = 71,
- DIS_EMISSION_FUNCTION_TERRAIN_FOLLOWING = 72,
- DIS_EMISSION_FUNCTION_WEATHER_AVOIDANCE = 73,
- DIS_EMISSION_FUNCTION_PROXIMITY_FUSE = 74,
- /* enum 75 deleted */
- DIS_EMISSION_FUNCTION_RADIOSONDE = 76,
- DIS_EMISSION_FUNCTION_SONOBUOY = 77,
- DIS_EMISSION_FUNCTION_BATHYTHERMAL_SENSOR = 78,
- DIS_EMISSION_FUNCTION_TOWED_COUNTER_MEASURE = 79,
- /* enums 80-95 unassigned */
- DIS_EMISSION_FUNCTION_WEAPON_NON_LETHAL = 96,
- DIS_EMISSION_FUNCTION_WEAPON_LETHAL = 97
-} DIS_PDU_Emission_Function;
-
-extern const value_string DIS_PDU_EmissionFunction_Strings[];
-
-typedef enum
-{
- DIS_BEAM_FUNCTION_OTHER = 0,
- DIS_BEAM_FUNCTION_SEARCH = 1,
- DIS_BEAM_FUNCTION_HEIGHT_FINDER = 2,
- DIS_BEAM_FUNCTION_ACQUISITION = 3,
- DIS_BEAM_FUNCTION_TRACKING = 4,
- DIS_BEAM_FUNCTION_ACQUISITION_TRACKING = 5,
- DIS_BEAM_FUNCTION_COMMAND_GUIDANCE = 6,
- DIS_BEAM_FUNCTION_ILLUMINATION = 7,
- DIS_BEAM_FUNCTION_RANGE_ONLY_RADAR = 8,
- DIS_BEAM_FUNCTION_MISSILE_BEACON = 9,
- DIS_BEAM_FUNCTION_MISSILE_FUZE = 10,
- DIS_BEAM_FUNCTION_ACTIVE_RADAR_MISSILE_SEEKER = 11,
- DIS_BEAM_FUNCTION_JAMMER = 12,
- DIS_BEAM_FUNCTION_IFF = 13,
- DIS_BEAM_FUNCTION_NAVIGATIONAL_WEATHER = 14,
- DIS_BEAM_FUNCTION_METEOROLOGICAL = 15,
- DIS_BEAM_FUNCTION_DATA_TRANSMISSION = 16,
- DIS_BEAM_FUNCTION_NAVIGATIONAL_DIRECTIONAL_BEACON = 17
-} DIS_PDU_Beam_Function;
-
-extern const value_string DIS_PDU_BeamFunction_Strings[];
-
-typedef enum
-{
- DIS_ACKNOWLEDGE_FLAG_CREATE_ENTITY = 1,
- DIS_ACKNOWLEDGE_FLAG_REMOVE_ENTITY = 2,
- DIS_ACKNOWLEDGE_FLAG_START_RESUME = 3,
- DIS_ACKNOWLEDGE_FLAG_STOP_FREEZE = 4,
- DIS_ACKNOWLEDGE_FLAG_TRANSFER_CONTROL_REQUEST = 5
-} DIS_PDU_AcknowledgeFlag;
-
-extern const value_string DIS_PDU_AcknowledgeFlag_Strings[];
-
-typedef enum
-{
- DIS_ACTION_ID_OTHER = 0,
- DIS_ACTION_ID_LOCAL_STORAGE_OF_THE_REQUESTED_INFORMATION = 1,
- DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_AMMUNITION = 2,
- DIS_ACTION_ID_INFORM_SM_OF_EVENT_KILLED_IN_ACTION = 3,
- DIS_ACTION_ID_INFORM_SM_OF_EVENT_DAMAGE = 4,
- DIS_ACTION_ID_INFORM_SM_OF_EVENT_MOBILITY_DISABLED = 5,
- DIS_ACTION_ID_INFORM_SM_OF_EVENT_FIRE_DISABLED = 6,
- DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_FUEL = 7,
- DIS_ACTION_ID_RECALL_CHECKPOINT_DATA = 8,
- DIS_ACTION_ID_RECALL_INITIAL_PARAMETERS = 9,
- DIS_ACTION_ID_INITIATE_TETHER_LEAD = 10,
- DIS_ACTION_ID_INITIATE_TETHER_FOLLOW = 11,
- DIS_ACTION_ID_UNTETHER = 12,
- DIS_ACTION_ID_INITIATE_SERVICE_STATION_RESUPPLY = 13,
- DIS_ACTION_ID_INITIATE_TAILGATE_RESUPPLY = 14,
- DIS_ACTION_ID_INITIATE_HITCH_LEAD = 15,
- DIS_ACTION_ID_INITIATE_HITCH_FOLLOW = 16,
- DIS_ACTION_ID_UNHITCH = 17,
- DIS_ACTION_ID_MOUNT = 18,
- DIS_ACTION_ID_DISMOUNT = 19,
- DIS_ACTION_ID_START_DRC = 20,
- DIS_ACTION_ID_STOP_DRC = 21,
- DIS_ACTION_ID_DATA_QUERY = 22,
- DIS_ACTION_ID_STATUS_REQUEST = 23,
- DIS_ACTION_ID_SEND_OBJECT_STATE_DATA = 24,
- DIS_ACTION_ID_RECONSTITUTE = 25,
- DIS_ACTION_ID_LOCK_SITE_CONFIGURATION = 26,
- DIS_ACTION_ID_UNLOCK_SITE_CONFIGURATION = 27,
- DIS_ACTION_ID_UPDATE_SITE_CONFIGURATION = 28,
- DIS_ACTION_ID_QUERY_SITE_CONFIGURATION = 29,
- DIS_ACTION_ID_TETHERING_INFORMATION = 30,
- DIS_ACTION_ID_MOUNT_INTENT = 31,
- DIS_ACTION_ID_ACCEPT_SUBSCRIPTION = 33,
- DIS_ACTION_ID_UNSUBSCRIBE = 34,
- DIS_ACTION_ID_TELEPORT_ENTITY = 35,
- DIS_ACTION_ID_CHANGE_AGGREGATE_STATE = 36,
- DIS_ACTION_ID_REQUEST_START_PDU = 37,
- DIS_ACTION_ID_WAKEUP_GET_READY_FOR_INITIALIZATION = 38,
- DIS_ACTION_ID_INITIALIZE_INTERNAL_PARAMETERS = 39,
- DIS_ACTION_ID_SEND_PLAN_DATA = 40,
- DIS_ACTION_ID_SYNCHRONIZE_INTERNAL_CLOCKS = 41,
- DIS_ACTION_ID_RUN = 42,
- DIS_ACTION_ID_SAVE_INTERNAL_PARAMETERS = 43,
- DIS_ACTION_ID_SIMULATE_MALFUNCTION = 44,
- DIS_ACTION_ID_JOIN_EXERCISE = 45,
- DIS_ACTION_ID_RESIGN_EXERCISE = 46,
- DIS_ACTION_ID_TIME_ADVANCE = 47,
- DIS_ACTION_ID_COMMAND_FROM_SIMULATOR = 48,
- DIS_ACTION_ID_SLING_LOAD_CAPABILITY_REQUEST = 4300,
- DIS_ACTION_ID_SLING_ATTACH_REQUEST = 4301,
- DIS_ACTION_ID_SLING_RELEASE_REQUEST = 4302,
- DIS_ACTION_ID_AIRMOUNT_MOUNT_REQUEST = 4303,
- DIS_ACTION_ID_AIRMOUNT_DISMOUNT_REQUEST = 4304,
- DIS_ACTION_ID_AIRMOUNT_INFO_REQUEST = 4305
-} DIS_PDU_ActionId;
-
-extern const value_string DIS_PDU_ActionId_Strings[];
-
-typedef enum
-{
- DIS_APPLICATION_GENERAL_STATUS_UNKNOWN = 1,
- DIS_APPLICATION_GENERAL_STATUS_FUNCTIONAL = 2,
- DIS_APPLICATION_GENERAL_STATUS_DEGRADED_BUT_FUNCTIONAL = 3,
- DIS_APPLICATION_GENERAL_STATUS_NOT_FUNCTIONAL = 4
-} DIS_PDU_ApplicationGeneralStatus;
-
-extern const value_string DIS_PDU_ApplicationGeneralStatus_Strings[];
-
-typedef enum
-{
- DIS_APPLICATION_STATUS_TYPE_NOT_SPECIFIED = 0,
- DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_USER = 10,
- DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_SYSTEM = 11,
- DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IO = 12,
- DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IDLE = 13,
- DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_STEAL = 14,
- DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_NICE = 15,
- DIS_APPLICATION_STATUS_TYPE_MEMORY_FREE = 50,
- DIS_APPLICATION_STATUS_TYPE_MEMORY_USED = 51,
- DIS_APPLICATION_STATUS_TYPE_SWAP_FREE = 60,
- DIS_APPLICATION_STATUS_TYPE_SWAP_USED = 61,
- DIS_APPLICATION_STATUS_TYPE_SWAP_CACHED = 62,
- DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_PACKETS_SEC = 100,
- DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_BYTES_SEC = 101,
- DIS_APPLICATION_STATUS_TYPE_RECEIVED_PACKETS_SEC = 110,
- DIS_APPLICATION_STATUS_TYPE_RECEIVED_BYTES_SEC = 111,
- DIS_APPLICATION_STATUS_TYPE_NICE_LEVEL = 150
-} DIS_PDU_ApplicationStatusType;
-
-extern const value_string DIS_PDU_ApplicationStatusType_Strings[];
-
-typedef enum
-{
- DIS_APPLICATION_TYPE_OTHER = 0,
- DIS_APPLICATION_TYPE_RESOURCE_MANAGER = 1,
- DIS_APPLICATION_TYPE_SIMULATION_MANAGER = 2,
- DIS_APPLICATION_TYPE_GATEWAY = 3,
- DIS_APPLICATION_TYPE_STEALTH = 4,
- DIS_APPLICATION_TYPE_TACTICAL_INTERNET_INTERFACE = 5
-} DIS_PDU_ApplicationType;
-
-extern const value_string DIS_PDU_ApplicationType_Strings[];
-
-typedef enum
-{
- DIS_DETONATION_RESULT_OTHER = 0,
- DIS_DETONATION_RESULT_ENTITY_IMPACT = 1,
- DIS_DETONATION_RESULT_ENTITY_PROXIMATE_DETONATION = 2,
- DIS_DETONATION_RESULT_GROUND_IMPACT = 3,
- DIS_DETONATION_RESULT_GROUND_PROXIMATE_DETONATION = 4,
- DIS_DETONATION_RESULT_DETONATION = 5,
- DIS_DETONATION_RESULT_NONE_DUD = 6,
- DIS_DETONATION_RESULT_HE_HIT_SMALL = 7,
- DIS_DETONATION_RESULT_HE_HIT_MEDIUM = 8,
- DIS_DETONATION_RESULT_HE_HIT_LARGE = 9,
- DIS_DETONATION_RESULT_ARMOR_PIERCING_HIT = 10,
- DIS_DETONATION_RESULT_DIRT_BLAST_SMALL = 11,
- DIS_DETONATION_RESULT_DIRT_BLAST_MEDIUM = 12,
- DIS_DETONATION_RESULT_DIRT_BLAST_LARGE = 13,
- DIS_DETONATION_RESULT_WATER_BLAST_SMALL = 14,
- DIS_DETONATION_RESULT_WATER_BLAST_MEDIUM = 15,
- DIS_DETONATION_RESULT_WATER_BLAST_LARGE = 16,
- DIS_DETONATION_RESULT_AIR_HIT = 17,
- DIS_DETONATION_RESULT_BUILDING_HIT_SMALL = 18,
- DIS_DETONATION_RESULT_BUILDING_HIT_MEDIUM = 19,
- DIS_DETONATION_RESULT_BUILDING_HIT_LARGE = 20,
- DIS_DETONATION_RESULT_MINE_CLEARING_LINE_CHARGE = 21,
- DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_IMPACT = 22,
- DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_PROXIMATE_DETONATION = 23,
- DIS_DETONATION_RESULT_WATER_IMPACT = 24,
- DIS_DETONATION_RESULT_AIR_BURST = 25,
- DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1 = 26,
- DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2 = 27,
- DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_3 = 28,
- DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1_AFTER_FOF = 29,
- DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2_AFTER_FOF = 30,
- DIS_DETONATION_RESULT_MISS_DUE_TO_FOF = 31,
- DIS_DETONATION_RESULT_MISS_DUE_TO_ENDGAME_FAILURE = 32,
- DIS_DETONATION_RESULT_MISS_DUE_TO_FOF_AND_ENDGAME_FAILURE = 33
-} DIS_PDU_DetonationResult;
-
-extern const value_string DIS_PDU_DetonationResult_Strings[];
-
-typedef enum
-{
- DIS_CONTROL_ID_OTHER = 0,
- DIS_CONTROL_ID_SHUTDOWN = 1,
- DIS_CONTROL_ID_DATA_QUERY = 2,
- DIS_CONTROL_ID_DATA = 3,
- DIS_CONTROL_ID_SET_DATA = 4,
- DIS_CONTROL_ID_ADD_DATA = 5,
- DIS_CONTROL_ID_REMOVE_DATA = 6,
- DIS_CONTROL_ID_STATUS = 7
-} DIS_PDU_ControlId;
-
-extern const value_string DIS_PDU_ControlId_Strings[];
-
-typedef enum
-{
- DIS_FROZEN_BEHAVIOR_RUN_INTERNAL_SIMULATION_CLOCK = 0,
- DIS_FROZEN_BEHAVIOR_TRANSMIT_PDUS = 1,
- DIS_FROZEN_BEHAVIOR_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES = 2,
- DIS_FROZEN_BEHAVIOR_CONTINUE_TRANSMIT_PDU = 3,
- DIS_FROZEN_BEHAVIOR_CEASE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES = 4,
- DIS_FROZEN_BEHAVIOR_CONTINUE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES = 5
-} DIS_PDU_FrozenBehavior;
-
-extern const value_string DIS_PDU_FrozenBehavior_Strings[];
-
-typedef enum
-{
- DIS_PARAM_TYPE_DESIG_ARTICULATED_PART = 0,
- DIS_PARAM_TYPE_DESIG_ATTACHED_PART = 1,
- DIS_PARAM_TYPE_DESIG_SEPARATION = 2,
- DIS_PARAM_TYPE_DESIG_ENTITY_TYPE = 3,
- DIS_PARAM_TYPE_DESIG_ENTITY_ASSOCIATION = 4,
- DIS_PARAM_TYPE_DESIG_ANTENNA_LOCATION = 5,
- DIS_PARAM_TYPE_DESIG_EXTENDED_PLATFORM_APPEARANCE = 20,
- DIS_PARAM_TYPE_DESIG_EXTENDED_LIFEFORM_APPEARANCE = 21,
- DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_LIGHTS = 22,
- DIS_PARAM_TYPE_DESIG_CHEVRON_MARKING = 23,
- DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_THERMAL_SENSOR = 24,
- DIS_PARAM_TYPE_DESIG_ENTITY_OFFSET = 25,
- DIS_PARAM_TYPE_DESIG_DEAD_RECKONING = 26,
- DIS_PARAM_TYPE_DESIG_ARMY_TASK_ORGANIZATION = 27,
- DIS_PARAM_TYPE_DESIG_HEAD_GAZING_WEAPON_AIMING = 28,
- DIS_PARAM_TYPE_DESIG_LIFEFORM_ACTION_SEQUENCE = 29,
- DIS_PARAM_TYPE_DESIG_LEGACY_EXTENDED_LIFEFORM_APPEARANCE = 30
-} DIS_PDU_ParameterTypeDesignator;
-
-extern const value_string DIS_PDU_ParameterTypeDesignator_Strings[];
-
-typedef enum
-{
- DIS_REASON_OTHER = 0,
- DIS_REASON_RECESS = 1,
- DIS_REASON_TERMINATION = 2,
- DIS_REASON_SYSTEM_FAILURE = 3,
- DIS_REASON_SECURITY_VIOLATION = 4,
- DIS_REASON_ENTITY_RECONSTITUTION = 5,
- DIS_REASON_STOP_FOR_RESET = 6,
- DIS_REASON_STOP_FOR_RESTART = 7,
- DIS_REASON_ABORT_TRAINING_RETURN_TO_TACTICAL_OPERATIONS = 8
-} DIS_PDU_Reason;
-
-extern const value_string DIS_PDU_Reason_Strings[];
-
-typedef enum
-{
- DIS_REQUEST_STATUS_OTHER = 0,
- DIS_REQUEST_STATUS_PENDING = 1,
- DIS_REQUEST_STATUS_EXECUTING = 2,
- DIS_REQUEST_STATUS_PARTIALLY_COMPLETE = 3,
- DIS_REQUEST_STATUS_COMPLETE = 4,
- DIS_REQUEST_STATUS_REQUEST_REJECTED = 5,
- DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_NOW = 6,
- DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_LATER = 7,
- DIS_REQUEST_STATUS_INVALID_TIME_PARAMETERS = 8,
- DIS_REQUEST_STATUS_SIMULATION_TIME_EXCEEDED = 9,
- DIS_REQUEST_STATUS_REQUEST_DONE = 10,
- DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_1 = 100,
- DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_2 = 101,
- DIS_REQUEST_STATUS_JOIN_EXERCISE_REQUEST_REJECTED = 201
-} DIS_PDU_RequestStatus;
-
-extern const value_string DIS_PDU_RequestStatus_Strings[];
-
-typedef enum
-{
- DIS_REQUIRED_RELIABILITY_SERVICE_ACKNOWLEDGED = 0,
- DIS_REQUIRED_RELIABILITY_SERVICE_UNACKNOWLEDGED = 1
-} DIS_PDU_RequiredReliabilityService;
-
-extern const value_string DIS_PDU_RequiredReliabilityService_Strings[];
-
-typedef enum
-{
- DIS_RESPONSE_FLAG_OTHER = 0,
- DIS_RESPONSE_FLAG_ABLE_TO_COMPLY = 1,
- DIS_RESPONSE_FLAG_UNABLE_TO_COMPLY = 2,
- DIS_RESPONSE_FLAG_PENDING_OPERATOR_ACTION = 3
-} DIS_PDU_DisResponseFlag;
-
-extern const value_string DIS_PDU_DisResponseFlag_Strings[];
-
-typedef enum
-{
- DIS_PERSISTENT_OBJECT_TYPE_OTHER = 0,
- DIS_PERSISTENT_OBJECT_TYPE_SIMULATOR_PRESENT = 1,
- DIS_PERSISTENT_OBJECT_TYPE_DESCRIBE_OBJECT = 2,
- DIS_PERSISTENT_OBJECT_TYPE_OBJECTS_PRESENT = 3,
- DIS_PERSISTENT_OBJECT_TYPE_OBJECT_REQUEST = 4,
- DIS_PERSISTENT_OBJECT_TYPE_DELETE_OBJECTS = 5,
- DIS_PERSISTENT_OBJECT_TYPE_SET_WORLD_STATE = 6,
- DIS_PERSISTENT_OBJECT_TYPE_NOMINATION = 7
-} DIS_PDU_PersistentObjectType;
-
-extern const value_string DIS_PDU_PersistentObjectType_Strings[];
-
-typedef enum
-{
- DIS_PO_OBJECT_CLASS_OTHER = 0,
- DIS_PO_OBJECT_CLASS_WORLD_STATE = 1,
- DIS_PO_OBJECT_CLASS_OVERLAY = 2,
- DIS_PO_OBJECT_CLASS_POINT = 3,
- DIS_PO_OBJECT_CLASS_LINE = 4,
- DIS_PO_OBJECT_CLASS_SECTOR = 5,
- DIS_PO_OBJECT_CLASS_TEXT = 6,
- DIS_PO_OBJECT_CLASS_UNIT = 7,
- DIS_PO_OBJECT_CLASS_UNIT_DEFINITION = 8,
- DIS_PO_OBJECT_CLASS_STEALTH_CONTROLLER = 9,
- DIS_PO_OBJECT_CLASS_H_HOUR = 10,
- DIS_PO_OBJECT_CLASS_VARIABLE = 11,
- DIS_PO_OBJECT_CLASS_TASK = 12,
- DIS_PO_OBJECT_CLASS_TASK_STATE = 13,
- DIS_PO_OBJECT_CLASS_TASK_FRAME = 14,
- DIS_PO_OBJECT_CLASS_TASK_AUTHORIZATION = 15,
- DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT = 16,
- DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT_HOLDER = 17,
- DIS_PO_OBJECT_CLASS_EXERCISE_INITIALIZER = 18,
- DIS_PO_OBJECT_CLASS_FIRE_PARAMETERS = 19,
- DIS_PO_OBJECT_CLASS_MINEFIELD = 20,
- DIS_PO_OBJECT_CLASS_SIMULATION_REQUEST = 21,
- DIS_PO_OBJECT_CLASS_NET_SUBSCRIPTION = 22,
- DIS_PO_OBJECT_CLASS_LINK = 23,
- DIS_PO_OBJECT_CLASS_MINEFIELD_PARENT = 24,
- DIS_PO_OBJECT_CLASS_CHEMICAL = 25,
- DIS_PO_OBJECT_CLASS_AlertUser = 26,
- DIS_PO_OBJECT_CLASS_HAND_OFF = 27,
- DIS_PO_OBJECT_CLASS_CIRCUIT = 28,
- DIS_PO_OBJECT_CLASS_CARGO = 29,
- DIS_PO_OBJECT_CLASS_MCM_ROUTE = 30,
- DIS_PO_OBJECT_CLASS_MESSAGE = 31
-} DIS_PDU_PO_ObjectClass;
-
-extern const value_string DIS_PDU_PO_ObjectClass_Strings[];
-
-typedef enum
-{
- DIS_EMITTER_NAME_10 = 10,
- DIS_EMITTER_NAME_45 = 45,
- DIS_EMITTER_NAME_80 = 80,
- DIS_EMITTER_NAME_90 = 90,
- DIS_EMITTER_NAME_135 = 135,
- DIS_EMITTER_NAME_180 = 180,
- DIS_EMITTER_NAME_225 = 225,
- DIS_EMITTER_NAME_270 = 270,
- DIS_EMITTER_NAME_315 = 315,
- DIS_EMITTER_NAME_360 = 360,
- DIS_EMITTER_NAME_405 = 405,
- DIS_EMITTER_NAME_450 = 450,
- DIS_EMITTER_NAME_495 = 495,
- DIS_EMITTER_NAME_540 = 540,
- DIS_EMITTER_NAME_585 = 585,
- DIS_EMITTER_NAME_630 = 630,
- DIS_EMITTER_NAME_675 = 675,
- DIS_EMITTER_NAME_720 = 720,
- DIS_EMITTER_NAME_765 = 765,
- DIS_EMITTER_NAME_810 = 810,
- DIS_EMITTER_NAME_855 = 855,
- DIS_EMITTER_NAME_900 = 900,
- DIS_EMITTER_NAME_945 = 945,
- DIS_EMITTER_NAME_990 = 990,
- DIS_EMITTER_NAME_1035 = 1035,
- DIS_EMITTER_NAME_1080 = 1080,
- DIS_EMITTER_NAME_1095 = 1095,
- DIS_EMITTER_NAME_1100 = 1100,
- DIS_EMITTER_NAME_1125 = 1125,
- DIS_EMITTER_NAME_1170 = 1170,
- DIS_EMITTER_NAME_1215 = 1215,
- DIS_EMITTER_NAME_1260 = 1260,
- DIS_EMITTER_NAME_1280 = 1280,
- DIS_EMITTER_NAME_1282 = 1282,
- DIS_EMITTER_NAME_1305 = 1305,
- DIS_EMITTER_NAME_1350 = 1350,
- DIS_EMITTER_NAME_1395 = 1395,
- DIS_EMITTER_NAME_1400 = 1400,
- DIS_EMITTER_NAME_1440 = 1440,
- DIS_EMITTER_NAME_1485 = 1485,
- DIS_EMITTER_NAME_1530 = 1530,
- DIS_EMITTER_NAME_1575 = 1575,
- DIS_EMITTER_NAME_1585 = 1585,
- DIS_EMITTER_NAME_1620 = 1620,
- DIS_EMITTER_NAME_1626 = 1626,
- DIS_EMITTER_NAME_1628 = 1628,
- DIS_EMITTER_NAME_1630 = 1630,
- DIS_EMITTER_NAME_1632 = 1632,
- DIS_EMITTER_NAME_1634 = 1634,
- DIS_EMITTER_NAME_1636 = 1636,
- DIS_EMITTER_NAME_1638 = 1638,
- DIS_EMITTER_NAME_1640 = 1640,
- DIS_EMITTER_NAME_1642 = 1642,
- DIS_EMITTER_NAME_1644 = 1644,
- DIS_EMITTER_NAME_1646 = 1646,
- DIS_EMITTER_NAME_1648 = 1648,
- DIS_EMITTER_NAME_1650 = 1650,
- DIS_EMITTER_NAME_1652 = 1652,
- DIS_EMITTER_NAME_1654 = 1654,
- DIS_EMITTER_NAME_1656 = 1656,
- DIS_EMITTER_NAME_1658 = 1658,
- DIS_EMITTER_NAME_1660 = 1660,
- DIS_EMITTER_NAME_1665 = 1665,
- DIS_EMITTER_NAME_1710 = 1710,
- DIS_EMITTER_NAME_1755 = 1755,
- DIS_EMITTER_NAME_1800 = 1800,
- DIS_EMITTER_NAME_1805 = 1805,
- DIS_EMITTER_NAME_1807 = 1807,
- DIS_EMITTER_NAME_1809 = 1809,
- DIS_EMITTER_NAME_1845 = 1845,
- DIS_EMITTER_NAME_1870 = 1870,
- DIS_EMITTER_NAME_1890 = 1890,
- DIS_EMITTER_NAME_1935 = 1935,
- DIS_EMITTER_NAME_1945 = 1945,
- DIS_EMITTER_NAME_1960 = 1960,
- DIS_EMITTER_NAME_1970 = 1970,
- DIS_EMITTER_NAME_1980 = 1980,
- DIS_EMITTER_NAME_2025 = 2025,
- DIS_EMITTER_NAME_2070 = 2070,
- DIS_EMITTER_NAME_2115 = 2115,
- DIS_EMITTER_NAME_2160 = 2160,
- DIS_EMITTER_NAME_2205 = 2205,
- DIS_EMITTER_NAME_2250 = 2250,
- DIS_EMITTER_NAME_2295 = 2295,
- DIS_EMITTER_NAME_2340 = 2340,
- DIS_EMITTER_NAME_2385 = 2385,
- DIS_EMITTER_NAME_2430 = 2430,
- DIS_EMITTER_NAME_2475 = 2475,
- DIS_EMITTER_NAME_2520 = 2520,
- DIS_EMITTER_NAME_2565 = 2565,
- DIS_EMITTER_NAME_2610 = 2610,
- DIS_EMITTER_NAME_2655 = 2655,
- DIS_EMITTER_NAME_2700 = 2700,
- DIS_EMITTER_NAME_2745 = 2745,
- DIS_EMITTER_NAME_2790 = 2790,
- DIS_EMITTER_NAME_2835 = 2835,
- DIS_EMITTER_NAME_2880 = 2880,
- DIS_EMITTER_NAME_2925 = 2925,
- DIS_EMITTER_NAME_2970 = 2970,
- DIS_EMITTER_NAME_3015 = 3015,
- DIS_EMITTER_NAME_3060 = 3060,
- DIS_EMITTER_NAME_3105 = 3105,
- DIS_EMITTER_NAME_3150 = 3150,
- DIS_EMITTER_NAME_3152 = 3152,
- DIS_EMITTER_NAME_3160 = 3160,
- DIS_EMITTER_NAME_3162 = 3162,
- DIS_EMITTER_NAME_3164 = 3164,
- DIS_EMITTER_NAME_3166 = 3166,
- DIS_EMITTER_NAME_3195 = 3195,
- DIS_EMITTER_NAME_3240 = 3240,
- DIS_EMITTER_NAME_3285 = 3285,
- DIS_EMITTER_NAME_3330 = 3330,
- DIS_EMITTER_NAME_3375 = 3375,
- DIS_EMITTER_NAME_3420 = 3420,
- DIS_EMITTER_NAME_3465 = 3465,
- DIS_EMITTER_NAME_3510 = 3510,
- DIS_EMITTER_NAME_3555 = 3555,
- DIS_EMITTER_NAME_3600 = 3600,
- DIS_EMITTER_NAME_3645 = 3645,
- DIS_EMITTER_NAME_3690 = 3690,
- DIS_EMITTER_NAME_3735 = 3735,
- DIS_EMITTER_NAME_3780 = 3780,
- DIS_EMITTER_NAME_3785 = 3785,
- DIS_EMITTER_NAME_3788 = 3788,
- DIS_EMITTER_NAME_3795 = 3795,
- DIS_EMITTER_NAME_3820 = 3820,
- DIS_EMITTER_NAME_3825 = 3825,
- DIS_EMITTER_NAME_3870 = 3870,
- DIS_EMITTER_NAME_3915 = 3915,
- DIS_EMITTER_NAME_3960 = 3960,
- DIS_EMITTER_NAME_4005 = 4005,
- DIS_EMITTER_NAME_4050 = 4050,
- DIS_EMITTER_NAME_4095 = 4095,
- DIS_EMITTER_NAME_4140 = 4140,
- DIS_EMITTER_NAME_4185 = 4185,
- DIS_EMITTER_NAME_4230 = 4230,
- DIS_EMITTER_NAME_4275 = 4275,
- DIS_EMITTER_NAME_4320 = 4320,
- DIS_EMITTER_NAME_4365 = 4365,
- DIS_EMITTER_NAME_4410 = 4410,
- DIS_EMITTER_NAME_4455 = 4455,
- DIS_EMITTER_NAME_4465 = 4465,
- DIS_EMITTER_NAME_4500 = 4500,
- DIS_EMITTER_NAME_4545 = 4545,
- DIS_EMITTER_NAME_4590 = 4590,
- DIS_EMITTER_NAME_4635 = 4635,
- DIS_EMITTER_NAME_4680 = 4680,
- DIS_EMITTER_NAME_4725 = 4725,
- DIS_EMITTER_NAME_4770 = 4770,
- DIS_EMITTER_NAME_4815 = 4815,
- DIS_EMITTER_NAME_4860 = 4860,
- DIS_EMITTER_NAME_4870 = 4870,
- DIS_EMITTER_NAME_4900 = 4900,
- DIS_EMITTER_NAME_4905 = 4905,
- DIS_EMITTER_NAME_4950 = 4950,
- DIS_EMITTER_NAME_4953 = 4953,
- DIS_EMITTER_NAME_4995 = 4995,
- DIS_EMITTER_NAME_5040 = 5040,
- DIS_EMITTER_NAME_5085 = 5085,
- DIS_EMITTER_NAME_5130 = 5130,
- DIS_EMITTER_NAME_5175 = 5175,
- DIS_EMITTER_NAME_5220 = 5220,
- DIS_EMITTER_NAME_5265 = 5265,
- DIS_EMITTER_NAME_5280 = 5280,
- DIS_EMITTER_NAME_5310 = 5310,
- DIS_EMITTER_NAME_5355 = 5355,
- DIS_EMITTER_NAME_5400 = 5400,
- DIS_EMITTER_NAME_5405 = 5405,
- DIS_EMITTER_NAME_5420 = 5420,
- DIS_EMITTER_NAME_5430 = 5430,
- DIS_EMITTER_NAME_5445 = 5445,
- DIS_EMITTER_NAME_5490 = 5490,
- DIS_EMITTER_NAME_5495 = 5495,
- DIS_EMITTER_NAME_5500 = 5500,
- DIS_EMITTER_NAME_5505 = 5505,
- DIS_EMITTER_NAME_5507 = 5507,
- DIS_EMITTER_NAME_5508 = 5508,
- DIS_EMITTER_NAME_5510 = 5510,
- DIS_EMITTER_NAME_5515 = 5515,
- DIS_EMITTER_NAME_5520 = 5520,
- DIS_EMITTER_NAME_5525 = 5525,
- DIS_EMITTER_NAME_5527 = 5527,
- DIS_EMITTER_NAME_5530 = 5530,
- DIS_EMITTER_NAME_5535 = 5535,
- DIS_EMITTER_NAME_5537 = 5537,
- DIS_EMITTER_NAME_5540 = 5540,
- DIS_EMITTER_NAME_5545 = 5545,
- DIS_EMITTER_NAME_5550 = 5550,
- DIS_EMITTER_NAME_5551 = 5551,
- DIS_EMITTER_NAME_5555 = 5555,
- DIS_EMITTER_NAME_5560 = 5560,
- DIS_EMITTER_NAME_5570 = 5570,
- DIS_EMITTER_NAME_5571 = 5571,
- DIS_EMITTER_NAME_5575 = 5575,
- DIS_EMITTER_NAME_5580 = 5580,
- DIS_EMITTER_NAME_5625 = 5625,
- DIS_EMITTER_NAME_5670 = 5670,
- DIS_EMITTER_NAME_5715 = 5715,
- DIS_EMITTER_NAME_5760 = 5760,
- DIS_EMITTER_NAME_5805 = 5805,
- DIS_EMITTER_NAME_5850 = 5850,
- DIS_EMITTER_NAME_5895 = 5895,
- DIS_EMITTER_NAME_5940 = 5940,
- DIS_EMITTER_NAME_5985 = 5985,
- DIS_EMITTER_NAME_6030 = 6030,
- DIS_EMITTER_NAME_6075 = 6075,
- DIS_EMITTER_NAME_6120 = 6120,
- DIS_EMITTER_NAME_6165 = 6165,
- DIS_EMITTER_NAME_6210 = 6210,
- DIS_EMITTER_NAME_6255 = 6255,
- DIS_EMITTER_NAME_6300 = 6300,
- DIS_EMITTER_NAME_6345 = 6345,
- DIS_EMITTER_NAME_6390 = 6390,
- DIS_EMITTER_NAME_6435 = 6435,
- DIS_EMITTER_NAME_6480 = 6480,
- DIS_EMITTER_NAME_6525 = 6525,
- DIS_EMITTER_NAME_6570 = 6570,
- DIS_EMITTER_NAME_6615 = 6615,
- DIS_EMITTER_NAME_6660 = 6660,
- DIS_EMITTER_NAME_6705 = 6705,
- DIS_EMITTER_NAME_6750 = 6750,
- DIS_EMITTER_NAME_6752 = 6752,
- DIS_EMITTER_NAME_6795 = 6795,
- DIS_EMITTER_NAME_6796 = 6796,
- DIS_EMITTER_NAME_6797 = 6797,
- DIS_EMITTER_NAME_6798 = 6798,
- DIS_EMITTER_NAME_6799 = 6799,
- DIS_EMITTER_NAME_6800 = 6800,
- DIS_EMITTER_NAME_6801 = 6801,
- DIS_EMITTER_NAME_6802 = 6802,
- DIS_EMITTER_NAME_6803 = 6803,
- DIS_EMITTER_NAME_6804 = 6804,
- DIS_EMITTER_NAME_6840 = 6840,
- DIS_EMITTER_NAME_6885 = 6885,
- DIS_EMITTER_NAME_6930 = 6930,
- DIS_EMITTER_NAME_6975 = 6975,
- DIS_EMITTER_NAME_7020 = 7020,
- DIS_EMITTER_NAME_7065 = 7065,
- DIS_EMITTER_NAME_7110 = 7110,
- DIS_EMITTER_NAME_7155 = 7155,
- DIS_EMITTER_NAME_7200 = 7200,
- DIS_EMITTER_NAME_7245 = 7245,
- DIS_EMITTER_NAME_7250 = 7250,
- DIS_EMITTER_NAME_7252 = 7252,
- DIS_EMITTER_NAME_7253 = 7253,
- DIS_EMITTER_NAME_7260 = 7260,
- DIS_EMITTER_NAME_7261 = 7261,
- DIS_EMITTER_NAME_7265 = 7265,
- DIS_EMITTER_NAME_7270 = 7270,
- DIS_EMITTER_NAME_7275 = 7275,
- DIS_EMITTER_NAME_7280 = 7280,
- DIS_EMITTER_NAME_7295 = 7295,
- DIS_EMITTER_NAME_7300 = 7300,
- DIS_EMITTER_NAME_7301 = 7301,
- DIS_EMITTER_NAME_7303 = 7303,
- DIS_EMITTER_NAME_7305 = 7305,
- DIS_EMITTER_NAME_7310 = 7310,
- DIS_EMITTER_NAME_7315 = 7315,
- DIS_EMITTER_NAME_7320 = 7320,
- DIS_EMITTER_NAME_7322 = 7322,
- DIS_EMITTER_NAME_7325 = 7325,
- DIS_EMITTER_NAME_7330 = 7330,
- DIS_EMITTER_NAME_7335 = 7335,
- DIS_EMITTER_NAME_7380 = 7380,
- DIS_EMITTER_NAME_7425 = 7425,
- DIS_EMITTER_NAME_7426 = 7426,
- DIS_EMITTER_NAME_7470 = 7470,
- DIS_EMITTER_NAME_7515 = 7515,
- DIS_EMITTER_NAME_7560 = 7560,
- DIS_EMITTER_NAME_7605 = 7605,
- DIS_EMITTER_NAME_7650 = 7650,
- DIS_EMITTER_NAME_7695 = 7695,
- DIS_EMITTER_NAME_7740 = 7740,
- DIS_EMITTER_NAME_7785 = 7785,
- DIS_EMITTER_NAME_7830 = 7830,
- DIS_EMITTER_NAME_7875 = 7875,
- DIS_EMITTER_NAME_7920 = 7920,
- DIS_EMITTER_NAME_7965 = 7965,
- DIS_EMITTER_NAME_8010 = 8010,
- DIS_EMITTER_NAME_8055 = 8055,
- DIS_EMITTER_NAME_8100 = 8100,
- DIS_EMITTER_NAME_8105 = 8105,
- DIS_EMITTER_NAME_8112 = 8112,
- DIS_EMITTER_NAME_8115 = 8115,
- DIS_EMITTER_NAME_8120 = 8120,
- DIS_EMITTER_NAME_8145 = 8145,
- DIS_EMITTER_NAME_8190 = 8190,
- DIS_EMITTER_NAME_8235 = 8235,
- DIS_EMITTER_NAME_8280 = 8280,
- DIS_EMITTER_NAME_8325 = 8325,
- DIS_EMITTER_NAME_8370 = 8370,
- DIS_EMITTER_NAME_8375 = 8375,
- DIS_EMITTER_NAME_8380 = 8380,
- DIS_EMITTER_NAME_8390 = 8390,
- DIS_EMITTER_NAME_8415 = 8415,
- DIS_EMITTER_NAME_8460 = 8460,
- DIS_EMITTER_NAME_8505 = 8505,
- DIS_EMITTER_NAME_8550 = 8550,
- DIS_EMITTER_NAME_8595 = 8595,
- DIS_EMITTER_NAME_8640 = 8640,
- DIS_EMITTER_NAME_8685 = 8685,
- DIS_EMITTER_NAME_8730 = 8730,
- DIS_EMITTER_NAME_8735 = 8735,
- DIS_EMITTER_NAME_8760 = 8760,
- DIS_EMITTER_NAME_8772 = 8772,
- DIS_EMITTER_NAME_8775 = 8775,
- DIS_EMITTER_NAME_8780 = 8780,
- DIS_EMITTER_NAME_8782 = 8782,
- DIS_EMITTER_NAME_8785 = 8785,
- DIS_EMITTER_NAME_8790 = 8790,
- DIS_EMITTER_NAME_8812 = 8812,
- DIS_EMITTER_NAME_8820 = 8820,
- DIS_EMITTER_NAME_8840 = 8840,
- DIS_EMITTER_NAME_8845 = 8845,
- DIS_EMITTER_NAME_8865 = 8865,
- DIS_EMITTER_NAME_8870 = 8870,
- DIS_EMITTER_NAME_8910 = 8910,
- DIS_EMITTER_NAME_8955 = 8955,
- DIS_EMITTER_NAME_9000 = 9000,
- DIS_EMITTER_NAME_9045 = 9045,
- DIS_EMITTER_NAME_9075 = 9075,
- DIS_EMITTER_NAME_9090 = 9090,
- DIS_EMITTER_NAME_9135 = 9135,
- DIS_EMITTER_NAME_9180 = 9180,
- DIS_EMITTER_NAME_9200 = 9200,
- DIS_EMITTER_NAME_9205 = 9205,
- DIS_EMITTER_NAME_9225 = 9225,
- DIS_EMITTER_NAME_9270 = 9270,
- DIS_EMITTER_NAME_9310 = 9310,
- DIS_EMITTER_NAME_9315 = 9315,
- DIS_EMITTER_NAME_9360 = 9360,
- DIS_EMITTER_NAME_9405 = 9405,
- DIS_EMITTER_NAME_9450 = 9450,
- DIS_EMITTER_NAME_9495 = 9495,
- DIS_EMITTER_NAME_9540 = 9540,
- DIS_EMITTER_NAME_9585 = 9585,
- DIS_EMITTER_NAME_9630 = 9630,
- DIS_EMITTER_NAME_9640 = 9640,
- DIS_EMITTER_NAME_9642 = 9642,
- DIS_EMITTER_NAME_9645 = 9645,
- DIS_EMITTER_NAME_9660 = 9660,
- DIS_EMITTER_NAME_9675 = 9675,
- DIS_EMITTER_NAME_9720 = 9720,
- DIS_EMITTER_NAME_9765 = 9765,
- DIS_EMITTER_NAME_9780 = 9780,
- DIS_EMITTER_NAME_9810 = 9810,
- DIS_EMITTER_NAME_9855 = 9855,
- DIS_EMITTER_NAME_9885 = 9885,
- DIS_EMITTER_NAME_9900 = 9900,
- DIS_EMITTER_NAME_9905 = 9905,
- DIS_EMITTER_NAME_9930 = 9930,
- DIS_EMITTER_NAME_9935 = 9935,
- DIS_EMITTER_NAME_9945 = 9945,
- DIS_EMITTER_NAME_9990 = 9990,
- DIS_EMITTER_NAME_10035 = 10035,
- DIS_EMITTER_NAME_10080 = 10080,
- DIS_EMITTER_NAME_10125 = 10125,
- DIS_EMITTER_NAME_10170 = 10170,
- DIS_EMITTER_NAME_10215 = 10215,
- DIS_EMITTER_NAME_10260 = 10260,
- DIS_EMITTER_NAME_10305 = 10305,
- DIS_EMITTER_NAME_10350 = 10350,
- DIS_EMITTER_NAME_10395 = 10395,
- DIS_EMITTER_NAME_10440 = 10440,
- DIS_EMITTER_NAME_10485 = 10485,
- DIS_EMITTER_NAME_10510 = 10510,
- DIS_EMITTER_NAME_10530 = 10530,
- DIS_EMITTER_NAME_10575 = 10575,
- DIS_EMITTER_NAME_10620 = 10620,
- DIS_EMITTER_NAME_10665 = 10665,
- DIS_EMITTER_NAME_10710 = 10710,
- DIS_EMITTER_NAME_10755 = 10755,
- DIS_EMITTER_NAME_10800 = 10800,
- DIS_EMITTER_NAME_10845 = 10845,
- DIS_EMITTER_NAME_10890 = 10890,
- DIS_EMITTER_NAME_10895 = 10895,
- DIS_EMITTER_NAME_10935 = 10935,
- DIS_EMITTER_NAME_10940 = 10940,
- DIS_EMITTER_NAME_10980 = 10980,
- DIS_EMITTER_NAME_10985 = 10985,
- DIS_EMITTER_NAME_11000 = 11000,
- DIS_EMITTER_NAME_11010 = 11010,
- DIS_EMITTER_NAME_11025 = 11025,
- DIS_EMITTER_NAME_11070 = 11070,
- DIS_EMITTER_NAME_11115 = 11115,
- DIS_EMITTER_NAME_11160 = 11160,
- DIS_EMITTER_NAME_11205 = 11205,
- DIS_EMITTER_NAME_11250 = 11250,
- DIS_EMITTER_NAME_11260 = 11260,
- DIS_EMITTER_NAME_11270 = 11270,
- DIS_EMITTER_NAME_11295 = 11295,
- DIS_EMITTER_NAME_11340 = 11340,
- DIS_EMITTER_NAME_11385 = 11385,
- DIS_EMITTER_NAME_11430 = 11430,
- DIS_EMITTER_NAME_11475 = 11475,
- DIS_EMITTER_NAME_11520 = 11520,
- DIS_EMITTER_NAME_11565 = 11565,
- DIS_EMITTER_NAME_11610 = 11610,
- DIS_EMITTER_NAME_11655 = 11655,
- DIS_EMITTER_NAME_11660 = 11660,
- DIS_EMITTER_NAME_11665 = 11665,
- DIS_EMITTER_NAME_11700 = 11700,
- DIS_EMITTER_NAME_11745 = 11745,
- DIS_EMITTER_NAME_11790 = 11790,
- DIS_EMITTER_NAME_11835 = 11835,
- DIS_EMITTER_NAME_11880 = 11880,
- DIS_EMITTER_NAME_11925 = 11925,
- DIS_EMITTER_NAME_11970 = 11970,
- DIS_EMITTER_NAME_11975 = 11975,
- DIS_EMITTER_NAME_12010 = 12010,
- DIS_EMITTER_NAME_12015 = 12015,
- DIS_EMITTER_NAME_12060 = 12060,
- DIS_EMITTER_NAME_12105 = 12105,
- DIS_EMITTER_NAME_12110 = 12110,
- DIS_EMITTER_NAME_12111 = 12111,
- DIS_EMITTER_NAME_12150 = 12150,
- DIS_EMITTER_NAME_12195 = 12195,
- DIS_EMITTER_NAME_12240 = 12240,
- DIS_EMITTER_NAME_12285 = 12285,
- DIS_EMITTER_NAME_12292 = 12292,
- DIS_EMITTER_NAME_12330 = 12330,
- DIS_EMITTER_NAME_12375 = 12375,
- DIS_EMITTER_NAME_12420 = 12420,
- DIS_EMITTER_NAME_12430 = 12430,
- DIS_EMITTER_NAME_12465 = 12465,
- DIS_EMITTER_NAME_12510 = 12510,
- DIS_EMITTER_NAME_12555 = 12555,
- DIS_EMITTER_NAME_12600 = 12600,
- DIS_EMITTER_NAME_12610 = 12610,
- DIS_EMITTER_NAME_12645 = 12645,
- DIS_EMITTER_NAME_12690 = 12690,
- DIS_EMITTER_NAME_12735 = 12735,
- DIS_EMITTER_NAME_12780 = 12780,
- DIS_EMITTER_NAME_12782 = 12782,
- DIS_EMITTER_NAME_12785 = 12785,
- DIS_EMITTER_NAME_12787 = 12787,
- DIS_EMITTER_NAME_12800 = 12800,
- DIS_EMITTER_NAME_12805 = 12805,
- DIS_EMITTER_NAME_12825 = 12825,
- DIS_EMITTER_NAME_12870 = 12870,
- DIS_EMITTER_NAME_12915 = 12915,
- DIS_EMITTER_NAME_12960 = 12960,
- DIS_EMITTER_NAME_13005 = 13005,
- DIS_EMITTER_NAME_13050 = 13050,
- DIS_EMITTER_NAME_13055 = 13055,
- DIS_EMITTER_NAME_13095 = 13095,
- DIS_EMITTER_NAME_13140 = 13140,
- DIS_EMITTER_NAME_13185 = 13185,
- DIS_EMITTER_NAME_13230 = 13230,
- DIS_EMITTER_NAME_13275 = 13275,
- DIS_EMITTER_NAME_13320 = 13320,
- DIS_EMITTER_NAME_13365 = 13365,
- DIS_EMITTER_NAME_13410 = 13410,
- DIS_EMITTER_NAME_13455 = 13455,
- DIS_EMITTER_NAME_13500 = 13500,
- DIS_EMITTER_NAME_13545 = 13545,
- DIS_EMITTER_NAME_13590 = 13590,
- DIS_EMITTER_NAME_13635 = 13635,
- DIS_EMITTER_NAME_13680 = 13680,
- DIS_EMITTER_NAME_13725 = 13725,
- DIS_EMITTER_NAME_13770 = 13770,
- DIS_EMITTER_NAME_13815 = 13815,
- DIS_EMITTER_NAME_13860 = 13860,
- DIS_EMITTER_NAME_13905 = 13905,
- DIS_EMITTER_NAME_13950 = 13950,
- DIS_EMITTER_NAME_13995 = 13995,
- DIS_EMITTER_NAME_14040 = 14040,
- DIS_EMITTER_NAME_14085 = 14085,
- DIS_EMITTER_NAME_14130 = 14130,
- DIS_EMITTER_NAME_14175 = 14175,
- DIS_EMITTER_NAME_14220 = 14220,
- DIS_EMITTER_NAME_14265 = 14265,
- DIS_EMITTER_NAME_14310 = 14310,
- DIS_EMITTER_NAME_14355 = 14355,
- DIS_EMITTER_NAME_14400 = 14400,
- DIS_EMITTER_NAME_14445 = 14445,
- DIS_EMITTER_NAME_14490 = 14490,
- DIS_EMITTER_NAME_14535 = 14535,
- DIS_EMITTER_NAME_14545 = 14545,
- DIS_EMITTER_NAME_14580 = 14580,
- DIS_EMITTER_NAME_14600 = 14600,
- DIS_EMITTER_NAME_14625 = 14625,
- DIS_EMITTER_NAME_14670 = 14670,
- DIS_EMITTER_NAME_14715 = 14715,
- DIS_EMITTER_NAME_14760 = 14760,
- DIS_EMITTER_NAME_14770 = 14770,
- DIS_EMITTER_NAME_14805 = 14805,
- DIS_EMITTER_NAME_14810 = 14810,
- DIS_EMITTER_NAME_14850 = 14850,
- DIS_EMITTER_NAME_14895 = 14895,
- DIS_EMITTER_NAME_14940 = 14940,
- DIS_EMITTER_NAME_14985 = 14985,
- DIS_EMITTER_NAME_15030 = 15030,
- DIS_EMITTER_NAME_15075 = 15075,
- DIS_EMITTER_NAME_15120 = 15120,
- DIS_EMITTER_NAME_15140 = 15140,
- DIS_EMITTER_NAME_15160 = 15160,
- DIS_EMITTER_NAME_15165 = 15165,
- DIS_EMITTER_NAME_15200 = 15200,
- DIS_EMITTER_NAME_15210 = 15210,
- DIS_EMITTER_NAME_15220 = 15220,
- DIS_EMITTER_NAME_15230 = 15230,
- DIS_EMITTER_NAME_15240 = 15240,
- DIS_EMITTER_NAME_15255 = 15255,
- DIS_EMITTER_NAME_15300 = 15300,
- DIS_EMITTER_NAME_15310 = 15310,
- DIS_EMITTER_NAME_15345 = 15345,
- DIS_EMITTER_NAME_15390 = 15390,
- DIS_EMITTER_NAME_15435 = 15435,
- DIS_EMITTER_NAME_15470 = 15470,
- DIS_EMITTER_NAME_15475 = 15475,
- DIS_EMITTER_NAME_15480 = 15480,
- DIS_EMITTER_NAME_15525 = 15525,
- DIS_EMITTER_NAME_15570 = 15570,
- DIS_EMITTER_NAME_15615 = 15615,
- DIS_EMITTER_NAME_15660 = 15660,
- DIS_EMITTER_NAME_15705 = 15705,
- DIS_EMITTER_NAME_15750 = 15750,
- DIS_EMITTER_NAME_15795 = 15795,
- DIS_EMITTER_NAME_15840 = 15840,
- DIS_EMITTER_NAME_15885 = 15885,
- DIS_EMITTER_NAME_15930 = 15930,
- DIS_EMITTER_NAME_15975 = 15975,
- DIS_EMITTER_NAME_16020 = 16020,
- DIS_EMITTER_NAME_16030 = 16030,
- DIS_EMITTER_NAME_16065 = 16065,
- DIS_EMITTER_NAME_16110 = 16110,
- DIS_EMITTER_NAME_16155 = 16155,
- DIS_EMITTER_NAME_16200 = 16200,
- DIS_EMITTER_NAME_16245 = 16245,
- DIS_EMITTER_NAME_16290 = 16290,
- DIS_EMITTER_NAME_16335 = 16335,
- DIS_EMITTER_NAME_16380 = 16380,
- DIS_EMITTER_NAME_16390 = 16390,
- DIS_EMITTER_NAME_16400 = 16400,
- DIS_EMITTER_NAME_16410 = 16410,
- DIS_EMITTER_NAME_16420 = 16420,
- DIS_EMITTER_NAME_16421 = 16421,
- DIS_EMITTER_NAME_16425 = 16425,
- DIS_EMITTER_NAME_16470 = 16470,
- DIS_EMITTER_NAME_16515 = 16515,
- DIS_EMITTER_NAME_16560 = 16560,
- DIS_EMITTER_NAME_16561 = 16561,
- DIS_EMITTER_NAME_16605 = 16605,
- DIS_EMITTER_NAME_16650 = 16650,
- DIS_EMITTER_NAME_16695 = 16695,
- DIS_EMITTER_NAME_16740 = 16740,
- DIS_EMITTER_NAME_16785 = 16785,
- DIS_EMITTER_NAME_16830 = 16830,
- DIS_EMITTER_NAME_16875 = 16875,
- DIS_EMITTER_NAME_16880 = 16880,
- DIS_EMITTER_NAME_16884 = 16884,
- DIS_EMITTER_NAME_16888 = 16888,
- DIS_EMITTER_NAME_16900 = 16900,
- DIS_EMITTER_NAME_16915 = 16915,
- DIS_EMITTER_NAME_16920 = 16920,
- DIS_EMITTER_NAME_16925 = 16925,
- DIS_EMITTER_NAME_16945 = 16945,
- DIS_EMITTER_NAME_16950 = 16950,
- DIS_EMITTER_NAME_16965 = 16965,
- DIS_EMITTER_NAME_17010 = 17010,
- DIS_EMITTER_NAME_17025 = 17025,
- DIS_EMITTER_NAME_17055 = 17055,
- DIS_EMITTER_NAME_17070 = 17070,
- DIS_EMITTER_NAME_17100 = 17100,
- DIS_EMITTER_NAME_17145 = 17145,
- DIS_EMITTER_NAME_17190 = 17190,
- DIS_EMITTER_NAME_17220 = 17220,
- DIS_EMITTER_NAME_17235 = 17235,
- DIS_EMITTER_NAME_17280 = 17280,
- DIS_EMITTER_NAME_17325 = 17325,
- DIS_EMITTER_NAME_17370 = 17370,
- DIS_EMITTER_NAME_17415 = 17415,
- DIS_EMITTER_NAME_17460 = 17460,
- DIS_EMITTER_NAME_17505 = 17505,
- DIS_EMITTER_NAME_17550 = 17550,
- DIS_EMITTER_NAME_17595 = 17595,
- DIS_EMITTER_NAME_17640 = 17640,
- DIS_EMITTER_NAME_17685 = 17685,
- DIS_EMITTER_NAME_17730 = 17730,
- DIS_EMITTER_NAME_17775 = 17775,
- DIS_EMITTER_NAME_17820 = 17820,
- DIS_EMITTER_NAME_17865 = 17865,
- DIS_EMITTER_NAME_17910 = 17910,
- DIS_EMITTER_NAME_17955 = 17955,
- DIS_EMITTER_NAME_18000 = 18000,
- DIS_EMITTER_NAME_18045 = 18045,
- DIS_EMITTER_NAME_18090 = 18090,
- DIS_EMITTER_NAME_18135 = 18135,
- DIS_EMITTER_NAME_18150 = 18150,
- DIS_EMITTER_NAME_18180 = 18180,
- DIS_EMITTER_NAME_18200 = 18200,
- DIS_EMITTER_NAME_18225 = 18225,
- DIS_EMITTER_NAME_18270 = 18270,
- DIS_EMITTER_NAME_18280 = 18280,
- DIS_EMITTER_NAME_18315 = 18315,
- DIS_EMITTER_NAME_18320 = 18320,
- DIS_EMITTER_NAME_18325 = 18325,
- DIS_EMITTER_NAME_18330 = 18330,
- DIS_EMITTER_NAME_18360 = 18360,
- DIS_EMITTER_NAME_18405 = 18405,
- DIS_EMITTER_NAME_18410 = 18410,
- DIS_EMITTER_NAME_18450 = 18450,
- DIS_EMITTER_NAME_18460 = 18460,
- DIS_EMITTER_NAME_18495 = 18495,
- DIS_EMITTER_NAME_18540 = 18540,
- DIS_EMITTER_NAME_18550 = 18550,
- DIS_EMITTER_NAME_18555 = 18555,
- DIS_EMITTER_NAME_18560 = 18560,
- DIS_EMITTER_NAME_18585 = 18585,
- DIS_EMITTER_NAME_18630 = 18630,
- DIS_EMITTER_NAME_18675 = 18675,
- DIS_EMITTER_NAME_18720 = 18720,
- DIS_EMITTER_NAME_18765 = 18765,
- DIS_EMITTER_NAME_18785 = 18785,
- DIS_EMITTER_NAME_18810 = 18810,
- DIS_EMITTER_NAME_18855 = 18855,
- DIS_EMITTER_NAME_18900 = 18900,
- DIS_EMITTER_NAME_18945 = 18945,
- DIS_EMITTER_NAME_18990 = 18990,
- DIS_EMITTER_NAME_19035 = 19035,
- DIS_EMITTER_NAME_19037 = 19037,
- DIS_EMITTER_NAME_19050 = 19050,
- DIS_EMITTER_NAME_19080 = 19080,
- DIS_EMITTER_NAME_19125 = 19125,
- DIS_EMITTER_NAME_19170 = 19170,
- DIS_EMITTER_NAME_19215 = 19215,
- DIS_EMITTER_NAME_19260 = 19260,
- DIS_EMITTER_NAME_19305 = 19305,
- DIS_EMITTER_NAME_19310 = 19310,
- DIS_EMITTER_NAME_19350 = 19350,
- DIS_EMITTER_NAME_19395 = 19395,
- DIS_EMITTER_NAME_19400 = 19400,
- DIS_EMITTER_NAME_19440 = 19440,
- DIS_EMITTER_NAME_19485 = 19485,
- DIS_EMITTER_NAME_19530 = 19530,
- DIS_EMITTER_NAME_19575 = 19575,
- DIS_EMITTER_NAME_19620 = 19620,
- DIS_EMITTER_NAME_19665 = 19665,
- DIS_EMITTER_NAME_19710 = 19710,
- DIS_EMITTER_NAME_19755 = 19755,
- DIS_EMITTER_NAME_19800 = 19800,
- DIS_EMITTER_NAME_19845 = 19845,
- DIS_EMITTER_NAME_19890 = 19890,
- DIS_EMITTER_NAME_19935 = 19935,
- DIS_EMITTER_NAME_19950 = 19950,
- DIS_EMITTER_NAME_19955 = 19955,
- DIS_EMITTER_NAME_19960 = 19960,
- DIS_EMITTER_NAME_19980 = 19980,
- DIS_EMITTER_NAME_20025 = 20025,
- DIS_EMITTER_NAME_20040 = 20040,
- DIS_EMITTER_NAME_20070 = 20070,
- DIS_EMITTER_NAME_20090 = 20090,
- DIS_EMITTER_NAME_20115 = 20115,
- DIS_EMITTER_NAME_20160 = 20160,
- DIS_EMITTER_NAME_20205 = 20205,
- DIS_EMITTER_NAME_20250 = 20250,
- DIS_EMITTER_NAME_20295 = 20295,
- DIS_EMITTER_NAME_20340 = 20340,
- DIS_EMITTER_NAME_20360 = 20360,
- DIS_EMITTER_NAME_20385 = 20385,
- DIS_EMITTER_NAME_20430 = 20430,
- DIS_EMITTER_NAME_20475 = 20475,
- DIS_EMITTER_NAME_20495 = 20495,
- DIS_EMITTER_NAME_20520 = 20520,
- DIS_EMITTER_NAME_20530 = 20530,
- DIS_EMITTER_NAME_20565 = 20565,
- DIS_EMITTER_NAME_20585 = 20585,
- DIS_EMITTER_NAME_20610 = 20610,
- DIS_EMITTER_NAME_20655 = 20655,
- DIS_EMITTER_NAME_20700 = 20700,
- DIS_EMITTER_NAME_20745 = 20745,
- DIS_EMITTER_NAME_20790 = 20790,
- DIS_EMITTER_NAME_20835 = 20835,
- DIS_EMITTER_NAME_20880 = 20880,
- DIS_EMITTER_NAME_20925 = 20925,
- DIS_EMITTER_NAME_20950 = 20950,
- DIS_EMITTER_NAME_20970 = 20970,
- DIS_EMITTER_NAME_21015 = 21015,
- DIS_EMITTER_NAME_21060 = 21060,
- DIS_EMITTER_NAME_21105 = 21105,
- DIS_EMITTER_NAME_21150 = 21150,
- DIS_EMITTER_NAME_21195 = 21195,
- DIS_EMITTER_NAME_21240 = 21240,
- DIS_EMITTER_NAME_21285 = 21285,
- DIS_EMITTER_NAME_21330 = 21330,
- DIS_EMITTER_NAME_21340 = 21340,
- DIS_EMITTER_NAME_21375 = 21375,
- DIS_EMITTER_NAME_21420 = 21420,
- DIS_EMITTER_NAME_21465 = 21465,
- DIS_EMITTER_NAME_21490 = 21490,
- DIS_EMITTER_NAME_21510 = 21510,
- DIS_EMITTER_NAME_21555 = 21555,
- DIS_EMITTER_NAME_21600 = 21600,
- DIS_EMITTER_NAME_21645 = 21645,
- DIS_EMITTER_NAME_21650 = 21650,
- DIS_EMITTER_NAME_21690 = 21690,
- DIS_EMITTER_NAME_21710 = 21710,
- DIS_EMITTER_NAME_21735 = 21735,
- DIS_EMITTER_NAME_21780 = 21780,
- DIS_EMITTER_NAME_21825 = 21825,
- DIS_EMITTER_NAME_21870 = 21870,
- DIS_EMITTER_NAME_21880 = 21880,
- DIS_EMITTER_NAME_21890 = 21890,
- DIS_EMITTER_NAME_21895 = 21895,
- DIS_EMITTER_NAME_21915 = 21915,
- DIS_EMITTER_NAME_21960 = 21960,
- DIS_EMITTER_NAME_21980 = 21980,
- DIS_EMITTER_NAME_22005 = 22005,
- DIS_EMITTER_NAME_22050 = 22050,
- DIS_EMITTER_NAME_22095 = 22095,
- DIS_EMITTER_NAME_22140 = 22140,
- DIS_EMITTER_NAME_22185 = 22185,
- DIS_EMITTER_NAME_22230 = 22230,
- DIS_EMITTER_NAME_22275 = 22275,
- DIS_EMITTER_NAME_22320 = 22320,
- DIS_EMITTER_NAME_22345 = 22345,
- DIS_EMITTER_NAME_22365 = 22365,
- DIS_EMITTER_NAME_22410 = 22410,
- DIS_EMITTER_NAME_22455 = 22455,
- DIS_EMITTER_NAME_22500 = 22500,
- DIS_EMITTER_NAME_22545 = 22545,
- DIS_EMITTER_NAME_22590 = 22590,
- DIS_EMITTER_NAME_22635 = 22635,
- DIS_EMITTER_NAME_22680 = 22680,
- DIS_EMITTER_NAME_22690 = 22690,
- DIS_EMITTER_NAME_22725 = 22725,
- DIS_EMITTER_NAME_22730 = 22730,
- DIS_EMITTER_NAME_22740 = 22740,
- DIS_EMITTER_NAME_22770 = 22770,
- DIS_EMITTER_NAME_22810 = 22810,
- DIS_EMITTER_NAME_22815 = 22815,
- DIS_EMITTER_NAME_22860 = 22860,
- DIS_EMITTER_NAME_22905 = 22905,
- DIS_EMITTER_NAME_22950 = 22950,
- DIS_EMITTER_NAME_22955 = 22955,
- DIS_EMITTER_NAME_22960 = 22960,
- DIS_EMITTER_NAME_22995 = 22995,
- DIS_EMITTER_NAME_23040 = 23040,
- DIS_EMITTER_NAME_23085 = 23085,
- DIS_EMITTER_NAME_23095 = 23095,
- DIS_EMITTER_NAME_23130 = 23130,
- DIS_EMITTER_NAME_23175 = 23175,
- DIS_EMITTER_NAME_23220 = 23220,
- DIS_EMITTER_NAME_23265 = 23265,
- DIS_EMITTER_NAME_23310 = 23310,
- DIS_EMITTER_NAME_23355 = 23355,
- DIS_EMITTER_NAME_23400 = 23400,
- DIS_EMITTER_NAME_23445 = 23445,
- DIS_EMITTER_NAME_23490 = 23490,
- DIS_EMITTER_NAME_23535 = 23535,
- DIS_EMITTER_NAME_23580 = 23580,
- DIS_EMITTER_NAME_23625 = 23625,
- DIS_EMITTER_NAME_23670 = 23670,
- DIS_EMITTER_NAME_23690 = 23690,
- DIS_EMITTER_NAME_23710 = 23710,
- DIS_EMITTER_NAME_23715 = 23715,
- DIS_EMITTER_NAME_23760 = 23760,
- DIS_EMITTER_NAME_23805 = 23805,
- DIS_EMITTER_NAME_23850 = 23850,
- DIS_EMITTER_NAME_23895 = 23895,
- DIS_EMITTER_NAME_23940 = 23940,
- DIS_EMITTER_NAME_23985 = 23985,
- DIS_EMITTER_NAME_23990 = 23990,
- DIS_EMITTER_NAME_24030 = 24030,
- DIS_EMITTER_NAME_24075 = 24075,
- DIS_EMITTER_NAME_24095 = 24095,
- DIS_EMITTER_NAME_24100 = 24100,
- DIS_EMITTER_NAME_24120 = 24120,
- DIS_EMITTER_NAME_24165 = 24165,
- DIS_EMITTER_NAME_24210 = 24210,
- DIS_EMITTER_NAME_24255 = 24255,
- DIS_EMITTER_NAME_24300 = 24300,
- DIS_EMITTER_NAME_24345 = 24345,
- DIS_EMITTER_NAME_24390 = 24390,
- DIS_EMITTER_NAME_24435 = 24435,
- DIS_EMITTER_NAME_24480 = 24480,
- DIS_EMITTER_NAME_24525 = 24525,
- DIS_EMITTER_NAME_24570 = 24570,
- DIS_EMITTER_NAME_24615 = 24615,
- DIS_EMITTER_NAME_24620 = 24620,
- DIS_EMITTER_NAME_24650 = 24650,
- DIS_EMITTER_NAME_24660 = 24660,
- DIS_EMITTER_NAME_24705 = 24705,
- DIS_EMITTER_NAME_24710 = 24710,
- DIS_EMITTER_NAME_24750 = 24750,
- DIS_EMITTER_NAME_24770 = 24770,
- DIS_EMITTER_NAME_24780 = 24780,
- DIS_EMITTER_NAME_24795 = 24795,
- DIS_EMITTER_NAME_24840 = 24840,
- DIS_EMITTER_NAME_24885 = 24885,
- DIS_EMITTER_NAME_24930 = 24930,
- DIS_EMITTER_NAME_24975 = 24975,
- DIS_EMITTER_NAME_25020 = 25020,
- DIS_EMITTER_NAME_25065 = 25065,
- DIS_EMITTER_NAME_25110 = 25110,
- DIS_EMITTER_NAME_25155 = 25155,
- DIS_EMITTER_NAME_25200 = 25200,
- DIS_EMITTER_NAME_25205 = 25205,
- DIS_EMITTER_NAME_25245 = 25245,
- DIS_EMITTER_NAME_25260 = 25260,
- DIS_EMITTER_NAME_25265 = 25265,
- DIS_EMITTER_NAME_25270 = 25270,
- DIS_EMITTER_NAME_25280 = 25280,
- DIS_EMITTER_NAME_25285 = 25285,
- DIS_EMITTER_NAME_25290 = 25290,
- DIS_EMITTER_NAME_25300 = 25300,
- DIS_EMITTER_NAME_25335 = 25335,
- DIS_EMITTER_NAME_25380 = 25380,
- DIS_EMITTER_NAME_25425 = 25425,
- DIS_EMITTER_NAME_25470 = 25470,
- DIS_EMITTER_NAME_25515 = 25515,
- DIS_EMITTER_NAME_25560 = 25560,
- DIS_EMITTER_NAME_25605 = 25605,
- DIS_EMITTER_NAME_25630 = 25630,
- DIS_EMITTER_NAME_25635 = 25635,
- DIS_EMITTER_NAME_25650 = 25650,
- DIS_EMITTER_NAME_25695 = 25695,
- DIS_EMITTER_NAME_25735 = 25735,
- DIS_EMITTER_NAME_25740 = 25740,
- DIS_EMITTER_NAME_25760 = 25760,
- DIS_EMITTER_NAME_25785 = 25785,
- DIS_EMITTER_NAME_25830 = 25830,
- DIS_EMITTER_NAME_25835 = 25835,
- DIS_EMITTER_NAME_25840 = 25840,
- DIS_EMITTER_NAME_25875 = 25875,
- DIS_EMITTER_NAME_25885 = 25885,
- DIS_EMITTER_NAME_25890 = 25890,
- DIS_EMITTER_NAME_25895 = 25895,
- DIS_EMITTER_NAME_25920 = 25920,
- DIS_EMITTER_NAME_25965 = 25965,
- DIS_EMITTER_NAME_26010 = 26010,
- DIS_EMITTER_NAME_26055 = 26055,
- DIS_EMITTER_NAME_26100 = 26100,
- DIS_EMITTER_NAME_26145 = 26145,
- DIS_EMITTER_NAME_26190 = 26190,
- DIS_EMITTER_NAME_26235 = 26235,
- DIS_EMITTER_NAME_26280 = 26280,
- DIS_EMITTER_NAME_26325 = 26325,
- DIS_EMITTER_NAME_26330 = 26330,
- DIS_EMITTER_NAME_26350 = 26350,
- DIS_EMITTER_NAME_26370 = 26370,
- DIS_EMITTER_NAME_26415 = 26415,
- DIS_EMITTER_NAME_26460 = 26460,
- DIS_EMITTER_NAME_26505 = 26505,
- DIS_EMITTER_NAME_26550 = 26550,
- DIS_EMITTER_NAME_26595 = 26595,
- DIS_EMITTER_NAME_26610 = 26610,
- DIS_EMITTER_NAME_26640 = 26640,
- DIS_EMITTER_NAME_26660 = 26660,
- DIS_EMITTER_NAME_26670 = 26670,
- DIS_EMITTER_NAME_26685 = 26685,
- DIS_EMITTER_NAME_26730 = 26730,
- DIS_EMITTER_NAME_26775 = 26775,
- DIS_EMITTER_NAME_26795 = 26795,
- DIS_EMITTER_NAME_26820 = 26820,
- DIS_EMITTER_NAME_26865 = 26865,
- DIS_EMITTER_NAME_26910 = 26910,
- DIS_EMITTER_NAME_26955 = 26955,
- DIS_EMITTER_NAME_27000 = 27000,
- DIS_EMITTER_NAME_27045 = 27045,
- DIS_EMITTER_NAME_27090 = 27090,
- DIS_EMITTER_NAME_27135 = 27135,
- DIS_EMITTER_NAME_27140 = 27140,
- DIS_EMITTER_NAME_27141 = 27141,
- DIS_EMITTER_NAME_27150 = 27150,
- DIS_EMITTER_NAME_27180 = 27180,
- DIS_EMITTER_NAME_27190 = 27190,
- DIS_EMITTER_NAME_27225 = 27225,
- DIS_EMITTER_NAME_27270 = 27270,
- DIS_EMITTER_NAME_27315 = 27315,
- DIS_EMITTER_NAME_27360 = 27360,
- DIS_EMITTER_NAME_27405 = 27405,
- DIS_EMITTER_NAME_27450 = 27450,
- DIS_EMITTER_NAME_27495 = 27495,
- DIS_EMITTER_NAME_27540 = 27540,
- DIS_EMITTER_NAME_27570 = 27570,
- DIS_EMITTER_NAME_27585 = 27585,
- DIS_EMITTER_NAME_27630 = 27630,
- DIS_EMITTER_NAME_27675 = 27675,
- DIS_EMITTER_NAME_27720 = 27720,
- DIS_EMITTER_NAME_27765 = 27765,
- DIS_EMITTER_NAME_27810 = 27810,
- DIS_EMITTER_NAME_27855 = 27855,
- DIS_EMITTER_NAME_27870 = 27870,
- DIS_EMITTER_NAME_27900 = 27900,
- DIS_EMITTER_NAME_27945 = 27945,
- DIS_EMITTER_NAME_27990 = 27990,
- DIS_EMITTER_NAME_28035 = 28035,
- DIS_EMITTER_NAME_28080 = 28080,
- DIS_EMITTER_NAME_28125 = 28125,
- DIS_EMITTER_NAME_28170 = 28170,
- DIS_EMITTER_NAME_28215 = 28215,
- DIS_EMITTER_NAME_28260 = 28260,
- DIS_EMITTER_NAME_28280 = 28280,
- DIS_EMITTER_NAME_28305 = 28305,
- DIS_EMITTER_NAME_28350 = 28350,
- DIS_EMITTER_NAME_28395 = 28395,
- DIS_EMITTER_NAME_28440 = 28440,
- DIS_EMITTER_NAME_28485 = 28485,
- DIS_EMITTER_NAME_28530 = 28530,
- DIS_EMITTER_NAME_28575 = 28575,
- DIS_EMITTER_NAME_28620 = 28620,
- DIS_EMITTER_NAME_28665 = 28665,
- DIS_EMITTER_NAME_28710 = 28710,
- DIS_EMITTER_NAME_28755 = 28755,
- DIS_EMITTER_NAME_28800 = 28800,
- DIS_EMITTER_NAME_28845 = 28845,
- DIS_EMITTER_NAME_28890 = 28890,
- DIS_EMITTER_NAME_28935 = 28935,
- DIS_EMITTER_NAME_28980 = 28980,
- DIS_EMITTER_NAME_29025 = 29025,
- DIS_EMITTER_NAME_29070 = 29070,
- DIS_EMITTER_NAME_29115 = 29115,
- DIS_EMITTER_NAME_29160 = 29160,
- DIS_EMITTER_NAME_29185 = 29185,
- DIS_EMITTER_NAME_29190 = 29190,
- DIS_EMITTER_NAME_29205 = 29205,
- DIS_EMITTER_NAME_29215 = 29215,
- DIS_EMITTER_NAME_29220 = 29220,
- DIS_EMITTER_NAME_29250 = 29250,
- DIS_EMITTER_NAME_29270 = 29270,
- DIS_EMITTER_NAME_29295 = 29295,
- DIS_EMITTER_NAME_29340 = 29340,
- DIS_EMITTER_NAME_29385 = 29385,
- DIS_EMITTER_NAME_29400 = 29400,
- DIS_EMITTER_NAME_29430 = 29430,
- DIS_EMITTER_NAME_29440 = 29440,
- DIS_EMITTER_NAME_29475 = 29475,
- DIS_EMITTER_NAME_29520 = 29520,
- DIS_EMITTER_NAME_29565 = 29565,
- DIS_EMITTER_NAME_29610 = 29610,
- DIS_EMITTER_NAME_29655 = 29655,
- DIS_EMITTER_NAME_29700 = 29700,
- DIS_EMITTER_NAME_29745 = 29745,
- DIS_EMITTER_NAME_29790 = 29790,
- DIS_EMITTER_NAME_29835 = 29835,
- DIS_EMITTER_NAME_29880 = 29880,
- DIS_EMITTER_NAME_29925 = 29925,
- DIS_EMITTER_NAME_29970 = 29970,
- DIS_EMITTER_NAME_30015 = 30015,
- DIS_EMITTER_NAME_30060 = 30060,
- DIS_EMITTER_NAME_30080 = 30080,
- DIS_EMITTER_NAME_30105 = 30105,
- DIS_EMITTER_NAME_30150 = 30150,
- DIS_EMITTER_NAME_30195 = 30195,
- DIS_EMITTER_NAME_30240 = 30240,
- DIS_EMITTER_NAME_30285 = 30285,
- DIS_EMITTER_NAME_30330 = 30330,
- DIS_EMITTER_NAME_30375 = 30375,
- DIS_EMITTER_NAME_30420 = 30420,
- DIS_EMITTER_NAME_30465 = 30465,
- DIS_EMITTER_NAME_30470 = 30470,
- DIS_EMITTER_NAME_30510 = 30510,
- DIS_EMITTER_NAME_30520 = 30520,
- DIS_EMITTER_NAME_30555 = 30555,
- DIS_EMITTER_NAME_30580 = 30580,
- DIS_EMITTER_NAME_30600 = 30600,
- DIS_EMITTER_NAME_30645 = 30645,
- DIS_EMITTER_NAME_30670 = 30670,
- DIS_EMITTER_NAME_30690 = 30690,
- DIS_EMITTER_NAME_30700 = 30700,
- DIS_EMITTER_NAME_30735 = 30735,
- DIS_EMITTER_NAME_30780 = 30780,
- DIS_EMITTER_NAME_30825 = 30825,
- DIS_EMITTER_NAME_30870 = 30870,
- DIS_EMITTER_NAME_30915 = 30915,
- DIS_EMITTER_NAME_30960 = 30960,
- DIS_EMITTER_NAME_31005 = 31005,
- DIS_EMITTER_NAME_31050 = 31050,
- DIS_EMITTER_NAME_31095 = 31095,
- DIS_EMITTER_NAME_31140 = 31140,
- DIS_EMITTER_NAME_31185 = 31185,
- DIS_EMITTER_NAME_31230 = 31230,
- DIS_EMITTER_NAME_31275 = 31275,
- DIS_EMITTER_NAME_31320 = 31320,
- DIS_EMITTER_NAME_31365 = 31365,
- DIS_EMITTER_NAME_31410 = 31410,
- DIS_EMITTER_NAME_31455 = 31455,
- DIS_EMITTER_NAME_31500 = 31500,
- DIS_EMITTER_NAME_31545 = 31545,
- DIS_EMITTER_NAME_31590 = 31590,
- DIS_EMITTER_NAME_31635 = 31635,
- DIS_EMITTER_NAME_31680 = 31680,
- DIS_EMITTER_NAME_31681 = 31681,
- DIS_EMITTER_NAME_31682 = 31682,
- DIS_EMITTER_NAME_31684 = 31684,
- DIS_EMITTER_NAME_31725 = 31725,
- DIS_EMITTER_NAME_31770 = 31770,
- DIS_EMITTER_NAME_31815 = 31815,
- DIS_EMITTER_NAME_31860 = 31860,
- DIS_EMITTER_NAME_31905 = 31905,
- DIS_EMITTER_NAME_31950 = 31950,
- DIS_EMITTER_NAME_31995 = 31995,
- DIS_EMITTER_NAME_32040 = 32040,
- DIS_EMITTER_NAME_32085 = 32085,
- DIS_EMITTER_NAME_32130 = 32130,
- DIS_EMITTER_NAME_32175 = 32175,
- DIS_EMITTER_NAME_32220 = 32220,
- DIS_EMITTER_NAME_32265 = 32265,
- DIS_EMITTER_NAME_32310 = 32310,
- DIS_EMITTER_NAME_32330 = 32330,
- DIS_EMITTER_NAME_32355 = 32355,
- DIS_EMITTER_NAME_32400 = 32400,
- DIS_EMITTER_NAME_32445 = 32445,
- DIS_EMITTER_NAME_32490 = 32490,
- DIS_EMITTER_NAME_32535 = 32535,
- DIS_EMITTER_NAME_32580 = 32580,
- DIS_EMITTER_NAME_32625 = 32625,
- DIS_EMITTER_NAME_32670 = 32670,
- DIS_EMITTER_NAME_32715 = 32715,
- DIS_EMITTER_NAME_32760 = 32760,
- DIS_EMITTER_NAME_32805 = 32805,
- DIS_EMITTER_NAME_32850 = 32850,
- DIS_EMITTER_NAME_32895 = 32895,
- DIS_EMITTER_NAME_32940 = 32940,
- DIS_EMITTER_NAME_32985 = 32985,
- DIS_EMITTER_NAME_33030 = 33030,
- DIS_EMITTER_NAME_33075 = 33075,
- DIS_EMITTER_NAME_33120 = 33120,
- DIS_EMITTER_NAME_33165 = 33165,
- DIS_EMITTER_NAME_33210 = 33210,
- DIS_EMITTER_NAME_33255 = 33255,
- DIS_EMITTER_NAME_33300 = 33300,
- DIS_EMITTER_NAME_33345 = 33345,
- DIS_EMITTER_NAME_33390 = 33390,
- DIS_EMITTER_NAME_33435 = 33435,
- DIS_EMITTER_NAME_33480 = 33480,
- DIS_EMITTER_NAME_33525 = 33525,
- DIS_EMITTER_NAME_33570 = 33570,
- DIS_EMITTER_NAME_33590 = 33590,
- DIS_EMITTER_NAME_33595 = 33595,
- DIS_EMITTER_NAME_33600 = 33600,
- DIS_EMITTER_NAME_33615 = 33615,
- DIS_EMITTER_NAME_33660 = 33660,
- DIS_EMITTER_NAME_33705 = 33705,
- DIS_EMITTER_NAME_33750 = 33750,
- DIS_EMITTER_NAME_33795 = 33795,
- DIS_EMITTER_NAME_33840 = 33840,
- DIS_EMITTER_NAME_33860 = 33860,
- DIS_EMITTER_NAME_33885 = 33885,
- DIS_EMITTER_NAME_33930 = 33930,
- DIS_EMITTER_NAME_33975 = 33975,
- DIS_EMITTER_NAME_34020 = 34020,
- DIS_EMITTER_NAME_34040 = 34040,
- DIS_EMITTER_NAME_34065 = 34065,
- DIS_EMITTER_NAME_34110 = 34110,
- DIS_EMITTER_NAME_34155 = 34155,
- DIS_EMITTER_NAME_34200 = 34200,
- DIS_EMITTER_NAME_34245 = 34245,
- DIS_EMITTER_NAME_34290 = 34290,
- DIS_EMITTER_NAME_34335 = 34335,
- DIS_EMITTER_NAME_34380 = 34380,
- DIS_EMITTER_NAME_34425 = 34425,
- DIS_EMITTER_NAME_34470 = 34470,
- DIS_EMITTER_NAME_34515 = 34515,
- DIS_EMITTER_NAME_34560 = 34560,
- DIS_EMITTER_NAME_34605 = 34605,
- DIS_EMITTER_NAME_34625 = 34625,
- DIS_EMITTER_NAME_34640 = 34640,
- DIS_EMITTER_NAME_34650 = 34650,
- DIS_EMITTER_NAME_34670 = 34670,
- DIS_EMITTER_NAME_34695 = 34695,
- DIS_EMITTER_NAME_34740 = 34740,
- DIS_EMITTER_NAME_34785 = 34785,
- DIS_EMITTER_NAME_34795 = 34795,
- DIS_EMITTER_NAME_34830 = 34830,
- DIS_EMITTER_NAME_34875 = 34875,
- DIS_EMITTER_NAME_34920 = 34920,
- DIS_EMITTER_NAME_34965 = 34965,
- DIS_EMITTER_NAME_35010 = 35010,
- DIS_EMITTER_NAME_35055 = 35055,
- DIS_EMITTER_NAME_35100 = 35100,
- DIS_EMITTER_NAME_35145 = 35145,
- DIS_EMITTER_NAME_35190 = 35190,
- DIS_EMITTER_NAME_35235 = 35235,
- DIS_EMITTER_NAME_35280 = 35280,
- DIS_EMITTER_NAME_35325 = 35325,
- DIS_EMITTER_NAME_35370 = 35370,
- DIS_EMITTER_NAME_35415 = 35415,
- DIS_EMITTER_NAME_35460 = 35460,
- DIS_EMITTER_NAME_35480 = 35480,
- DIS_EMITTER_NAME_35490 = 35490,
- DIS_EMITTER_NAME_35505 = 35505,
- DIS_EMITTER_NAME_35550 = 35550,
- DIS_EMITTER_NAME_35570 = 35570,
- DIS_EMITTER_NAME_35580 = 35580,
- DIS_EMITTER_NAME_35595 = 35595,
- DIS_EMITTER_NAME_35640 = 35640,
- DIS_EMITTER_NAME_35685 = 35685,
- DIS_EMITTER_NAME_35730 = 35730,
- DIS_EMITTER_NAME_35775 = 35775,
- DIS_EMITTER_NAME_35800 = 35800,
- DIS_EMITTER_NAME_35820 = 35820,
- DIS_EMITTER_NAME_35865 = 35865,
- DIS_EMITTER_NAME_35910 = 35910,
- DIS_EMITTER_NAME_35955 = 35955,
- DIS_EMITTER_NAME_36000 = 36000,
- DIS_EMITTER_NAME_36045 = 36045,
- DIS_EMITTER_NAME_36090 = 36090,
- DIS_EMITTER_NAME_36135 = 36135,
- DIS_EMITTER_NAME_36180 = 36180,
- DIS_EMITTER_NAME_36220 = 36220,
- DIS_EMITTER_NAME_36225 = 36225,
- DIS_EMITTER_NAME_36230 = 36230,
- DIS_EMITTER_NAME_36270 = 36270,
- DIS_EMITTER_NAME_36315 = 36315,
- DIS_EMITTER_NAME_36360 = 36360,
- DIS_EMITTER_NAME_36380 = 36380,
- DIS_EMITTER_NAME_36405 = 36405,
- DIS_EMITTER_NAME_36420 = 36420,
- DIS_EMITTER_NAME_36425 = 36425,
- DIS_EMITTER_NAME_36430 = 36430,
- DIS_EMITTER_NAME_36450 = 36450,
- DIS_EMITTER_NAME_36495 = 36495,
- DIS_EMITTER_NAME_36540 = 36540,
- DIS_EMITTER_NAME_36585 = 36585,
- DIS_EMITTER_NAME_36630 = 36630,
- DIS_EMITTER_NAME_36675 = 36675,
- DIS_EMITTER_NAME_36720 = 36720,
- DIS_EMITTER_NAME_36765 = 36765,
- DIS_EMITTER_NAME_36810 = 36810,
- DIS_EMITTER_NAME_36855 = 36855,
- DIS_EMITTER_NAME_36900 = 36900,
- DIS_EMITTER_NAME_36945 = 36945,
- DIS_EMITTER_NAME_36990 = 36990,
- DIS_EMITTER_NAME_37035 = 37035,
- DIS_EMITTER_NAME_37050 = 37050,
- DIS_EMITTER_NAME_37080 = 37080,
- DIS_EMITTER_NAME_37125 = 37125,
- DIS_EMITTER_NAME_37170 = 37170,
- DIS_EMITTER_NAME_37215 = 37215,
- DIS_EMITTER_NAME_37260 = 37260,
- DIS_EMITTER_NAME_37265 = 37265,
- DIS_EMITTER_NAME_37305 = 37305,
- DIS_EMITTER_NAME_37350 = 37350,
- DIS_EMITTER_NAME_37395 = 37395,
- DIS_EMITTER_NAME_37440 = 37440,
- DIS_EMITTER_NAME_37485 = 37485,
- DIS_EMITTER_NAME_37530 = 37530,
- DIS_EMITTER_NAME_37575 = 37575,
- DIS_EMITTER_NAME_37620 = 37620,
- DIS_EMITTER_NAME_37665 = 37665,
- DIS_EMITTER_NAME_37710 = 37710,
- DIS_EMITTER_NAME_37755 = 37755,
- DIS_EMITTER_NAME_37800 = 37800,
- DIS_EMITTER_NAME_37845 = 37845,
- DIS_EMITTER_NAME_37850 = 37850,
- DIS_EMITTER_NAME_37890 = 37890,
- DIS_EMITTER_NAME_37935 = 37935,
- DIS_EMITTER_NAME_37980 = 37980,
- DIS_EMITTER_NAME_38025 = 38025,
- DIS_EMITTER_NAME_38045 = 38045,
- DIS_EMITTER_NAME_38070 = 38070,
- DIS_EMITTER_NAME_38115 = 38115,
- DIS_EMITTER_NAME_38120 = 38120,
- DIS_EMITTER_NAME_38160 = 38160,
- DIS_EMITTER_NAME_38205 = 38205,
- DIS_EMITTER_NAME_38210 = 38210,
- DIS_EMITTER_NAME_38250 = 38250,
- DIS_EMITTER_NAME_38260 = 38260,
- DIS_EMITTER_NAME_38295 = 38295,
- DIS_EMITTER_NAME_38320 = 38320,
- DIS_EMITTER_NAME_38340 = 38340,
- DIS_EMITTER_NAME_38385 = 38385,
- DIS_EMITTER_NAME_38430 = 38430,
- DIS_EMITTER_NAME_38475 = 38475,
- DIS_EMITTER_NAME_38520 = 38520,
- DIS_EMITTER_NAME_38565 = 38565,
- DIS_EMITTER_NAME_38570 = 38570,
- DIS_EMITTER_NAME_38572 = 38572,
- DIS_EMITTER_NAME_38610 = 38610,
- DIS_EMITTER_NAME_38655 = 38655,
- DIS_EMITTER_NAME_38700 = 38700,
- DIS_EMITTER_NAME_38715 = 38715,
- DIS_EMITTER_NAME_38745 = 38745,
- DIS_EMITTER_NAME_38790 = 38790,
- DIS_EMITTER_NAME_38835 = 38835,
- DIS_EMITTER_NAME_38880 = 38880,
- DIS_EMITTER_NAME_38925 = 38925,
- DIS_EMITTER_NAME_38950 = 38950,
- DIS_EMITTER_NAME_38955 = 38955,
- DIS_EMITTER_NAME_38970 = 38970,
- DIS_EMITTER_NAME_39015 = 39015,
- DIS_EMITTER_NAME_39060 = 39060,
- DIS_EMITTER_NAME_39105 = 39105,
- DIS_EMITTER_NAME_39150 = 39150
-} DIS_PDU_EmitterName;
-
-extern const value_string DIS_PDU_EmitterName_Strings[];
-#endif /* packet-dis-enums.h */
diff --git a/epan/dissectors/packet-dis-fields.c b/epan/dissectors/packet-dis-fields.c
deleted file mode 100644
index 60c4c5bf81..0000000000
--- a/epan/dissectors/packet-dis-fields.c
+++ /dev/null
@@ -1,1143 +0,0 @@
-/* packet-dis-fields.c
- * Routines and definitions for DIS field parsing.
- * Copyright 2005, Scientific Research Corporation
- * Initial implementation by Jeremy Ouellette <jouellet[AT]scires.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <epan/packet.h>
-#include "packet-dis-fields.h"
-#include "packet-dis-enums.h"
-#include "packet-dis-pdus.h"
-
-/* all of these variables are assigned by reference */
-/* *(parserNode.outputVar) = value */
-guint32 disProtocolVersion;
-guint32 pduType;
-guint32 protocolFamily;
-guint32 persistentObjectPduType;
-guint32 entityKind;
-guint32 entityDomain;
-guint32 category;
-guint32 radioID;
-guint32 disRadioTransmitState;
-guint32 encodingScheme;
-guint32 tdlType;
-guint32 numSamples;
-guint32 messageType;
-guint32 numFixed;
-guint32 numVariable;
-guint32 numBeams;
-guint32 numTrackJamTargets;
-guint32 numShafts;
-guint32 numApas;
-guint32 numUAEmitter;
-guint32 numUABeams;
-guint32 variableDatumLength;
-guint32 variableParameterType;
-guint32 variableRecordLength;
-guint32 variableRecordType;
-guint32 majorModulation;
-guint32 systemModulation;
-guint32 modulationParamLength;
-guint32 disAntennaPattern;
-
-/* Headers
- */
-DIS_ParserNode DIS_FIELDS_PDU_HEADER[] =
-{
- { DIS_FIELDTYPE_PROTOCOL_VERSION, "Protocol Version",0,0,0,&disProtocolVersion },
- { DIS_FIELDTYPE_EXERCISE_ID, "Exercise ID",0,0,0,0 },
- { DIS_FIELDTYPE_PDU_TYPE, "PDU Type",0,0,0,&pduType },
- { DIS_FIELDTYPE_PROTOCOL_FAMILY, "Protocol Family",0,0,0,&protocolFamily },
- { DIS_FIELDTYPE_TIMESTAMP, "Timestamp",0,0,0,0 },
- { DIS_FIELDTYPE_PDU_LENGTH, "Length",0,0,0,0 },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_PERSISTENT_OBJECT_HEADER[] =
-{
- { DIS_FIELDTYPE_UINT8, "Protocol Version",0,0,0,0 },
- { DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE, "PO PDU Type",0,0,0,&persistentObjectPduType },
- { DIS_FIELDTYPE_UINT8, "Exercise ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "PO Database ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Length",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "PDU Count",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Composite types
- */
-
-DIS_ParserNode DIS_FIELDS_BURST_DESCRIPTOR[] =
-{
- { DIS_FIELDTYPE_ENTITY_TYPE, "Munition",0,0,0,0 },
- { DIS_FIELDTYPE_WARHEAD, "Warhead",0,0,0,0 },
- { DIS_FIELDTYPE_FUSE, "Fuse",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Quantity",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Rate",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_CLOCK_TIME[] =
-{
- { DIS_FIELDTYPE_UINT32, "Hour",0,0,0,0 },
- { DIS_FIELDTYPE_TIMESTAMP, "Time Past The Hour",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_ENTITY_ID[] =
-{
- { DIS_FIELDTYPE_SITE, "Site",0,0,0,0 },
- { DIS_FIELDTYPE_APPLICATION, "Application",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY, "Entity",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_ENTITY_TYPE[] =
-{
- { DIS_FIELDTYPE_ENTITY_KIND, "Entity Kind",0,0,0,&entityKind },
- { DIS_FIELDTYPE_DOMAIN, "Domain",0,0,0,&entityDomain },
- { DIS_FIELDTYPE_COUNTRY, "Country",0,0,0,0 },
- { DIS_FIELDTYPE_CATEGORY, "Category",0,0,0,&category },
- { DIS_FIELDTYPE_SUBCATEGORY, "Subcategory",0,0,0,0 },
- { DIS_FIELDTYPE_SPECIFIC, "Specific",0,0,0,0 },
- { DIS_FIELDTYPE_EXTRA, "Extra",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_RADIO_ENTITY_TYPE[] =
-{
- { DIS_FIELDTYPE_ENTITY_KIND, "Entity Kind",0,0,0,&entityKind },
- { DIS_FIELDTYPE_DOMAIN, "Domain",0,0,0,&entityDomain },
- { DIS_FIELDTYPE_COUNTRY, "Country",0,0,0,0 },
- { DIS_FIELDTYPE_RADIO_CATEGORY, "Radio Category",0,0,0,&category },
- { DIS_FIELDTYPE_NOMENCLATURE_VERSION, "Nomenclature Version",0,0,0,0 },
- { DIS_FIELDTYPE_NOMENCLATURE, "Nomenclature",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_MODULATION_TYPE[] =
-{
- { DIS_FIELDTYPE_SPREAD_SPECTRUM, "Spread Spectrum",0,0,0,0 },
- { DIS_FIELDTYPE_MODULATION_MAJOR, "Major",0,0,0,&majorModulation },
- { DIS_FIELDTYPE_MODULATION_DETAIL, "Detail",0,0,0,0 },
- { DIS_FIELDTYPE_MODULATION_SYSTEM, "System",0,0,0,&systemModulation },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_EVENT_ID[] =
-{
- { DIS_FIELDTYPE_UINT16, "Site",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Application",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Event Number",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_ORIENTATION[] =
-{
- { DIS_FIELDTYPE_FLOAT32, "Psi",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Theta",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Phi",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_SIMULATION_ADDRESS[] =
-{
- { DIS_FIELDTYPE_UINT16, "Site",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Application",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_32[] =
-{
- { DIS_FIELDTYPE_FLOAT32, "X",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Y",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Z",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_64[] =
-{
- { DIS_FIELDTYPE_FLOAT64, "X",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT64, "Y",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT64, "Z",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS[] =
-{
- { DIS_FIELDTYPE_FH_NETWORK_ID, "Frequency Hopping Network ID",0,0,0,0 },
- { DIS_FIELDTYPE_FH_SET_ID, "Frequency Set ID",0,0,0,0 },
- { DIS_FIELDTYPE_LO_SET_ID, "Lockout Set ID",0,0,0,0 },
- { DIS_FIELDTYPE_FH_MSG_START, "Frequency Hopping Message Start",0,0,0,0 },
- { DIS_FIELDTYPE_RESERVED, "Reserved",0,0,0,0 },
- { DIS_FIELDTYPE_FH_SYNC_TIME_OFFSET, "FH Synchronization Time Offset",0,0,0,0 },
- { DIS_FIELDTYPE_FH_SECURITY_KEY, "Transmission Security Key",0,0,0,0 },
- { DIS_FIELDTYPE_FH_CLEAR_CHANNEL, "Clear Channel",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS[] =
-{
- { DIS_FIELDTYPE_TS_ALLOCATION_MODE, "Time Slot Allocaton Mode",0,0,0,0 },
- { DIS_FIELDTYPE_TRANSMITTER_PRIMARY_MODE, "Transmitter Primary Mode",0,0,0,0 },
- { DIS_FIELDTYPE_TRANSMITTER_SECONDARY_MODE, "Transmitter Secondary Mode",0,0,0,0 },
- { DIS_FIELDTYPE_JTIDS_SYNC_STATE, "Synchronization State",0,0,0,0 },
- { DIS_FIELDTYPE_NETWORK_SYNC_ID, "Network Sync ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER[] =
-{
- { DIS_FIELDTYPE_LINK16_NPG, "Network Participant Group",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Network Number",0,0,0,0 },
- { DIS_FIELDTYPE_LINK16_TSEC_CVLL, "TSEC CVLL",0,0,0,0 },
- { DIS_FIELDTYPE_LINK16_MSEC_CVLL, "MSEC CVLL",0,0,0,0 },
- { DIS_FIELDTYPE_LINK16_MESSAGE_TYPE, "Message Type",0,0,0,&messageType },
- { DIS_FIELDTYPE_UINT16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Time Slot ID",0,0,0,0 },
- { DIS_FIELDTYPE_LINK16_PTT, "Perceived Transmit Time",0,0,0,0 },
- { DIS_FIELDTYPE_LINK16_MESSAGE_DATA, "Message Data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Array records
- */
-DIS_ParserNode DIS_FIELDS_FIXED_DATUM[] =
-{
- { DIS_FIELDTYPE_DATUM_ID, "Datum ID",0,0,0,0 },
- { DIS_FIELDTYPE_FIXED_DATUM_VALUE, "Datum value",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VARIABLE_DATUM[] =
-{
- { DIS_FIELDTYPE_DATUM_ID, "Datum ID",0,0,0,0 },
- { DIS_FIELDTYPE_DATUM_LENGTH, "Datum length",0,0,0,&variableDatumLength },
- { DIS_FIELDTYPE_VARIABLE_DATUM_VALUE, "Datum value",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_DATUM_IDS[] =
-{
- { DIS_FIELDTYPE_DATUM_ID, "Datum ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_EMITTER_SYSTEM[] =
-{
- { DIS_FIELDTYPE_EMITTER_NAME, "Emitter Name",0,0,0,0 },
- { DIS_FIELDTYPE_EMISSION_FUNCTION, "Function",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Emitter ID Number",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_UA_SHAFT[] =
-{
- { DIS_FIELDTYPE_INT16, "Current Shaft RPM",0,0,0,0 },
- { DIS_FIELDTYPE_INT16, "Ordered Shaft RPM",0,0,0,0 },
- { DIS_FIELDTYPE_INT32, "Shaft RPM Rate of Change",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_APA[] =
-{
- { DIS_FIELDTYPE_INT16, "Parameter Index",0,0,0,0 }, /*FIXME enum*/
- { DIS_FIELDTYPE_INT16, "Value", 0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_UA_EMITTER_SYSTEM[] =
-{
- { DIS_FIELDTYPE_UINT16, "Acoustic Emitter Name",0,0,0,0 }, /*FIXME enum*/
- { DIS_FIELDTYPE_UINT8, "Function",0,0,0,0 }, /*FIXME enum*/
- { DIS_FIELDTYPE_UINT8, "Acoustic ID Number",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_FUNDAMENTAL_PARAMETER_DATA[] =
-{
- { DIS_FIELDTYPE_FLOAT32, "Frequency",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Frequency Range",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Effective Radiated Power",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Pulse Repetition Frequency",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Pulse Width",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Beam Azimuth Center",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Beam Azimuth Sweep",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Beam Elevation Center",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Beam Elevation Sweep",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Beam Sweep Sync",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_TRACK_JAM[] =
-{
- { DIS_FIELDTYPE_SITE, "Site",0,0,0,0 },
- { DIS_FIELDTYPE_APPLICATION, "Application",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY, "Entity",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Emitter ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Beam ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Variable Parameters
- */
-DIS_ParserNode DIS_FIELDS_VP_TYPE[] =
-{
- { DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR, "Variable Parameter Type",0,0,0,&variableParameterType },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Array record contents - variable parameter records
- */
-DIS_ParserNode DIS_FIELDS_VP_GENERIC[] =
-{
- { DIS_FIELDTYPE_FIXED_LEN_STR, "Data",15,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VP_ARTICULATED_PART[] =
-{
- { DIS_FIELDTYPE_UINT8, "Change",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Part Attached To ID",0,0,0,0 },
- { DIS_FIELDTYPE_ARTIC_PARAM_TYPE, "Parameter Type",0,0,0,0 },
- { DIS_FIELDTYPE_UINT64, "Parameter Value",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VP_ATTACHED_PART[] =
-{
- { DIS_FIELDTYPE_UINT8, "Attached Indicator",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Part Attached To ID",0,0,0,0 },
- { DIS_FIELDTYPE_ARTIC_PARAM_TYPE, "Parameter Type",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_TYPE, "Part Type",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VP_ENTITY_OFFSET[] =
-{
- { DIS_FIELDTYPE_UINT8, "Offset Type",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",2,0,0,0 },
- { DIS_FIELDTYPE_VECTOR_32, "Offset",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VP_ENTITY_ASSOCIATION[] =
-{
- { DIS_FIELDTYPE_UINT8, "Change Indicator",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Association Status",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Association Type",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Object Identifier",2,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Own Station Location",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Physical Connection Type",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Group Member Type",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Group Number",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-/* Variable Records
- */
-DIS_ParserNode DIS_FIELDS_VR_TYPE[] =
-{
- { DIS_FIELDTYPE_UINT32, "Record Type",0,0,0,&variableRecordType },
- { DIS_FIELDTYPE_UINT16, "Record Length",0,0,0,&variableRecordLength },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_APPLICATION_HEALTH_STATUS[] =
-{
- { DIS_FIELDTYPE_PAD8, "Padding",2,0,0,0 },
- { DIS_FIELDTYPE_APPLICATION_STATUS_TYPE, "Status Type",0,0,0,0 },
- { DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS, "General Status",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Specific Status",0,0,0,0 },
- { DIS_FIELDTYPE_INT32, "Status Value Int",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT64, "Status Value Float",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_APPLICATION_INITIALIZATION[] =
-{
- { DIS_FIELDTYPE_UINT8, "Exercise ID",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_FIXED_LEN_STR, "Exercise File Path",256,0,0,0 },
- { DIS_FIELDTYPE_FIXED_LEN_STR, "Exercise File Name",128,0,0,0 },
- { DIS_FIELDTYPE_FIXED_LEN_STR, "Application Role",64,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_DATA_QUERY[] =
-{
- { DIS_FIELDTYPE_UINT16, "Num Records",0,0,0,&numFixed },
- { DIS_FIELDTYPE_FIXED_DATUM_IDS, "Record",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM[] =
-{
- { DIS_FIELDTYPE_UINT8, "Beam Data Length",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Beam ID Number",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Beam Parameter Index",0,0,0,0 },
- { DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA,
- "Fundamental Parameter Data",0,0,0,0 },
- { DIS_FIELDTYPE_BEAM_FUNCTION, "Beam Function",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Number of Targets in Track/Jam Field",0,0,0,&numTrackJamTargets },
- { DIS_FIELDTYPE_UINT8, "High Density Track/Jam",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Jamming Mode Sequence",0,0,0,0 },
- { DIS_FIELDTYPE_TRACK_JAM, "Track/Jam Entity",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM[] =
-{
- { DIS_FIELDTYPE_UINT8, "System Data Length",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Number of Beams (M)",0,0,0,&numBeams },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_EMITTER_SYSTEM, "Emitter System",0,0,0,0 },
- { DIS_FIELDTYPE_VECTOR_32, "Location",0,0,0,0 },
- { DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM, "Beam",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA[] =
-{
- { DIS_FIELDTYPE_UINT16, "Active Emission Parameter Index",0,0,0,0 }, /*FIXME enum!!!*/
- { DIS_FIELDTYPE_UINT16, "Scan Pattern",0,0,0,0 }, /*FIXME enum!!!*/
- { DIS_FIELDTYPE_FLOAT32, "Beam Center Azimuth (Horizontal Bearing)",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Azimuthal Beamwidth (Horizontal Beamwidth)",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Beam Center D/E",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "D/E Beamwidth (Vertical Beamwidth)",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_UA_BEAM[] =
-{
- { DIS_FIELDTYPE_UINT8, "Beam Data Length",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Beam ID Number",0,0,0,0 },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA,
- "Fundamental Data Parameters",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_FIELDS_VR_UA_EMITTER_SYSTEM[] =
-{
- { DIS_FIELDTYPE_UINT8, "Emitter System Data Length",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEM_BEAMS, "Number of Beams (m)",0,0,0,0 },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_UA_EMITTER_SYSTEM, "Acoustic Emitter System",0,0,0,0 },
- { DIS_FIELDTYPE_VECTOR_32, "Location (with respect to entity)",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Bit fields
- */
-DIS_ParserNode DIS_FIELDS_NONE[] =
-{
- { DIS_FIELDTYPE_END, NULL, 0,0,0,0 }
-};
-
-DIS_BitMask DIS_APPEARANCE_LANDPLATFORM[] =
-{
- { 0x00000001, 0, "Paint Scheme", {
- { 0, "Uniform color" },
- { 1, "Camouflage" },
- { 0,0 }
- } },
- { 0x00000002, 1, "Mobility", {
- { 0, "No mobility kill" },
- { 1, "Mobility kill" },
- { 0,0 }
- } },
- { 0x00000004, 2, "Fire Power", {
- { 0, "No fire-power kill" },
- { 1, "Fire-power kill" },
- { 0,0 }
- } },
- { 0x00000018, 3, "Damage", {
- { 0, "No damage" },
- { 1, "Slight damage" },
- { 2, "Moderate damage" },
- { 3, "Destroyed" },
- { 0,0 }
- } },
- { 0, 0, 0, {
- { 0, 0 }
- } }
-};
-
-DIS_BitMask DIS_APPEARANCE_LIFEFORM[] =
-{
- { 0x00000001, 0, "Paint Scheme", {
- { 0, "Uniform color" },
- { 1, "Camouflage" },
- { 0,0 }
- } },
- { 0x00000018, 3, "Health", {
- { 0, "No injury" },
- { 1, "Slight injury" },
- { 2, "Moderate injury" },
- { 3, "Fatal injury" },
- { 0,0 }
- } },
- { 0, 0, 0, {
- { 0, 0 }
- } }
-};
-
-/* Initialize the field parsers that are not explicitly included in any
- * specific PDU. These fields are only accessed and used if a variant
- * field indicates they are to be used.
- */
-void initializeFieldParsers(void)
-{
- initializeParser(DIS_FIELDS_VP_GENERIC);
- initializeParser(DIS_FIELDS_VP_ARTICULATED_PART);
- initializeParser(DIS_FIELDS_VP_ATTACHED_PART);
- initializeParser(DIS_FIELDS_VP_ENTITY_OFFSET);
- initializeParser(DIS_FIELDS_VP_ENTITY_ASSOCIATION);
- initializeParser(DIS_FIELDS_VR_APPLICATION_HEALTH_STATUS);
- initializeParser(DIS_FIELDS_VR_APPLICATION_INITIALIZATION);
- initializeParser(DIS_FIELDS_VR_DATA_QUERY);
- initializeParser(DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM);
- initializeParser(DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM);
- initializeParser(DIS_FIELDS_VR_UA_SHAFT);
- initializeParser(DIS_FIELDS_VR_UA_EMITTER_SYSTEM);
- initializeParser(DIS_FIELDS_VR_UA_BEAM);
- initializeParser(DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS);
- initializeParser(DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS);
- initializeParser(DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER);
-
-}
-
-/* Adjust an offset variable for proper alignment for a specified field length.
- */
-static gint alignOffset(gint offset, guint fieldLength)
-{
- gint remainder = offset % fieldLength;
- if (remainder != 0)
- {
- offset += fieldLength - remainder;
- }
- return offset;
-}
-
-/* Parse a field consisting of a specified number of bytes. This field parser
- * doesn't perform any alignment.
- */
-gint parseField_Bytes(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
-{
- proto_tree_add_text(tree, tvb, offset, numBytes, "%s (%d bytes)",
- parserNode.fieldLabel, numBytes);
- offset += numBytes;
- return offset;
-}
-
-/* Parse a bitmask field.
- */
-gint parseField_Bitmask(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
-{
- DIS_BitMask *bitMask = 0;
- guint64 uintVal = 0;
-
- offset = alignOffset(offset, numBytes);
-
- switch(numBytes)
- {
- case 1:
- uintVal = tvb_get_guint8(tvb, offset);
- break;
- case 2:
- uintVal = tvb_get_ntohs(tvb, offset);
- break;
- case 4:
- uintVal = tvb_get_ntohl(tvb, offset);
- break;
- case 8:
- uintVal = tvb_get_ntoh64(tvb, offset);
- break;
- default:
- /* assert */
- break;
- }
-
- switch(parserNode.fieldType)
- {
- case DIS_FIELDTYPE_APPEARANCE:
- if ((entityKind == DIS_ENTITYKIND_PLATFORM) &&
- (entityDomain == DIS_DOMAIN_LAND))
- {
- bitMask = DIS_APPEARANCE_LANDPLATFORM;
- }
- else if (entityKind == DIS_ENTITYKIND_LIFE_FORM)
- {
- bitMask = DIS_APPEARANCE_LIFEFORM;
- }
- break;
- default:
- break;
- }
-
- if (bitMask != 0)
- {
- int maskIndex = 0;
- while (bitMask[maskIndex].maskBits != 0)
- {
- int mapIndex = 0;
- DIS_BitMaskMapping *bitMaskMap = bitMask[maskIndex].bitMappings;
-
- while (bitMaskMap[mapIndex].label != 0)
- {
- if (((bitMask[maskIndex].maskBits & uintVal) >> bitMask[maskIndex].shiftBits) ==
- bitMaskMap[mapIndex].value)
- {
- proto_tree_add_text(tree, tvb, offset, numBytes,
- "%s = %s", bitMask[maskIndex].label,
- bitMaskMap[mapIndex].label);
- break;
- }
- ++mapIndex;
- }
- ++maskIndex;
- }
- }
- else
- {
- proto_tree_add_text(tree, tvb, offset, numBytes,
- "Unknown Appearance Type (%" G_GINT64_MODIFIER "u)", uintVal);
- }
-
- offset += numBytes;
-
- return offset;
-}
-
-/* Parse an unsigned integer field of a specified number of bytes.
- */
-gint parseField_UInt(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
-{
- guint64 uintVal = 0;
-
- offset = alignOffset(offset, numBytes);
-
- switch(numBytes)
- {
- case 1:
- uintVal = tvb_get_guint8(tvb, offset);
- break;
- case 2:
- uintVal = tvb_get_ntohs(tvb, offset);
- break;
- case 4:
- uintVal = tvb_get_ntohl(tvb, offset);
- break;
- case 8:
- uintVal = tvb_get_ntoh64(tvb, offset);
- break;
- default:
- /* assert */
- break;
- }
-
- proto_tree_add_text(tree, tvb, offset, numBytes, "%s = %" G_GINT64_MODIFIER "u",
- parserNode.fieldLabel, uintVal);
-
- if (parserNode.outputVar != 0)
- {
- *(parserNode.outputVar) = (guint32)uintVal;
- }
-
- offset += numBytes;
-
- return offset;
-}
-
-/* Parse a signed integer field of a specified number of bytes.
- */
-gint parseField_Int(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
-{
- gint64 intVal = 0;
-
- offset = alignOffset(offset, numBytes);
-
- switch(numBytes)
- {
- case 1:
- intVal = (gint8)tvb_get_guint8(tvb, offset);
- break;
- case 2:
- intVal = (gint16)tvb_get_ntohs(tvb, offset);
- break;
- case 4:
- intVal = (gint32)tvb_get_ntohl(tvb, offset);
- break;
- case 8:
- intVal = (gint64)tvb_get_ntoh64(tvb, offset);
- break;
- default:
- /* assert */
- break;
- }
-
- proto_tree_add_text(tree, tvb, offset, numBytes, "%s = %" G_GINT64_MODIFIER "d",
- parserNode.fieldLabel, intVal);
-
- offset += numBytes;
-
- return offset;
-}
-
-/* Parse a field that explicitly specified a number of pad bytes (vs implicit
- * padding, which occurs whenever padding is inserted to properly align the
- * field.
- */
-gint parseField_Pad(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode _U_, guint numBytes)
-{
- proto_tree_add_text(tree, tvb, offset, numBytes,
- "Explicit Padding (%d bytes)", numBytes);
-
- offset += numBytes;
-
- return offset;
-}
-
-/* Parse an enumerated type field.
- */
-gint parseField_Enum(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
-{
- const value_string *enumStrings = 0;
- guint32 enumVal = 0;
- const gchar *enumStr = 0;
-#if 0
- proto_item *pi;
-#endif
- int dis_hf_id = -1;
-
- offset = alignOffset(offset, numBytes);
-
- switch(parserNode.fieldType)
- {
- case DIS_FIELDTYPE_ACKNOWLEDGE_FLAG:
- enumStrings = DIS_PDU_AcknowledgeFlag_Strings;
- break;
- case DIS_FIELDTYPE_ACTION_ID:
- enumStrings = DIS_PDU_ActionId_Strings;
- break;
- case DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS:
- enumStrings = DIS_PDU_ApplicationGeneralStatus_Strings;
- break;
- case DIS_FIELDTYPE_APPLICATION_STATUS_TYPE:
- enumStrings = DIS_PDU_ApplicationStatusType_Strings;
- break;
- case DIS_FIELDTYPE_APPLICATION_TYPE:
- enumStrings = DIS_PDU_ApplicationType_Strings;
- break;
- case DIS_FIELDTYPE_CONTROL_ID:
- enumStrings = DIS_PDU_ControlId_Strings;
- break;
- case DIS_FIELDTYPE_PROTOCOL_VERSION:
- enumStrings = DIS_PDU_ProtocolVersion_Strings;
- dis_hf_id = hf_dis_proto_ver;
- break;
- case DIS_FIELDTYPE_PROTOCOL_FAMILY:
- enumStrings = DIS_PDU_ProtocolFamily_Strings;
- dis_hf_id = hf_dis_proto_fam;
- break;
- case DIS_FIELDTYPE_PDU_TYPE:
- enumStrings = DIS_PDU_Type_Strings;
- dis_hf_id = hf_dis_pdu_type;
- break;
- case DIS_FIELDTYPE_ENTITY_KIND:
- enumStrings = DIS_PDU_EntityKind_Strings;
- dis_hf_id = hf_dis_entityKind;
- break;
- case DIS_FIELDTYPE_DOMAIN:
- enumStrings = DIS_PDU_Domain_Strings;
- dis_hf_id = hf_dis_entityDomain;
- break;
- case DIS_FIELDTYPE_DETONATION_RESULT:
- enumStrings = DIS_PDU_DetonationResult_Strings;
- break;
- case DIS_FIELDTYPE_FROZEN_BEHAVIOR:
- enumStrings = DIS_PDU_FrozenBehavior_Strings;
- break;
- case DIS_FIELDTYPE_RADIO_CATEGORY:
- enumStrings = DIS_PDU_RadioCategory_Strings;
- dis_hf_id = hf_dis_category_radio;
- break;
- case DIS_FIELDTYPE_NOMENCLATURE_VERSION:
- enumStrings = DIS_PDU_NomenclatureVersion_Strings;
- break;
- case DIS_FIELDTYPE_NOMENCLATURE:
- enumStrings = DIS_PDU_Nomenclature_Strings;
- break;
- case DIS_FIELDTYPE_CATEGORY:
- if (entityKind == DIS_ENTITYKIND_PLATFORM)
- {
- switch(entityDomain)
- {
- case DIS_DOMAIN_LAND:
- enumStrings = DIS_PDU_Category_LandPlatform_Strings;
- dis_hf_id = hf_dis_category_land;
- break;
- case DIS_DOMAIN_AIR:
- enumStrings = DIS_PDU_Category_AirPlatform_Strings;
- dis_hf_id = hf_dis_category_air;
- break;
- case DIS_DOMAIN_SURFACE:
- enumStrings = DIS_PDU_Category_SurfacePlatform_Strings;
- dis_hf_id = hf_dis_category_surface;
- break;
- case DIS_DOMAIN_SUBSURFACE:
- enumStrings = DIS_PDU_Category_SubsurfacePlatform_Strings;
- dis_hf_id = hf_dis_category_subsurface;
- break;
- case DIS_DOMAIN_SPACE:
- enumStrings = DIS_PDU_Category_SpacePlatform_Strings;
- dis_hf_id = hf_dis_category_space;
- break;
- default:
- enumStrings = 0;
- break;
- }
- }
- break;
- case DIS_FIELDTYPE_EMITTER_NAME:
- enumStrings = DIS_PDU_EmitterName_Strings;
- dis_hf_id = hf_dis_emitter_name;
- break;
- case DIS_FIELDTYPE_EMISSION_FUNCTION:
- enumStrings = DIS_PDU_EmissionFunction_Strings;
- dis_hf_id = hf_dis_emission_function;
- break;
- case DIS_FIELDTYPE_BEAM_FUNCTION:
- enumStrings = DIS_PDU_BeamFunction_Strings;
- dis_hf_id = hf_dis_beam_function;
- break;
- case DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR:
- enumStrings = DIS_PDU_ParameterTypeDesignator_Strings;
- break;
- case DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE:
- enumStrings = DIS_PDU_PersistentObjectType_Strings;
- break;
- case DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS:
- enumStrings = DIS_PDU_PO_ObjectClass_Strings;
- break;
- case DIS_FIELDTYPE_REASON:
- enumStrings = DIS_PDU_Reason_Strings;
- break;
- case DIS_FIELDTYPE_REQUEST_STATUS:
- enumStrings = DIS_PDU_RequestStatus_Strings;
- break;
- case DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE:
- enumStrings = DIS_PDU_RequiredReliabilityService_Strings;
- break;
- case DIS_FIELDTYPE_RESPONSE_FLAG:
- enumStrings = DIS_PDU_DisResponseFlag_Strings;
- break;
- case DIS_FIELDTYPE_MODULATION_DETAIL:
- switch (majorModulation) {
- case DIS_MAJOR_MOD_AMPLITUDE:
- enumStrings = DIS_PDU_DetailModulationAmplitude_Strings;
- break;
- case DIS_MAJOR_MOD_AMPLITUDE_AND_ANGLE:
- enumStrings = DIS_PDU_DetailModulationAmpAndAngle_Strings;
- break;
- case DIS_MAJOR_MOD_ANGLE:
- enumStrings = DIS_PDU_DetailModulationAngle_Strings;
- break;
- case DIS_MAJOR_MOD_COMBINATION:
- enumStrings = DIS_PDU_DetailModulationCombination_Strings;
- break;
- case DIS_MAJOR_MOD_PULSE:
- enumStrings = DIS_PDU_DetailModulationPulse_Strings;
- break;
- case DIS_MAJOR_MOD_UNMODULATED:
- enumStrings = DIS_PDU_DetailModulationUnmodulated_Strings;
- break;
- case DIS_MAJOR_MOD_CPSM: /* CPSM only has "other" defined */
- case DIS_MAJOR_MOD_OTHER:
- default:
- enumStrings = DIS_PDU_DetailModulationCPSM_Strings;
- break;
- }
- break;
- case DIS_FIELDTYPE_LINK16_MESSAGE_TYPE:
- enumStrings = DIS_PDU_Link16_MessageType_Strings;
- dis_hf_id = hf_dis_signal_link16_message_type;
- break;
- default:
- enumStrings = 0;
- break;
- }
-
- switch(numBytes)
- {
- case 1:
- enumVal = tvb_get_guint8(tvb, offset);
- break;
- case 2:
- enumVal = tvb_get_ntohs(tvb, offset);
- break;
- case 4:
- enumVal = tvb_get_ntohl(tvb, offset);
- break;
- default:
- /* assert */
- break;
- }
-
- enumStr = val_to_str(enumVal, enumStrings, "Unknown Enumeration (%d)");
-
- if (dis_hf_id != -1) {
-#if 0
- pi = proto_tree_add_item(tree, dis_hf_id, tvb, offset, numBytes, ENC_BIG_ENDIAN);
- proto_item_set_text(pi, "%s = %s", parserNode.fieldLabel, enumStr);
-#else
- proto_tree_add_item(tree, dis_hf_id, tvb, offset, numBytes, ENC_BIG_ENDIAN);
-#endif
- }
- else {
- proto_tree_add_text(tree, tvb, offset, numBytes, "%s = %s",
- parserNode.fieldLabel, enumStr);
- }
-
- if (parserNode.outputVar != 0)
- {
- *(parserNode.outputVar) = enumVal;
- }
-
- offset += numBytes;
-
- return offset;
-}
-
-/* Parse a 4-byte floating-point value.
- */
-gint parseField_Float(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode)
-{
- gfloat floatVal;
-
- offset = alignOffset(offset, 4);
- floatVal = tvb_get_ntohieee_float(tvb, offset);
- proto_tree_add_text(tree, tvb, offset, 4, "%s = %f",
- parserNode.fieldLabel, floatVal);
-
- offset += 4;
-
- return offset;
-}
-#if 0
-/* Parse a 4-byte floating-point value, given text label.
- */
-static gint parseField_Float_Text(tvbuff_t *tvb, proto_tree *tree, gint offset, gchar *charStr)
-{
- gfloat floatVal;
-
- offset = alignOffset(offset, 4);
- floatVal = tvb_get_ntohieee_float(tvb, offset);
- proto_tree_add_text(tree, tvb, offset, 4, "%s = %f",
- charStr, floatVal);
-
- offset += 4;
-
- return offset;
-}
-#endif
-/* Parse an 8-byte floating-point value.
- */
-gint parseField_Double(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode)
-{
- gdouble doubleVal;
-
- offset = alignOffset(offset, 8);
- doubleVal = tvb_get_ntohieee_double(tvb, offset);
- proto_tree_add_text(tree, tvb, offset, 8, "%s = %f",
- parserNode.fieldLabel, doubleVal);
-
- offset += 8;
-
- return offset;
-}
-
-/* Parse the Timestamp */
-gint parseField_Timestamp(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode)
-{
- /* some consts */
- static double MSEC_PER_SECOND = 1000.0;
- static double MSEC_PER_MINUTE = 60.0 * 1000.0 ;
- static double MSEC_PER_HOUR = 60.0 * 60.0 * 1000.0;
- static double FSV = 0x7fffffff;
- /* variables */
- guint isAbsolute = 0;
- guint32 uintVal;
- guint minutes;
- guint seconds;
- guint milliseconds;
- double ms;
-
- offset = alignOffset(offset, 4);
-
- /* convert to host value */
- uintVal = tvb_get_ntohl(tvb, offset);
- /* determine absolute vis sim time */
- if( uintVal & 1 )
- isAbsolute = 1;
-
- /* convert TS to MS */
- ms = (uintVal >> 1) * MSEC_PER_HOUR / FSV;
- ms += 0.5;
-
- /* calc minutes and reduce ms */
- minutes = (guint) (ms / MSEC_PER_MINUTE);
- ms -= (minutes * MSEC_PER_MINUTE);
-
- /* calc seconds and reduce ms */
- seconds = (guint) (ms / MSEC_PER_SECOND);
- ms -= (seconds * MSEC_PER_SECOND);
-
- /* truncate milliseconds */
- milliseconds = (guint) ms;
-
- /* push out the values */
- if( isAbsolute )
- {
- proto_tree_add_text(tree, tvb, offset, 4, "%s = %02d:%02d %03d absolute (UTM)",
- parserNode.fieldLabel, minutes, seconds, milliseconds);
- }
- else
- {
- proto_tree_add_text(tree, tvb, offset, 4, "%s = %02d:%02d %03d relative",
- parserNode.fieldLabel, minutes, seconds, milliseconds);
- }
-
- offset += 4;
- return offset;
-}
-
-/* Parse a variable parameter field.
- */
-gint parseField_VariableParameter(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo)
-{
- DIS_ParserNode *paramParser = 0;
-
- /* Determine the parser to use based on the type */
- switch (variableParameterType) {
- case DIS_PARAM_TYPE_DESIG_ARTICULATED_PART:
- paramParser = DIS_FIELDS_VP_ARTICULATED_PART;
- break;
- case DIS_PARAM_TYPE_DESIG_ATTACHED_PART:
- paramParser = DIS_FIELDS_VP_ATTACHED_PART;
- break;
- case DIS_PARAM_TYPE_DESIG_ENTITY_OFFSET:
- paramParser = DIS_FIELDS_VP_ENTITY_OFFSET;
- break;
- case DIS_PARAM_TYPE_DESIG_ENTITY_ASSOCIATION:
- paramParser = DIS_FIELDS_VP_ENTITY_ASSOCIATION;
- break;
- default:
- paramParser = DIS_FIELDS_VP_GENERIC;
- break;
- }
-
- /* Parse the variable parameter fields */
- if (paramParser)
- {
- offset = parseFields(tvb, tree, offset, paramParser, pinfo);
- }
-
- return offset;
-}
-
-/* Parse a variable record field.
- */
-gint parseField_VariableRecord(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo)
-{
- DIS_ParserNode *paramParser = 0;
-
- /* Determine the parser to use based on the type */
- switch (variableRecordType) {
- case 47200:
- paramParser = DIS_FIELDS_VR_APPLICATION_HEALTH_STATUS;
- break;
- case 47300:
- paramParser = DIS_FIELDS_VR_APPLICATION_INITIALIZATION;
- break;
- case 47600:
- paramParser = DIS_FIELDS_VR_DATA_QUERY;
- break;
- default:
- {
-
- guint32 dataLength = variableRecordLength - 6;
-
- if (dataLength > 0)
- {
- proto_tree_add_text(tree, tvb, offset, dataLength,
- "Record Data (%d bytes)", dataLength);
- offset += dataLength;
- }
- }
- break;
- }
-
- /* Parse the variable record fields */
- if (paramParser)
- {
- offset = parseFields(tvb, tree, offset, paramParser, pinfo);
- }
-
- /* Should alignment padding be added */
- if (variableRecordLength % 8)
- {
- guint32 alignmentPadding = (8 - (variableRecordLength % 8));
-
- proto_tree_add_text(tree, tvb, offset, alignmentPadding,
- "Alignment Padding (%d bytes)", alignmentPadding);
- offset += alignmentPadding;
- }
-
- return offset;
-}
-
-/* Parse a variable electromagnetic emission system beam.
- */
-gint parseField_ElectromagneticEmissionSystemBeam(
- tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo)
-{
- DIS_ParserNode *paramParser = 0;
-
- /* Determine the parser to use based on the PDU type */
- if (pduType == DIS_PDUTYPE_ELECTROMAGNETIC_EMISSION)
- paramParser = DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM;
-
- /* Parse the variable parameter fields */
- if (paramParser)
- {
- offset = parseFields(tvb, tree, offset, paramParser, pinfo);
- }
-
- return offset;
-}
-
diff --git a/epan/dissectors/packet-dis-fields.h b/epan/dissectors/packet-dis-fields.h
deleted file mode 100644
index d72b9963c6..0000000000
--- a/epan/dissectors/packet-dis-fields.h
+++ /dev/null
@@ -1,415 +0,0 @@
-/* packet-dis-fields.h
- * Declarations for DIS field parsing.
- * Copyright 2005, Scientific Research Corporation
- * Initial implementation by Jeremy Ouellette <jouellet@scires.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __PACKET_DIS_FIELDPARSERS_H__
-#define __PACKET_DIS_FIELDPARSERS_H__
-
-#include <epan/packet.h>
-
-extern int hf_dis_proto_ver;
-extern int hf_dis_exercise_id;
-extern int hf_dis_pdu_type;
-extern int hf_dis_proto_fam;
-extern int hf_dis_pdu_length;
-extern int hf_dis_entity_id_site;
-extern int hf_dis_entity_id_application;
-extern int hf_dis_entity_id_entity;
-extern int hf_dis_num_art_params;
-extern int hf_dis_entityKind;
-extern int hf_dis_entityDomain;
-extern int hf_dis_category_land;
-extern int hf_dis_category_air;
-extern int hf_dis_category_surface;
-extern int hf_dis_category_subsurface;
-extern int hf_dis_category_space;
-extern int hf_dis_category_radio;
-extern int hf_dis_num_electromagnetic_emission_systems;
-extern int hf_dis_emitter_name;
-extern int hf_dis_emission_function;
-extern int hf_dis_beam_function;
-extern int hf_dis_radio_id;
-extern int hf_dis_ens;
-extern int hf_dis_ens_class;
-extern int hf_dis_ens_type;
-extern int hf_dis_ens_type_audio;
-extern int hf_dis_tdl_type;
-extern int hf_dis_sample_rate;
-extern int hf_dis_data_length;
-extern int hf_dis_num_of_samples;
-extern int hf_dis_signal_data;
-extern int hf_dis_radio_category;
-extern int hf_dis_nomenclature_version;
-extern int hf_dis_nomenclature;
-extern int hf_dis_radio_transmit_state;
-extern int hf_dis_radio_input_source;
-extern int hf_dis_antenna_pattern_type;
-extern int hf_dis_antenna_pattern_length;
-extern int hf_dis_transmit_frequency;
-extern int hf_dis_spread_spectrum_usage;
-extern int hf_dis_frequency_hopping;
-extern int hf_dis_pseudo_noise_modulation;
-extern int hf_dis_time_hopping;
-extern int hf_dis_modulation_major;
-extern int hf_dis_modulation_system;
-extern int hf_dis_crypto_system;
-extern int hf_dis_crypto_key;
-extern int hf_dis_encryption_mode;
-extern int hf_dis_key_identifier;
-extern int hf_dis_modulation_parameter_length;
-extern int hf_dis_mod_param_fh_net_id;
-extern int hf_dis_mod_param_fh_set_id;
-extern int hf_dis_mod_param_fh_lo_set_id;
-extern int hf_dis_mod_param_fh_msg_start;
-extern int hf_dis_mod_param_fh_reserved;
-extern int hf_dis_mod_param_fh_sync_time_offset;
-extern int hf_dis_mod_param_fh_security_key;
-extern int hf_dis_mod_param_fh_clear_channel;
-extern int hf_dis_mod_param_dump;
-extern int hf_dis_mod_param_ts_allocation_mode;
-extern int hf_dis_mod_param_transmitter_prim_mode;
-extern int hf_dis_mod_param_transmitter_second_mode;
-extern int hf_dis_mod_param_sync_state;
-extern int hf_dis_mod_param_network_sync_id;
-extern int hf_dis_antenna_pattern_parameter_dump;
-extern int hf_dis_num_shafts;
-extern int hf_dis_num_apas;
-extern int hf_dis_num_ua_emitter_systems;
-extern int hf_dis_signal_link16_npg;
-extern int hf_dis_signal_link16_tsec_cvll;
-extern int hf_dis_signal_link16_msec_cvll;
-extern int hf_dis_signal_link16_message_type;
-extern int hf_dis_signal_link16_ptt;
-extern int hf_dis_signal_link16_time_slot_type;
-extern int hf_dis_signal_link16_rti;
-extern int hf_dis_signal_link16_stn;
-extern int hf_dis_signal_link16_sdusn;
-
-extern int ett_dis_ens;
-extern int ett_dis_crypto_key;
-extern int ett_dis_signal_link16_network_header;
-extern int ett_dis_signal_link16_message_data;
-extern int ett_dis_signal_link16_jtids_header;
-
-
-
-/* enumeration of all field types used for DIS parsing. */
-typedef enum
-{
- /* end marker to indicate the end of a parser sequence */
- DIS_FIELDTYPE_END = 0,
-
- /* basic numeric types */
- DIS_FIELDTYPE_INT8,
- DIS_FIELDTYPE_INT16,
- DIS_FIELDTYPE_INT32,
- DIS_FIELDTYPE_INT64,
- DIS_FIELDTYPE_UINT8,
- DIS_FIELDTYPE_UINT16,
- DIS_FIELDTYPE_UINT32,
- DIS_FIELDTYPE_UINT64,
- DIS_FIELDTYPE_FLOAT32,
- DIS_FIELDTYPE_FLOAT64,
-
- /* padding */
- DIS_FIELDTYPE_PAD8,
- DIS_FIELDTYPE_PAD16,
- DIS_FIELDTYPE_PAD24,
- DIS_FIELDTYPE_PAD32,
-
- /* enumerations */
- DIS_FIELDTYPE_ACKNOWLEDGE_FLAG,
- DIS_FIELDTYPE_ACTION_ID,
- DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS,
- DIS_FIELDTYPE_APPLICATION_STATUS_TYPE,
- DIS_FIELDTYPE_APPLICATION_TYPE,
- DIS_FIELDTYPE_CATEGORY,
- DIS_FIELDTYPE_CONTROL_ID,
- DIS_FIELDTYPE_DETONATION_RESULT,
- DIS_FIELDTYPE_DOMAIN,
- DIS_FIELDTYPE_ENTITY_KIND,
- DIS_FIELDTYPE_FROZEN_BEHAVIOR,
- DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR,
- DIS_FIELDTYPE_PDU_TYPE,
- DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE,
- DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS,
- DIS_FIELDTYPE_PROTOCOL_FAMILY,
- DIS_FIELDTYPE_PROTOCOL_VERSION,
- DIS_FIELDTYPE_REASON,
- DIS_FIELDTYPE_REQUEST_STATUS,
- DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE,
- DIS_FIELDTYPE_RESPONSE_FLAG,
- DIS_FIELDTYPE_TDL_TYPE,
- DIS_FIELDTYPE_RADIO_CATEGORY,
- DIS_FIELDTYPE_NOMENCLATURE_VERSION,
- DIS_FIELDTYPE_NOMENCLATURE,
- DIS_FIELDTYPE_RADIO_TRANSMIT_STATE,
- DIS_FIELDTYPE_RADIO_INPUT_SOURCE,
- DIS_FIELDTYPE_ANTENNA_PATTERN_TYPE,
- DIS_FIELDTYPE_SPREAD_SPECTRUM,
- DIS_FIELDTYPE_MODULATION_MAJOR,
- DIS_FIELDTYPE_MODULATION_DETAIL,
- DIS_FIELDTYPE_MODULATION_SYSTEM,
- DIS_FIELDTYPE_CRYPTO_SYSTEM,
- DIS_FIELDTYPE_EMITTER_NAME,
- DIS_FIELDTYPE_EMISSION_FUNCTION,
- DIS_FIELDTYPE_BEAM_FUNCTION,
-
- /* other atomic types */
- DIS_FIELDTYPE_PDU_LENGTH,
- DIS_FIELDTYPE_EXERCISE_ID,
- DIS_FIELDTYPE_SITE,
- DIS_FIELDTYPE_APPLICATION,
- DIS_FIELDTYPE_ENTITY,
- DIS_FIELDTYPE_APPEARANCE,
- DIS_FIELDTYPE_ARTIC_PARAM_TYPE,
- DIS_FIELDTYPE_CAPABILITIES,
- DIS_FIELDTYPE_COUNTRY,
- DIS_FIELDTYPE_DATUM_ID,
- DIS_FIELDTYPE_DATUM_LENGTH,
- DIS_FIELDTYPE_DEAD_RECKONING_PARAMS,
- DIS_FIELDTYPE_DEAD_RECKONING_ALGORITHM,
- DIS_FIELDTYPE_DEAD_RECKONING_OTHER_PARAMS,
- DIS_FIELDTYPE_ENTITY_MARKING,
- DIS_FIELDTYPE_EXTRA,
- DIS_FIELDTYPE_FIXED_DATUM_VALUE,
- DIS_FIELDTYPE_FIXED_LEN_STR,
- DIS_FIELDTYPE_FORCE_ID,
- DIS_FIELDTYPE_FUSE,
- DIS_FIELDTYPE_NUM_FIXED_DATA,
- DIS_FIELDTYPE_NUM_VARIABLE_DATA,
- DIS_FIELDTYPE_REQUEST_ID,
- DIS_FIELDTYPE_SPECIFIC,
- DIS_FIELDTYPE_SUBCATEGORY,
- DIS_FIELDTYPE_TIME_INTERVAL,
- DIS_FIELDTYPE_TIMESTAMP,
- DIS_FIELDTYPE_WARHEAD,
- DIS_FIELDTYPE_RADIO_ID,
- DIS_FIELDTYPE_SAMPLE_RATE,
- DIS_FIELDTYPE_DATA_LENGTH,
- DIS_FIELDTYPE_NUMBER_OF_SAMPLES,
- DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS,
- DIS_FIELDTYPE_ANTENNA_PATTERN_LENGTH,
- DIS_FIELDTYPE_TRANSMIT_FREQUENCY,
- DIS_FIELDTYPE_MODULATION_PARAMETER_LENGTH,
- DIS_FIELDTYPE_FH_NETWORK_ID,
- DIS_FIELDTYPE_FH_SET_ID,
- DIS_FIELDTYPE_LO_SET_ID,
- DIS_FIELDTYPE_FH_MSG_START,
- DIS_FIELDTYPE_RESERVED,
- DIS_FIELDTYPE_FH_SYNC_TIME_OFFSET,
- DIS_FIELDTYPE_FH_SECURITY_KEY,
- DIS_FIELDTYPE_FH_CLEAR_CHANNEL,
- DIS_FIELDTYPE_TS_ALLOCATION_MODE,
- DIS_FIELDTYPE_TRANSMITTER_PRIMARY_MODE,
- DIS_FIELDTYPE_TRANSMITTER_SECONDARY_MODE,
- DIS_FIELDTYPE_JTIDS_SYNC_STATE,
- DIS_FIELDTYPE_NETWORK_SYNC_ID,
- DIS_FIELDTYPE_LINK16_NPG,
- DIS_FIELDTYPE_LINK16_TSEC_CVLL,
- DIS_FIELDTYPE_LINK16_MSEC_CVLL,
- DIS_FIELDTYPE_LINK16_MESSAGE_TYPE,
- DIS_FIELDTYPE_NUM_ELECTROMAGNETIC_EMISSION_SYSTEMS,
- DIS_FIELDTYPE_NUM_OF_SHAFTS,
- DIS_FIELDTYPE_NUM_OF_APAS,
- DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEMS,
- DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEM_BEAMS,
-
- /* composite types */
- DIS_FIELDTYPE_BURST_DESCRIPTOR,
- DIS_FIELDTYPE_CLOCK_TIME,
- DIS_FIELDTYPE_ENTITY_ID,
- DIS_FIELDTYPE_ENTITY_TYPE,
- DIS_FIELDTYPE_RADIO_ENTITY_TYPE,
- DIS_FIELDTYPE_EVENT_ID,
- DIS_FIELDTYPE_LINEAR_VELOCITY,
- DIS_FIELDTYPE_LOCATION_ENTITY,
- DIS_FIELDTYPE_LOCATION_WORLD,
- DIS_FIELDTYPE_ORIENTATION,
- DIS_FIELDTYPE_SIMULATION_ADDRESS,
- DIS_FIELDTYPE_VARIABLE_DATUM_VALUE,
- DIS_FIELDTYPE_VECTOR_32,
- DIS_FIELDTYPE_VECTOR_64,
- DIS_FIELDTYPE_ENCODING_SCHEME,
- DIS_FIELDTYPE_ANTENNA_LOCATION,
- DIS_FIELDTYPE_REL_ANTENNA_LOCATON,
- DIS_FIELDTYPE_MODULATION_TYPE,
- DIS_FIELDTYPE_CRYPTO_KEY_ID,
- DIS_FIELDTYPE_MODULATION_PARAMETERS,
- DIS_FIELDTYPE_ANTENNA_PATTERN_PARAMETERS,
- DIS_FIELDTYPE_MOD_PARAMS_CCTT_SINCGARS,
- DIS_FIELDTYPE_MOD_PARAMS_JTIDS_MIDS,
- DIS_FIELDTYPE_LINK16_MESSAGE_DATA,
- DIS_FIELDTYPE_LINK16_PTT,
- DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM,
- DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM,
- DIS_FIELDTYPE_EMITTER_SYSTEM,
- DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA,
- DIS_FIELDTYPE_TRACK_JAM,
- DIS_FIELDTYPE_SHAFTS,
- DIS_FIELDTYPE_APA,
- DIS_FIELDTYPE_UA_EMITTER_SYSTEMS,
- DIS_FIELDTYPE_UA_BEAMS,
- DIS_FIELDTYPE_UA_EMITTER_SYSTEM,
- DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA,
-
- /* arrays */
- DIS_FIELDTYPE_FIXED_DATUMS,
- DIS_FIELDTYPE_FIXED_DATUM_IDS,
- DIS_FIELDTYPE_VARIABLE_DATUMS,
- DIS_FIELDTYPE_VARIABLE_DATUM_IDS,
- DIS_FIELDTYPE_VARIABLE_PARAMETERS,
- DIS_FIELDTYPE_VARIABLE_RECORDS,
- DIS_FIELDTYPE_RADIO_DATA
-
-} DIS_FieldType;
-
-/* Struct which contains the data needed to parse a single DIS field.
- */
-typedef struct DIS_ParserNode_T
-{
- DIS_FieldType fieldType;
- const char *fieldLabel;
- int fieldRepeatLen;
- int ettVar;
- struct DIS_ParserNode_T *children;
- guint32 *outputVar;
-} DIS_ParserNode;
-
-/* Struct which associates a name with a particular bit combination.
- */
-typedef struct
-{
- guint32 value;
- const char *label;
-} DIS_BitMaskMapping;
-
-/* Struct which specifies all possible bit mappings associated with
- * a particular bit mask.
- */
-typedef struct
-{
- guint32 maskBits;
- guint32 shiftBits;
- const char *label;
- DIS_BitMaskMapping bitMappings[33];
-} DIS_BitMask;
-
-/* Headers */
-extern DIS_ParserNode DIS_FIELDS_PDU_HEADER[];
-extern DIS_ParserNode DIS_FIELDS_PERSISTENT_OBJECT_HEADER[];
-
-/* Composite types */
-extern DIS_ParserNode DIS_FIELDS_BURST_DESCRIPTOR[];
-extern DIS_ParserNode DIS_FIELDS_CLOCK_TIME[];
-extern DIS_ParserNode DIS_FIELDS_ENTITY_ID[];
-extern DIS_ParserNode DIS_FIELDS_ENTITY_TYPE[];
-extern DIS_ParserNode DIS_FIELDS_RADIO_ENTITY_TYPE[];
-extern DIS_ParserNode DIS_FIELDS_MODULATION_TYPE[];
-extern DIS_ParserNode DIS_FIELDS_EVENT_ID[];
-extern DIS_ParserNode DIS_FIELDS_ORIENTATION[];
-extern DIS_ParserNode DIS_FIELDS_SIMULATION_ADDRESS[];
-extern DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_32[];
-extern DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_64[];
-extern DIS_ParserNode DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS[];
-extern DIS_ParserNode DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS[];
-extern DIS_ParserNode DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER[];
-extern DIS_ParserNode DIS_FIELDS_EMITTER_SYSTEM[];
-extern DIS_ParserNode DIS_FIELDS_FUNDAMENTAL_PARAMETER_DATA[];
-extern DIS_ParserNode DIS_FIELDS_TRACK_JAM[];
-extern DIS_ParserNode DIS_FIELDS_UA_EMITTER_SYSTEM[];
-extern DIS_ParserNode DIS_FIELDS_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA[];
-
-/* Array records */
-extern DIS_ParserNode DIS_FIELDS_FIXED_DATUM[];
-extern DIS_ParserNode DIS_FIELDS_VARIABLE_DATUM[];
-extern DIS_ParserNode DIS_FIELDS_DATUM_IDS[];
-extern DIS_ParserNode DIS_FIELDS_VP_TYPE[];
-extern DIS_ParserNode DIS_FIELDS_VR_TYPE[];
-extern DIS_ParserNode DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM[];
-extern DIS_ParserNode DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM[];
-extern DIS_ParserNode DIS_FIELDS_VR_UA_SHAFT[];
-extern DIS_ParserNode DIS_FIELDS_VR_APA[];
-extern DIS_ParserNode DIS_FIELDS_VR_UA_EMITTER_SYSTEM[];
-extern DIS_ParserNode DIS_FIELDS_VR_UA_BEAM[];
-
-/* Bit fields */
-extern DIS_ParserNode DIS_FIELDS_NONE[];
-extern DIS_BitMask DIS_APPEARANCE_LANDPLATFORM[];
-extern DIS_BitMask DIS_APPEARANCE_LIFEFORM[];
-
-extern void initializeFieldParsers(void);
-
-extern gint parseField_Bytes(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-
-extern gint parseField_Bitmask(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-
-extern gint parseField_UInt(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-
-extern gint parseField_Int(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-
-extern gint parseField_Enum(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-
-extern gint parseField_Pad(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-
-extern gint parseField_Float(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
-
-extern gint parseField_Double(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
-
-extern gint parseField_Timestamp(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
-
-extern gint parseField_VariableParameter(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo);
-
-extern gint parseField_VariableRecord(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo);
-
-extern gint parseField_ElectromagneticEmissionSystemBeam(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo);
-
-extern guint32 disProtocolVersion;
-extern guint32 pduType;
-extern guint32 protocolFamily;
-extern guint32 persistentObjectPduType;
-extern guint32 entityKind;
-extern guint32 entityDomain;
-extern guint32 radioID;
-extern guint32 disRadioTransmitState;
-extern guint32 encodingScheme;
-extern guint32 tdlType;
-extern guint32 numSamples;
-extern guint32 messageType;
-extern guint32 numFixed;
-extern guint32 numVariable;
-extern guint32 numBeams;
-extern guint32 numTrackJamTargets;
-extern guint32 numShafts;
-extern guint32 numApas;
-extern guint32 numUAEmitter;
-extern guint32 numUABeams;
-extern guint32 variableDatumLength;
-extern guint32 variableRecordLength;
-extern guint32 majorModulation;
-extern guint32 systemModulation;
-extern guint32 modulationParamLength;
-extern guint32 disAntennaPattern;
-
-
-#endif /* packet-dis-fieldparsers.h */
diff --git a/epan/dissectors/packet-dis-pdus.c b/epan/dissectors/packet-dis-pdus.c
deleted file mode 100644
index 10b6d997d8..0000000000
--- a/epan/dissectors/packet-dis-pdus.c
+++ /dev/null
@@ -1,1702 +0,0 @@
-/* packet-dis-pdus.c
- * Routines and definitions for DIS PDU parsing.
- * Copyright 2005, Scientific Research Corporation
- * Initial implementation by Jeremy Ouellette <jouellet@scires.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include "packet-dis-pdus.h"
-#include "packet-dis-fields.h"
-#include "packet-dis-enums.h"
-#include "packet-link16.h"
-
-#define DIS_PDU_MAX_VARIABLE_PARAMETERS 16
-#define DIS_PDU_MAX_VARIABLE_RECORDS 16
-#define DIS_PDU_MAX_ELECTROMAGNETIC_EMISSION_SYSTEMS 16
-#define DIS_PDU_MAX_SHAFTS 16
-#define DIS_PDU_MAX_APAS 16
-#define DIS_PDU_MAX_UA_EMITTER_SYSTEMS 16
-#define DIS_PDU_MAX_UA_BEAMS 32
-
-gint ettVariableParameters[DIS_PDU_MAX_VARIABLE_PARAMETERS];
-gint ettVariableRecords[DIS_PDU_MAX_VARIABLE_RECORDS];
-
-gint ettFixedData = -1;
-gint ettVariableData = -1;
-
-/* DIS Entity Information / Interaction PDUs
- */
-DIS_ParserNode DIS_PARSER_ENTITY_STATE_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_FORCE_ID, "Force ID",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS, "Number of Articulation Parameters",0,0,0,&numVariable },
- { DIS_FIELDTYPE_ENTITY_TYPE, "Entity Type",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_TYPE, "Alternative Entity Type",0,0,0,0 },
- { DIS_FIELDTYPE_LINEAR_VELOCITY, "Entity Linear Velocity",0,0,0,0 },
- { DIS_FIELDTYPE_LOCATION_WORLD, "Entity Location",0,0,0,0 },
- { DIS_FIELDTYPE_ORIENTATION, "Entity Orientation",0,0,0,0 },
- { DIS_FIELDTYPE_APPEARANCE, "Entity Appearance",0,0,0,0 },
- { DIS_FIELDTYPE_DEAD_RECKONING_PARAMS, "Dead Reckoning Parameters",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_MARKING, "Entity Marking",0,0,0,0 },
- { DIS_FIELDTYPE_CAPABILITIES, "Capabilities",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_PARAMETERS, "Variable Parameter",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* DIS Distributed Emission Regeneration PDUs
- */
-DIS_ParserNode DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Emitting Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "State Update Indicator",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_ELECTROMAGNETIC_EMISSION_SYSTEMS, "Number of Systems (N)",0,0,0,&numVariable },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM, "Emission System",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-
-/* DIS Underwater Acoustic PDUs
- */
-DIS_ParserNode DIS_PARSER_UNDERWATER_ACOUSTIC_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Emitting Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "State Update Indicator",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Passive Parameter Index", 0,0,0,0 }, /* !! enum !! */
- { DIS_FIELDTYPE_UINT8, "Propulsion Plant Configuration",0,0,0,0 }, /* !! enum !! */
- { DIS_FIELDTYPE_NUM_OF_SHAFTS, "Number of Shafts",0,0,0,&numShafts },
- { DIS_FIELDTYPE_NUM_OF_APAS, "Number of Additional Passive Activities (APA)",0,0,0,&numApas },
- { DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEMS, "Number of UA Emitter Systems",0,0,0,&numUAEmitter },
- { DIS_FIELDTYPE_SHAFTS, "Shafts",0,0,0,0 },
- { DIS_FIELDTYPE_APA, "APAs",0,0,0,0 },
- { DIS_FIELDTYPE_UA_EMITTER_SYSTEMS, "Underwater Acoustic Emission System",0,0,0,0 },
- { DIS_FIELDTYPE_UA_BEAMS, "Beams",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-
-/* DIS Radio Communications protocol (RCP) family PDUs
- */
-DIS_ParserNode DIS_PARSER_TRANSMITTER_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_RADIO_ID, "Radio ID",0,0,0,&radioID },
- { DIS_FIELDTYPE_RADIO_ENTITY_TYPE, "Radio Entity Type",0,0,0,0 },
- { DIS_FIELDTYPE_RADIO_TRANSMIT_STATE, "Radio Transmit State",0,0,0,&disRadioTransmitState },
- { DIS_FIELDTYPE_RADIO_INPUT_SOURCE, "Radio Input Source",0,0,0,0 },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_ANTENNA_LOCATION, "Antenna Location",0,0,0,0 },
- { DIS_FIELDTYPE_REL_ANTENNA_LOCATON, "Relative Antenna Location",0,0,0,0 },
- { DIS_FIELDTYPE_ANTENNA_PATTERN_TYPE, "Antenna Pattern Type",0,0,0,&disAntennaPattern },
- { DIS_FIELDTYPE_ANTENNA_PATTERN_LENGTH, "Antenna Pattern Length",0,0,0,0 },
- { DIS_FIELDTYPE_TRANSMIT_FREQUENCY, "Transmit Frequency",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Transmit Frequency Bandwidth",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Transmit Power",0,0,0,0 },
- { DIS_FIELDTYPE_MODULATION_TYPE, "Modulation Type",0,0,0,0 },
- { DIS_FIELDTYPE_CRYPTO_SYSTEM, "Crypto System",0,0,0,0 },
- { DIS_FIELDTYPE_CRYPTO_KEY_ID, "Crypto Key ID",0,0,0,0 },
- { DIS_FIELDTYPE_MODULATION_PARAMETER_LENGTH, "Modulation Parameter Length",0,0,0,&modulationParamLength },
- { DIS_FIELDTYPE_PAD24, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_MODULATION_PARAMETERS, "Modulation Parameters",0,0,0,0 },
- /* need to finish decoding this PDU */
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_SIGNAL_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_RADIO_ID, "Radio ID",0,0,0,&radioID },
- { DIS_FIELDTYPE_ENCODING_SCHEME, "Encoding Scheme",0,0,0,&encodingScheme },
- { DIS_FIELDTYPE_TDL_TYPE, "TDL Type",0,0,0,&tdlType },
- { DIS_FIELDTYPE_SAMPLE_RATE, "Sample Rate",0,0,0,0 },
- { DIS_FIELDTYPE_DATA_LENGTH, "Data Length",0,0,0,0 },
- { DIS_FIELDTYPE_NUMBER_OF_SAMPLES, "Number of Samples",0,0,0,&numSamples },
- { DIS_FIELDTYPE_RADIO_DATA, "Radio Data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* DIS Warfare PDUs
- */
-DIS_ParserNode DIS_PARSER_FIRE_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Firing Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Target Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Munition ID",0,0,0,0 },
- { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Fire Mission Index",0,0,0,0 },
- { DIS_FIELDTYPE_LOCATION_WORLD, "Location in World Coordinates",0,0,0,0 },
- { DIS_FIELDTYPE_BURST_DESCRIPTOR, "Burst Descriptor",0,0,0,0 },
- { DIS_FIELDTYPE_LINEAR_VELOCITY, "Velocity",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Range",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DETONATION_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Firing Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Target Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Munition ID",0,0,0,0 },
- { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
- { DIS_FIELDTYPE_LINEAR_VELOCITY, "Velocity",0,0,0,0 },
- { DIS_FIELDTYPE_LOCATION_WORLD, "Location in World Coordinates",0,0,0,0 },
- { DIS_FIELDTYPE_BURST_DESCRIPTOR, "Burst Descriptor",0,0,0,0 },
- { DIS_FIELDTYPE_LOCATION_ENTITY, "Location in Entity Coordinates",0,0,0,0 },
- { DIS_FIELDTYPE_DETONATION_RESULT, "Detonation Result",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS, "Number of Articulation Parameters",0,0,0,&numVariable },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_PARAMETERS, "Variable Parameter",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* DIS Simulation Management PDUs
- */
-DIS_ParserNode DIS_PARSER_START_RESUME_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
- { DIS_FIELDTYPE_CLOCK_TIME, "Simulation Time",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_STOP_FREEZE_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
- { DIS_FIELDTYPE_REASON, "Reason",0,0,0,0 },
- { DIS_FIELDTYPE_FROZEN_BEHAVIOR, "Frozen Behavior",0,0,0,0 },
- { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_ACKNOWLEDGE_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ACKNOWLEDGE_FLAG, "Acknowledge Flag",0,0,0,0 },
- { DIS_FIELDTYPE_RESPONSE_FLAG, "Response Flag",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_ACTION_REQUEST_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_ACTION_ID, "Action ID",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_ACTION_RESPONSE_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_STATUS, "Request Status",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DATA_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_PAD32, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DATA_QUERY_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_TIME_INTERVAL, "Time interval",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Datum Ids",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Datum Ids",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUM_IDS, "Fixed datum ids",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUM_IDS, "Variable datum ids",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_COMMENT_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_SIMAN_ENTITY_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* DIS Simulation Management with Reliability PDUs
- */
-DIS_ParserNode DIS_PARSER_START_RESUME_R_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
- { DIS_FIELDTYPE_CLOCK_TIME, "Simulation Time",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_STOP_FREEZE_R_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
- { DIS_FIELDTYPE_REASON, "Reason",0,0,0,0 },
- { DIS_FIELDTYPE_FROZEN_BEHAVIOR, "Frozen Behavior",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_ACTION_REQUEST_R_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_ACTION_ID, "Action ID",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DATA_R_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DATA_QUERY_R_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_TIME_INTERVAL, "Time interval",0,0,0,0 },
- { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Datum Ids",0,0,0,&numFixed },
- { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Datum Ids",0,0,0,&numVariable },
- { DIS_FIELDTYPE_FIXED_DATUM_IDS, "Fixed datum ids",0,0,0,0 },
- { DIS_FIELDTYPE_VARIABLE_DATUM_IDS, "Variable datum ids",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_SIMAN_ENTITY_R_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* DIS Experimental V-DIS PDUs
- */
-DIS_ParserNode DIS_PARSER_APPLICATION_CONTROL_PDU[] =
-{
- { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
- { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Time Interval",0,0,0,0 },
- { DIS_FIELDTYPE_CONTROL_ID, "Control ID",0,0,0,0 },
- { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
- { DIS_FIELDTYPE_APPLICATION_TYPE, "Originating App Type",0,0,0,0 },
- { DIS_FIELDTYPE_APPLICATION_TYPE, "Receiving App Type",0,0,0,0 },
- { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Number of Parts",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Current Part",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Number of Variable Records",0,0,0,&numVariable },
- { DIS_FIELDTYPE_VARIABLE_RECORDS, "Record",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Persistent Object (PO) Family PDU parsers
- */
-DIS_ParserNode DIS_PARSER_SIMULATOR_PRESENT_PO_PDU[] =
-{
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Simulator Type",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Database Sequence Number",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Simulator Load",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Simulation Load",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Time",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Packets Sent",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Unit Database Version",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Relative Battle Scheme",0,0,0,0 },
- { DIS_FIELDTYPE_FIXED_LEN_STR, "Terrain Name",32,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Terrain Version",0,0,0,0 },
- { DIS_FIELDTYPE_FIXED_LEN_STR, "Host Name",32,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DESCRIBE_OBJECT_PO_PDU[] =
-{
- { DIS_FIELDTYPE_UINT32, "Database Sequence Number",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "Object ID",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Owner",0,0,0,0 },
- { DIS_FIELDTYPE_UINT16, "Sequence Number",0,0,0,0 },
- { DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS, "Object Class",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Missing From World State",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_OBJECTS_PRESENT_PO_PDU[] =
-{
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Owner",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Object Count",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_OBJECT_REQUEST_PO_PDU[] =
-{
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Requesting Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Object Owner",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Object Count",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_DELETE_OBJECTS_PO_PDU[] =
-{
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Requesting Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_UINT8, "Object Count",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_SET_WORLD_STATE_PO_PDU[] =
-{
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Requesting Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_FLOAT32, "Clock Rate",0,0,0,0 },
- { DIS_FIELDTYPE_UINT32, "Seconds Since 1970",0,0,0,0 },
- { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-DIS_ParserNode DIS_PARSER_NOMINATION_PO_PDU[] =
-{
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Nominated Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Nominating Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Missing Simulator",0,0,0,0 },
- { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
-};
-
-/* Initialize the parsers for each PDU type and the standard DIS header.
- */
-void initializeParsers(void)
-{
- gint *ett[DIS_PDU_MAX_VARIABLE_PARAMETERS+DIS_PDU_MAX_VARIABLE_RECORDS+2];
- int i, ett_index;
-
- initializeParser(DIS_FIELDS_PDU_HEADER);
-
- /* DIS Entity Information / Interaction PDUs */
- initializeParser(DIS_PARSER_ENTITY_STATE_PDU);
-
- /* DIS Distributed Emission Regeneration PDUs */
- initializeParser(DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU);
- initializeParser(DIS_PARSER_UNDERWATER_ACOUSTIC_PDU);
-
- /* DIS Radio Communications protocol (RCP) family PDUs */
- initializeParser(DIS_PARSER_TRANSMITTER_PDU);
- initializeParser(DIS_PARSER_SIGNAL_PDU);
-
- /* DIS Warfare PDUs */
- initializeParser(DIS_PARSER_FIRE_PDU);
- initializeParser(DIS_PARSER_DETONATION_PDU);
-
- /* DIS Simulation Management PDUs */
- initializeParser(DIS_PARSER_START_RESUME_PDU);
- initializeParser(DIS_PARSER_STOP_FREEZE_PDU);
- initializeParser(DIS_PARSER_ACKNOWLEDGE_PDU);
- initializeParser(DIS_PARSER_ACTION_REQUEST_PDU);
- initializeParser(DIS_PARSER_ACTION_RESPONSE_PDU);
- initializeParser(DIS_PARSER_DATA_PDU);
- initializeParser(DIS_PARSER_DATA_QUERY_PDU);
- initializeParser(DIS_PARSER_COMMENT_PDU);
- initializeParser(DIS_PARSER_SIMAN_ENTITY_PDU);
-
- /* DIS Simulation Management with Reliability PDUs */
- initializeParser(DIS_PARSER_START_RESUME_R_PDU);
- initializeParser(DIS_PARSER_STOP_FREEZE_R_PDU);
- initializeParser(DIS_PARSER_ACTION_REQUEST_R_PDU);
- initializeParser(DIS_PARSER_DATA_R_PDU);
- initializeParser(DIS_PARSER_DATA_QUERY_R_PDU);
- initializeParser(DIS_PARSER_SIMAN_ENTITY_R_PDU);
-
- /* DIS Experimental V-DIS PDUs */
- initializeParser(DIS_PARSER_APPLICATION_CONTROL_PDU);
-
- /* Initialize the Persistent Object PDUs */
- initializeParser(DIS_FIELDS_PERSISTENT_OBJECT_HEADER);
- initializeParser(DIS_PARSER_DESCRIBE_OBJECT_PO_PDU);
- initializeParser(DIS_PARSER_SIMULATOR_PRESENT_PO_PDU);
- initializeParser(DIS_PARSER_OBJECTS_PRESENT_PO_PDU);
- initializeParser(DIS_PARSER_OBJECT_REQUEST_PO_PDU);
- initializeParser(DIS_PARSER_DELETE_OBJECTS_PO_PDU);
- initializeParser(DIS_PARSER_SET_WORLD_STATE_PO_PDU);
- initializeParser(DIS_PARSER_NOMINATION_PO_PDU);
-
- /* Initialize the ett array */
- ett_index = 0;
- for (i=0; i<DIS_PDU_MAX_VARIABLE_PARAMETERS; i++, ett_index++)
- {
- ettVariableParameters[i] = -1;
- ett[ett_index] = &ettVariableParameters[i];
- }
- for (i=0; i<DIS_PDU_MAX_VARIABLE_RECORDS; i++, ett_index++)
- {
- ettVariableRecords[i] = -1;
- ett[ett_index] = &ettVariableRecords[i];
- }
- ett[ett_index++] = &ettFixedData;
- ett[ett_index++] = &ettVariableData;
- proto_register_subtree_array(ett, array_length(ett));
-}
-
-/* Create a specific subtree for a PDU or a composite PDU field.
- */
-DIS_ParserNode *createSubtree(DIS_ParserNode parserNodes[], gint *ettVar)
-{
- guint fieldIndex = 0;
- guint fieldCount;
- gint *ett[1];
- DIS_ParserNode *newSubtree;
-
- while (parserNodes[fieldIndex].fieldType != DIS_FIELDTYPE_END)
- {
- ++fieldIndex;
- }
-
- fieldCount = fieldIndex + 1;
-
- newSubtree = (DIS_ParserNode*)g_malloc(sizeof(DIS_ParserNode) * fieldCount);
-
- memcpy(newSubtree, parserNodes, sizeof(DIS_ParserNode) * fieldCount);
-
- initializeParser(newSubtree);
-
- *ettVar = -1;
- ett[0] = ettVar;
- proto_register_subtree_array(ett, array_length(ett));
-
- return newSubtree;
-}
-
-/* Initialize an array of parser nodes.
- */
-void initializeParser(DIS_ParserNode parserNodes[])
-{
- guint parserIndex = 0;
-
- /* Create the parser subtrees for each of the composite field types.
- */
- while (parserNodes[parserIndex].fieldType != DIS_FIELDTYPE_END)
- {
- switch (parserNodes[parserIndex].fieldType)
- {
- /* Bit fields */
- case DIS_FIELDTYPE_APPEARANCE:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_NONE,
- &parserNodes[parserIndex].ettVar);
- break;
-
- /* Composite types */
- case DIS_FIELDTYPE_MOD_PARAMS_CCTT_SINCGARS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_MOD_PARAMS_JTIDS_MIDS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS,
- &parserNodes[parserIndex].ettVar);
- break;
-
- case DIS_FIELDTYPE_BURST_DESCRIPTOR:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_BURST_DESCRIPTOR,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_CLOCK_TIME:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_CLOCK_TIME,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_ENTITY_ID:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_ENTITY_ID,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_ENTITY_TYPE:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_ENTITY_TYPE,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_RADIO_ENTITY_TYPE:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_RADIO_ENTITY_TYPE,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_EVENT_ID:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_EVENT_ID,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_ORIENTATION:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_ORIENTATION,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_SIMULATION_ADDRESS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_SIMULATION_ADDRESS,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_LINEAR_VELOCITY:
- case DIS_FIELDTYPE_LOCATION_ENTITY:
- case DIS_FIELDTYPE_REL_ANTENNA_LOCATON:
- case DIS_FIELDTYPE_VECTOR_32:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VECTOR_FLOAT_32,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_LOCATION_WORLD:
- case DIS_FIELDTYPE_ANTENNA_LOCATION:
- case DIS_FIELDTYPE_VECTOR_64:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VECTOR_FLOAT_64,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_MODULATION_TYPE:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_MODULATION_TYPE,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_EMITTER_SYSTEM:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_EMITTER_SYSTEM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_FUNDAMENTAL_PARAMETER_DATA,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_TRACK_JAM:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_TRACK_JAM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_SHAFTS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_UA_SHAFT,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_APA:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_APA,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_UA_EMITTER_SYSTEMS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_UA_EMITTER_SYSTEM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_UA_EMITTER_SYSTEM:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_UA_EMITTER_SYSTEM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_UA_BEAMS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_UA_BEAM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA,
- &parserNodes[parserIndex].ettVar);
- break;
- /* Array records */
- case DIS_FIELDTYPE_FIXED_DATUMS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_FIXED_DATUM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_VARIABLE_DATUMS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VARIABLE_DATUM,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_FIXED_DATUM_IDS:
- case DIS_FIELDTYPE_VARIABLE_DATUM_IDS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_DATUM_IDS,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_VARIABLE_PARAMETERS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VP_TYPE,
- &parserNodes[parserIndex].ettVar);
- break;
- case DIS_FIELDTYPE_VARIABLE_RECORDS:
- parserNodes[parserIndex].children = createSubtree(
- DIS_FIELDS_VR_TYPE,
- &parserNodes[parserIndex].ettVar);
- break;
- default:
- break;
- }
- ++parserIndex;
- }
-}
-
-static const int * jtids_message_header_fields[] = {
- &hf_dis_signal_link16_time_slot_type,
- &hf_dis_signal_link16_rti,
- &hf_dis_signal_link16_stn,
- NULL
-};
-
-/* Parse Link 16 Message Data record (SISO-STD-002, Tables 5.2.5 through 5.2.12)
- */
-static gint parse_Link16_Message_Data(proto_tree *tree, tvbuff_t *tvb, gint offset, packet_info *pinfo)
-{
- guint32 cache, value, i;
- Link16State state;
- tvbuff_t *newtvb;
-
- switch (messageType) {
- case DIS_MESSAGE_TYPE_JTIDS_HEADER_MESSAGES:
- proto_tree_add_bitmask_text(tree, tvb, offset, 4, "JTIDS Header", NULL, ett_dis_signal_link16_jtids_header, jtids_message_header_fields, ENC_BIG_ENDIAN, BMT_NO_APPEND);
-
- cache = tvb_get_ntohl(tvb, offset);
- value = (cache >> 4) & 0x7FFF;
- col_append_fstr(pinfo->cinfo, COL_INFO, ", STN=0%o, Link 16 Words:", value);
-
- value = (cache >> 19);
- offset += 4;
- cache = tvb_get_ntohl(tvb, offset);
- value |= (cache & 0x7) << 13;
- proto_tree_add_uint(tree, hf_dis_signal_link16_sdusn, tvb, offset - 4, 8, value);
- offset += 4;
-
- memset(&state, 0, sizeof(state));
-
- for (i = 0; i < (encodingScheme & 0x3FFF); i++) {
- gint8 *word = (gint8 *)g_malloc(10);
- if (!(i & 1)) {
- word[0] = (cache >> 16) & 0xFF;
- word[1] = (cache >> 24) & 0xFF;
- cache = tvb_get_ntohl(tvb, offset);
- offset += 4;
- word[2] = cache & 0xFF;
- word[3] = (cache >> 8) & 0xFF;
- word[4] = (cache >> 16) & 0xFF;
- word[5] = (cache >> 24) & 0xFF;
- cache = tvb_get_ntohl(tvb, offset);
- offset += 4;
- word[6] = cache & 0xFF;
- word[7] = (cache >> 8) & 0xFF;
- word[8] = (cache >> 16) & 0xFF;
- word[9] = (cache >> 24) & 0xFF;
- } else {
- cache = tvb_get_ntohl(tvb, offset);
- offset += 4;
- word[0] = cache & 0xFF;
- word[1] = (cache >> 8) & 0xFF;
- word[2] = (cache >> 16) & 0xFF;
- word[3] = (cache >> 24) & 0xFF;
- cache = tvb_get_ntohl(tvb, offset);
- offset += 4;
- word[4] = cache & 0xFF;
- word[5] = (cache >> 8) & 0xFF;
- word[6] = (cache >> 16) & 0xFF;
- word[7] = (cache >> 24) & 0xFF;
- cache = tvb_get_ntohl(tvb, offset);
- offset += 4;
- word[8] = cache & 0xFF;
- word[9] = (cache >> 8) & 0xFF;
- }
-
- newtvb = tvb_new_child_real_data(tvb, word, 10, 10);
- tvb_set_free_cb(newtvb, g_free);
- add_new_data_source(pinfo, newtvb, "Link 16 Word");
- call_dissector_with_data(find_dissector("link16"), newtvb, pinfo, tree, &state);
- }
- break;
- }
- return offset;
-}
-
-/* Parse packet data based on a specified array of DIS_ParserNodes.
- */
-gint parseFields(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNodes[], packet_info *pinfo)
-{
- guint fieldIndex = 0;
- guint fieldRepeatLen = 0;
- guint64 uintVal = 0;
- proto_item *pi = NULL;
- proto_tree *sub_tree = NULL;
- tvbuff_t *newtvb = NULL;
- gint length = 0;
- guint16 spread_spectrum = 0;
-
-
- /* Get the length while ensuring there's at least one byte for us to
- * decode (if not, throw an exception so as to prevent very long loops).
- */
- length = tvb_ensure_length_remaining(tvb, offset+1);
-
- while ((parserNodes[fieldIndex].fieldType != DIS_FIELDTYPE_END)
- && (length > 0 ) )
- {
- proto_item *newField = 0;
-
- fieldRepeatLen = (guint) ((parserNodes[fieldIndex].fieldRepeatLen > 1) ?
- parserNodes[fieldIndex].fieldRepeatLen : 1);
-
- switch(parserNodes[fieldIndex].fieldType)
- {
- /* basic numeric types */
- case DIS_FIELDTYPE_INT8:
- offset = parseField_Int(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
- case DIS_FIELDTYPE_INT16:
- offset = parseField_Int(tvb, tree, offset,
- parserNodes[fieldIndex], 2);
- break;
- case DIS_FIELDTYPE_INT32:
- offset = parseField_Int(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_INT64:
- offset = parseField_Int(tvb, tree, offset,
- parserNodes[fieldIndex], 8);
- break;
- case DIS_FIELDTYPE_UINT8:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
- case DIS_FIELDTYPE_UINT16:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 2);
- break;
- case DIS_FIELDTYPE_UINT32:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_UINT64:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 8);
- break;
- case DIS_FIELDTYPE_FLOAT32:
- offset = parseField_Float(tvb, tree, offset,
- parserNodes[fieldIndex]);
- break;
- case DIS_FIELDTYPE_FLOAT64:
- offset = parseField_Double(tvb, tree, offset,
- parserNodes[fieldIndex]);
- break;
- case DIS_FIELDTYPE_EXERCISE_ID:
- proto_tree_add_item(tree, hf_dis_exercise_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS:
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_num_art_params, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- break;
- case DIS_FIELDTYPE_PDU_LENGTH:
- proto_tree_add_item(tree, hf_dis_pdu_length, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_SITE:
- proto_tree_add_item(tree, hf_dis_entity_id_site, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_APPLICATION:
- proto_tree_add_item(tree, hf_dis_entity_id_application, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_ENTITY:
- proto_tree_add_item(tree, hf_dis_entity_id_entity, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_RADIO_ID:
- uintVal = tvb_get_ntohs(tvb, offset);
- proto_tree_add_item(tree, hf_dis_radio_id, tvb, offset, 2, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_ENCODING_SCHEME:
- uintVal = tvb_get_ntohs(tvb, offset);
- pi = proto_tree_add_item(tree, hf_dis_ens, tvb, offset, 2, ENC_BIG_ENDIAN);
- sub_tree = proto_item_add_subtree(pi, ett_dis_ens);
- proto_tree_add_item(sub_tree, hf_dis_ens_class, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(sub_tree,
- (uintVal >> 14) == DIS_ENCODING_CLASS_ENCODED_AUDIO ? hf_dis_ens_type_audio : hf_dis_ens_type,
- tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_item_set_end(pi, tvb, offset);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_TDL_TYPE:
- uintVal = tvb_get_ntohs(tvb, offset);
- proto_tree_add_item(tree, hf_dis_tdl_type, tvb, offset, 2, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_SAMPLE_RATE:
- proto_tree_add_item(tree, hf_dis_sample_rate, tvb, offset, 4, ENC_BIG_ENDIAN);
- offset += 4;
- break;
- case DIS_FIELDTYPE_DATA_LENGTH:
- proto_tree_add_item(tree, hf_dis_data_length, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_NUMBER_OF_SAMPLES:
- uintVal = tvb_get_ntohs(tvb, offset);
- proto_tree_add_item(tree, hf_dis_num_of_samples, tvb, offset, 2, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_RADIO_DATA:
- if (tdlType == DIS_TDL_TYPE_LINK16_STD) {
- pi = proto_tree_add_text(tree, tvb, offset, 16, "Link 16 Network Header");
- sub_tree = proto_item_add_subtree(pi, ett_dis_signal_link16_network_header);
- offset = parseFields(tvb, sub_tree, offset, DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER, pinfo);
- proto_item_set_end(pi, tvb, offset);
-
- pi = proto_tree_add_text(tree, tvb, offset, -1, "Link 16 Message Data: %s",
- val_to_str(messageType, DIS_PDU_Link16_MessageType_Strings, ""));
- sub_tree = proto_item_add_subtree(pi, ett_dis_signal_link16_message_data);
- offset = parse_Link16_Message_Data(sub_tree, tvb, offset, pinfo);
- proto_item_set_end(pi, tvb, offset);
- } else {
- proto_tree_add_item(tree, hf_dis_signal_data, tvb, offset, -1, ENC_NA );
- }
- /* ****ck******* need to look for padding bytes */
- break;
- case DIS_FIELDTYPE_LINK16_PTT:
- if (tvb_get_ntohl(tvb, offset) == 0xFFFFFFFF)
- proto_tree_add_text(tree, tvb, offset, 8, "%s: NO STATEMENT", parserNodes[fieldIndex].fieldLabel);
- else
- proto_tree_add_item(tree, hf_dis_signal_link16_ptt, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
- offset += 8;
- break;
- case DIS_FIELDTYPE_RADIO_CATEGORY:
- proto_tree_add_item(tree, hf_dis_radio_category, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_NOMENCLATURE_VERSION:
- proto_tree_add_item(tree, hf_dis_nomenclature_version, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_NOMENCLATURE:
- proto_tree_add_item(tree, hf_dis_nomenclature, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_RADIO_TRANSMIT_STATE:
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_radio_transmit_state, tvb, offset, 1, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 1;
- break;
- case DIS_FIELDTYPE_RADIO_INPUT_SOURCE:
- proto_tree_add_item(tree, hf_dis_radio_input_source, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_ANTENNA_PATTERN_TYPE:
- uintVal = tvb_get_ntohs(tvb, offset);
- proto_tree_add_item(tree, hf_dis_antenna_pattern_type, tvb, offset, 2, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_ANTENNA_PATTERN_LENGTH:
- proto_tree_add_item(tree, hf_dis_antenna_pattern_length, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_TRANSMIT_FREQUENCY:
- proto_tree_add_item(tree, hf_dis_transmit_frequency, tvb, offset, 8, ENC_BIG_ENDIAN);
- offset += 8;
- break;
- case DIS_FIELDTYPE_SPREAD_SPECTRUM:
- spread_spectrum = tvb_get_ntohs(tvb, offset);
- proto_tree_add_boolean(tree, hf_dis_spread_spectrum_usage, tvb, offset, 2, spread_spectrum);
- proto_tree_add_boolean(tree, hf_dis_frequency_hopping, tvb, offset, 2, spread_spectrum);
- proto_tree_add_boolean(tree, hf_dis_pseudo_noise_modulation, tvb, offset, 2, spread_spectrum);
- proto_tree_add_boolean(tree, hf_dis_time_hopping, tvb, offset, 2, spread_spectrum);
- offset += 2;
- break;
- case DIS_FIELDTYPE_MODULATION_MAJOR:
- uintVal = tvb_get_ntohs(tvb, offset);
- proto_tree_add_item(tree, hf_dis_modulation_major, tvb, offset, 2, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_MODULATION_SYSTEM:
- uintVal = tvb_get_ntohs(tvb, offset);
- proto_tree_add_item(tree, hf_dis_modulation_system, tvb, offset, 2, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 2;
- break;
- case DIS_FIELDTYPE_CRYPTO_SYSTEM:
- proto_tree_add_item(tree, hf_dis_crypto_system, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_CRYPTO_KEY_ID:
- pi = proto_tree_add_item(tree, hf_dis_crypto_key, tvb, offset, 2, ENC_BIG_ENDIAN);
- sub_tree = proto_item_add_subtree(pi, ett_dis_crypto_key);
- proto_tree_add_item(sub_tree, hf_dis_encryption_mode, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(sub_tree, hf_dis_key_identifier, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_item_set_end(pi, tvb, offset);
- offset += 2;
- break;
- case DIS_FIELDTYPE_MODULATION_PARAMETER_LENGTH:
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_modulation_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- offset += 1;
- break;
- case DIS_FIELDTYPE_FH_NETWORK_ID:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_net_id, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_FH_SET_ID:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_set_id, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_LO_SET_ID:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_lo_set_id, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_FH_MSG_START:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_msg_start, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_RESERVED:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_FH_SYNC_TIME_OFFSET:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_sync_time_offset, tvb, offset, 4, ENC_BIG_ENDIAN);
- offset += 4;
- break;
- case DIS_FIELDTYPE_FH_SECURITY_KEY:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_security_key, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_FH_CLEAR_CHANNEL:
- proto_tree_add_item(tree, hf_dis_mod_param_fh_clear_channel, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_TS_ALLOCATION_MODE:
- proto_tree_add_item(tree, hf_dis_mod_param_ts_allocation_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_TRANSMITTER_PRIMARY_MODE:
- proto_tree_add_item(tree, hf_dis_mod_param_transmitter_prim_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_TRANSMITTER_SECONDARY_MODE:
- proto_tree_add_item(tree, hf_dis_mod_param_transmitter_second_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_JTIDS_SYNC_STATE:
- proto_tree_add_item(tree, hf_dis_mod_param_sync_state, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case DIS_FIELDTYPE_NETWORK_SYNC_ID:
- proto_tree_add_item(tree, hf_dis_mod_param_network_sync_id, tvb, offset, 4, ENC_BIG_ENDIAN);
- offset += 4;
- break;
- case DIS_FIELDTYPE_MODULATION_PARAMETERS:
- /* need to check to see if mod parms length > 0 */
- /* could get here when there are antenna pattern parameter but no mod params */
- if (modulationParamLength > 0 ) { /* we do have a mod param */
- if (systemModulation == DIS_SYSTEM_MOD_CCTT_SINCGARS)
- {
- pi = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- sub_tree = proto_item_add_subtree(pi, parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, sub_tree, offset, DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS, pinfo);
- proto_item_set_end(pi, tvb, offset);
- break;
- }
- else if (systemModulation == DIS_SYSTEM_MOD_JTIDS_MIDS) {
- pi = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- sub_tree = proto_item_add_subtree(pi, parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, sub_tree, offset, DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS, pinfo);
- proto_item_set_end(pi, tvb, offset);
- break;
- }
- else { /* just dump what is available */
- newtvb = tvb_new_subset(tvb, offset,modulationParamLength, modulationParamLength);
- proto_tree_add_item(tree, hf_dis_mod_param_dump, newtvb, 0, -1, ENC_NA );
- offset += modulationParamLength;
- break;
- }
- } /* else, leave offset alone, and then check antenna pattern param field */
- break;
- case DIS_FIELDTYPE_ANTENNA_PATTERN_PARAMETERS:
- /* just dump the bytes for now. Need to do finish */
- newtvb = tvb_new_subset_remaining(tvb, offset);
- proto_tree_add_item(tree, hf_dis_antenna_pattern_parameter_dump, newtvb, 0, -1, ENC_NA );
- break;
- case DIS_FIELDTYPE_LINK16_NPG:
- proto_tree_add_item(tree, hf_dis_signal_link16_npg, tvb, offset, 2, ENC_BIG_ENDIAN);
- offset += 2;
- break;
- case DIS_FIELDTYPE_LINK16_TSEC_CVLL:
- proto_tree_add_item(tree, hf_dis_signal_link16_tsec_cvll, tvb, offset, 1, ENC_NA);
- offset++;
- break;
- case DIS_FIELDTYPE_LINK16_MSEC_CVLL:
- proto_tree_add_item(tree, hf_dis_signal_link16_msec_cvll, tvb, offset, 1, ENC_NA);
- offset++;
- break;
-
- /* padding */
- case DIS_FIELDTYPE_PAD8:
- offset = parseField_Pad(tvb, tree, offset,
- parserNodes[fieldIndex], 1 * fieldRepeatLen);
- break;
- case DIS_FIELDTYPE_PAD16:
- offset = parseField_Pad(tvb, tree, offset,
- parserNodes[fieldIndex], 2 * fieldRepeatLen);
- break;
- case DIS_FIELDTYPE_PAD24:
- offset = parseField_Pad(tvb, tree, offset,
- parserNodes[fieldIndex], 3 * fieldRepeatLen);
- break;
- case DIS_FIELDTYPE_PAD32:
- offset = parseField_Pad(tvb, tree, offset,
- parserNodes[fieldIndex], 4 * fieldRepeatLen);
- break;
-
- /* enumerations (1-byte) */
- case DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS:
- case DIS_FIELDTYPE_CATEGORY:
- case DIS_FIELDTYPE_CONTROL_ID:
- case DIS_FIELDTYPE_DETONATION_RESULT:
- case DIS_FIELDTYPE_DOMAIN:
- case DIS_FIELDTYPE_ENTITY_KIND:
- case DIS_FIELDTYPE_FROZEN_BEHAVIOR:
- case DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR:
- case DIS_FIELDTYPE_PDU_TYPE:
- case DIS_FIELDTYPE_PROTOCOL_FAMILY:
- case DIS_FIELDTYPE_PROTOCOL_VERSION:
- case DIS_FIELDTYPE_REASON:
- case DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE:
- case DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS:
- case DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE:
- case DIS_FIELDTYPE_EMISSION_FUNCTION:
- case DIS_FIELDTYPE_BEAM_FUNCTION:
- case DIS_FIELDTYPE_LINK16_MESSAGE_TYPE:
- offset = parseField_Enum(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
-
- /* enumerations (2-bytes) */
- case DIS_FIELDTYPE_ACKNOWLEDGE_FLAG:
- case DIS_FIELDTYPE_APPLICATION_STATUS_TYPE:
- case DIS_FIELDTYPE_APPLICATION_TYPE:
- case DIS_FIELDTYPE_RESPONSE_FLAG:
- case DIS_FIELDTYPE_MODULATION_DETAIL:
- case DIS_FIELDTYPE_EMITTER_NAME:
- offset = parseField_Enum(tvb, tree, offset,
- parserNodes[fieldIndex], 2);
- break;
-
- /* enumerations (4-bytes) */
- case DIS_FIELDTYPE_ACTION_ID:
- case DIS_FIELDTYPE_REQUEST_STATUS:
- offset = parseField_Enum(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
-
- /* other atomic types */
- case DIS_FIELDTYPE_APPEARANCE:
- {
- proto_item *newSubtree;
- newField = proto_tree_add_text(tree, tvb, offset, 4, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseField_Bitmask(tvb, newSubtree, offset,
- parserNodes[fieldIndex], 4);
- }
- break;
- case DIS_FIELDTYPE_ARTIC_PARAM_TYPE:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_CAPABILITIES:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_COUNTRY:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 2);
- break;
- case DIS_FIELDTYPE_DATUM_ID:
- case DIS_FIELDTYPE_DATUM_LENGTH:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_DEAD_RECKONING_PARAMS:
- /* This is really a struct... needs a field parser.
- * For now, just skip the 12 bytes.
- */
- offset = parseField_Bytes(tvb, tree, offset,
- parserNodes[fieldIndex], 40);
- break;
- case DIS_FIELDTYPE_ENTITY_MARKING:
- /* This is really a struct... needs a field parser.
- * For now, just skip the 12 bytes.
- */
- offset = parseField_Bytes(tvb, tree, offset,
- parserNodes[fieldIndex], 12);
- break;
- case DIS_FIELDTYPE_EXTRA:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
- case DIS_FIELDTYPE_FIXED_DATUM_VALUE:
- offset = parseField_Bytes(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_FIXED_LEN_STR:
- offset = parseField_Bytes(tvb, tree, offset,
- parserNodes[fieldIndex],
- parserNodes[fieldIndex].fieldRepeatLen);
- break;
- case DIS_FIELDTYPE_FORCE_ID:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
- case DIS_FIELDTYPE_FUSE:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 2);
- break;
- case DIS_FIELDTYPE_NUM_FIXED_DATA:
- case DIS_FIELDTYPE_NUM_VARIABLE_DATA:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_REQUEST_ID:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_SPECIFIC:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
- case DIS_FIELDTYPE_SUBCATEGORY:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 1);
- break;
- case DIS_FIELDTYPE_TIME_INTERVAL:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 4);
- break;
- case DIS_FIELDTYPE_TIMESTAMP:
- offset = parseField_Timestamp(tvb, tree, offset,
- parserNodes[fieldIndex]);
- break;
- case DIS_FIELDTYPE_WARHEAD:
- offset = parseField_UInt(tvb, tree, offset,
- parserNodes[fieldIndex], 2);
- break;
-
- /* composite types */
- case DIS_FIELDTYPE_BURST_DESCRIPTOR:
- case DIS_FIELDTYPE_CLOCK_TIME:
- case DIS_FIELDTYPE_ENTITY_ID:
- case DIS_FIELDTYPE_ENTITY_TYPE:
- case DIS_FIELDTYPE_RADIO_ENTITY_TYPE:
- case DIS_FIELDTYPE_ANTENNA_LOCATION:
- case DIS_FIELDTYPE_REL_ANTENNA_LOCATON:
- case DIS_FIELDTYPE_EVENT_ID:
- case DIS_FIELDTYPE_LINEAR_VELOCITY:
- case DIS_FIELDTYPE_LOCATION_ENTITY:
- case DIS_FIELDTYPE_LOCATION_WORLD:
- case DIS_FIELDTYPE_ORIENTATION:
- case DIS_FIELDTYPE_SIMULATION_ADDRESS:
- case DIS_FIELDTYPE_VECTOR_32:
- case DIS_FIELDTYPE_VECTOR_64:
- case DIS_FIELDTYPE_MODULATION_TYPE:
- case DIS_FIELDTYPE_EMITTER_SYSTEM:
- case DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA:
- case DIS_FIELDTYPE_UA_EMITTER_SYSTEM:
- case DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA:
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree = proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- break;
- case DIS_FIELDTYPE_VARIABLE_DATUM_VALUE:
- {
- guint lengthInBytes;
- lengthInBytes = variableDatumLength / 8;
- if (variableDatumLength % 8 > 0)
- {
- lengthInBytes += (8 - (variableDatumLength % 8));
- }
- offset = parseField_Bytes(tvb, tree, offset,
- parserNodes[fieldIndex], lengthInBytes);
- }
- break;
-
- /* arrays */
- case DIS_FIELDTYPE_FIXED_DATUMS:
- {
- guint i;
- if (numFixed > INT32_MAX)
- {
- numFixed = INT32_MAX;
- }
-
- for (i = 0; i < numFixed; ++i)
- {
- proto_item *newSubtree;
-
- /* is remaining length large enough for another fixed datum (ID & value) */
- /* XXX is this really necessary? */
- tvb_ensure_length_remaining(tvb, offset+8);
-
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree(newField, ettFixedData);
- offset = parseFields (tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_FIXED_DATUM_IDS:
- if (numFixed > 0)
- {
- guint i;
- proto_item *newSubtree;
-
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree(newField, ettFixedData);
-
- if (numFixed > INT32_MAX)
- {
- numFixed = INT32_MAX;
- }
-
- for (i = 0; i < numFixed; ++i)
- {
- /* is remaining length large enough for another fixed datum ID (32 bit int) */
- /* XXX is this really necessary? */
- tvb_ensure_length_remaining(tvb, offset+4);
- offset = parseFields (tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- break;
- case DIS_FIELDTYPE_VARIABLE_DATUMS:
- {
- guint i;
- if (numVariable > INT32_MAX)
- {
- numVariable = INT32_MAX;
- }
-
- for (i = 0; i < numVariable; ++i)
- {
- proto_item *newSubtree;
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree
- (newField, ettVariableData);
- offset = parseFields
- (tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- proto_item_set_end(newField, tvb, offset);
- }
-
- }
- break;
- case DIS_FIELDTYPE_VARIABLE_DATUM_IDS:
- if (numVariable > 0)
- {
- guint i;
- proto_item *newSubtree;
-
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree(newField, ettVariableData);
-
- if (numVariable > INT32_MAX)
- {
- numVariable = INT32_MAX;
- }
-
- for (i = 0; i < numVariable; ++i)
- {
- offset = parseFields
- (tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- break;
- case DIS_FIELDTYPE_VARIABLE_PARAMETERS:
- {
- guint i;
-
- if (numVariable > DIS_PDU_MAX_VARIABLE_PARAMETERS)
- {
- numVariable = DIS_PDU_MAX_VARIABLE_PARAMETERS;
- }
-
- for (i = 0; i < numVariable; ++i)
- {
- proto_item *newSubtree;
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree(newField,
- ettVariableParameters[i]);
- offset = parseFields
- (tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- offset = parseField_VariableParameter
- (tvb, newSubtree, offset, pinfo);
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_VARIABLE_RECORDS:
- {
- guint i;
-
- if (numVariable > DIS_PDU_MAX_VARIABLE_RECORDS)
- {
- numVariable = DIS_PDU_MAX_VARIABLE_RECORDS;
- }
-
- for (i = 0; i < numVariable; ++i)
- {
- proto_item *newSubtree;
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- newSubtree = proto_item_add_subtree(newField,
- ettVariableRecords[i]);
- offset = parseFields
- (tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- offset = parseField_VariableRecord
- (tvb, newSubtree, offset, pinfo);
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM:
- {
- guint i;
-
- for (i = 0; i < numBeams; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_TRACK_JAM:
- {
- guint i;
-
- for (i = 0; i < numTrackJamTargets; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_NUM_ELECTROMAGNETIC_EMISSION_SYSTEMS:
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_num_electromagnetic_emission_systems, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- break;
- case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM:
- {
- guint i;
-
- if (numVariable > DIS_PDU_MAX_ELECTROMAGNETIC_EMISSION_SYSTEMS)
- {
- numVariable = DIS_PDU_MAX_ELECTROMAGNETIC_EMISSION_SYSTEMS;
- }
-
- for (i = 0; i < numVariable; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- parserNodes[fieldIndex].fieldLabel);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_NUM_OF_SHAFTS:
- {
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_num_shafts, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- }
- break;
- case DIS_FIELDTYPE_SHAFTS:
- {
- guint i;
-
- if (numShafts > DIS_PDU_MAX_SHAFTS)
- {
- numShafts = DIS_PDU_MAX_SHAFTS;
- }
-
- for (i = 0; i < numShafts; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
- parserNodes[fieldIndex].fieldLabel, i+1, numShafts);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_NUM_OF_APAS:
- {
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_num_apas, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- }
- break;
- case DIS_FIELDTYPE_APA:
- {
- guint i;
-
- if (numApas > DIS_PDU_MAX_APAS)
- {
- numApas = DIS_PDU_MAX_APAS;
- }
-
- for (i = 0; i < numApas; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
- parserNodes[fieldIndex].fieldLabel, i+1, numApas);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEMS:
- {
- uintVal = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_dis_num_ua_emitter_systems, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
- *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
- }
- break;
- case DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEM_BEAMS:
- {
- uintVal = tvb_get_guint8(tvb, offset);
- offset = parseField_UInt(tvb, tree, offset, parserNodes[fieldIndex], 1);
- numUABeams += (guint32)uintVal;
- }
- break;
- case DIS_FIELDTYPE_UA_EMITTER_SYSTEMS:
- {
- guint i;
-
- if (numUAEmitter > DIS_PDU_MAX_UA_EMITTER_SYSTEMS)
- {
- numUAEmitter = DIS_PDU_MAX_UA_EMITTER_SYSTEMS;
- }
-
- for (i = 0; i < numUAEmitter; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
- parserNodes[fieldIndex].fieldLabel, i+1, numUAEmitter);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- }
- break;
- case DIS_FIELDTYPE_UA_BEAMS:
- {
- guint i;
-
- if (numUABeams > DIS_PDU_MAX_UA_BEAMS)
- {
- numUABeams = DIS_PDU_MAX_UA_BEAMS;
- }
-
- for (i = 0; i < numUABeams; ++i)
- {
- newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
- parserNodes[fieldIndex].fieldLabel, i+1, numUABeams);
- if (parserNodes[fieldIndex].children != 0)
- {
- proto_item *newSubtree =
- proto_item_add_subtree(newField,
- parserNodes[fieldIndex].ettVar);
- offset = parseFields(tvb, newSubtree, offset,
- parserNodes[fieldIndex].children, pinfo);
- }
- proto_item_set_end(newField, tvb, offset);
- }
- numUABeams = 0; /* reset beam count for this pdu */
- }
- break;
- default:
- break;
- }
-
- ++fieldIndex;
- length = tvb_length_remaining(tvb, offset);
- }
-
- return offset;
-}
diff --git a/epan/dissectors/packet-dis-pdus.h b/epan/dissectors/packet-dis-pdus.h
deleted file mode 100644
index cc861df1ea..0000000000
--- a/epan/dissectors/packet-dis-pdus.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* packet-dis-pdus.h
- * Declarations for DIS PDU parsing.
- * Copyright 2005, Scientific Research Corporation
- * Initial implementation by Jeremy Ouellette <jouellet@scires.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __PACKET_DIS_PDUPARSERS_H__
-#define __PACKET_DIS_PDUPARSERS_H__
-
-#include "packet-dis-fields.h"
-
-/* DIS Entity Information / Interaction PDUs */
-extern DIS_ParserNode DIS_PARSER_ENTITY_STATE_PDU[];
-/* extern DIS_ParserNode DIS_PARSER_COLLISION_PDU[]; */
-
-/* DIS Warfare PDUs */
-extern DIS_ParserNode DIS_PARSER_FIRE_PDU[];
-extern DIS_ParserNode DIS_PARSER_DETONATION_PDU[];
-
-/* DIS Distributed Emission Regeneration PDUs */
-extern DIS_ParserNode DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU[];
-extern DIS_ParserNode DIS_PARSER_UNDERWATER_ACOUSTIC_PDU[];
-
-/* DIS Radio Communications protocol (RCP) family PDUs */
-extern DIS_ParserNode DIS_PARSER_TRANSMITTER_PDU[];
-extern DIS_ParserNode DIS_PARSER_SIGNAL_PDU[];
-
-/* DIS Simulation Management PDUs */
-extern DIS_ParserNode DIS_PARSER_START_RESUME_PDU[];
-extern DIS_ParserNode DIS_PARSER_STOP_FREEZE_PDU[];
-extern DIS_ParserNode DIS_PARSER_ACKNOWLEDGE_PDU[];
-extern DIS_ParserNode DIS_PARSER_ACTION_REQUEST_PDU[];
-extern DIS_ParserNode DIS_PARSER_ACTION_RESPONSE_PDU[];
-extern DIS_ParserNode DIS_PARSER_DATA_PDU[];
-extern DIS_ParserNode DIS_PARSER_DATA_QUERY_PDU[];
-extern DIS_ParserNode DIS_PARSER_COMMENT_PDU[];
-extern DIS_ParserNode DIS_PARSER_SIMAN_ENTITY_PDU[];
-
-/* DIS Simulation Management with Reliability PDUs */
-extern DIS_ParserNode DIS_PARSER_START_RESUME_R_PDU[];
-extern DIS_ParserNode DIS_PARSER_STOP_FREEZE_R_PDU[];
-extern DIS_ParserNode DIS_PARSER_ACTION_REQUEST_R_PDU[];
-extern DIS_ParserNode DIS_PARSER_DATA_R_PDU[];
-extern DIS_ParserNode DIS_PARSER_DATA_QUERY_R_PDU[];
-extern DIS_ParserNode DIS_PARSER_SIMAN_ENTITY_R_PDU[];
-
-/* DIS Experimental V-DIS PDUs */
-extern DIS_ParserNode DIS_PARSER_APPLICATION_CONTROL_PDU[];
-
-/* Persistent Object (PO) Family PDUs */
-extern DIS_ParserNode DIS_PARSER_SIMULATOR_PRESENT_PO_PDU[];
-extern DIS_ParserNode DIS_PARSER_DESCRIBE_OBJECT_PO_PDU[];
-extern DIS_ParserNode DIS_PARSER_OBJECTS_PRESENT_PO_PDU[];
-extern DIS_ParserNode DIS_PARSER_OBJECT_REQUEST_PO_PDU[];
-extern DIS_ParserNode DIS_PARSER_DELETE_OBJECTS_PO_PDU[];
-extern DIS_ParserNode DIS_PARSER_SET_WORLD_STATE_PO_PDU[];
-extern DIS_ParserNode DIS_PARSER_NOMINATION_PO_PDU[];
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX (4294967295U)
-#endif
-
-DIS_ParserNode *createSubtree(DIS_ParserNode parserNodes[], gint *ettVar);
-
-void initializeParser(DIS_ParserNode parserNodes[]);
-
-void initializeParsers(void);
-
-gint parseFields(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNodes[], packet_info *pinfo);
-
-#endif /* packet-dis-pduparsers.h */
diff --git a/epan/dissectors/packet-dis.c b/epan/dissectors/packet-dis.c
index 6a47a6a116..017b8714f4 100644
--- a/epan/dissectors/packet-dis.c
+++ b/epan/dissectors/packet-dis.c
@@ -41,9 +41,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#include "packet-dis-enums.h"
-#include "packet-dis-pdus.h"
-#include "packet-dis-fields.h"
#include "packet-link16.h"
#define DEFAULT_DIS_UDP_PORT 3000
@@ -51,97 +48,6004 @@
/* Encoding type the last 14 bits */
#define DIS_ENCODING_TYPE(word) ((word) & 0x3FFF)
-void proto_register_dis(void);
+#define DIS_PDU_MAX_VARIABLE_PARAMETERS 16
+#define DIS_PDU_MAX_VARIABLE_RECORDS 16
+#define DIS_PDU_MAX_ELECTROMAGNETIC_EMISSION_SYSTEMS 16
+#define DIS_PDU_MAX_SHAFTS 16
+#define DIS_PDU_MAX_APAS 16
+#define DIS_PDU_MAX_UA_EMITTER_SYSTEMS 16
+#define DIS_PDU_MAX_UA_BEAMS 32
+
+typedef enum
+{
+ DIS_VERSION_OTHER = 0,
+ DIS_VERSION_1_0 = 1,
+ DIS_VERSION_IEEE_1278_1993 = 2,
+ DIS_VERSION_2_0_3RD_DRAFT = 3,
+ DIS_VERSION_2_0_4TH_DRAFT = 4,
+ DIS_VERSION_IEEE_1278_1_1995 = 5,
+ DIS_VERSION_IEEE_1278_1A_1998 = 6,
+ DIS_VERSION_IEEE_1278_1_200X = 7
+} DIS_PDU_ProtocolVersion;
+
+static const value_string DIS_PDU_ProtocolVersion_Strings[] =
+{
+ { DIS_VERSION_OTHER, "Other" },
+ { DIS_VERSION_1_0, "DIS PDU version 1.0 (May 92)" },
+ { DIS_VERSION_IEEE_1278_1993, "IEEE 1278-1993" },
+ { DIS_VERSION_2_0_3RD_DRAFT, "DIS PDU version 2.0 - third draft (May 93)" },
+ { DIS_VERSION_2_0_4TH_DRAFT, "DIS PDU version 2.0 - fourth draft (revised) March 16, 1994" },
+ { DIS_VERSION_IEEE_1278_1_1995, "IEEE 1278.1-1995" },
+ { DIS_VERSION_IEEE_1278_1A_1998, "IEEE 1278.1A-1998" },
+ { DIS_VERSION_IEEE_1278_1_200X, "IEEE 1278.1-200X" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_PROTOCOLFAMILY_OTHER = 0,
+ DIS_PROTOCOLFAMILY_ENTITY_INFORMATION_INTERACTION = 1,
+ DIS_PROTOCOLFAMILY_WARFARE = 2,
+ DIS_PROTOCOLFAMILY_LOGISTICS = 3,
+ DIS_PROTOCOLFAMILY_RADIO_COMMUNICATIONS = 4,
+ DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT = 5,
+ DIS_PROTOCOLFAMILY_DISTRIBUTED_EMISSION_REGENERATION = 6,
+ DIS_PROTOCOLFAMILY_ENTITY_MANAGEMENT = 7,
+ DIS_PROTOCOLFAMILY_MINEFIELD = 8,
+ DIS_PROTOCOLFAMILY_SYNTHETIC_ENVIRONMENT = 9,
+ DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT_WITH_RELIABILITY = 10,
+ DIS_PROTOCOLFAMILY_LIVE_ENTITY = 11,
+ DIS_PROTOCOLFAMILY_NON_REAL_TIME = 12,
+ DIS_PROTOCOLFAMILY_INFORMATION_OPERATIONS = 13,
+ DIS_PROTOCOLFAMILY_EXPERIMENTAL_COMPUTER_GENERATED_FORCES = 129,
+ DIS_PROTOCOLFAMILY_EXPERIMENTAL_VDIS = 130,
+ DIS_PROTOCOLFAMILY_PERSISTENT_OBJECT = 140,
+ DIS_PROTOCOLFAMILY_EXPERIMENTAL = 150
+} DIS_PDU_ProtocolFamily;
+
+static const value_string DIS_PDU_ProtocolFamily_Strings[] =
+{
+ { DIS_PROTOCOLFAMILY_OTHER, "Other" },
+ { DIS_PROTOCOLFAMILY_ENTITY_INFORMATION_INTERACTION, "Entity information / interaction" },
+ { DIS_PROTOCOLFAMILY_WARFARE, "Warfare" },
+ { DIS_PROTOCOLFAMILY_LOGISTICS, "Logistics" },
+ { DIS_PROTOCOLFAMILY_RADIO_COMMUNICATIONS, "Radio communications" },
+ { DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT, "Simulation management" },
+ { DIS_PROTOCOLFAMILY_DISTRIBUTED_EMISSION_REGENERATION, "Distributed emission regeneration" },
+ { DIS_PROTOCOLFAMILY_ENTITY_MANAGEMENT, "Entity management" },
+ { DIS_PROTOCOLFAMILY_MINEFIELD, "Minefield" },
+ { DIS_PROTOCOLFAMILY_SYNTHETIC_ENVIRONMENT, "Synthetic environment" },
+ { DIS_PROTOCOLFAMILY_SIMULATION_MANAGEMENT_WITH_RELIABILITY, "Simulation management with reliability" },
+ { DIS_PROTOCOLFAMILY_LIVE_ENTITY, "Live entity" },
+ { DIS_PROTOCOLFAMILY_NON_REAL_TIME, "Non-real time" },
+ { DIS_PROTOCOLFAMILY_INFORMATION_OPERATIONS, "Information Operations" },
+ { DIS_PROTOCOLFAMILY_EXPERIMENTAL_COMPUTER_GENERATED_FORCES, "Experimental - Computer Generated Forces" },
+ { DIS_PROTOCOLFAMILY_EXPERIMENTAL_VDIS, "Experimental - V-DIS" },
+ { DIS_PROTOCOLFAMILY_PERSISTENT_OBJECT, "Persistent object" },
+ { DIS_PROTOCOLFAMILY_EXPERIMENTAL, "Experimental" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_PDUTYPE_OTHER = 0,
+ DIS_PDUTYPE_ENTITY_STATE = 1,
+ DIS_PDUTYPE_FIRE = 2,
+ DIS_PDUTYPE_DETONATION = 3,
+ DIS_PDUTYPE_COLLISION = 4,
+ DIS_PDUTYPE_SERVICE_REQUEST = 5,
+ DIS_PDUTYPE_RESUPPLY_OFFER = 6,
+ DIS_PDUTYPE_RESUPPLY_RECEIVED = 7,
+ DIS_PDUTYPE_RESUPPLY_CANCEL = 8,
+ DIS_PDUTYPE_REPAIR_COMPLETE = 9,
+ DIS_PDUTYPE_REPAIR_RESPONSE = 10,
+ DIS_PDUTYPE_CREATE_ENTITY = 11,
+ DIS_PDUTYPE_REMOVE_ENTITY = 12,
+ DIS_PDUTYPE_START_RESUME = 13,
+ DIS_PDUTYPE_STOP_FREEZE = 14,
+ DIS_PDUTYPE_ACKNOWLEDGE = 15,
+ DIS_PDUTYPE_ACTION_REQUEST = 16,
+ DIS_PDUTYPE_ACTION_RESPONSE = 17,
+ DIS_PDUTYPE_DATA_QUERY = 18,
+ DIS_PDUTYPE_SET_DATA = 19,
+ DIS_PDUTYPE_DATA = 20,
+ DIS_PDUTYPE_EVENT_REPORT = 21,
+ DIS_PDUTYPE_COMMENT = 22,
+ DIS_PDUTYPE_ELECTROMAGNETIC_EMISSION = 23,
+ DIS_PDUTYPE_DESIGNATOR = 24,
+ DIS_PDUTYPE_TRANSMITTER = 25,
+ DIS_PDUTYPE_SIGNAL = 26,
+ DIS_PDUTYPE_RECEIVER = 27,
+ DIS_PDUTYPE_IFF_ATC_NAVAIDS = 28,
+ DIS_PDUTYPE_UNDERWATER_ACOUSTIC = 29,
+ DIS_PDUTYPE_SUPPLEMENTAL_EMISSION_ENTITY_STATE = 30,
+ DIS_PDUTYPE_INTERCOM_SIGNAL = 31,
+ DIS_PDUTYPE_INTERCOM_CONTROL = 32,
+ DIS_PDUTYPE_AGGREGATE_STATE = 33,
+ DIS_PDUTYPE_IS_GROUP_OF = 34,
+ DIS_PDUTYPE_TRANSFER_CONTROL = 35,
+ DIS_PDUTYPE_IS_PART_OF = 36,
+ DIS_PDUTYPE_MINEFIELD_STATE = 37,
+ DIS_PDUTYPE_MINEFIELD_QUERY = 38,
+ DIS_PDUTYPE_MINEFIELD_DATA = 39,
+ DIS_PDUTYPE_MINEFIELD_RESPONSE_NAK = 40,
+ DIS_PDUTYPE_ENVIRONMENTAL_PROCESS = 41,
+ DIS_PDUTYPE_GRIDDED_DATA = 42,
+ DIS_PDUTYPE_POINT_OBJECT_STATE = 43,
+ DIS_PDUTYPE_LINEAR_OBJECT_STATE = 44,
+ DIS_PDUTYPE_AREAL_OBJECT_STATE = 45,
+ DIS_PDUTYPE_TSPI = 46,
+ DIS_PDUTYPE_APPEARANCE = 47,
+ DIS_PDUTYPE_ARTICULATED_PARTS = 48,
+ DIS_PDUTYPE_LE_FIRE = 49,
+ DIS_PDUTYPE_LE_DETONATION = 50,
+ DIS_PDUTYPE_CREATE_ENTITY_R = 51,
+ DIS_PDUTYPE_REMOVE_ENTITY_R = 52,
+ DIS_PDUTYPE_START_RESUME_R = 53,
+ DIS_PDUTYPE_STOP_FREEZE_R = 54,
+ DIS_PDUTYPE_ACKNOWLEDGE_R = 55,
+ DIS_PDUTYPE_ACTION_REQUEST_R = 56,
+ DIS_PDUTYPE_ACTION_RESPONSE_R = 57,
+ DIS_PDUTYPE_DATA_QUERY_R = 58,
+ DIS_PDUTYPE_SET_DATA_R = 59,
+ DIS_PDUTYPE_DATA_R = 60,
+ DIS_PDUTYPE_EVENT_REPORT_R = 61,
+ DIS_PDUTYPE_COMMENT_R = 62,
+ DIS_PDUTYPE_RECORD_R = 63,
+ DIS_PDUTYPE_SET_RECORD_R = 64,
+ DIS_PDUTYPE_RECORD_QUERY_R = 65,
+ DIS_PDUTYPE_COLLISION_ELASTIC = 66,
+ DIS_PDUTYPE_ENTITY_STATE_UPDATE = 67,
+ DIS_PDUTYPE_DIRECTED_ENERGY_FIRE = 68,
+ DIS_PDUTYPE_ENTITY_DAMAGE_STATUS = 69,
+ DIS_PDUTYPE_INFORMATION_OPERATIONS_ACTION = 70,
+ DIS_PDUTYPE_INFORMATION_OPERATIONS_REPORT = 71,
+ DIS_PDUTYPE_ATTRIBUTE = 71,
+ DIS_PDUTYPE_ANNOUNCE_OBJECT = 129,
+ DIS_PDUTYPE_DELETE_OBJECT = 130,
+ DIS_PDUTYPE_DESCRIBE_APPLICATION = 131,
+ DIS_PDUTYPE_DESCRIBE_EVENT = 132,
+ DIS_PDUTYPE_DESCRIBE_OBJECT = 133,
+ DIS_PDUTYPE_REQUEST_EVENT = 134,
+ DIS_PDUTYPE_REQUEST_OBJECT = 135,
+ DIS_PDUTYPE_APPLICATION_CONTROL = 200,
+ DIS_PDUTYPE_STEALTH_STATE = 201
+} DIS_PDU_Type;
+
+static const value_string DIS_PDU_Type_Strings[] =
+{
+ { DIS_PDUTYPE_OTHER, "Other" },
+ { DIS_PDUTYPE_ENTITY_STATE, "Entity State" },
+ { DIS_PDUTYPE_FIRE, "Fire" },
+ { DIS_PDUTYPE_DETONATION, "Detonation" },
+ { DIS_PDUTYPE_COLLISION, "Collision" },
+ { DIS_PDUTYPE_SERVICE_REQUEST, "Service Request" },
+ { DIS_PDUTYPE_RESUPPLY_OFFER, "Resupply Offer" },
+ { DIS_PDUTYPE_RESUPPLY_RECEIVED, "Resupply Received" },
+ { DIS_PDUTYPE_RESUPPLY_CANCEL, "Resupply Cancel" },
+ { DIS_PDUTYPE_REPAIR_COMPLETE, "Repair Complete" },
+ { DIS_PDUTYPE_REPAIR_RESPONSE, "Repair Response" },
+ { DIS_PDUTYPE_CREATE_ENTITY, "Create Entity" },
+ { DIS_PDUTYPE_REMOVE_ENTITY, "Remove Entity" },
+ { DIS_PDUTYPE_START_RESUME, "Start / Resume" },
+ { DIS_PDUTYPE_STOP_FREEZE, "Stop / Freeze" },
+ { DIS_PDUTYPE_ACKNOWLEDGE, "Acknowledge" },
+ { DIS_PDUTYPE_ACTION_REQUEST, "Action Request" },
+ { DIS_PDUTYPE_ACTION_RESPONSE, "Action Response" },
+ { DIS_PDUTYPE_DATA_QUERY, "Data Query" },
+ { DIS_PDUTYPE_SET_DATA, "Set Data" },
+ { DIS_PDUTYPE_DATA, "Data" },
+ { DIS_PDUTYPE_EVENT_REPORT, "Event Report" },
+ { DIS_PDUTYPE_COMMENT, "Comment" },
+ { DIS_PDUTYPE_ELECTROMAGNETIC_EMISSION, "Electromagnetic Emission" },
+ { DIS_PDUTYPE_DESIGNATOR, "Designator" },
+ { DIS_PDUTYPE_TRANSMITTER, "Transmitter" },
+ { DIS_PDUTYPE_SIGNAL, "Signal" },
+ { DIS_PDUTYPE_RECEIVER, "Receiver" },
+ { DIS_PDUTYPE_IFF_ATC_NAVAIDS, "IFF / ATC / NAVAIDS" },
+ { DIS_PDUTYPE_UNDERWATER_ACOUSTIC, "Underwater Acoustic" },
+ { DIS_PDUTYPE_SUPPLEMENTAL_EMISSION_ENTITY_STATE, "Supplemental Emission Entity State" },
+ { DIS_PDUTYPE_INTERCOM_SIGNAL, "Intercom Signal" },
+ { DIS_PDUTYPE_INTERCOM_CONTROL, "Intercom Control" },
+ { DIS_PDUTYPE_AGGREGATE_STATE, "Aggregate State" },
+ { DIS_PDUTYPE_IS_GROUP_OF, "IsGroupOf" },
+ { DIS_PDUTYPE_TRANSFER_CONTROL, "Transfer Control" },
+ { DIS_PDUTYPE_IS_PART_OF, "IsPartOf" },
+ { DIS_PDUTYPE_MINEFIELD_STATE, "Minefield State" },
+ { DIS_PDUTYPE_MINEFIELD_QUERY, "Minefield Query" },
+ { DIS_PDUTYPE_MINEFIELD_DATA, "Minefield Data" },
+ { DIS_PDUTYPE_MINEFIELD_RESPONSE_NAK, "Minefield Response NAK" },
+ { DIS_PDUTYPE_ENVIRONMENTAL_PROCESS, "Environmental Process" },
+ { DIS_PDUTYPE_GRIDDED_DATA, "Gridded Data" },
+ { DIS_PDUTYPE_POINT_OBJECT_STATE, "Point Object State" },
+ { DIS_PDUTYPE_LINEAR_OBJECT_STATE, "Linear Object State" },
+ { DIS_PDUTYPE_AREAL_OBJECT_STATE, "Areal Object State" },
+ { DIS_PDUTYPE_TSPI, "TSPI" },
+ { DIS_PDUTYPE_APPEARANCE, "Appearance" },
+ { DIS_PDUTYPE_ARTICULATED_PARTS, "Articulated Parts" },
+ { DIS_PDUTYPE_LE_FIRE, "LE Fire" },
+ { DIS_PDUTYPE_LE_DETONATION, "LE Detonation" },
+ { DIS_PDUTYPE_CREATE_ENTITY_R, "Create Entity-R" },
+ { DIS_PDUTYPE_REMOVE_ENTITY_R, "Remove Entity-R" },
+ { DIS_PDUTYPE_START_RESUME_R, "Start / Resume-R" },
+ { DIS_PDUTYPE_STOP_FREEZE_R, "Stop / Freeze-R" },
+ { DIS_PDUTYPE_ACKNOWLEDGE_R, "Acknowledge-R" },
+ { DIS_PDUTYPE_ACTION_REQUEST_R, "Action Request-R" },
+ { DIS_PDUTYPE_ACTION_RESPONSE_R, "Action Response-R" },
+ { DIS_PDUTYPE_DATA_QUERY_R, "Data Query-R" },
+ { DIS_PDUTYPE_SET_DATA_R, "Set Data-R" },
+ { DIS_PDUTYPE_DATA_R, "Data-R" },
+ { DIS_PDUTYPE_EVENT_REPORT_R, "Event Report-R" },
+ { DIS_PDUTYPE_COMMENT_R, "Comment-R" },
+ { DIS_PDUTYPE_RECORD_R, "Record-R" },
+ { DIS_PDUTYPE_SET_RECORD_R, "Set Record-R" },
+ { DIS_PDUTYPE_RECORD_QUERY_R, "Record Query-R" },
+ { DIS_PDUTYPE_COLLISION_ELASTIC, "Collision Elastic" },
+ { DIS_PDUTYPE_ENTITY_STATE_UPDATE, "Entity State Update" },
+ { DIS_PDUTYPE_DIRECTED_ENERGY_FIRE, "Directed Energy Fire" },
+ { DIS_PDUTYPE_ENTITY_DAMAGE_STATUS, "Entity Damage Status" },
+ { DIS_PDUTYPE_INFORMATION_OPERATIONS_ACTION, "Info Operations Action" },
+ { DIS_PDUTYPE_INFORMATION_OPERATIONS_REPORT, "Info Operations Report" },
+ { DIS_PDUTYPE_ATTRIBUTE, "Attribute" },
+ { DIS_PDUTYPE_ANNOUNCE_OBJECT, "Announce Object" },
+ { DIS_PDUTYPE_DELETE_OBJECT, "Delete Object" },
+ { DIS_PDUTYPE_DESCRIBE_APPLICATION, "Describe Application" },
+ { DIS_PDUTYPE_DESCRIBE_EVENT, "Describe Event" },
+ { DIS_PDUTYPE_DESCRIBE_OBJECT, "Describe Object" },
+ { DIS_PDUTYPE_REQUEST_EVENT, "Request Event" },
+ { DIS_PDUTYPE_REQUEST_OBJECT, "Request Object" },
+ { DIS_PDUTYPE_APPLICATION_CONTROL, "Application Control" },
+ { DIS_PDUTYPE_STEALTH_STATE, "Stealth State" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_ENTITYKIND_OTHER = 0,
+ DIS_ENTITYKIND_PLATFORM = 1,
+ DIS_ENTITYKIND_MUNITION = 2,
+ DIS_ENTITYKIND_LIFE_FORM = 3,
+ DIS_ENTITYKIND_ENVIRONMENTAL = 4,
+ DIS_ENTITYKIND_CULTURAL_FEATURE = 5,
+ DIS_ENTITYKIND_SUPPLY = 6,
+ DIS_ENTITYKIND_RADIO = 7,
+ DIS_ENTITYKIND_EXPENDABLE = 8,
+ DIS_ENTITYKIND_SENSOR_EMITTER = 9
+} DIS_PDU_EntityKind;
+
+static const value_string DIS_PDU_EntityKind_Strings[] =
+{
+ { DIS_ENTITYKIND_OTHER, "Other" },
+ { DIS_ENTITYKIND_PLATFORM, "Platform" },
+ { DIS_ENTITYKIND_MUNITION, "Munition" },
+ { DIS_ENTITYKIND_LIFE_FORM, "Life form" },
+ { DIS_ENTITYKIND_ENVIRONMENTAL, "Environmental" },
+ { DIS_ENTITYKIND_CULTURAL_FEATURE, "Cultural feature" },
+ { DIS_ENTITYKIND_SUPPLY, "Supply" },
+ { DIS_ENTITYKIND_RADIO, "Radio" },
+ { DIS_ENTITYKIND_EXPENDABLE, "Expendable" },
+ { DIS_ENTITYKIND_SENSOR_EMITTER, "Sensor/Emitter" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_DOMAIN_OTHER = 0,
+ DIS_DOMAIN_LAND = 1,
+ DIS_DOMAIN_AIR = 2,
+ DIS_DOMAIN_SURFACE = 3,
+ DIS_DOMAIN_SUBSURFACE = 4,
+ DIS_DOMAIN_SPACE = 5
+} DIS_PDU_Domain;
+
+static const value_string DIS_PDU_Domain_Strings[] =
+{
+ { DIS_DOMAIN_OTHER, "Other" },
+ { DIS_DOMAIN_LAND, "Land" },
+ { DIS_DOMAIN_AIR, "Air" },
+ { DIS_DOMAIN_SURFACE, "Surface" },
+ { DIS_DOMAIN_SUBSURFACE, "Subsurface" },
+ { DIS_DOMAIN_SPACE, "Space" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_CATEGORY_LANDPLATFORM_OTHER = 0,
+ DIS_CATEGORY_LANDPLATFORM_TANK = 1,
+ DIS_CATEGORY_LANDPLATFORM_ARMORED_FIGHTING_VEHICLE = 2,
+ DIS_CATEGORY_LANDPLATFORM_ARMORED_UTILITY_VEHICLE = 3,
+ DIS_CATEGORY_LANDPLATFORM_SELF_PROPELLED_ARTILLERY = 4,
+ DIS_CATEGORY_LANDPLATFORM_TOWED_ARTILLERY = 5,
+ DIS_CATEGORY_LANDPLATFORM_SMALL_WHEELED_UTILITY_VEHICLE = 6,
+ DIS_CATEGORY_LANDPLATFORM_LARGE_WHEELED_UTILITY_VEHICLE = 7,
+ DIS_CATEGORY_LANDPLATFORM_SMALL_TRACKED_UTILITY_VEHICLE = 8,
+ DIS_CATEGORY_LANDPLATFORM_LARGE_TRACKED_UTILITY_VEHICLE = 9,
+ DIS_CATEGORY_LANDPLATFORM_MORTAR = 10,
+ DIS_CATEGORY_LANDPLATFORM_MINE_PLOW = 11,
+ DIS_CATEGORY_LANDPLATFORM_MINE_RAKE = 12,
+ DIS_CATEGORY_LANDPLATFORM_MINE_ROLLER = 13,
+ DIS_CATEGORY_LANDPLATFORM_CARGO_TRAILER = 14,
+ DIS_CATEGORY_LANDPLATFORM_FUEL_TRAILER = 15,
+ DIS_CATEGORY_LANDPLATFORM_GENERATOR_TRAILER = 16,
+ DIS_CATEGORY_LANDPLATFORM_WATER_TRAILER = 17,
+ DIS_CATEGORY_LANDPLATFORM_ENGINEER_EQUIPMENT = 18,
+ DIS_CATEGORY_LANDPLATFORM_HEAVY_EQUIPMENT_TRANSPORT_TRAILER = 19,
+ DIS_CATEGORY_LANDPLATFORM_MAINTENANCE_EQUIPMENT_TRAILER = 20,
+ DIS_CATEGORY_LANDPLATFORM_LIMBER = 21,
+ DIS_CATEGORY_LANDPLATFORM_CHEMICAL_DECONTAMINATION_TRAILER = 22,
+ DIS_CATEGORY_LANDPLATFORM_WARNING_SYSTEM = 23,
+ DIS_CATEGORY_LANDPLATFORM_TRAIN_ENGINE = 24,
+ DIS_CATEGORY_LANDPLATFORM_TRAIN_CAR = 25,
+ DIS_CATEGORY_LANDPLATFORM_TRAIN_CABOOSE = 26,
+ DIS_CATEGORY_LANDPLATFORM_CIVILIAN_VEHICLE = 27,
+ DIS_CATEGORY_LANDPLATFORM_AIR_DEFENSE_MISSILE_DEFENSE_UNIT_EQUIPMENT = 28,
+ DIS_CATEGORY_LANDPLATFORM_C3I_SYSTEM = 29,
+ DIS_CATEGORY_LANDPLATFORM_OPERATIONS_FACILITY = 30,
+ DIS_CATEGORY_LANDPLATFORM_INTELLIGENCE_FACILITY = 31,
+ DIS_CATEGORY_LANDPLATFORM_SURVEILLANCE_FACILITY = 32,
+ DIS_CATEGORY_LANDPLATFORM_COMMUNICATIONS_FACILITY = 33,
+ DIS_CATEGORY_LANDPLATFORM_COMMAND_FACILITY = 34,
+ DIS_CATEGORY_LANDPLATFORM_C4I_FACILITY = 35,
+ DIS_CATEGORY_LANDPLATFORM_CONTROL_FACILITY = 36,
+ DIS_CATEGORY_LANDPLATFORM_FIRE_CONTROL_FACILITY = 37,
+ DIS_CATEGORY_LANDPLATFORM_MISSILE_DEFENSE_FACILITY = 38,
+ DIS_CATEGORY_LANDPLATFORM_FIELD_COMMAND_POST = 39,
+ DIS_CATEGORY_LANDPLATFORM_OBSERVATION_POST = 40
+} DIS_PDU_Category_LandPlatform;
+
+static const value_string DIS_PDU_Category_LandPlatform_Strings[] =
+{
+ { DIS_CATEGORY_LANDPLATFORM_OTHER, "Other" },
+ { DIS_CATEGORY_LANDPLATFORM_TANK, "Tank" },
+ { DIS_CATEGORY_LANDPLATFORM_ARMORED_FIGHTING_VEHICLE, "Armored fighting vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_ARMORED_UTILITY_VEHICLE, "Armored utility vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_SELF_PROPELLED_ARTILLERY, "Self-propelled artillery" },
+ { DIS_CATEGORY_LANDPLATFORM_TOWED_ARTILLERY, "Towed artillery" },
+ { DIS_CATEGORY_LANDPLATFORM_SMALL_WHEELED_UTILITY_VEHICLE, "Small wheeled utility vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_LARGE_WHEELED_UTILITY_VEHICLE, "Large wheeled utility vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_SMALL_TRACKED_UTILITY_VEHICLE, "Small tracked utility vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_LARGE_TRACKED_UTILITY_VEHICLE, "Large tracked utility vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_MORTAR, "Mortar" },
+ { DIS_CATEGORY_LANDPLATFORM_MINE_PLOW, "Mine plow" },
+ { DIS_CATEGORY_LANDPLATFORM_MINE_RAKE, "Mine rake" },
+ { DIS_CATEGORY_LANDPLATFORM_MINE_ROLLER, "Mine roller" },
+ { DIS_CATEGORY_LANDPLATFORM_CARGO_TRAILER, "Cargo trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_FUEL_TRAILER, "Fuel trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_GENERATOR_TRAILER, "Generator trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_WATER_TRAILER, "Water trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_ENGINEER_EQUIPMENT, "Engineer equipment" },
+ { DIS_CATEGORY_LANDPLATFORM_HEAVY_EQUIPMENT_TRANSPORT_TRAILER, "Heavy equipment transport trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_MAINTENANCE_EQUIPMENT_TRAILER, "Maintenance equipment trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_LIMBER, "Limber" },
+ { DIS_CATEGORY_LANDPLATFORM_CHEMICAL_DECONTAMINATION_TRAILER, "Chemical decontamination trailer" },
+ { DIS_CATEGORY_LANDPLATFORM_WARNING_SYSTEM, "Warning system" },
+ { DIS_CATEGORY_LANDPLATFORM_TRAIN_ENGINE, "Train engine" },
+ { DIS_CATEGORY_LANDPLATFORM_TRAIN_CAR, "Train car" },
+ { DIS_CATEGORY_LANDPLATFORM_TRAIN_CABOOSE, "Train caboose" },
+ { DIS_CATEGORY_LANDPLATFORM_CIVILIAN_VEHICLE, "Civilian vehicle" },
+ { DIS_CATEGORY_LANDPLATFORM_AIR_DEFENSE_MISSILE_DEFENSE_UNIT_EQUIPMENT, "Air defense / missile defense unit equipment" },
+ { DIS_CATEGORY_LANDPLATFORM_C3I_SYSTEM, "C3I system" },
+ { DIS_CATEGORY_LANDPLATFORM_OPERATIONS_FACILITY, "Operations facility" },
+ { DIS_CATEGORY_LANDPLATFORM_INTELLIGENCE_FACILITY, "Intelligence facility" },
+ { DIS_CATEGORY_LANDPLATFORM_SURVEILLANCE_FACILITY, "Surveillance facility" },
+ { DIS_CATEGORY_LANDPLATFORM_COMMUNICATIONS_FACILITY, "Communications facility" },
+ { DIS_CATEGORY_LANDPLATFORM_COMMAND_FACILITY, "Command facility" },
+ { DIS_CATEGORY_LANDPLATFORM_C4I_FACILITY, "C4I facility" },
+ { DIS_CATEGORY_LANDPLATFORM_CONTROL_FACILITY, "Control facility" },
+ { DIS_CATEGORY_LANDPLATFORM_FIRE_CONTROL_FACILITY, "Fire control facility" },
+ { DIS_CATEGORY_LANDPLATFORM_MISSILE_DEFENSE_FACILITY, "Missile defense facility" },
+ { DIS_CATEGORY_LANDPLATFORM_FIELD_COMMAND_POST, "Field command post" },
+ { DIS_CATEGORY_LANDPLATFORM_OBSERVATION_POST, "Field observation post" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_CATEGORY_AIRPLATFORM_OTHER = 0,
+ DIS_CATEGORY_AIRPLATFORM_FIGHTER_AIR_DEFENSE = 1,
+ DIS_CATEGORY_AIRPLATFORM_ATTACK_STRIKE = 2,
+ DIS_CATEGORY_AIRPLATFORM_BOMBER = 3,
+ DIS_CATEGORY_AIRPLATFORM_CARGO_TANKER = 4,
+ DIS_CATEGORY_AIRPLATFORM_ASW_PATROL_OBSERVATION = 5,
+ DIS_CATEGORY_AIRPLATFORM_ELECTRONIC_WARFARE = 6,
+ DIS_CATEGORY_AIRPLATFORM_RECONNAISSANCE = 7,
+ DIS_CATEGORY_AIRPLATFORM_SURVEILLANCE_C2 = 8,
+ DIS_CATEGORY_AIRPLATFORM_ATTACK_HELICOPTER = 20,
+ DIS_CATEGORY_AIRPLATFORM_UTILITY_HELICOPTER = 21,
+ DIS_CATEGORY_AIRPLATFORM_ANTISUB_WARFARE_PATROL_HELICOPTER = 22,
+ DIS_CATEGORY_AIRPLATFORM_CARGO_HELICOPTER = 23,
+ DIS_CATEGORY_AIRPLATFORM_OBSERVATION_HELICOPTER = 24,
+ DIS_CATEGORY_AIRPLATFORM_SPECIAL_OPERATIONS_HELICOPTER = 25,
+ DIS_CATEGORY_AIRPLATFORM_TRAINER = 40,
+ DIS_CATEGORY_AIRPLATFORM_UNMANNED = 50,
+ DIS_CATEGORY_AIRPLATFORM_NON_COMBATANT_COMMERCIAL_AIRCRAFT = 57
+} DIS_PDU_Category_AirPlatform;
+
+static const value_string DIS_PDU_Category_AirPlatform_Strings[] =
+{
+ { DIS_CATEGORY_AIRPLATFORM_OTHER, "Other" },
+ { DIS_CATEGORY_AIRPLATFORM_FIGHTER_AIR_DEFENSE, "Fighter / air defense" },
+ { DIS_CATEGORY_AIRPLATFORM_ATTACK_STRIKE, "Attack / strike" },
+ { DIS_CATEGORY_AIRPLATFORM_BOMBER, "Bomber" },
+ { DIS_CATEGORY_AIRPLATFORM_CARGO_TANKER, "Cargo tanker" },
+ { DIS_CATEGORY_AIRPLATFORM_ASW_PATROL_OBSERVATION, "ASW / patrol / observation" },
+ { DIS_CATEGORY_AIRPLATFORM_ELECTRONIC_WARFARE, "Electronic warfare" },
+ { DIS_CATEGORY_AIRPLATFORM_RECONNAISSANCE, "Reconnaissance" },
+ { DIS_CATEGORY_AIRPLATFORM_SURVEILLANCE_C2, "Surveillance / C2" },
+ { DIS_CATEGORY_AIRPLATFORM_ATTACK_HELICOPTER, "Attack helicopter" },
+ { DIS_CATEGORY_AIRPLATFORM_UTILITY_HELICOPTER, "Utility helicopter" },
+ { DIS_CATEGORY_AIRPLATFORM_ANTISUB_WARFARE_PATROL_HELICOPTER, "Antisubmarine warfare / patrol helicopter" },
+ { DIS_CATEGORY_AIRPLATFORM_CARGO_HELICOPTER, "Cargo helicopter" },
+ { DIS_CATEGORY_AIRPLATFORM_OBSERVATION_HELICOPTER, "Observation helicopter" },
+ { DIS_CATEGORY_AIRPLATFORM_SPECIAL_OPERATIONS_HELICOPTER, "Special operations helicopter" },
+ { DIS_CATEGORY_AIRPLATFORM_TRAINER, "Trainer" },
+ { DIS_CATEGORY_AIRPLATFORM_UNMANNED, "Unmanned" },
+ { DIS_CATEGORY_AIRPLATFORM_NON_COMBATANT_COMMERCIAL_AIRCRAFT, "Non-combatant commercial aircraft" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_CATEGORY_SURFACEPLATFORM_OTHER = 0
+} DIS_PDU_Category_SurfacePlatform;
+
+static const value_string DIS_PDU_Category_SurfacePlatform_Strings[] =
+{
+ { DIS_CATEGORY_SURFACEPLATFORM_OTHER, "Other" },
+ { 0, NULL}
+};
+
+typedef enum
+{
+ DIS_CATEGORY_SUBSURFACEPLATFORM_OTHER = 0
+} DIS_PDU_Category_SubsurfacePlatform;
+
+static const value_string DIS_PDU_Category_SubsurfacePlatform_Strings[] =
+{
+ { DIS_CATEGORY_SUBSURFACEPLATFORM_OTHER, "Other" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_CATEGORY_SPACEPLATFORM_OTHER = 0
+} DIS_PDU_Category_SpacePlatform;
+
+static const value_string DIS_PDU_Category_SpacePlatform_Strings[] =
+{
+ { DIS_CATEGORY_SPACEPLATFORM_OTHER, "Other" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_ENCODING_CLASS_ENCODED_AUDIO = 0,
+ DIS_ENCODING_CLASS_RAW_BINARY_DATA = 1,
+ DIS_ENCODING_CLASS_APPL_SPEC_DATA = 2,
+ DIS_ENCODING_CLASS_DB_INDEX = 3
+} DIS_PDU_Encoding_Class;
+
+static const value_string DIS_PDU_Encoding_Class_Strings[] =
+{
+ { DIS_ENCODING_CLASS_ENCODED_AUDIO, "Encoded Audio" },
+ { DIS_ENCODING_CLASS_RAW_BINARY_DATA, "Raw Binary Data" },
+ { DIS_ENCODING_CLASS_APPL_SPEC_DATA, "Application-Specific Data" },
+ { DIS_ENCODING_CLASS_DB_INDEX, "Database index" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_ENCODING_TYPE_OTHER = 0,
+ DIS_ENCODING_TYPE_MU_LAW = 1,
+ DIS_ENCODING_TYPE_CVSD = 2,
+ DIS_ENCODING_TYPE_ADPCM_G721 = 3,
+ DIS_ENCODING_TYPE_16BIT_LINEAR_PCM = 4,
+ DIS_ENCODING_TYPE_8BIT_LINEAR_PCM = 5,
+ DIS_ENCODING_TYPE_VECTOR_QUANTIZATION = 6
+} DIS_PDU_Encoding_Type;
+
+static const value_string DIS_PDU_Encoding_Type_Strings[] =
+{
+ { DIS_ENCODING_TYPE_OTHER, "Other" },
+ { DIS_ENCODING_TYPE_MU_LAW, "8-bit mu-law" },
+ { DIS_ENCODING_TYPE_CVSD, "CVSD per MIL-STD-188-113" },
+ { DIS_ENCODING_TYPE_ADPCM_G721, "ADPCM per CCITT G.721" },
+ { DIS_ENCODING_TYPE_16BIT_LINEAR_PCM, "16-bit linear PCM" },
+ { DIS_ENCODING_TYPE_8BIT_LINEAR_PCM, "8-bit linear PCM" },
+ { DIS_ENCODING_TYPE_VECTOR_QUANTIZATION, "VQ (Vector Quantization" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_TDL_TYPE_OTHER = 0,
+ DIS_TDL_TYPE_PADIL = 1,
+ DIS_TDL_TYPE_NATO_LINK1 = 2,
+ DIS_TDL_TYPE_ATDL1 = 3,
+ DIS_TDL_TYPE_LINK_11B = 4,
+ DIS_TDL_TYPE_SADL = 5,
+ DIS_TDL_TYPE_JTIDS_TADIL_J = 6,
+ DIS_TDL_TYPE_JTIDS_FDL_TADIL_J = 7,
+ DIS_TDL_TYPE_LINK_11A = 8,
+ DIS_TDL_TYPE_IJMS = 9,
+ DIS_TDL_TYPE_LINK_4A = 10,
+ DIS_TDL_TYPE_LINK_4C = 11,
+ DIS_TDL_TYPE_TIBS = 12,
+ DIS_TDL_TYPE_ATL = 13,
+ DIS_TDL_TYPE_CONSTANT_SRC = 14,
+ DIS_TDL_TYPE_ABBRV_CC = 15,
+ DIS_TDL_TYPE_MILSTAR = 16,
+ DIS_TDL_TYPE_ATHS = 17,
+ DIS_TDL_TYPE_OTHGOLD = 18,
+ DIS_TDL_TYPE_TACELINT = 19,
+ DIS_TDL_TYPE_AWW13 = 20,
+ DIS_TDL_TYPE_ABBRV_CC_2 = 21,
+ DIS_TDL_TYPE_EPLRS = 22,
+ DIS_TDL_TYPE_PLRS = 23,
+ DIS_TDL_TYPE_SINCGARS = 24,
+ DIS_TDL_TYPE_HAVE_QUICK_I = 25,
+ DIS_TDL_TYPE_HAVE_QUICK_II = 26,
+ DIS_TDL_TYPE_HAVE_QUICK_IIA = 27,
+ DIS_TDL_TYPE_IFDL1 = 28,
+ DIS_TDL_TYPE_IFDL2 = 29,
+ DIS_TDL_TYPE_IDM = 30,
+ DIS_TDL_TYPE_AFAPD = 31,
+ DIS_TDL_TYPE_CEC = 32,
+ DIS_TDL_TYPE_FAAD_FDL = 33,
+ DIS_TDL_TYPE_GBDL = 34,
+ DIS_TDL_TYPE_IVIS = 35,
+ DIS_TDL_TYPE_MTS = 36,
+ DIS_TDL_TYPE_TACFIRE = 37,
+ DIS_TDL_TYPE_IBS = 38,
+ DIS_TDL_TYPE_ABIT = 39,
+ DIS_TDL_TYPE_ATARS = 40,
+ DIS_TDL_TYPE_BGPHES = 41,
+ DIS_TDL_TYPE_CHBDL = 42,
+ DIS_TDL_TYPE_GUARDRAIL_IDL = 43,
+ DIS_TDL_TYPE_GUARDRAIL_CSS1 = 44,
+ DIS_TDL_TYPE_GUARDRAIL_CSS2 = 45,
+ DIS_TDL_TYPE_GUARDRAIL_CSS2_MRDL = 46,
+ DIS_TDL_TYPE_GUARDRAIL_CSS2_DASR = 47,
+ DIS_TDL_TYPE_LOS_TETHER = 48,
+ DIS_TDL_TYPE_LWCDL = 49,
+ DIS_TDL_TYPE_L_52M = 50,
+ DIS_TDL_TYPE_RR_ROWL_DL = 51,
+ DIS_TDL_TYPE_SENIOR_SPAN = 52,
+ DIS_TDL_TYPE_SENIOR_SPUR = 53,
+ DIS_TDL_TYPE_SENIOR_STRETCH = 54,
+ DIS_TDL_TYPE_SENIOR_YEAR_IDL = 55,
+ DIS_TDL_TYPE_SPACE_CDL = 56,
+ DIS_TDL_TYPE_TR_1_MIST_ADL = 57,
+ DIS_TDL_TYPE_KU_BAND_SATCOM = 58,
+ DIS_TDL_TYPE_MECDL = 59,
+ DIS_TDL_TYPE_RADAR_DATA_TSDL = 60,
+ DIS_TDL_TYPE_SCDL = 61,
+ DIS_TDL_TYPE_TACTICAL_UAV_VIDEO = 62,
+ DIS_TDL_TYPE_UHF_SATCOM = 63,
+ DIS_TDL_TYPE_TCDL = 64,
+ DIS_TDL_TYPE_LLAPI = 65,
+ DIS_TDL_TYPE_WEAPONS_DL = 66,
+ DIS_TDL_TYPE_GC3 = 99,
+ DIS_TDL_TYPE_LINK16_STD = 100,
+ DIS_TDL_TYPE_LINK16_EDR = 101,
+ DIS_TDL_TYPE_JTIDS_NET_DATA_LOAD = 102,
+ DIS_TDL_TYPE_LINK22 = 103,
+ DIS_TDL_TYPE_AFIWC_IADS = 104
+} DIS_PDU_TDL_Type;
+
+static const value_string DIS_PDU_TDL_Type_Strings[] =
+{
+ {DIS_TDL_TYPE_OTHER, "Other" },
+ {DIS_TDL_TYPE_PADIL, "PADIL" },
+ {DIS_TDL_TYPE_NATO_LINK1, "NATO Link-1" },
+ {DIS_TDL_TYPE_ATDL1, "ATDL-1" },
+ {DIS_TDL_TYPE_LINK_11B, "Link 11B (TADIL B)" },
+ {DIS_TDL_TYPE_SADL, "Situational Awareness Data Link (SADL)" },
+ {DIS_TDL_TYPE_JTIDS_TADIL_J, "Link 16 Legacy Format (JTIDS/TADIL-J) " },
+ {DIS_TDL_TYPE_JTIDS_FDL_TADIL_J, "Link 16 Legacy Format (JTIDS/FDL/TADIL-J)" },
+ {DIS_TDL_TYPE_LINK_11A, "Link 11A (TADIL A)" },
+ {DIS_TDL_TYPE_IJMS, "IJMS" },
+ {DIS_TDL_TYPE_LINK_4A, "Link 4A (TADIL C)" },
+ {DIS_TDL_TYPE_LINK_4C, "Link 4C" },
+ {DIS_TDL_TYPE_TIBS, "TIBS" },
+ {DIS_TDL_TYPE_ATL, "ATL" },
+ {DIS_TDL_TYPE_CONSTANT_SRC, "Constant Source" },
+ {DIS_TDL_TYPE_ABBRV_CC, "Abbreviated Command and Control" },
+ {DIS_TDL_TYPE_MILSTAR, "MILSTAR" },
+ {DIS_TDL_TYPE_ATHS, "ATHS" },
+ {DIS_TDL_TYPE_OTHGOLD, "OTHGOLD" },
+ {DIS_TDL_TYPE_TACELINT, "TACELINT" },
+ {DIS_TDL_TYPE_AWW13, "Weapons Data Link (AWW-13)" },
+ {DIS_TDL_TYPE_ABBRV_CC_2, "Abbreviated Command and Control" },
+ {DIS_TDL_TYPE_EPLRS, "Enhanced Position Location Reporting System (EPLRS)" },
+ {DIS_TDL_TYPE_PLRS, "Position Location Reporting System (PLRS)" },
+ {DIS_TDL_TYPE_SINCGARS, "SINCGARS" },
+ {DIS_TDL_TYPE_HAVE_QUICK_I, "Have Quick I" },
+ {DIS_TDL_TYPE_HAVE_QUICK_II, "Have Quick II" },
+ {DIS_TDL_TYPE_HAVE_QUICK_IIA, "Have Quick IIA (Saturn)" },
+ {DIS_TDL_TYPE_IFDL1, "Intra-Flight Data Link 1" },
+ {DIS_TDL_TYPE_IFDL2, "Intra-Flight Data Link 2" },
+ {DIS_TDL_TYPE_IDM, "Improved Data Modem (IDM)" },
+ {DIS_TDL_TYPE_AFAPD, "Air Force Application Program Development (AFAPD)" },
+ {DIS_TDL_TYPE_CEC, "Cooperative Engagement Capability (CEC)" },
+ {DIS_TDL_TYPE_FAAD_FDL, "Forward Area Air Defense (FAAD) Data Link (FDL)" },
+ {DIS_TDL_TYPE_GBDL, "Ground Based Data Link (GBDL)" },
+ {DIS_TDL_TYPE_IVIS, "Intra Vehicular Info System (IVIS)" },
+ {DIS_TDL_TYPE_MTS, "Marine Tactical System (MTS)" },
+ {DIS_TDL_TYPE_TACFIRE, "Tactical Fire Direction System (TACFIRE)" },
+ {DIS_TDL_TYPE_IBS, "Integrated Broadcast Service (IBS)" },
+ {DIS_TDL_TYPE_ABIT, "Airborne Information Transfer (ABIT)" },
+ {DIS_TDL_TYPE_ATARS, "Advanced Tactical Airborne Reconnaissance System (ATARS) Data Link" },
+ {DIS_TDL_TYPE_BGPHES, "Battle Group Passive Horizon Extension System (BGPHES) Data Link" },
+ {DIS_TDL_TYPE_CHBDL, "Common High Bandwidth Data Link (CHBDL)" },
+ {DIS_TDL_TYPE_GUARDRAIL_IDL, "Guardrail Interoperable Data Link (IDL)" },
+ {DIS_TDL_TYPE_GUARDRAIL_CSS1, "Guardrail Common Sensor System One (CSS1) Data Link" },
+ {DIS_TDL_TYPE_GUARDRAIL_CSS2, "Guardrail Common Sensor System Two (CSS2) Data Link" },
+ {DIS_TDL_TYPE_GUARDRAIL_CSS2_MRDL, "Guardrail CSS2 Multi-Role Data Link (MRDL)" },
+ {DIS_TDL_TYPE_GUARDRAIL_CSS2_DASR, "Guardrail CSS2 Direct Air to Satellite Relay (DASR) Data Link" },
+ {DIS_TDL_TYPE_LOS_TETHER, "Line of Sight (LOS) Data Link Implementation (LOS tether)" },
+ {DIS_TDL_TYPE_LWCDL, "Lightweight CDL (LWCDL)" },
+ {DIS_TDL_TYPE_L_52M, "L-52M (SR-71)" },
+ {DIS_TDL_TYPE_RR_ROWL_DL, "Rivet Reach/Rivet Owl Data Link" },
+ {DIS_TDL_TYPE_SENIOR_SPAN, "Senior Span" },
+ {DIS_TDL_TYPE_SENIOR_SPUR, "Senior Spur" },
+ {DIS_TDL_TYPE_SENIOR_STRETCH, "Senior Stretch." },
+ {DIS_TDL_TYPE_SENIOR_YEAR_IDL, "Senior Year Interoperable Data Link (IDL)" },
+ {DIS_TDL_TYPE_SPACE_CDL, "Space CDL" },
+ {DIS_TDL_TYPE_TR_1_MIST_ADL, "TR-1 mode MIST Airborne Data Link" },
+ {DIS_TDL_TYPE_KU_BAND_SATCOM, "Ku-band SATCOM Data Link Implementation (UAV)" },
+ {DIS_TDL_TYPE_MECDL, "Mission Equipment Control Data link (MECDL)" },
+ {DIS_TDL_TYPE_RADAR_DATA_TSDL, "Radar Data Transmitting Set Data Link" },
+ {DIS_TDL_TYPE_SCDL, "Surveillance and Control Data Link (SCDL)" },
+ {DIS_TDL_TYPE_TACTICAL_UAV_VIDEO, "Tactical UAV Video" },
+ {DIS_TDL_TYPE_UHF_SATCOM, "UHF SATCOM Data Link Implementation (UAV)" },
+ {DIS_TDL_TYPE_TCDL, "Tactical Common Data Link (TCDL)" },
+ {DIS_TDL_TYPE_LLAPI, "Low Level Air Picture Interface (LLAPI)" },
+ {DIS_TDL_TYPE_WEAPONS_DL, "Weapons Data Link (AGM-130)" },
+ {DIS_TDL_TYPE_GC3, "GC3" },
+ {DIS_TDL_TYPE_LINK16_STD, "Link 16 Standardized Format (JTIDS/MIDS/TADIL J)" },
+ {DIS_TDL_TYPE_LINK16_EDR, "Link 16 Enhanced Data Rate (EDR JTIDS/MIDS/TADIL-J)" },
+ {DIS_TDL_TYPE_JTIDS_NET_DATA_LOAD, "JTIDS/MIDS Net Data Load (TIMS/TOMS)" },
+ {DIS_TDL_TYPE_LINK22, "Link 22" },
+ {DIS_TDL_TYPE_AFIWC_IADS, "AFIWC IADS Communications Links" },
+ { 0, NULL }
+};
+
+static const value_string DIS_PDU_RadioCategory_Strings[] =
+{
+ {0, "Other" },
+ {1, "Voice Transmission/Reception" },
+ {2, "Data Link Transmission/Reception" },
+ {3, "Voice and Data Link Transmission/Reception" },
+ {4, "Instrumented Landing System (ILS) Glideslope Transmitter" },
+ {5, "Instrumented Landing System (ILS) Localizer Transmitter" },
+ {6, "Instrumented Landing System (ILS) Outer Marker Beacon" },
+ {7, "Instrumented Landing System (ILS) Middle Marker Beacon" },
+ {8, "Instrumented Landing System (ILS) Inner Marker Beacon" },
+ {9, "Instrumented Landing System (ILS) Receiver (Platform Radio)" },
+ {10, "Tactical Air Navigation (TACAN) Transmitter (Ground Fixed Equipment)" },
+ {11, "Tactical Air Navigation (TACAN) Receiver (Moving Platform Equipment)" },
+ {12, "Tactical Air Navigation (TACAN) Transmitter/Receiver (Moving Platform Equipment)" },
+ {13, "Variable Omni-Ranging (VOR) Transmitter (Ground Fixed Equipment)" },
+ {14, "Variable Omni-Ranging (VOR) with Distance Measuring Equipment (DME) Transmitter (Ground Fixed Equipment)" },
+ {15, "Combined VOR/ILS Receiver (Moving Platform Equipment)" },
+ {16, "Combined VOR & TACAN (VORTAC) Transmitter" },
+ {17, "Non-Directional Beacon (NDB) Transmitter" },
+ {18, "Non-Directional Beacon (NDB) Receiver" },
+ {19, "Non-Directional Beacon (NDB) with Distance Measuring Equipment (DME) Transmitter" },
+ {20, "Distance Measuring Equipment (DME)" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_NomenclatureVersion_Strings[] =
+{
+ {0, "Other" },
+ {1, "Joint Electronics Type Designation System (JETDS) Nomenclature (AN/ per Mil-STD-196)" },
+ {2, "Manufacturer Designation" },
+ {3, "National Designation" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_Nomenclature_Strings[] =
+{
+ {0, "Other" },
+ {1, "AN/ARN-118" },
+ {2, "AN/ARN-139" },
+ {3, "Generic Ground Fixed Transmitter" },
+ {4, "Generic Ground Mobile Transmitter" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_RadioTransmitState_Strings[] =
+{
+ {0, "Off" },
+ {1, "On but not transmitting" },
+ {2, "On and transmitting" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_RadioInputSource_Strings[] =
+{
+ {0, "Other" },
+ {1, "Pilot" },
+ {2, "Copilot" },
+ {3, "First Officer" },
+ {4, "Driver" },
+ {5, "Loader" },
+ {6, "Gunner" },
+ {7, "Commander" },
+ {8, "Digital Data Device" },
+ {9, "Intercom" },
+ {0, NULL }
+};
+
+typedef enum
+{
+ DIS_PATTERN_OMNI_DIRECTIONAL = 0,
+ DIS_PATTERN_BEAM = 1,
+ DIS_PATTERN_SPHERICAL_HARMONIC = 2
+} DIS_PDU_AntennaPattern_Type;
+
+static const value_string DIS_PDU_AntennaPatternType_Strings[] =
+{
+ {DIS_PATTERN_OMNI_DIRECTIONAL, "Omni-directional" },
+ {DIS_PATTERN_BEAM, "Beam" },
+ {DIS_PATTERN_SPHERICAL_HARMONIC, "Spherical harmonic" },
+ {0, NULL }
+};
+
+typedef enum
+{
+ DIS_MAJOR_MOD_OTHER = 0,
+ DIS_MAJOR_MOD_AMPLITUDE = 1,
+ DIS_MAJOR_MOD_AMPLITUDE_AND_ANGLE = 2,
+ DIS_MAJOR_MOD_ANGLE = 3,
+ DIS_MAJOR_MOD_COMBINATION = 4,
+ DIS_MAJOR_MOD_PULSE = 5,
+ DIS_MAJOR_MOD_UNMODULATED = 6,
+ DIS_MAJOR_MOD_CPSM = 7
+} DIS_PDU_MAJOR_MODULATION_TYPE;
+
+static const value_string DIS_PDU_MajorModulation_Strings[] =
+{
+ {DIS_MAJOR_MOD_OTHER, "Other" },
+ {DIS_MAJOR_MOD_AMPLITUDE, "Amplitude" },
+ {DIS_MAJOR_MOD_AMPLITUDE_AND_ANGLE, "Amplitude and Angle" },
+ {DIS_MAJOR_MOD_ANGLE, "Angle" },
+ {DIS_MAJOR_MOD_COMBINATION, "Combination" },
+ {DIS_MAJOR_MOD_PULSE, "Pulse" },
+ {DIS_MAJOR_MOD_UNMODULATED, "Unmodulated" },
+ {DIS_MAJOR_MOD_CPSM, "Carrier Phase Shift Modulation (CPSM)" },
+ {0, NULL }
+};
+
+static const range_string DIS_PDU_Link16_CVLL_Strings[] = {
+ { 0, 127, "Crypto Variable" },
+ { 255, 255, "NO STATEMENT" },
+ { 0, 0, NULL }
+};
+
+typedef enum
+{
+ DIS_MESSAGE_TYPE_JTIDS_HEADER_MESSAGES = 0,
+ DIS_MESSAGE_TYPE_RTT_A_B,
+ DIS_MESSAGE_TYPE_RTT_REPLY,
+ DIS_MESSAGE_TYPE_JTIDS_VOICE_CVSD,
+ DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC10,
+ DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC12,
+ DIS_MESSAGE_TYPE_JTIDS_LET,
+ DIS_MESSAGE_TYPE_VMF
+} DIS_PDU_MessageType;
+
+static const value_string DIS_PDU_Link16_MessageType_Strings[] =
+{
+ { DIS_MESSAGE_TYPE_JTIDS_HEADER_MESSAGES, "JTIDS Header/Messages" },
+ { DIS_MESSAGE_TYPE_RTT_A_B, "RTT A/B" },
+ { DIS_MESSAGE_TYPE_RTT_REPLY, "RTT Reply" },
+ { DIS_MESSAGE_TYPE_JTIDS_VOICE_CVSD, "JTIDS Voice CVSD" },
+ { DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC10, "JTIDS Voice LPC10" },
+ { DIS_MESSAGE_TYPE_JTIDS_VOICE_LPC12, "JTIDS Voice LPC12" },
+ { DIS_MESSAGE_TYPE_JTIDS_LET, "JTIDS LET" },
+ { DIS_MESSAGE_TYPE_VMF, "VMF" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_EMISSION_FUNCTION_OTHER = 0,
+ DIS_EMISSION_FUNCTION_MULTI_FUNCTION = 1,
+ DIS_EMISSION_FUNCTION_EARLY_WARNING_SURVEILLANCE = 2,
+ DIS_EMISSION_FUNCTION_HEIGHT_FINDING = 3,
+ DIS_EMISSION_FUNCTION_FIRE_CONTROL = 4,
+ DIS_EMISSION_FUNCTION_ACQUISITION_DETECTION = 5,
+ DIS_EMISSION_FUNCTION_TRACKING = 6,
+ DIS_EMISSION_FUNCTION_GUIDANCE_ILLUMINATION = 7,
+ DIS_EMISSION_FUNCTION_FIRING_POINT_LAUNCH_POINT_LOCATION = 8,
+ DIS_EMISSION_FUNCTION_RANGING = 9,
+ DIS_EMISSION_FUNCTION_RADAR_ALTIMETER = 10,
+ DIS_EMISSION_FUNCTION_IMAGING = 11,
+ DIS_EMISSION_FUNCTION_MOTION_DETECTION = 12,
+ DIS_EMISSION_FUNCTION_NAVIGATION = 13,
+ DIS_EMISSION_FUNCTION_WEATHER_METEROLOGICAL = 14,
+ DIS_EMISSION_FUNCTION_INSTRUMENTATION = 15,
+ DIS_EMISSION_FUNCTION_IDENTIFICATION_CLASSIFICATION_INCLUDING_IFF = 16,
+ DIS_EMISSION_FUNCTION_AAA_FIRE_CONTROL = 17,
+ DIS_EMISSION_FUNCTION_AIR_SEARCH_BOMB = 18,
+ DIS_EMISSION_FUNCTION_AIR_INTERCEPT = 19,
+ DIS_EMISSION_FUNCTION_ALTIMETER = 20,
+ DIS_EMISSION_FUNCTION_AIR_MAPPING = 21,
+ DIS_EMISSION_FUNCTION_AIR_TRAFFIC_CONTROL = 22,
+ DIS_EMISSION_FUNCTION_BEACON = 23,
+ DIS_EMISSION_FUNCTION_BATTLEFIELD_SURVEILLANCE = 24,
+ DIS_EMISSION_FUNCTION_GROUND_CONTROL_APPROACH = 25,
+ DIS_EMISSION_FUNCTION_GROUND_CONTROL_INTERCEPT = 26,
+ DIS_EMISSION_FUNCTION_COASTAL_SURVEILLANCE = 27,
+ DIS_EMISSION_FUNCTION_DECOY_MIMIC = 28,
+ DIS_EMISSION_FUNCTION_DATA_TRANSMISSION = 29,
+ DIS_EMISSION_FUNCTION_EARTH_SURVEILLANCE = 30,
+ DIS_EMISSION_FUNCTION_GUN_LAY_BEACON = 31,
+ DIS_EMISSION_FUNCTION_GROUND_MAPPING = 32,
+ DIS_EMISSION_FUNCTION_HARBOR_SURVEILLANCE = 33,
+ /* enum 34 deleted */
+ DIS_EMISSION_FUNCTION_ILS = 35,
+ DIS_EMISSION_FUNCTION_IONOSPHERIC_SOUND = 36,
+ DIS_EMISSION_FUNCTION_INTERROGATOR = 37,
+ DIS_EMISSION_FUNCTION_BARRAGE_JAMMING = 38,
+ DIS_EMISSION_FUNCTION_CLICK_JAMMING = 39,
+ /* enum 40 deleted */
+ DIS_EMISSION_FUNCTION_FREQUENCY_SWEPT_JAMMING = 41,
+ DIS_EMISSION_FUNCTION_JAMMING = 42,
+ /* enum 43 deleted */
+ DIS_EMISSION_FUNCTION_PULSED_JAMMING = 44,
+ DIS_EMISSION_FUNCTION_REPEATER_JAMMING = 45,
+ DIS_EMISSION_FUNCTION_SPOT_NOISE_JAMMING = 46,
+ DIS_EMISSION_FUNCTION_MISSILE_ACQUISITION = 47,
+ DIS_EMISSION_FUNCTION_MISSILE_DOWNLINK = 48,
+ /* enum 49 deleted */
+ DIS_EMISSION_FUNCTION_SPACE = 50,
+ DIS_EMISSION_FUNCTION_SURFACE_SEARCH = 51,
+ DIS_EMISSION_FUNCTION_SHELL_TRACKING = 52,
+ /* enums 52-55 unassigned */
+ DIS_EMISSION_FUNCTION_TELEVISION = 56,
+ DIS_EMISSION_FUNCTION_UNKNOWN = 57,
+ DIS_EMISSION_FUNCTION_VIDEO_REMOTING = 58,
+ DIS_EMISSION_FUNCTION_EXPERIMENTAL_OR_TRAINING = 59,
+ DIS_EMISSION_FUNCTION_MISSILE_GUIDANCE = 60,
+ DIS_EMISSION_FUNCTION_MISSILE_HOMING = 61,
+ DIS_EMISSION_FUNCTION_MISSILE_TRACKING = 62,
+ /* enum 63 unassigned */
+ DIS_EMISSION_FUNCTION_JAMMING_NOISE = 64,
+ DIS_EMISSION_FUNCTION_JAMMING_DECEPTION = 65,
+ /* enum 66 deleted */
+ /* enums 67-70 unassigned */
+ DIS_EMISSION_FUNCTION_NAVIGATION_DISTANCE_MEASURING_EQUIPMENT = 71,
+ DIS_EMISSION_FUNCTION_TERRAIN_FOLLOWING = 72,
+ DIS_EMISSION_FUNCTION_WEATHER_AVOIDANCE = 73,
+ DIS_EMISSION_FUNCTION_PROXIMITY_FUSE = 74,
+ /* enum 75 deleted */
+ DIS_EMISSION_FUNCTION_RADIOSONDE = 76,
+ DIS_EMISSION_FUNCTION_SONOBUOY = 77,
+ DIS_EMISSION_FUNCTION_BATHYTHERMAL_SENSOR = 78,
+ DIS_EMISSION_FUNCTION_TOWED_COUNTER_MEASURE = 79,
+ /* enums 80-95 unassigned */
+ DIS_EMISSION_FUNCTION_WEAPON_NON_LETHAL = 96,
+ DIS_EMISSION_FUNCTION_WEAPON_LETHAL = 97
+} DIS_PDU_Emission_Function;
+
+static const value_string DIS_PDU_EmissionFunction_Strings[] =
+{
+ {DIS_EMISSION_FUNCTION_OTHER, "Other" },
+ {DIS_EMISSION_FUNCTION_MULTI_FUNCTION, "Multi-Function" },
+ {DIS_EMISSION_FUNCTION_EARLY_WARNING_SURVEILLANCE,
+ "Early Warning/Surveillance" },
+ {DIS_EMISSION_FUNCTION_HEIGHT_FINDING, "Height Finding" },
+ {DIS_EMISSION_FUNCTION_FIRE_CONTROL, "Fire Control" },
+ {DIS_EMISSION_FUNCTION_ACQUISITION_DETECTION, "Acquisition/Detection" },
+ {DIS_EMISSION_FUNCTION_TRACKING, "Tracking" },
+ {DIS_EMISSION_FUNCTION_GUIDANCE_ILLUMINATION, "Guidance/Illumination" },
+ {DIS_EMISSION_FUNCTION_FIRING_POINT_LAUNCH_POINT_LOCATION,
+ "Firing point/launch point location" },
+ {DIS_EMISSION_FUNCTION_RANGING, "Ranging" },
+ {DIS_EMISSION_FUNCTION_RADAR_ALTIMETER, "Radar Altimeter" },
+ {DIS_EMISSION_FUNCTION_IMAGING, "Imaging" },
+ {DIS_EMISSION_FUNCTION_MOTION_DETECTION, "Motion Detection" },
+ {DIS_EMISSION_FUNCTION_NAVIGATION, "Navigation" },
+ {DIS_EMISSION_FUNCTION_WEATHER_METEROLOGICAL, "Weather / Meterological"},
+ {DIS_EMISSION_FUNCTION_INSTRUMENTATION, "Instrumentation" },
+ {DIS_EMISSION_FUNCTION_IDENTIFICATION_CLASSIFICATION_INCLUDING_IFF,
+ "Identification/Classification (including IFF)" },
+ {DIS_EMISSION_FUNCTION_AAA_FIRE_CONTROL,
+ "AAA (Anti-Aircraft Artillery) Fire Control" },
+ {DIS_EMISSION_FUNCTION_AIR_SEARCH_BOMB, "Air Search/Bomb" },
+ {DIS_EMISSION_FUNCTION_AIR_INTERCEPT, "Air Intercept" },
+ {DIS_EMISSION_FUNCTION_ALTIMETER, "Altimeter" },
+ {DIS_EMISSION_FUNCTION_AIR_MAPPING, "Air Mapping" },
+ {DIS_EMISSION_FUNCTION_AIR_TRAFFIC_CONTROL, "Air Traffic Control" },
+ {DIS_EMISSION_FUNCTION_BEACON, "Beacon" },
+ {DIS_EMISSION_FUNCTION_BATTLEFIELD_SURVEILLANCE,
+ "Battlefield Surveillance" },
+ {DIS_EMISSION_FUNCTION_GROUND_CONTROL_APPROACH,
+ "Ground Control Approach" },
+ {DIS_EMISSION_FUNCTION_GROUND_CONTROL_INTERCEPT,
+ "Ground Control Intercept" },
+ {DIS_EMISSION_FUNCTION_COASTAL_SURVEILLANCE, "Coastal Surveillance" },
+ {DIS_EMISSION_FUNCTION_DECOY_MIMIC, "Decoy/Mimic" },
+ {DIS_EMISSION_FUNCTION_DATA_TRANSMISSION, "Data Transmission" },
+ {DIS_EMISSION_FUNCTION_EARTH_SURVEILLANCE, "Earth Surveillance" },
+ {DIS_EMISSION_FUNCTION_GUN_LAY_BEACON, "Gun Lay Beacon" },
+ {DIS_EMISSION_FUNCTION_GROUND_MAPPING, "Ground Mapping" },
+ {DIS_EMISSION_FUNCTION_HARBOR_SURVEILLANCE, "Harbor Surveillance" },
+ {DIS_EMISSION_FUNCTION_ILS,
+ "ILS (Instrument Landing System)" },
+ {DIS_EMISSION_FUNCTION_IONOSPHERIC_SOUND, "Ionospheric Sound" },
+ {DIS_EMISSION_FUNCTION_INTERROGATOR, "Interrogator" },
+ {DIS_EMISSION_FUNCTION_BARRAGE_JAMMING, "Barrage Jamming" },
+ {DIS_EMISSION_FUNCTION_CLICK_JAMMING, "Click Jamming" },
+ {DIS_EMISSION_FUNCTION_FREQUENCY_SWEPT_JAMMING,
+ "Frequency Swept Jamming" },
+ {DIS_EMISSION_FUNCTION_JAMMING, "Jamming" },
+ {DIS_EMISSION_FUNCTION_PULSED_JAMMING, "Pulsed Jamming" },
+ {DIS_EMISSION_FUNCTION_REPEATER_JAMMING, "Repeater Jamming" },
+ {DIS_EMISSION_FUNCTION_SPOT_NOISE_JAMMING, "Spot Noise Jamming" },
+ {DIS_EMISSION_FUNCTION_MISSILE_ACQUISITION, "Missile Acquisition" },
+ {DIS_EMISSION_FUNCTION_MISSILE_DOWNLINK, "Missile Downlink" },
+ {DIS_EMISSION_FUNCTION_SPACE, "Space" },
+ {DIS_EMISSION_FUNCTION_SURFACE_SEARCH, "Surface Search" },
+ {DIS_EMISSION_FUNCTION_SHELL_TRACKING, "Shell Tracking" },
+ {DIS_EMISSION_FUNCTION_TELEVISION, "Television" },
+ {DIS_EMISSION_FUNCTION_UNKNOWN, "Unknown" },
+ {DIS_EMISSION_FUNCTION_VIDEO_REMOTING, "Video Remoting" },
+ {DIS_EMISSION_FUNCTION_EXPERIMENTAL_OR_TRAINING,
+ "Experimental or training" },
+ {DIS_EMISSION_FUNCTION_MISSILE_GUIDANCE, "Missile Guidance" },
+ {DIS_EMISSION_FUNCTION_MISSILE_HOMING, "Missile Homing" },
+ {DIS_EMISSION_FUNCTION_MISSILE_TRACKING, "Missile Tracking" },
+ {DIS_EMISSION_FUNCTION_JAMMING_NOISE, "Jamming, noise" },
+ {DIS_EMISSION_FUNCTION_JAMMING_DECEPTION, "Jamming, deception" },
+ {DIS_EMISSION_FUNCTION_NAVIGATION_DISTANCE_MEASURING_EQUIPMENT,
+ "Navigation/Distance Measuring Equipment" },
+ {DIS_EMISSION_FUNCTION_TERRAIN_FOLLOWING, "Terrain Following" },
+ {DIS_EMISSION_FUNCTION_WEATHER_AVOIDANCE, "Weather Avoidance" },
+ {DIS_EMISSION_FUNCTION_PROXIMITY_FUSE, "Proximity Fuse" },
+ {DIS_EMISSION_FUNCTION_RADIOSONDE, "Radiosonde" },
+ {DIS_EMISSION_FUNCTION_SONOBUOY, "Sonobuoy" },
+ {DIS_EMISSION_FUNCTION_BATHYTHERMAL_SENSOR, "Bathythermal Sensor" },
+ {DIS_EMISSION_FUNCTION_TOWED_COUNTER_MEASURE, "Towed Counter Measure"},
+ {DIS_EMISSION_FUNCTION_WEAPON_NON_LETHAL, "Weapon, non-lethal" },
+ {DIS_EMISSION_FUNCTION_WEAPON_LETHAL, "Weapon, lethal" },
+ {0, NULL }
+};
+
+
+typedef enum
+{
+ DIS_BEAM_FUNCTION_OTHER = 0,
+ DIS_BEAM_FUNCTION_SEARCH = 1,
+ DIS_BEAM_FUNCTION_HEIGHT_FINDER = 2,
+ DIS_BEAM_FUNCTION_ACQUISITION = 3,
+ DIS_BEAM_FUNCTION_TRACKING = 4,
+ DIS_BEAM_FUNCTION_ACQUISITION_TRACKING = 5,
+ DIS_BEAM_FUNCTION_COMMAND_GUIDANCE = 6,
+ DIS_BEAM_FUNCTION_ILLUMINATION = 7,
+ DIS_BEAM_FUNCTION_RANGE_ONLY_RADAR = 8,
+ DIS_BEAM_FUNCTION_MISSILE_BEACON = 9,
+ DIS_BEAM_FUNCTION_MISSILE_FUZE = 10,
+ DIS_BEAM_FUNCTION_ACTIVE_RADAR_MISSILE_SEEKER = 11,
+ DIS_BEAM_FUNCTION_JAMMER = 12,
+ DIS_BEAM_FUNCTION_IFF = 13,
+ DIS_BEAM_FUNCTION_NAVIGATIONAL_WEATHER = 14,
+ DIS_BEAM_FUNCTION_METEOROLOGICAL = 15,
+ DIS_BEAM_FUNCTION_DATA_TRANSMISSION = 16,
+ DIS_BEAM_FUNCTION_NAVIGATIONAL_DIRECTIONAL_BEACON = 17
+} DIS_PDU_Beam_Function;
+
+static const value_string DIS_PDU_BeamFunction_Strings[] =
+{
+ {DIS_BEAM_FUNCTION_OTHER, "Other" },
+ {DIS_BEAM_FUNCTION_SEARCH, "Search" },
+ {DIS_BEAM_FUNCTION_HEIGHT_FINDER, "Height finder" },
+ {DIS_BEAM_FUNCTION_ACQUISITION, "Acquisition" },
+ {DIS_BEAM_FUNCTION_TRACKING, "Tracking" },
+ {DIS_BEAM_FUNCTION_ACQUISITION_TRACKING,"Acquisition and tracking" },
+ {DIS_BEAM_FUNCTION_COMMAND_GUIDANCE, "Command guidance" },
+ {DIS_BEAM_FUNCTION_ILLUMINATION, "Illumination" },
+ {DIS_BEAM_FUNCTION_RANGE_ONLY_RADAR, "Range only radar" },
+ {DIS_BEAM_FUNCTION_MISSILE_BEACON, "Missile beacon" },
+ {DIS_BEAM_FUNCTION_MISSILE_FUZE, "Missile fuze" },
+ {DIS_BEAM_FUNCTION_ACTIVE_RADAR_MISSILE_SEEKER,
+ "Active radar missile seeker" },
+ {DIS_BEAM_FUNCTION_JAMMER, "Jammer" },
+ {DIS_BEAM_FUNCTION_IFF, "IFF" },
+ {DIS_BEAM_FUNCTION_NAVIGATIONAL_WEATHER,"Navigational/Weather" },
+ {DIS_BEAM_FUNCTION_METEOROLOGICAL, "Meteorological" },
+ {DIS_BEAM_FUNCTION_DATA_TRANSMISSION, "Data transmission" },
+ {DIS_BEAM_FUNCTION_NAVIGATIONAL_DIRECTIONAL_BEACON,
+ "Navigational directional beacon" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationAmplitude_Strings[] =
+{
+ {0, "Other" },
+ {1, "AFSK (Audio Frequency Shift Keying)" },
+ {2, "AM (Amplitude Modulation)" },
+ {3, "CW (Continuous Wave Modulation)" },
+ {4, "DSB (Double Sideband)" },
+ {5, "ISB (Independent Sideband)" },
+ {6, "LSB (Single Band Suppressed Carrier, Lower Sideband Mode)" },
+ {7, "SSB-Full (Single Sideband Full Carrier)" },
+ {8, "SSB-Reduc (Single Band Reduced Carrier)" },
+ {9, "USB (Single Band Suppressed Carrier, Upper Sideband Mode)" },
+ {10, "VSB (Vestigial Sideband)" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationAmpAndAngle_Strings[] =
+{
+ {0, "Other" },
+ {1, "Amplitude and Angle" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationAngle_Strings[] =
+{
+ {0, "Other" },
+ {1, "FM (Frequency Modulation)" },
+ {2, "FSK (Frequency Shift Keying)" },
+ {3, "PM (Phase Modulation)" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationCombination_Strings[] =
+{
+ {0, "Other" },
+ {1, "Amplitude-Angle-Pulse" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationPulse_Strings[] =
+{
+ {0, "Other" },
+ {1, "Pulse" },
+ {2, "X Band TACAN Pulse" },
+ {3, "Y Band TACAN Pulse" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationUnmodulated_Strings[] =
+{
+ {0, "Other" },
+ {1, "Continuous Wave emission of an unmodulated carrier" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_DetailModulationCPSM_Strings[] =
+{
+ {0, "Other" },
+ {0, NULL }
+};
+static const value_string DIS_PDU_ModParamMsgStart_Strings[] =
+{
+ {0, "Not start of message" },
+ {1, "Start of Message" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_ModParamClrChannel_Strings[] =
+{
+ {0, "Not clear channel" },
+ {1, "Clear channel" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_TSAllocationFidelity_Strings[] =
+{
+ {0, "Time Slot Allocation Fidelity Level 0" },
+ {1, "Time Slot Allocation Fidelity Level 1" },
+ {2, "Time Slot Allocation Fidelity Level 2" },
+ {3, "Time Slot Allocation Fidelity Level 3" },
+ {4, "Time Slot Allocation Fidelity Level 4" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_TerminalPrimaryMode_Strings[] =
+{
+ {1, "NTR" },
+ {2, "JTIDS Unit Participant" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_TerminalSecondaryMode_Strings[] =
+{
+ {0, "None" },
+ {1, "Net Position Reference" },
+ {2, "Primary Navigation Controller" },
+ {3, "Secondary Navigation Controller" },
+ {0, NULL }
+};
+
+/* http://discussions.sisostds.org/threadview.aspx?fid=18&threadid=53172 */
+static const value_string DIS_PDU_ModParamSyncState_Strings[] =
+{
+ {2, "Coarse Synchronization" },
+ {3, "Fine Synchronization" },
+ {0, NULL }
+};
+
+typedef enum
+{
+ DIS_SYSTEM_MOD_OTHER = 0,
+ DIS_SYSTEM_MOD_GENERIC = 1,
+ DIS_SYSTEM_MOD_HQ = 2,
+ DIS_SYSTEM_MOD_HQII = 3,
+ DIS_SYSTEM_MOD_HQIIA = 4,
+ DIS_SYSTEM_MOD_SINCGARS = 5,
+ DIS_SYSTEM_MOD_CCTT_SINCGARS = 6,
+ DIS_SYSTEM_MOD_EPLRS = 7,
+ DIS_SYSTEM_MOD_JTIDS_MIDS = 8
+} DIS_PDU_SYSTEM_MODULATION_TYPE;
+
+static const value_string DIS_PDU_SystemModulation_Strings[] =
+{
+ {DIS_SYSTEM_MOD_OTHER, "Other" },
+ {DIS_SYSTEM_MOD_GENERIC, "Generic" },
+ {DIS_SYSTEM_MOD_HQ, "HQ" },
+ {DIS_SYSTEM_MOD_HQII, "HQII" },
+ {DIS_SYSTEM_MOD_HQIIA, "HQIIA" },
+ {DIS_SYSTEM_MOD_SINCGARS, "SINCGARS" },
+ {DIS_SYSTEM_MOD_CCTT_SINCGARS, "CCTT SINCGARS" },
+ {DIS_SYSTEM_MOD_EPLRS, "EPLRS (Enhanced Position Location Reporting System)" },
+ {DIS_SYSTEM_MOD_JTIDS_MIDS, "JTIDS/MIDS" },
+ {0, NULL }
+};
+
+static const value_string DIS_PDU_CryptoSystem_Strings[] =
+{
+ {0, "Other" },
+ {1, "KY-28" },
+ {2, "VINSON (KY-57, KY-58, SINCGARS ICOM)" },
+ {3, "Narrow Spectrum Secure Voice (NSVE)" },
+ {4, "Wide Spectrum Secure Voice (WSVE)" },
+ {0, NULL }
+};
+
+typedef enum
+{
+ DIS_ACKNOWLEDGE_FLAG_CREATE_ENTITY = 1,
+ DIS_ACKNOWLEDGE_FLAG_REMOVE_ENTITY = 2,
+ DIS_ACKNOWLEDGE_FLAG_START_RESUME = 3,
+ DIS_ACKNOWLEDGE_FLAG_STOP_FREEZE = 4,
+ DIS_ACKNOWLEDGE_FLAG_TRANSFER_CONTROL_REQUEST = 5
+} DIS_PDU_AcknowledgeFlag;
+
+static const value_string DIS_PDU_AcknowledgeFlag_Strings[] =
+{
+ { DIS_ACKNOWLEDGE_FLAG_CREATE_ENTITY, "Create Entity" },
+ { DIS_ACKNOWLEDGE_FLAG_REMOVE_ENTITY, "Remove Entity" },
+ { DIS_ACKNOWLEDGE_FLAG_START_RESUME, "Start Resume" },
+ { DIS_ACKNOWLEDGE_FLAG_STOP_FREEZE, "Stop Freeze" },
+ { DIS_ACKNOWLEDGE_FLAG_TRANSFER_CONTROL_REQUEST, "Transfer Control Request" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_ACTION_ID_OTHER = 0,
+ DIS_ACTION_ID_LOCAL_STORAGE_OF_THE_REQUESTED_INFORMATION = 1,
+ DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_AMMUNITION = 2,
+ DIS_ACTION_ID_INFORM_SM_OF_EVENT_KILLED_IN_ACTION = 3,
+ DIS_ACTION_ID_INFORM_SM_OF_EVENT_DAMAGE = 4,
+ DIS_ACTION_ID_INFORM_SM_OF_EVENT_MOBILITY_DISABLED = 5,
+ DIS_ACTION_ID_INFORM_SM_OF_EVENT_FIRE_DISABLED = 6,
+ DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_FUEL = 7,
+ DIS_ACTION_ID_RECALL_CHECKPOINT_DATA = 8,
+ DIS_ACTION_ID_RECALL_INITIAL_PARAMETERS = 9,
+ DIS_ACTION_ID_INITIATE_TETHER_LEAD = 10,
+ DIS_ACTION_ID_INITIATE_TETHER_FOLLOW = 11,
+ DIS_ACTION_ID_UNTETHER = 12,
+ DIS_ACTION_ID_INITIATE_SERVICE_STATION_RESUPPLY = 13,
+ DIS_ACTION_ID_INITIATE_TAILGATE_RESUPPLY = 14,
+ DIS_ACTION_ID_INITIATE_HITCH_LEAD = 15,
+ DIS_ACTION_ID_INITIATE_HITCH_FOLLOW = 16,
+ DIS_ACTION_ID_UNHITCH = 17,
+ DIS_ACTION_ID_MOUNT = 18,
+ DIS_ACTION_ID_DISMOUNT = 19,
+ DIS_ACTION_ID_START_DRC = 20,
+ DIS_ACTION_ID_STOP_DRC = 21,
+ DIS_ACTION_ID_DATA_QUERY = 22,
+ DIS_ACTION_ID_STATUS_REQUEST = 23,
+ DIS_ACTION_ID_SEND_OBJECT_STATE_DATA = 24,
+ DIS_ACTION_ID_RECONSTITUTE = 25,
+ DIS_ACTION_ID_LOCK_SITE_CONFIGURATION = 26,
+ DIS_ACTION_ID_UNLOCK_SITE_CONFIGURATION = 27,
+ DIS_ACTION_ID_UPDATE_SITE_CONFIGURATION = 28,
+ DIS_ACTION_ID_QUERY_SITE_CONFIGURATION = 29,
+ DIS_ACTION_ID_TETHERING_INFORMATION = 30,
+ DIS_ACTION_ID_MOUNT_INTENT = 31,
+ DIS_ACTION_ID_ACCEPT_SUBSCRIPTION = 33,
+ DIS_ACTION_ID_UNSUBSCRIBE = 34,
+ DIS_ACTION_ID_TELEPORT_ENTITY = 35,
+ DIS_ACTION_ID_CHANGE_AGGREGATE_STATE = 36,
+ DIS_ACTION_ID_REQUEST_START_PDU = 37,
+ DIS_ACTION_ID_WAKEUP_GET_READY_FOR_INITIALIZATION = 38,
+ DIS_ACTION_ID_INITIALIZE_INTERNAL_PARAMETERS = 39,
+ DIS_ACTION_ID_SEND_PLAN_DATA = 40,
+ DIS_ACTION_ID_SYNCHRONIZE_INTERNAL_CLOCKS = 41,
+ DIS_ACTION_ID_RUN = 42,
+ DIS_ACTION_ID_SAVE_INTERNAL_PARAMETERS = 43,
+ DIS_ACTION_ID_SIMULATE_MALFUNCTION = 44,
+ DIS_ACTION_ID_JOIN_EXERCISE = 45,
+ DIS_ACTION_ID_RESIGN_EXERCISE = 46,
+ DIS_ACTION_ID_TIME_ADVANCE = 47,
+ DIS_ACTION_ID_COMMAND_FROM_SIMULATOR = 48,
+ DIS_ACTION_ID_SLING_LOAD_CAPABILITY_REQUEST = 4300,
+ DIS_ACTION_ID_SLING_ATTACH_REQUEST = 4301,
+ DIS_ACTION_ID_SLING_RELEASE_REQUEST = 4302,
+ DIS_ACTION_ID_AIRMOUNT_MOUNT_REQUEST = 4303,
+ DIS_ACTION_ID_AIRMOUNT_DISMOUNT_REQUEST = 4304,
+ DIS_ACTION_ID_AIRMOUNT_INFO_REQUEST = 4305
+} DIS_PDU_ActionId;
+
+static const value_string DIS_PDU_ActionId_Strings[] =
+{
+ { DIS_ACTION_ID_OTHER, "Other" },
+ { DIS_ACTION_ID_LOCAL_STORAGE_OF_THE_REQUESTED_INFORMATION, "LocalStorageOfTheRequestedInformation" },
+ { DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_AMMUNITION, "InformSMofEventRanOutOfAmmunition" },
+ { DIS_ACTION_ID_INFORM_SM_OF_EVENT_KILLED_IN_ACTION, "InformSMofEventKilledInAction" },
+ { DIS_ACTION_ID_INFORM_SM_OF_EVENT_DAMAGE, "InformSMofEventDamage" },
+ { DIS_ACTION_ID_INFORM_SM_OF_EVENT_MOBILITY_DISABLED, "InformSMofEventMobilityDisabled" },
+ { DIS_ACTION_ID_INFORM_SM_OF_EVENT_FIRE_DISABLED, "InformSMofEventFireDisabled" },
+ { DIS_ACTION_ID_INFORM_SM_OF_EVENT_RAN_OUT_OF_FUEL, "InformSMofEventRanOutOfFuel" },
+ { DIS_ACTION_ID_RECALL_CHECKPOINT_DATA, "RecallCheckpointData" },
+ { DIS_ACTION_ID_RECALL_INITIAL_PARAMETERS, "RecallInitialParameters" },
+ { DIS_ACTION_ID_INITIATE_TETHER_LEAD, "InitiateTetherLead" },
+ { DIS_ACTION_ID_INITIATE_TETHER_FOLLOW, "InitiateTetherFollow" },
+ { DIS_ACTION_ID_UNTETHER, "Untether" },
+ { DIS_ACTION_ID_INITIATE_SERVICE_STATION_RESUPPLY, "InitiateServiceStationResupply" },
+ { DIS_ACTION_ID_INITIATE_TAILGATE_RESUPPLY, "InitiateTailgateResupply" },
+ { DIS_ACTION_ID_INITIATE_HITCH_LEAD, "InitiateHitchLead" },
+ { DIS_ACTION_ID_INITIATE_HITCH_FOLLOW, "InitiateHitchFollow" },
+ { DIS_ACTION_ID_UNHITCH, "Unhitch" },
+ { DIS_ACTION_ID_MOUNT, "Mount" },
+ { DIS_ACTION_ID_DISMOUNT, "Dismount" },
+ { DIS_ACTION_ID_START_DRC, "StartDRC" },
+ { DIS_ACTION_ID_STOP_DRC, "StopDRC" },
+ { DIS_ACTION_ID_DATA_QUERY, "DataQuery" },
+ { DIS_ACTION_ID_STATUS_REQUEST, "StatusRequest" },
+ { DIS_ACTION_ID_SEND_OBJECT_STATE_DATA, "SendObjectStateData" },
+ { DIS_ACTION_ID_RECONSTITUTE, "Reconstitute" },
+ { DIS_ACTION_ID_LOCK_SITE_CONFIGURATION, "LockSiteConfiguration" },
+ { DIS_ACTION_ID_UNLOCK_SITE_CONFIGURATION, "UnlockSiteConfiguration" },
+ { DIS_ACTION_ID_UPDATE_SITE_CONFIGURATION, "UpdateSiteConfiguration" },
+ { DIS_ACTION_ID_QUERY_SITE_CONFIGURATION, "QuerySiteConfiguration" },
+ { DIS_ACTION_ID_TETHERING_INFORMATION, "TetheringInformation" },
+ { DIS_ACTION_ID_MOUNT_INTENT, "MountIntent" },
+ { DIS_ACTION_ID_ACCEPT_SUBSCRIPTION, "AcceptSubscription" },
+ { DIS_ACTION_ID_UNSUBSCRIBE, "Unsubscribe" },
+ { DIS_ACTION_ID_TELEPORT_ENTITY, "TeleportEntity" },
+ { DIS_ACTION_ID_CHANGE_AGGREGATE_STATE, "ChangeAggregateState" },
+ { DIS_ACTION_ID_REQUEST_START_PDU, "RequestStartPdu" },
+ { DIS_ACTION_ID_WAKEUP_GET_READY_FOR_INITIALIZATION, "WakeupGetReadyForInitialization" },
+ { DIS_ACTION_ID_INITIALIZE_INTERNAL_PARAMETERS, "InitializeInternalParameters" },
+ { DIS_ACTION_ID_SEND_PLAN_DATA, "SendPlanData" },
+ { DIS_ACTION_ID_SYNCHRONIZE_INTERNAL_CLOCKS, "SynchronizeInternalClocks" },
+ { DIS_ACTION_ID_RUN, "Run" },
+ { DIS_ACTION_ID_SAVE_INTERNAL_PARAMETERS, "SaveInternalParameters" },
+ { DIS_ACTION_ID_SIMULATE_MALFUNCTION, "SimulateMalfunction" },
+ { DIS_ACTION_ID_JOIN_EXERCISE, "JoinExercise" },
+ { DIS_ACTION_ID_RESIGN_EXERCISE, "ResignExercise" },
+ { DIS_ACTION_ID_TIME_ADVANCE, "TimeAdvance" },
+ { DIS_ACTION_ID_COMMAND_FROM_SIMULATOR, "CommandFromSimulator" },
+ { DIS_ACTION_ID_SLING_LOAD_CAPABILITY_REQUEST, "SlingLoadCapabilityRequest" },
+ { DIS_ACTION_ID_SLING_ATTACH_REQUEST, "SlingAttachRequest" },
+ { DIS_ACTION_ID_SLING_RELEASE_REQUEST, "SlingReleaseRequest" },
+ { DIS_ACTION_ID_AIRMOUNT_MOUNT_REQUEST, "AirmountMountRequest" },
+ { DIS_ACTION_ID_AIRMOUNT_DISMOUNT_REQUEST, "AirmountDismountRequest" },
+ { DIS_ACTION_ID_AIRMOUNT_INFO_REQUEST, "AirmountInfoRequest" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_APPLICATION_GENERAL_STATUS_UNKNOWN = 1,
+ DIS_APPLICATION_GENERAL_STATUS_FUNCTIONAL = 2,
+ DIS_APPLICATION_GENERAL_STATUS_DEGRADED_BUT_FUNCTIONAL = 3,
+ DIS_APPLICATION_GENERAL_STATUS_NOT_FUNCTIONAL = 4
+} DIS_PDU_ApplicationGeneralStatus;
+
+static const value_string DIS_PDU_ApplicationGeneralStatus_Strings[] =
+{
+ { DIS_APPLICATION_GENERAL_STATUS_UNKNOWN, "Unknown" },
+ { DIS_APPLICATION_GENERAL_STATUS_FUNCTIONAL, "Functional" },
+ { DIS_APPLICATION_GENERAL_STATUS_DEGRADED_BUT_FUNCTIONAL, "Degraded But Functional" },
+ { DIS_APPLICATION_GENERAL_STATUS_NOT_FUNCTIONAL, "Not Functional" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_APPLICATION_STATUS_TYPE_NOT_SPECIFIED = 0,
+ DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_USER = 10,
+ DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_SYSTEM = 11,
+ DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IO = 12,
+ DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IDLE = 13,
+ DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_STEAL = 14,
+ DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_NICE = 15,
+ DIS_APPLICATION_STATUS_TYPE_MEMORY_FREE = 50,
+ DIS_APPLICATION_STATUS_TYPE_MEMORY_USED = 51,
+ DIS_APPLICATION_STATUS_TYPE_SWAP_FREE = 60,
+ DIS_APPLICATION_STATUS_TYPE_SWAP_USED = 61,
+ DIS_APPLICATION_STATUS_TYPE_SWAP_CACHED = 62,
+ DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_PACKETS_SEC = 100,
+ DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_BYTES_SEC = 101,
+ DIS_APPLICATION_STATUS_TYPE_RECEIVED_PACKETS_SEC = 110,
+ DIS_APPLICATION_STATUS_TYPE_RECEIVED_BYTES_SEC = 111,
+ DIS_APPLICATION_STATUS_TYPE_NICE_LEVEL = 150
+} DIS_PDU_ApplicationStatusType;
+
+static const value_string DIS_PDU_ApplicationStatusType_Strings[] =
+{
+ { DIS_APPLICATION_STATUS_TYPE_NOT_SPECIFIED, "Not Specified" },
+ { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_USER, "Cpu Usage User" },
+ { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_SYSTEM, "Cpu Usage System" },
+ { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IO, "Cpu Usage Io" },
+ { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_IDLE, "Cpu Usage Idle" },
+ { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_STEAL, "Cpu Usage Steal" },
+ { DIS_APPLICATION_STATUS_TYPE_CPU_USAGE_NICE, "Cpu Usage Nice" },
+ { DIS_APPLICATION_STATUS_TYPE_MEMORY_FREE, "Memory Free" },
+ { DIS_APPLICATION_STATUS_TYPE_MEMORY_USED, "Memory Used" },
+ { DIS_APPLICATION_STATUS_TYPE_SWAP_FREE, "Swap Free" },
+ { DIS_APPLICATION_STATUS_TYPE_SWAP_USED, "Swap Used" },
+ { DIS_APPLICATION_STATUS_TYPE_SWAP_CACHED, "Swap Cached" },
+ { DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_PACKETS_SEC, "Transmitted Packets Sec" },
+ { DIS_APPLICATION_STATUS_TYPE_TRANSMITTED_BYTES_SEC, "Transmitted Bytes Sec" },
+ { DIS_APPLICATION_STATUS_TYPE_RECEIVED_PACKETS_SEC, "Received Packets Sec" },
+ { DIS_APPLICATION_STATUS_TYPE_RECEIVED_BYTES_SEC, "Received Bytes Sec" },
+ { DIS_APPLICATION_STATUS_TYPE_NICE_LEVEL, "Nice Level" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_APPLICATION_TYPE_OTHER = 0,
+ DIS_APPLICATION_TYPE_RESOURCE_MANAGER = 1,
+ DIS_APPLICATION_TYPE_SIMULATION_MANAGER = 2,
+ DIS_APPLICATION_TYPE_GATEWAY = 3,
+ DIS_APPLICATION_TYPE_STEALTH = 4,
+ DIS_APPLICATION_TYPE_TACTICAL_INTERNET_INTERFACE = 5
+} DIS_PDU_ApplicationType;
+
+static const value_string DIS_PDU_ApplicationType_Strings[] =
+{
+ { DIS_APPLICATION_TYPE_OTHER, "Other" },
+ { DIS_APPLICATION_TYPE_RESOURCE_MANAGER, "Resource Manager" },
+ { DIS_APPLICATION_TYPE_SIMULATION_MANAGER, "Simulation Manager" },
+ { DIS_APPLICATION_TYPE_GATEWAY, "Gateway" },
+ { DIS_APPLICATION_TYPE_STEALTH, "Stealth" },
+ { DIS_APPLICATION_TYPE_TACTICAL_INTERNET_INTERFACE, "Tactical Internet Interface" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_DETONATION_RESULT_OTHER = 0,
+ DIS_DETONATION_RESULT_ENTITY_IMPACT = 1,
+ DIS_DETONATION_RESULT_ENTITY_PROXIMATE_DETONATION = 2,
+ DIS_DETONATION_RESULT_GROUND_IMPACT = 3,
+ DIS_DETONATION_RESULT_GROUND_PROXIMATE_DETONATION = 4,
+ DIS_DETONATION_RESULT_DETONATION = 5,
+ DIS_DETONATION_RESULT_NONE_DUD = 6,
+ DIS_DETONATION_RESULT_HE_HIT_SMALL = 7,
+ DIS_DETONATION_RESULT_HE_HIT_MEDIUM = 8,
+ DIS_DETONATION_RESULT_HE_HIT_LARGE = 9,
+ DIS_DETONATION_RESULT_ARMOR_PIERCING_HIT = 10,
+ DIS_DETONATION_RESULT_DIRT_BLAST_SMALL = 11,
+ DIS_DETONATION_RESULT_DIRT_BLAST_MEDIUM = 12,
+ DIS_DETONATION_RESULT_DIRT_BLAST_LARGE = 13,
+ DIS_DETONATION_RESULT_WATER_BLAST_SMALL = 14,
+ DIS_DETONATION_RESULT_WATER_BLAST_MEDIUM = 15,
+ DIS_DETONATION_RESULT_WATER_BLAST_LARGE = 16,
+ DIS_DETONATION_RESULT_AIR_HIT = 17,
+ DIS_DETONATION_RESULT_BUILDING_HIT_SMALL = 18,
+ DIS_DETONATION_RESULT_BUILDING_HIT_MEDIUM = 19,
+ DIS_DETONATION_RESULT_BUILDING_HIT_LARGE = 20,
+ DIS_DETONATION_RESULT_MINE_CLEARING_LINE_CHARGE = 21,
+ DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_IMPACT = 22,
+ DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_PROXIMATE_DETONATION = 23,
+ DIS_DETONATION_RESULT_WATER_IMPACT = 24,
+ DIS_DETONATION_RESULT_AIR_BURST = 25,
+ DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1 = 26,
+ DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2 = 27,
+ DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_3 = 28,
+ DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1_AFTER_FOF = 29,
+ DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2_AFTER_FOF = 30,
+ DIS_DETONATION_RESULT_MISS_DUE_TO_FOF = 31,
+ DIS_DETONATION_RESULT_MISS_DUE_TO_ENDGAME_FAILURE = 32,
+ DIS_DETONATION_RESULT_MISS_DUE_TO_FOF_AND_ENDGAME_FAILURE = 33
+} DIS_PDU_DetonationResult;
+
+static const value_string DIS_PDU_DetonationResult_Strings[] =
+{
+ { DIS_DETONATION_RESULT_OTHER, "Other" },
+ { DIS_DETONATION_RESULT_ENTITY_IMPACT, "Entity impact" },
+ { DIS_DETONATION_RESULT_ENTITY_PROXIMATE_DETONATION, "Entity proximate detonation" },
+ { DIS_DETONATION_RESULT_GROUND_IMPACT, "Ground impact" },
+ { DIS_DETONATION_RESULT_GROUND_PROXIMATE_DETONATION, "Ground proximate detonation" },
+ { DIS_DETONATION_RESULT_DETONATION, "Detonation" },
+ { DIS_DETONATION_RESULT_NONE_DUD, "None or no detonation (dud)" },
+ { DIS_DETONATION_RESULT_HE_HIT_SMALL, "HE hit, small" },
+ { DIS_DETONATION_RESULT_HE_HIT_MEDIUM, "HE hit, medium" },
+ { DIS_DETONATION_RESULT_HE_HIT_LARGE, "HE hit, large" },
+ { DIS_DETONATION_RESULT_ARMOR_PIERCING_HIT, "Armor-piercing hit" },
+ { DIS_DETONATION_RESULT_DIRT_BLAST_SMALL, "Dirt blast, small" },
+ { DIS_DETONATION_RESULT_DIRT_BLAST_MEDIUM, "Dirt blast, medium" },
+ { DIS_DETONATION_RESULT_DIRT_BLAST_LARGE, "Dirt blast, large" },
+ { DIS_DETONATION_RESULT_WATER_BLAST_SMALL, "Water blast, small" },
+ { DIS_DETONATION_RESULT_WATER_BLAST_MEDIUM, "Water blast, medium" },
+ { DIS_DETONATION_RESULT_WATER_BLAST_LARGE, "Water blast, large" },
+ { DIS_DETONATION_RESULT_AIR_HIT, "Air hit" },
+ { DIS_DETONATION_RESULT_BUILDING_HIT_SMALL, "Building hit, small" },
+ { DIS_DETONATION_RESULT_BUILDING_HIT_MEDIUM, "Building hit, medium" },
+ { DIS_DETONATION_RESULT_BUILDING_HIT_LARGE, "Building hit, large" },
+ { DIS_DETONATION_RESULT_MINE_CLEARING_LINE_CHARGE, "Mine-clearing line charge" },
+ { DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_IMPACT, "Environment object impact" },
+ { DIS_DETONATION_RESULT_ENVIRONMENT_OBJECT_PROXIMATE_DETONATION, "Environment object proximate detonation" },
+ { DIS_DETONATION_RESULT_WATER_IMPACT, "Water impact" },
+ { DIS_DETONATION_RESULT_AIR_BURST, "Air burst" },
+ { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1, "Kill with fragment type 1" },
+ { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2, "Kill with fragment type 2" },
+ { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_3, "Kill with fragment type 3" },
+ { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_1_AFTER_FOF, "Kill with fragment type 1 after fly-out failure" },
+ { DIS_DETONATION_RESULT_KILL_WITH_FRAGMENT_TYPE_2_AFTER_FOF, "Kill with fragment type 2 after fly-out failure" },
+ { DIS_DETONATION_RESULT_MISS_DUE_TO_FOF, "Miss due to fly-out failure" },
+ { DIS_DETONATION_RESULT_MISS_DUE_TO_ENDGAME_FAILURE, "Miss due to end-game failure" },
+ { DIS_DETONATION_RESULT_MISS_DUE_TO_FOF_AND_ENDGAME_FAILURE, "Miss due to fly-out and end-game failure" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_CONTROL_ID_OTHER = 0,
+ DIS_CONTROL_ID_SHUTDOWN = 1,
+ DIS_CONTROL_ID_DATA_QUERY = 2,
+ DIS_CONTROL_ID_DATA = 3,
+ DIS_CONTROL_ID_SET_DATA = 4,
+ DIS_CONTROL_ID_ADD_DATA = 5,
+ DIS_CONTROL_ID_REMOVE_DATA = 6,
+ DIS_CONTROL_ID_STATUS = 7
+} DIS_PDU_ControlId;
+
+static const value_string DIS_PDU_ControlId_Strings[] =
+{
+ { DIS_CONTROL_ID_OTHER, "Other" },
+ { DIS_CONTROL_ID_SHUTDOWN, "Shutdown" },
+ { DIS_CONTROL_ID_DATA_QUERY, "Data Query" },
+ { DIS_CONTROL_ID_DATA, "Data" },
+ { DIS_CONTROL_ID_SET_DATA, "Set Data" },
+ { DIS_CONTROL_ID_ADD_DATA, "Add Data" },
+ { DIS_CONTROL_ID_REMOVE_DATA, "Remove Data" },
+ { DIS_CONTROL_ID_STATUS, "Status" },
+ { 0, NULL }
+};
+
+
+typedef enum
+{
+ DIS_FROZEN_BEHAVIOR_RUN_INTERNAL_SIMULATION_CLOCK = 0,
+ DIS_FROZEN_BEHAVIOR_TRANSMIT_PDUS = 1,
+ DIS_FROZEN_BEHAVIOR_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES = 2,
+ DIS_FROZEN_BEHAVIOR_CONTINUE_TRANSMIT_PDU = 3,
+ DIS_FROZEN_BEHAVIOR_CEASE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES = 4,
+ DIS_FROZEN_BEHAVIOR_CONTINUE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES = 5
+} DIS_PDU_FrozenBehavior;
+
+static const value_string DIS_PDU_FrozenBehavior_Strings[] =
+{
+ { DIS_FROZEN_BEHAVIOR_RUN_INTERNAL_SIMULATION_CLOCK, "Run Internal Simulation Clock" },
+ { DIS_FROZEN_BEHAVIOR_TRANSMIT_PDUS, "Transmit PDUs" },
+ { DIS_FROZEN_BEHAVIOR_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES, "Update Sim Models Of Other Entities" },
+ { DIS_FROZEN_BEHAVIOR_CONTINUE_TRANSMIT_PDU, "Continue Transmit PDU" },
+ { DIS_FROZEN_BEHAVIOR_CEASE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES, "Cease Update Sim Models Of Other Entities" },
+ { DIS_FROZEN_BEHAVIOR_CONTINUE_UPDATE_SIM_MODELS_OF_OTHER_ENTITIES, "Continue Update Sim Models Of Other Entities" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_PARAM_TYPE_DESIG_ARTICULATED_PART = 0,
+ DIS_PARAM_TYPE_DESIG_ATTACHED_PART = 1,
+ DIS_PARAM_TYPE_DESIG_SEPARATION = 2,
+ DIS_PARAM_TYPE_DESIG_ENTITY_TYPE = 3,
+ DIS_PARAM_TYPE_DESIG_ENTITY_ASSOCIATION = 4,
+ DIS_PARAM_TYPE_DESIG_ANTENNA_LOCATION = 5,
+ DIS_PARAM_TYPE_DESIG_EXTENDED_PLATFORM_APPEARANCE = 20,
+ DIS_PARAM_TYPE_DESIG_EXTENDED_LIFEFORM_APPEARANCE = 21,
+ DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_LIGHTS = 22,
+ DIS_PARAM_TYPE_DESIG_CHEVRON_MARKING = 23,
+ DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_THERMAL_SENSOR = 24,
+ DIS_PARAM_TYPE_DESIG_ENTITY_OFFSET = 25,
+ DIS_PARAM_TYPE_DESIG_DEAD_RECKONING = 26,
+ DIS_PARAM_TYPE_DESIG_ARMY_TASK_ORGANIZATION = 27,
+ DIS_PARAM_TYPE_DESIG_HEAD_GAZING_WEAPON_AIMING = 28,
+ DIS_PARAM_TYPE_DESIG_LIFEFORM_ACTION_SEQUENCE = 29,
+ DIS_PARAM_TYPE_DESIG_LEGACY_EXTENDED_LIFEFORM_APPEARANCE = 30
+} DIS_PDU_ParameterTypeDesignator;
+
+static const value_string DIS_PDU_ParameterTypeDesignator_Strings[] =
+{
+ { DIS_PARAM_TYPE_DESIG_ARTICULATED_PART, "Articulated Part" },
+ { DIS_PARAM_TYPE_DESIG_ATTACHED_PART, "Attached Part" },
+ { DIS_PARAM_TYPE_DESIG_SEPARATION, "Separation" },
+ { DIS_PARAM_TYPE_DESIG_ENTITY_TYPE, "Entity Type" },
+ { DIS_PARAM_TYPE_DESIG_ENTITY_ASSOCIATION, "Entity Association" },
+ { DIS_PARAM_TYPE_DESIG_ANTENNA_LOCATION, "Antenna Location" },
+ { DIS_PARAM_TYPE_DESIG_EXTENDED_PLATFORM_APPEARANCE, "Extended Platform Appearance" },
+ { DIS_PARAM_TYPE_DESIG_EXTENDED_LIFEFORM_APPEARANCE, "Extended Lifeform Appearance" },
+ { DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_LIGHTS, "High Fidelity Lights" },
+ { DIS_PARAM_TYPE_DESIG_CHEVRON_MARKING, "Chevron Marking" },
+ { DIS_PARAM_TYPE_DESIG_HIGH_FIDELITY_THERMAL_SENSOR, "High Fidelity Thermal Sensor" },
+ { DIS_PARAM_TYPE_DESIG_ENTITY_OFFSET, "Entity Offset" },
+ { DIS_PARAM_TYPE_DESIG_DEAD_RECKONING, "Dead Reckoning" },
+ { DIS_PARAM_TYPE_DESIG_ARMY_TASK_ORGANIZATION, "Army Task Organization" },
+ { DIS_PARAM_TYPE_DESIG_HEAD_GAZING_WEAPON_AIMING, "Head Gazing Weapon Aiming" },
+ { DIS_PARAM_TYPE_DESIG_LIFEFORM_ACTION_SEQUENCE, "Lifeform Action Sequence" },
+ { DIS_PARAM_TYPE_DESIG_LEGACY_EXTENDED_LIFEFORM_APPEARANCE, "Legacy Extended Lifeform Appearance" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_REASON_OTHER = 0,
+ DIS_REASON_RECESS = 1,
+ DIS_REASON_TERMINATION = 2,
+ DIS_REASON_SYSTEM_FAILURE = 3,
+ DIS_REASON_SECURITY_VIOLATION = 4,
+ DIS_REASON_ENTITY_RECONSTITUTION = 5,
+ DIS_REASON_STOP_FOR_RESET = 6,
+ DIS_REASON_STOP_FOR_RESTART = 7,
+ DIS_REASON_ABORT_TRAINING_RETURN_TO_TACTICAL_OPERATIONS = 8
+} DIS_PDU_Reason;
+
+static const value_string DIS_PDU_Reason_Strings[] =
+{
+ { DIS_REASON_OTHER, "Other" },
+ { DIS_REASON_RECESS, "Recess" },
+ { DIS_REASON_TERMINATION, "Termination" },
+ { DIS_REASON_SYSTEM_FAILURE, "System Failure" },
+ { DIS_REASON_SECURITY_VIOLATION, "Security Violation" },
+ { DIS_REASON_ENTITY_RECONSTITUTION, "Entity Reconstitution" },
+ { DIS_REASON_STOP_FOR_RESET, "Stop For Reset" },
+ { DIS_REASON_STOP_FOR_RESTART, "Stop For Restart" },
+ { DIS_REASON_ABORT_TRAINING_RETURN_TO_TACTICAL_OPERATIONS, "Abort Training Return To Tactical Operations" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_REQUEST_STATUS_OTHER = 0,
+ DIS_REQUEST_STATUS_PENDING = 1,
+ DIS_REQUEST_STATUS_EXECUTING = 2,
+ DIS_REQUEST_STATUS_PARTIALLY_COMPLETE = 3,
+ DIS_REQUEST_STATUS_COMPLETE = 4,
+ DIS_REQUEST_STATUS_REQUEST_REJECTED = 5,
+ DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_NOW = 6,
+ DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_LATER = 7,
+ DIS_REQUEST_STATUS_INVALID_TIME_PARAMETERS = 8,
+ DIS_REQUEST_STATUS_SIMULATION_TIME_EXCEEDED = 9,
+ DIS_REQUEST_STATUS_REQUEST_DONE = 10,
+ DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_1 = 100,
+ DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_2 = 101,
+ DIS_REQUEST_STATUS_JOIN_EXERCISE_REQUEST_REJECTED = 201
+} DIS_PDU_RequestStatus;
+
+static const value_string DIS_PDU_RequestStatus_Strings[] =
+{
+ { DIS_REQUEST_STATUS_OTHER, "Other" },
+ { DIS_REQUEST_STATUS_PENDING, "Pending" },
+ { DIS_REQUEST_STATUS_EXECUTING, "Executing" },
+ { DIS_REQUEST_STATUS_PARTIALLY_COMPLETE, "Partially Complete" },
+ { DIS_REQUEST_STATUS_COMPLETE, "Complete" },
+ { DIS_REQUEST_STATUS_REQUEST_REJECTED, "Request Rejected" },
+ { DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_NOW, "Retransmit Request Now" },
+ { DIS_REQUEST_STATUS_RETRANSMIT_REQUEST_LATER, "Retransmit Request Later" },
+ { DIS_REQUEST_STATUS_INVALID_TIME_PARAMETERS, "Invalid Time Parameters" },
+ { DIS_REQUEST_STATUS_SIMULATION_TIME_EXCEEDED, "Simulation Time Exceeded" },
+ { DIS_REQUEST_STATUS_REQUEST_DONE, "Request Done" },
+ { DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_1, "TACCSF LOS Reply Type 1" },
+ { DIS_REQUEST_STATUS_TACCSF_LOS_REPLY_TYPE_2, "TACCSF LOS Reply Type 2" },
+ { DIS_REQUEST_STATUS_JOIN_EXERCISE_REQUEST_REJECTED, "Join Exercise Request Rejected" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_REQUIRED_RELIABILITY_SERVICE_ACKNOWLEDGED = 0,
+ DIS_REQUIRED_RELIABILITY_SERVICE_UNACKNOWLEDGED = 1
+} DIS_PDU_RequiredReliabilityService;
+
+static const value_string DIS_PDU_RequiredReliabilityService_Strings[] =
+{
+ { DIS_REQUIRED_RELIABILITY_SERVICE_ACKNOWLEDGED, "Acknowledged" },
+ { DIS_REQUIRED_RELIABILITY_SERVICE_UNACKNOWLEDGED, "Unacknowledged" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_RESPONSE_FLAG_OTHER = 0,
+ DIS_RESPONSE_FLAG_ABLE_TO_COMPLY = 1,
+ DIS_RESPONSE_FLAG_UNABLE_TO_COMPLY = 2,
+ DIS_RESPONSE_FLAG_PENDING_OPERATOR_ACTION = 3
+} DIS_PDU_DisResponseFlag;
+
+static const value_string DIS_PDU_DisResponseFlag_Strings[] =
+{
+ { DIS_RESPONSE_FLAG_OTHER, "Other" },
+ { DIS_RESPONSE_FLAG_ABLE_TO_COMPLY, "Able To Comply" },
+ { DIS_RESPONSE_FLAG_UNABLE_TO_COMPLY, "Unable To Comply" },
+ { DIS_RESPONSE_FLAG_PENDING_OPERATOR_ACTION, "Pending Operator Action" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_PERSISTENT_OBJECT_TYPE_OTHER = 0,
+ DIS_PERSISTENT_OBJECT_TYPE_SIMULATOR_PRESENT = 1,
+ DIS_PERSISTENT_OBJECT_TYPE_DESCRIBE_OBJECT = 2,
+ DIS_PERSISTENT_OBJECT_TYPE_OBJECTS_PRESENT = 3,
+ DIS_PERSISTENT_OBJECT_TYPE_OBJECT_REQUEST = 4,
+ DIS_PERSISTENT_OBJECT_TYPE_DELETE_OBJECTS = 5,
+ DIS_PERSISTENT_OBJECT_TYPE_SET_WORLD_STATE = 6,
+ DIS_PERSISTENT_OBJECT_TYPE_NOMINATION = 7
+} DIS_PDU_PersistentObjectType;
+
+static const value_string DIS_PDU_PersistentObjectType_Strings[] =
+{
+ { DIS_PERSISTENT_OBJECT_TYPE_OTHER, "Other" },
+ { DIS_PERSISTENT_OBJECT_TYPE_SIMULATOR_PRESENT, "Simulator Present" },
+ { DIS_PERSISTENT_OBJECT_TYPE_DESCRIBE_OBJECT, "Describe Object" },
+ { DIS_PERSISTENT_OBJECT_TYPE_OBJECTS_PRESENT, "Objects Present" },
+ { DIS_PERSISTENT_OBJECT_TYPE_OBJECT_REQUEST, "Object Request" },
+ { DIS_PERSISTENT_OBJECT_TYPE_DELETE_OBJECTS, "Delete Objects" },
+ { DIS_PERSISTENT_OBJECT_TYPE_SET_WORLD_STATE, "Set World State" },
+ { DIS_PERSISTENT_OBJECT_TYPE_NOMINATION, "Nomination" },
+ { 0, NULL }
+};
+
+typedef enum
+{
+ DIS_PO_OBJECT_CLASS_OTHER = 0,
+ DIS_PO_OBJECT_CLASS_WORLD_STATE = 1,
+ DIS_PO_OBJECT_CLASS_OVERLAY = 2,
+ DIS_PO_OBJECT_CLASS_POINT = 3,
+ DIS_PO_OBJECT_CLASS_LINE = 4,
+ DIS_PO_OBJECT_CLASS_SECTOR = 5,
+ DIS_PO_OBJECT_CLASS_TEXT = 6,
+ DIS_PO_OBJECT_CLASS_UNIT = 7,
+ DIS_PO_OBJECT_CLASS_UNIT_DEFINITION = 8,
+ DIS_PO_OBJECT_CLASS_STEALTH_CONTROLLER = 9,
+ DIS_PO_OBJECT_CLASS_H_HOUR = 10,
+ DIS_PO_OBJECT_CLASS_VARIABLE = 11,
+ DIS_PO_OBJECT_CLASS_TASK = 12,
+ DIS_PO_OBJECT_CLASS_TASK_STATE = 13,
+ DIS_PO_OBJECT_CLASS_TASK_FRAME = 14,
+ DIS_PO_OBJECT_CLASS_TASK_AUTHORIZATION = 15,
+ DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT = 16,
+ DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT_HOLDER = 17,
+ DIS_PO_OBJECT_CLASS_EXERCISE_INITIALIZER = 18,
+ DIS_PO_OBJECT_CLASS_FIRE_PARAMETERS = 19,
+ DIS_PO_OBJECT_CLASS_MINEFIELD = 20,
+ DIS_PO_OBJECT_CLASS_SIMULATION_REQUEST = 21,
+ DIS_PO_OBJECT_CLASS_NET_SUBSCRIPTION = 22,
+ DIS_PO_OBJECT_CLASS_LINK = 23,
+ DIS_PO_OBJECT_CLASS_MINEFIELD_PARENT = 24,
+ DIS_PO_OBJECT_CLASS_CHEMICAL = 25,
+ DIS_PO_OBJECT_CLASS_AlertUser = 26,
+ DIS_PO_OBJECT_CLASS_HAND_OFF = 27,
+ DIS_PO_OBJECT_CLASS_CIRCUIT = 28,
+ DIS_PO_OBJECT_CLASS_CARGO = 29,
+ DIS_PO_OBJECT_CLASS_MCM_ROUTE = 30,
+ DIS_PO_OBJECT_CLASS_MESSAGE = 31
+} DIS_PDU_PO_ObjectClass;
+
+static const value_string DIS_PDU_PO_ObjectClass_Strings[] =
+{
+ { DIS_PO_OBJECT_CLASS_OTHER, "Other" },
+ { DIS_PO_OBJECT_CLASS_WORLD_STATE, "World State" },
+ { DIS_PO_OBJECT_CLASS_OVERLAY, "Overlay" },
+ { DIS_PO_OBJECT_CLASS_POINT, "Point" },
+ { DIS_PO_OBJECT_CLASS_LINE, "Line" },
+ { DIS_PO_OBJECT_CLASS_SECTOR, "Sector" },
+ { DIS_PO_OBJECT_CLASS_TEXT, "Text" },
+ { DIS_PO_OBJECT_CLASS_UNIT, "Unit" },
+ { DIS_PO_OBJECT_CLASS_UNIT_DEFINITION, "Unit Definition" },
+ { DIS_PO_OBJECT_CLASS_STEALTH_CONTROLLER, "Stealth Controller" },
+ { DIS_PO_OBJECT_CLASS_H_HOUR, "H Hour" },
+ { DIS_PO_OBJECT_CLASS_VARIABLE, "Variable" },
+ { DIS_PO_OBJECT_CLASS_TASK, "Task" },
+ { DIS_PO_OBJECT_CLASS_TASK_STATE, "Task State" },
+ { DIS_PO_OBJECT_CLASS_TASK_FRAME, "Task Frame" },
+ { DIS_PO_OBJECT_CLASS_TASK_AUTHORIZATION, "Task Authorization" },
+ { DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT, "Parametric Input" },
+ { DIS_PO_OBJECT_CLASS_PARAMETRIC_INPUT_HOLDER, "Parametric Input Holder" },
+ { DIS_PO_OBJECT_CLASS_EXERCISE_INITIALIZER, "Exercise Initializer" },
+ { DIS_PO_OBJECT_CLASS_FIRE_PARAMETERS, "Fire Parameters" },
+ { DIS_PO_OBJECT_CLASS_MINEFIELD, "Minefield" },
+ { DIS_PO_OBJECT_CLASS_SIMULATION_REQUEST, "Simulation Request" },
+ { DIS_PO_OBJECT_CLASS_NET_SUBSCRIPTION, "Net Subscription" },
+ { DIS_PO_OBJECT_CLASS_LINK, "Link" },
+ { DIS_PO_OBJECT_CLASS_MINEFIELD_PARENT, "Minefield Parent" },
+ { DIS_PO_OBJECT_CLASS_CHEMICAL, "Chemical" },
+ { DIS_PO_OBJECT_CLASS_AlertUser, "Alert User" },
+ { DIS_PO_OBJECT_CLASS_HAND_OFF, "Hand Off" },
+ { DIS_PO_OBJECT_CLASS_CIRCUIT, "Circuit" },
+ { DIS_PO_OBJECT_CLASS_CARGO, "Cargo" },
+ { DIS_PO_OBJECT_CLASS_MCM_ROUTE, "Mcm Route" },
+ { DIS_PO_OBJECT_CLASS_MESSAGE, "Message" },
+ { 0, NULL }
+};
+
+static const value_string DIS_PDU_EmitterName_Strings[] =
+{
+ { 10, "1RL138" },
+ { 45, "1226 DECCA MIL" },
+ { 80, "9GR400" },
+ { 90, "9GR600" },
+ { 135, "9LV 200 TA" },
+ { 180, "9LV 200 TV" },
+ { 225, "A310Z" },
+ { 270, "A325A" },
+ { 315, "A346Z" },
+ { 360, "A353B" },
+ { 405, "A372A" },
+ { 450, "A372B" },
+ { 495, "A372C" },
+ { 540, "A377A" },
+ { 585, "A377B" },
+ { 630, "A380Z" },
+ { 675, "A381Z" },
+ { 720, "A398Z" },
+ { 765, "A403Z" },
+ { 810, "A409A" },
+ { 855, "A418A" },
+ { 900, "A419Z" },
+ { 945, "A429Z" },
+ { 990, "A432Z" },
+ { 1035, "A434Z" },
+ { 1080, "A401A" },
+ { 1095, "AA-12 Seeker" },
+ { 1100, "Agave" },
+ { 1125, "AGRION 15" },
+ { 1170, "AI MK 23" },
+ { 1215, "AIDA II" },
+ { 1260, "Albatros MK2" },
+ { 1280, "1L13-3 (55G6), Box Spring" },
+ { 1282, "1L13-3 (55G6), Box Spring B" },
+ { 1305, "ANA SPS 502" },
+ { 1350, "ANRITSU Electric AR-30A" },
+ { 1395, "Antilope V" },
+ { 1400, "AN/ALE-50" },
+ { 1440, "AN/ALQ 99" },
+ { 1485, "AN/ALQ-100" },
+ { 1530, "AN/ALQ-101" },
+ { 1575, "AN/ALQ-119" },
+ { 1585, "AN/ALQ-122" },
+ { 1620, "AN/ALQ-126A" },
+ { 1626, "AN/ALQ-131" },
+ { 1628, "AN/ALQ-135C/D" },
+ { 1630, "AN/ALQ-144A(V)3" },
+ { 1632, "AN/ALQ-153" },
+ { 1634, "AN/ALQ-155" },
+ { 1636, "AN/ALQ-161/A" },
+ { 1638, "AN/ALQ-162" },
+ { 1640, "AN/ALQ-165" },
+ { 1642, "AN/ALQ-167" },
+ { 1644, "AN/ALQ-172(V)2" },
+ { 1646, "AN/ALQ-176" },
+ { 1648, "AN/ALQ-184" },
+ { 1650, "AN/ALQ-188" },
+ { 1652, "AN/ALR-56" },
+ { 1654, "AN/ALR-69" },
+ { 1656, "AN/ALT-16A" },
+ { 1658, "AN/ALT-28" },
+ { 1660, "AN/ALT-32A" },
+ { 1665, "AN/APD 10" },
+ { 1710, "AN/APG 53" },
+ { 1755, "AN/APG 59" },
+ { 1800, "AN/APG-63" },
+ { 1805, "AN/APG-63(V)1" },
+ { 1807, "AN/APG-63(V)2" },
+ { 1809, "AN/APG-63(V)3" },
+ { 1845, "AN/APG 65" },
+ { 1870, "AN/APG-66" },
+ { 1890, "AN/APG 68" },
+ { 1935, "AN/APG 70" },
+ { 1945, "AN/APG-73" },
+ { 1960, "AN/APG-77" },
+ { 1970, "AN/APG-78" },
+ { 1980, "AN/APG-502" },
+ { 2025, "AN/APN-1" },
+ { 2070, "AN/APN-22" },
+ { 2115, "AN/APN 59" },
+ { 2160, "AN/APN-69" },
+ { 2205, "AN/APN-81" },
+ { 2250, "AN/APN-117" },
+ { 2295, "AN/APN-118" },
+ { 2340, "AN/APN-130" },
+ { 2385, "AN/APN-131" },
+ { 2430, "AN/APN-133" },
+ { 2475, "AN/APN-134" },
+ { 2520, "AN/APN-147" },
+ { 2565, "AN/APN-150" },
+ { 2610, "AN/APN-153" },
+ { 2655, "AN/APN 154" },
+ { 2700, "AN/APN-155" },
+ { 2745, "AN/APN-159" },
+ { 2790, "AN/APN-182" },
+ { 2835, "AN/APN-187" },
+ { 2880, "AN/APN-190" },
+ { 2925, "AN/APN 194" },
+ { 2970, "AN/APN-195" },
+ { 3015, "AN/APN-198" },
+ { 3060, "AN/APN-200" },
+ { 3105, "AN/APN 202" },
+ { 3150, "AN/APN-217" },
+ { 3152, "AN/APN-218" },
+ { 3160, "AN/APN-238" },
+ { 3162, "AN/APN-239" },
+ { 3164, "AN/APN-241" },
+ { 3166, "AN/APN-242" },
+ { 3195, "AN/APN-506" },
+ { 3240, "AN/APQ-72" },
+ { 3285, "AN/APQ-99" },
+ { 3330, "AN/APQ 100" },
+ { 3375, "AN/APQ-102" },
+ { 3420, "AN/APQ-109" },
+ { 3465, "AN/APQ 113" },
+ { 3510, "AN/APQ 120" },
+ { 3555, "AN/APQ 126" },
+ { 3600, "AN/APQ-128" },
+ { 3645, "AN/APQ-129" },
+ { 3690, "AN/APQ 148" },
+ { 3735, "AN/APQ-153" },
+ { 3780, "AN/APQ 159" },
+ { 3785, "AN/APQ-164" },
+ { 3788, "AN/APQ-166" },
+ { 3795, "AN/APQ-181" },
+ { 3820, "AN/APS-31" },
+ { 3825, "AN/APS-42" },
+ { 3870, "AN/APS 80" },
+ { 3915, "AN/APS-88" },
+ { 3960, "AN/APS 115" },
+ { 4005, "AN/APS 116" },
+ { 4050, "AN/APS-120" },
+ { 4095, "AN/APS 121" },
+ { 4140, "AN/APS 124" },
+ { 4185, "AN/APS 125" },
+ { 4230, "AN/APS-128" },
+ { 4275, "AN/APS 130" },
+ { 4320, "AN/APS 133" },
+ { 4365, "AN/APS-134" },
+ { 4410, "AN/APS 137" },
+ { 4455, "AN/APS-138" },
+ { 4465, "AN/APS-143 (V) 1" },
+ { 4500, "AN/APW 22" },
+ { 4545, "AN/APW 23" },
+ { 4590, "AN/APX-6" },
+ { 4635, "AN/APX 7" },
+ { 4680, "AN/APX 39" },
+ { 4725, "AN/APX-72" },
+ { 4770, "AN/APX 76" },
+ { 4815, "AN/APX 78" },
+ { 4860, "AN/APX 101" },
+ { 4870, "AN/APX-113 AIFF" },
+ { 4900, "AN/APY-1" },
+ { 4905, "AN/APY 2" },
+ { 4950, "AN/APY 3" },
+ { 4953, "AN/APY-8, LYNX(tm)" },
+ { 4995, "AN/ARN 21" },
+ { 5040, "AN/ARN 52" },
+ { 5085, "AN/ARN 84" },
+ { 5130, "AN/ARN 118" },
+ { 5175, "AN/ARW 73" },
+ { 5220, "AN/ASB 1" },
+ { 5265, "AN/ASG 21" },
+ { 5280, "AN/ASQ-108" },
+ { 5310, "AN/AWG 9" },
+ { 5355, "AN/BPS-9" },
+ { 5400, "AN/BPS 15" },
+ { 5405, "AN/BPS-16" },
+ { 5420, "AN/CRM-30" },
+ { 5430, "AN/DPW-23" },
+ { 5445, "AN/DSQ 26 Phoenix MH" },
+ { 5490, "AN/DSQ 28 Harpoon MH" },
+ { 5495, "AN/FPN-40" },
+ { 5500, "AN/FPN-62" },
+ { 5505, "AN/FPS-16" },
+ { 5507, "AN/FPS-18" },
+ { 5508, "AN/FPS-89" },
+ { 5510, "AN/FPS-117" },
+ { 5515, "AN/FPS-20R" },
+ { 5520, "AN/FPS-77" },
+ { 5525, "AN/FPS-103" },
+ { 5527, "AN/GPN-12" },
+ { 5530, "AN/GPX-6" },
+ { 5535, "AN/GPX 8" },
+ { 5537, "AN/GRN-12" },
+ { 5540, "AN/MPQ-10" },
+ { 5545, "AN/MPQ-33/39/46/57/61 (HPIR) ILL" },
+ { 5550, "AN/MPQ-34/48/55/62 (CWAR) TA" },
+ { 5551, "AN/MPQ-49" },
+ { 5555, "AN/MPQ-35/50 (PAR) TA" },
+ { 5560, "AN/MPQ-37/51 (ROR) TT" },
+ { 5570, "AN/MPQ-53" },
+ { 5571, "AN/MPQ-63" },
+ { 5575, "AN/MPQ-64" },
+ { 5580, "AN/SPG-34" },
+ { 5625, "AN/SPG 50" },
+ { 5670, "AN/SPG 51" },
+ { 5715, "AN/SPG-51 CWI TI" },
+ { 5760, "AN/SPG-51 FC" },
+ { 5805, "AN/SPG 52" },
+ { 5850, "AN/SPG-53" },
+ { 5895, "AN/SPG 55B" },
+ { 5940, "AN/SPG 60" },
+ { 5985, "AN/SPG 62" },
+ { 6030, "AN/SPN 35" },
+ { 6075, "AN/SPN 43" },
+ { 6120, "AN/SPQ-2" },
+ { 6165, "AN/SPQ 9" },
+ { 6210, "AN/SPS-4" },
+ { 6255, "AN/SPS-5" },
+ { 6300, "AN/SPS-5C" },
+ { 6345, "AN/SPS-6" },
+ { 6390, "AN/SPS 10" },
+ { 6435, "AN/SPS 21" },
+ { 6480, "AN/SPS-28" },
+ { 6525, "AN/SPS-37" },
+ { 6570, "AN/SPS-39A" },
+ { 6615, "AN/SPS 40" },
+ { 6660, "AN/SPS-41" },
+ { 6705, "AN/SPS-48" },
+ { 6750, "AN/SPS-48C" },
+ { 6752, "AN/SPS-48E" },
+ { 6795, "AN/SPS-49" },
+ { 6796, "AN/SPS-49(V)1" },
+ { 6797, "AN/SPS-49(V)2" },
+ { 6798, "AN/SPS-49(V)3" },
+ { 6799, "AN/SPS-49(V)4" },
+ { 6800, "AN/SPS-49(V)5" },
+ { 6801, "AN/SPS-49(V)6" },
+ { 6802, "AN/SPS-49(V)7" },
+ { 6803, "AN/SPS-49(V)8" },
+ { 6804, "AN/SPS-49A(V)1" },
+ { 6840, "AN/SPS 52" },
+ { 6885, "AN/SPS 53" },
+ { 6930, "AN/SPS 55" },
+ { 6975, "AN/SPS-55 SS" },
+ { 7020, "AN/SPS-58" },
+ { 7065, "AN/SPS 59" },
+ { 7110, "AN/SPS 64" },
+ { 7155, "AN/SPS 65" },
+ { 7200, "AN/SPS 67" },
+ { 7245, "AN/SPY-1" },
+ { 7250, "AN/SPY-1A" },
+ { 7252, "AN/SPY-1B" },
+ { 7253, "AN/SPY-1B(V)" },
+ { 7260, "AN/SPY-1D" },
+ { 7261, "AN/SPY-1D(V)" },
+ { 7265, "AN/SPY-1F" },
+ { 7270, "AN/TPN-17" },
+ { 7275, "AN/TPN-24" },
+ { 7280, "AN/TPQ-18" },
+ { 7295, "AN/TPQ-36" },
+ { 7300, "AN/TPQ-37" },
+ { 7301, "AN/TPQ-38 (V8)" },
+ { 7303, "AN/TPQ-47" },
+ { 7305, "AN/TPS-43" },
+ { 7310, "AN/TPS-43E" },
+ { 7315, "AN/TPS-59" },
+ { 7320, "AN/TPS-63" },
+ { 7322, "AN/TPS-70 (V) 1" },
+ { 7325, "AN/TPS-75" },
+ { 7330, "AN/TPX-46(V)7" },
+ { 7335, "AN/ULQ-6A" },
+ { 7380, "AN/UPN 25" },
+ { 7425, "AN/UPS 1" },
+ { 7426, "AN/UPS-2" },
+ { 7470, "AN/UPX 1" },
+ { 7515, "AN/UPX 5" },
+ { 7560, "AN/UPX 11" },
+ { 7605, "AN/UPX 12" },
+ { 7650, "AN/UPX 17" },
+ { 7695, "AN/UPX 23" },
+ { 7740, "AN/VPS 2" },
+ { 7785, "Apelco AD 7 7" },
+ { 7830, "APG 71" },
+ { 7875, "APN 148" },
+ { 7920, "APN 227" },
+ { 7965, "(deleted)" },
+ { 8010, "(deleted)" },
+ { 8055, "(deleted)" },
+ { 8100, "APS 504 V3" },
+ { 8105, "AR 3D" },
+ { 8112, "Plessey AR-5" },
+ { 8115, "AR 320" },
+ { 8120, "AR 327" },
+ { 8145, "AR M31" },
+ { 8190, "ARI 5954" },
+ { 8235, "ARI 5955" },
+ { 8280, "ARI 5979" },
+ { 8325, "ARINC 564 BNDX/KING RDR 1E" },
+ { 8370, "ARINC 700 BNDX/KING RDR 1E" },
+ { 8375, "ARK-1" },
+ { 8380, "ARSR-3" },
+ { 8390, "ARSR-18" },
+ { 8415, "AS 2 Kipper" },
+ { 8460, "AS 2 Kipper MH" },
+ { 8505, "AS 4 Kitchen" },
+ { 8550, "AS 4 Kitchen MH" },
+ { 8595, "AS 5 Kelt MH" },
+ { 8640, "AS 6 Kingfish MH" },
+ { 8685, "AS 7 Kerry" },
+ { 8730, "AS 7 Kerry MG" },
+ { 8735, "AS 15 KENT altimeter" },
+ { 8760, "Aspide AAM/SAM ILL" },
+ { 8772, "ASR-4" },
+ { 8775, "ASR O" },
+ { 8780, "ASR-5" },
+ { 8782, "ASR-7" },
+ { 8785, "ASR-8" },
+ { 8790, "ASR-9" },
+ { 8812, "Raytheon ASR-10SS" },
+ { 8820, "AT 2 Swatter MG" },
+ { 8840, "ATCR-33" },
+ { 8845, "ATCR 33 K/M" },
+ { 8865, "Atlas Elektronk TRS N" },
+ { 8870, "ATLAS-9740 VTS" },
+ { 8910, "AVG 65" },
+ { 8955, "AVH 7" },
+ { 9000, "AVQ 20" },
+ { 9045, "AVQ30X" },
+ { 9075, "AVQ-50 (RCA)" },
+ { 9090, "AVQ 70" },
+ { 9135, "AWS 5" },
+ { 9180, "AWS 6" },
+ { 9200, "B597Z" },
+ { 9205, "B636Z" },
+ { 9225, "Back Net A B" },
+ { 9270, "Back Trap" },
+ { 9310, "BALTYK" },
+ { 9315, "Ball End" },
+ { 9360, "Ball Gun" },
+ { 9405, "Band Stand" },
+ { 9450, "P-35/37 (A); P-50 (B), Bar Lock" },
+ { 9495, "Bass Tilt" },
+ { 9540, "Beacon" },
+ { 9585, "Bean Sticks" },
+ { 9630, "Bee Hind" },
+ { 9640, "Bell Crown A" },
+ { 9642, "Bell Crown B" },
+ { 9645, "BIG BACK" },
+ { 9660, "Big Bird" },
+ { 9675, "Big Bulge" },
+ { 9720, "Big Bulge A" },
+ { 9765, "Big Bulge B" },
+ { 9780, "SNAR-10, Big Fred" },
+ { 9810, "Big Mesh" },
+ { 9855, "Big Net" },
+ { 9885, "9S15MT, Bill Board" },
+ { 9900, "Bill Fold" },
+ { 9905, "Blowpipe MG" },
+ { 9930, "Blue Fox, Sea Harrier FRS Mk 1/5" },
+ { 9935, "Blue Vixen, Sea Harrier F/A Mk 2" },
+ { 9945, "Blue Silk" },
+ { 9990, "Blue Parrot" },
+ { 10035, "Blue Orchid" },
+ { 10080, "Boat Sail" },
+ { 10125, "Bofors Electronic 9LV 331" },
+ { 10170, "Bofors Ericsson Sea Giraffe 50 HC" },
+ { 10215, "Bowl Mesh" },
+ { 10260, "Box Brick" },
+ { 10305, "Box Tail" },
+ { 10350, "BPS 11A" },
+ { 10395, "BPS 14" },
+ { 10440, "BPS 15A" },
+ { 10485, "BR-15 Tokyo KEIKI" },
+ { 10510, "BRIDGEMASTE" },
+ { 10530, "Bread Bin" },
+ { 10575, "BT 271" },
+ { 10620, "BX 732" },
+ { 10665, "Buzz Stand" },
+ { 10710, "C 5A Multi Mode Radar" },
+ { 10755, "Caiman" },
+ { 10800, "Cake Stand" },
+ { 10845, "Calypso C61" },
+ { 10890, "Calypso Ii" },
+ { 10895, "Cardion Coastal" },
+ { 10935, "Castor Ii" },
+ { 10940, "Castor 2J TT (Crotale NG)" },
+ { 10980, "Cat House" },
+ { 10985, "CDR-431" },
+ { 11000, "Chair Back TT" },
+ { 11010, "Chair Back ILL" },
+ { 11025, "Cheese Brick" },
+ { 11070, "Clam Pipe" },
+ { 11115, "Clamshell" },
+ { 11160, "Collins WXR-700X" },
+ { 11205, "Collins DN 101" },
+ { 11250, "Contraves Sea Hunter MK 4" },
+ { 11260, "Corn Can" },
+ { 11270, "CR-105 RMCA" },
+ { 11295, "Cross Bird" },
+ { 11340, "Cross Dome" },
+ { 11385, "Cross Legs" },
+ { 11430, "Cross Out" },
+ { 11475, "Cross Slot" },
+ { 11520, "Cross Sword" },
+ { 11565, "Cross Up" },
+ { 11610, "Cross Sword FC" },
+ { 11655, "Crotale Acquisition TA, THD-5000" },
+ { 11660, "Crotale NG TA, Griffon" },
+ { 11665, "Crotale TT" },
+ { 11700, "Crotale MGMissile System" },
+ { 11745, "CSS C 3C CAS 1M1 M2 MH" },
+ { 11790, "CSS C 2B HY 1A MH" },
+ { 11835, "CWS 2" },
+ { 11880, "Cylinder Head" },
+ { 11925, "Cyrano II" },
+ { 11970, "Cyrano IV" },
+ { 11975, "Cyrano IV-M" },
+ { 12010, "DA-01/00" },
+ { 12015, "DA 05 00" },
+ { 12060, "Dawn" },
+ { 12105, "Dead Duck" },
+ { 12110, "DECCA-20 V90/9" },
+ { 12111, "DECCA-20 V90S" },
+ { 12150, "DECCA 45" },
+ { 12195, "DECCA 50" },
+ { 12240, "DECCA 110" },
+ { 12285, "DECCA 170" },
+ { 12292, "DECCA HF 2" },
+ { 12330, "DECCA 202" },
+ { 12375, "DECCA D202" },
+ { 12420, "DECCA 303" },
+ { 12430, "DECCA 535" },
+ { 12465, "DECCA 626" },
+ { 12510, "DECCA 629" },
+ { 12555, "DECCA 914" },
+ { 12600, "DECCA 916" },
+ { 12610, "DECCA 926" },
+ { 12645, "DECCA 1226 Commercial" },
+ { 12690, "DECCA 1626" },
+ { 12735, "DECCA 2459" },
+ { 12780, "DECCA AWS 1" },
+ { 12782, "DECCA AWS 2" },
+ { 12785, "DECCA AWS 4" },
+ { 12787, "DECCA AWS-4 (2)" },
+ { 12800, "DECCA MAR" },
+ { 12805, "DECCA RM 326" },
+ { 12825, "DECCA RM 416" },
+ { 12870, "DECCA RM 914" },
+ { 12915, "DECCA RM 1690" },
+ { 12960, "DECCA Super 101 MK 3" },
+ { 13005, "DISS 1" },
+ { 13050, "Rapier TTDN 181, DN 181" },
+ { 13055, "Rapier 2000 TT, BLINDFIRE FSC TT" },
+ { 13095, "Dog Ear" },
+ { 13140, "Dog House" },
+ { 13185, "Don 2" },
+ { 13230, "Don A/B/2/Kay" },
+ { 13275, "Donets" },
+ { 13320, "Down Beat" },
+ { 13365, "DRAA 2A" },
+ { 13410, "DRAA 2B" },
+ { 13455, "DRAC 39" },
+ { 13500, "DRBC 30B" },
+ { 13545, "DRBC 31A" },
+ { 13590, "DRBC 32A" },
+ { 13635, "DRBC 32D" },
+ { 13680, "DRBC 33A" },
+ { 13725, "DRBI 10" },
+ { 13770, "DRBI 23" },
+ { 13815, "DRBJ 11B" },
+ { 13860, "DRBN 30" },
+ { 13905, "DRBN 32" },
+ { 13950, "DRBR 51" },
+ { 13995, "DRBV 20B" },
+ { 14040, "DRBV 22" },
+ { 14085, "DRBV 26C" },
+ { 14130, "DRBV 30" },
+ { 14175, "DRBV 50" },
+ { 14220, "DRBV 51" },
+ { 14265, "DRBV 51A" },
+ { 14310, "DRBV 51B" },
+ { 14355, "DRBV 51C" },
+ { 14400, "Drop Kick" },
+ { 14445, "DRUA 31" },
+ { 14490, "Drum Tilt" },
+ { 14535, "Drum Tilt A" },
+ { 14545, "Drum Tilt B" },
+ { 14580, "Dumbo" },
+ { 14600, "ECR-90" },
+ { 14625, "Egg Cup A/B" },
+ { 14670, "EKCO 190" },
+ { 14715, "EL M 2001B" },
+ { 14760, "EL M 2207" },
+ { 14770, "EL/M 2216(V)" },
+ { 14805, "ELTA EL/M 2221 GM STGR" },
+ { 14810, "ELTA SIS" },
+ { 14850, "EMD 2900" },
+ { 14895, "End Tray" },
+ { 14940, "Exocet 1" },
+ { 14985, "Exocet 1 MH" },
+ { 15030, "Exocet 2" },
+ { 15075, "Eye Bowl" },
+ { 15120, "Eye Shield" },
+ { 15140, "F332Z" },
+ { 15160, "FALCON" },
+ { 15165, "Fan Song A" },
+ { 15200, "Fan Song B/F TA" },
+ { 15210, "Fan Song B/F TT" },
+ { 15220, "Fan Song C/E TA" },
+ { 15230, "Fan Song C/E TT" },
+ { 15240, "Fan Song C/E MG" },
+ { 15255, "Fan Song B/FF MG" },
+ { 15300, "Fan Tail" },
+ { 15310, "FCR-1401" },
+ { 15345, "Fin Curve" },
+ { 15390, "Fire Can" },
+ { 15435, "Fire Dish" },
+ { 15470, "Fire Dome TA" },
+ { 15475, "Fire Dome TT" },
+ { 15480, "Fire Dome TI" },
+ { 15525, "Fire Iron" },
+ { 15570, "Fire Wheel" },
+ { 15615, "Fish Bowl" },
+ { 15660, "Flap Lid" },
+ { 15705, "Flap Truck" },
+ { 15750, "Flap Wheel" },
+ { 15795, "Flash Dance" },
+ { 15840, "P-15, Flat Face A B C D" },
+ { 15885, "Flat Screen" },
+ { 15930, "Flat Spin" },
+ { 15975, "Flat Twin" },
+ { 16020, "Fledermaus" },
+ { 16030, "FLYCATCHER" },
+ { 16065, "Fly Screen" },
+ { 16110, "Fly Screen A&B" },
+ { 16155, "Fly Trap B" },
+ { 16200, "Fog Lamp MG" },
+ { 16245, "Fog Lamp TT" },
+ { 16290, "Foil Two" },
+ { 16335, "Fox Hunter" },
+ { 16380, "FOX FIREFox Fire AL" },
+ { 16390, "FOX FIRE ILL" },
+ { 16400, "FR-151A" },
+ { 16410, "FR-1505 DA" },
+ { 16420, "FR-2000" },
+ { 16421, "FR-2855W" },
+ { 16425, "Front Dome" },
+ { 16470, "Front Door" },
+ { 16515, "Front Piece" },
+ { 16560, "Furuno" },
+ { 16561, "Furuno 1721" },
+ { 16605, "Furuno 701" },
+ { 16650, "Furuno 711 2" },
+ { 16695, "Furuno 2400" },
+ { 16740, "GA 01 00" },
+ { 16785, "Gage" },
+ { 16830, "Garpin" },
+ { 16875, "GEM BX 132" },
+ { 16880, "MPDR-12, Gepard TA" },
+ { 16884, "Gepard TT" },
+ { 16888, "GERAN-F" },
+ { 16900, "GIRAFFE" },
+ { 16915, "Gin Sling TA" },
+ { 16920, "Gin Sling, Gin Sling TT" },
+ { 16925, "Gin Sling MG" },
+ { 16945, "GPN-22" },
+ { 16950, "GRN-9" },
+ { 16965, "Green Stain" },
+ { 17010, "Grid Bow" },
+ { 17025, "9S32, GRILL PAN TT" },
+ { 17055, "Guardsman" },
+ { 17070, "RPK-2, GUN DISH (ZSU-23/4)" },
+ { 17100, "Hair Net" },
+ { 17145, "Half Plate A" },
+ { 17190, "Half Plate B" },
+ { 17220, "HARD" },
+ { 17235, "Hawk Screech" },
+ { 17280, "Head Light A" },
+ { 17325, "Head Lights" },
+ { 17370, "Head Lights C" },
+ { 17415, "Head Lights MG A" },
+ { 17460, "Head Lights MG B" },
+ { 17505, "Head Lights TT" },
+ { 17550, "Head Net" },
+ { 17595, "Hen Egg" },
+ { 17640, "Hen House" },
+ { 17685, "Hen Nest" },
+ { 17730, "Hen Roost" },
+ { 17775, "High Brick" },
+ { 17820, "High Fix" },
+ { 17865, "High Lark TI" },
+ { 17910, "High Lark 1" },
+ { 17955, "High Lark 2" },
+ { 18000, "High Lark 4" },
+ { 18045, "High Lune" },
+ { 18090, "High Pole A&B" },
+ { 18135, "High Scoop" },
+ { 18150, "9S19MT, HIGH SCREEN" },
+ { 18180, "High Sieve" },
+ { 18200, "HN-503" },
+ { 18225, "Home Talk" },
+ { 18270, "Horn Spoon" },
+ { 18280, "HOT BRICK" },
+ { 18315, "Hot Flash" },
+ { 18320, "IRL144M, Hot Shot TA" },
+ { 18325, "IRL144M, Hot Shot TT" },
+ { 18330, "IRL144M, Hot Shot MG" },
+ { 18360, "IFF MK XII AIMS UPX 29" },
+ { 18405, "IFF MK XV" },
+ { 18410, "Javelin MG" },
+ { 18450, "Jay Bird" },
+ { 18460, "JRC-NMD-401" },
+ { 18495, "Jupiter" },
+ { 18540, "Jupiter II" },
+ { 18550, "JY-8" },
+ { 18555, "JY-9" },
+ { 18560, "JY-14" },
+ { 18585, "K376Z" },
+ { 18630, "Kelvin Hughes 2A" },
+ { 18675, "Kelvin Hughes 14/9" },
+ { 18720, "Kelvin Hughes type 1006" },
+ { 18765, "Kelvin Hughes type 1007" },
+ { 18785, "KH-902M" },
+ { 18810, "Kite Screech" },
+ { 18855, "Kite Screech A" },
+ { 18900, "Kite Screech B" },
+ { 18945, "Kivach" },
+ { 18990, "Knife Rest" },
+ { 19035, "P-10, Knife Rest B" },
+ { 19037, "KNIFE REST C" },
+ { 19050, "KR-75" },
+ { 19080, "KSA SRN" },
+ { 19125, "KSA TSR" },
+ { 19170, "Land Fall" },
+ { 19215, "Land Roll MG" },
+ { 19260, "Land Roll TA" },
+ { 19305, "Land Roll TT" },
+ { 19310, "LC-150" },
+ { 19350, "Leningraf" },
+ { 19395, "Light Bulb" },
+ { 19400, "LMT NRAI-6A" },
+ { 19440, "LN 55" },
+ { 19485, "Ln 66" },
+ { 19530, "Long Bow" },
+ { 19575, "Long Brick" },
+ { 19620, "Long Bull" },
+ { 19665, "Long Eye" },
+ { 19710, "Long Head" },
+ { 19755, "Long Talk" },
+ { 19800, "Long Track" },
+ { 19845, "Long Trough" },
+ { 19890, "Look Two" },
+ { 19935, "LORAN" },
+ { 19950, "Low Blow TA" },
+ { 19955, "Low Blow TT" },
+ { 19960, "Low Blow MG" },
+ { 19980, "Low Sieve" },
+ { 20025, "Low Trough" },
+ { 20040, "TRS-2050, LP-23" },
+ { 20070, "LW 08" },
+ { 20090, "M-1983 FCR" },
+ { 20115, "M22-40" },
+ { 20160, "M44" },
+ { 20205, "M401Z" },
+ { 20250, "M585Z" },
+ { 20295, "M588Z" },
+ { 20340, "MA 1 IFF Portion" },
+ { 20360, "MARELD" },
+ { 20385, "MA Type 909#" },
+ { 20430, "Marconi 1810" },
+ { 20475, "Marconi Canada HC 75" },
+ { 20495, "Marconi S 713" },
+ { 20520, "Marconi S 1802" },
+ { 20530, "Marconi S247" },
+ { 20565, "Marconi S 810" },
+ { 20585, "Marconi SA 10" },
+ { 20610, "Marconi type 967" },
+ { 20655, "Marconi type 968" },
+ { 20700, "Marconi type 992" },
+ { 20745, "Marconi/signaal type 1022" },
+ { 20790, "Marconi/signaal type 910" },
+ { 20835, "Marconi/signaal type 911" },
+ { 20880, "Marconi/signaal type 992R" },
+ { 20925, "Mesh Brick" },
+ { 20950, "Mirage ILL" },
+ { 20970, "MK 15 CIWS" },
+ { 21015, "MK-23" },
+ { 21060, "MK 23 TAS" },
+ { 21105, "MK 25" },
+ { 21150, "MK-35 M2" },
+ { 21195, "MK 92" },
+ { 21240, "MK-92 CAS" },
+ { 21285, "MK-92 STIR" },
+ { 21330, "MK 95" },
+ { 21340, "MLA-1" },
+ { 21375, "MM APS 705" },
+ { 21420, "MM SPG 74" },
+ { 21465, "MM SPG 75" },
+ { 21490, "MM SPN 703" },
+ { 21510, "MM SPS 702" },
+ { 21555, "MM SPS 768" },
+ { 21600, "MM SPS 774" },
+ { 21645, "Moon 4" },
+ { 21650, "MMRS" },
+ { 21690, "MPDR 18 X" },
+ { 21710, "MT-305X" },
+ { 21735, "Muff Cob" },
+ { 21780, "Mushroom" },
+ { 21825, "Mushroom 1" },
+ { 21870, "Mushroom 2" },
+ { 21880, "N920Z" },
+ { 21890, "Nanjing B" },
+ { 21895, "Nanjing C" },
+ { 21915, "Nayada" },
+ { 21960, "Neptun" },
+ { 21980, "NIKE TT" },
+ { 22005, "NRBA 50" },
+ { 22050, "NRBA 51" },
+ { 22095, "NRBF 20A" },
+ { 22140, "Nysa B" },
+ { 22185, "O524A" },
+ { 22230, "O580B" },
+ { 22275, "O625Z" },
+ { 22320, "O626Z" },
+ { 22345, "Odd Group" },
+ { 22365, "Odd Lot" },
+ { 22410, "Odd Pair" },
+ { 22455, "Oka" },
+ { 22500, "OKEAN" },
+ { 22545, "OKINXE 12C" },
+ { 22590, "OMEGA" },
+ { 22635, "Omera ORB32" },
+ { 22680, "One Eye" },
+ { 22690, "OP-28" },
+ { 22725, "OPS-16B" },
+ { 22730, "OPS-18" },
+ { 22740, "OPS-28" },
+ { 22770, "OR-2" },
+ { 22810, "ORB-31S" },
+ { 22815, "ORB 32" },
+ { 22860, "Orion Rtn 10X" },
+ { 22905, "Otomat MK II Teseo" },
+ { 22950, "Owl Screech" },
+ { 22955, "P360Z" },
+ { 22960, "PA-1660" },
+ { 22995, "Palm Frond" },
+ { 23040, "Palm Frond AB" },
+ { 23085, "Pat Hand TT" },
+ { 23095, "Pat Hand MG" },
+ { 23130, "Patty Cake" },
+ { 23175, "Pawn Cake" },
+ { 23220, "PBR 4 Rubin" },
+ { 23265, "Pea Sticks" },
+ { 23310, "Peel Cone" },
+ { 23355, "Peel Group" },
+ { 23400, "Peel Group A" },
+ { 23445, "Peel Group B" },
+ { 23490, "Peel Pair" },
+ { 23535, "Philips 9LV 200" },
+ { 23580, "Philips 9LV 331" },
+ { 23625, "Philips LV 223" },
+ { 23670, "Philips Sea Giraffe 50 HC" },
+ { 23690, "Pin Jib" },
+ { 23710, "Plank Shad" },
+ { 23715, "Plank Shave" },
+ { 23760, "Plank Shave A" },
+ { 23805, "Plank Shave B" },
+ { 23850, "Plate Steer" },
+ { 23895, "Plessey AWS 1" },
+ { 23940, "Plessey AWS 4" },
+ { 23985, "Plessey AWS 6" },
+ { 23990, "Plessey RJ" },
+ { 24030, "Plessey type 996" },
+ { 24075, "Plinth Net" },
+ { 24095, "Pluto" },
+ { 24100, "POHJANPALO" },
+ { 24120, "POLLUX" },
+ { 24165, "Pop Group" },
+ { 24210, "Pop Group MG" },
+ { 24255, "Pop Group TA" },
+ { 24300, "Pop Group TT" },
+ { 24345, "Pork Trough" },
+ { 24390, "Post Bow" },
+ { 24435, "Post Lamp" },
+ { 24480, "Pot Drum" },
+ { 24525, "Pot Head" },
+ { 24570, "PRIMUS 40 WXD" },
+ { 24615, "PRIMUS 300SL" },
+ { 24620, "Primus 3000" },
+ { 24650, "PS-05A" },
+ { 24660, "PS 46 A" },
+ { 24705, "PS 70 R" },
+ { 24710, "PS-890" },
+ { 24750, "Puff Ball" },
+ { 24770, "R-76" },
+ { 24780, "RAC-30" },
+ { 24795, "Racal 1229" },
+ { 24840, "Racal AC 2690 BT" },
+ { 24885, "Racal Decca 1216" },
+ { 24930, "Racal Decca 360" },
+ { 24975, "Racal Decca AC 1290" },
+ { 25020, "Racal Decca TM 1229" },
+ { 25065, "Racal Decca TM 1626" },
+ { 25110, "Racal DRBN 34A" },
+ { 25155, "Radar 24" },
+ { 25200, "RAN 7S" },
+ { 25205, "RAN 10S" },
+ { 25245, "RAN 11 LX" },
+ { 25260, "Rapier TA" },
+ { 25265, "Rapier 2000 TA, Dagger" },
+ { 25270, "Rapier MG" },
+ { 25280, "RAT-31S" },
+ { 25285, "RATAC (LCT)" },
+ { 25290, "Raytheon 1220" },
+ { 25300, "Raytheon 1302" },
+ { 25335, "Raytheon 1500" },
+ { 25380, "Raytheon 1645" },
+ { 25425, "Raytheon 1650" },
+ { 25470, "Raytheon 1900" },
+ { 25515, "Raytheon 2502" },
+ { 25560, "Raytheon TM 1650/6X" },
+ { 25605, "Raytheon TM 1660/12S" },
+ { 25630, "RAY-1220XR" },
+ { 25635, "RAY-1401" },
+ { 25650, "Ray 2900" },
+ { 25695, "Raypath" },
+ { 25735, "RBE2" },
+ { 25740, "RDM" },
+ { 25760, "RDY" },
+ { 25785, "RDN 72" },
+ { 25830, "RDR 1A" },
+ { 25835, "RDR 1E" },
+ { 25840, "RDR 4A" },
+ { 25875, "RDR 1200" },
+ { 25885, "RDR 1400" },
+ { 25890, "RDR 1400 C" },
+ { 25895, "RDR 1500" },
+ { 25920, "Rice Lamp" },
+ { 25965, "Rice Pad" },
+ { 26010, "Rice Screen" },
+ { 26055, "ROLAND BN" },
+ { 26100, "ROLAND MG" },
+ { 26145, "ROLAND TA" },
+ { 26190, "ROLAND TT" },
+ { 26235, "Round Ball" },
+ { 26280, "Round House" },
+ { 26325, "Round House B" },
+ { 26330, "RT-02/50" },
+ { 26350, "RTN-1A" },
+ { 26370, "RV2" },
+ { 26415, "RV3" },
+ { 26460, "RV5" },
+ { 26505, "RV10" },
+ { 26550, "RV17" },
+ { 26595, "RV18" },
+ { 26610, "RV-377" },
+ { 26640, "RV UM" },
+ { 26660, "RXN 2-60" },
+ { 26670, "S-1810CD" },
+ { 26685, "SA 2 Guideline" },
+ { 26730, "SA 3 Goa" },
+ { 26775, "SA 8 Gecko DT" },
+ { 26795, "SA-12 TELAR ILL" },
+ { 26820, "SA N 7 Gadfly TI" },
+ { 26865, "SA N 11 Cads 1 UN" },
+ { 26910, "Salt Pot A&B" },
+ { 26955, "SATURNE II" },
+ { 27000, "Scan Can" },
+ { 27045, "Scan Fix" },
+ { 27090, "Scan Odd" },
+ { 27135, "Scan Three" },
+ { 27140, "SCANTER (CSR)" },
+ { 27141, "SCORADS" },
+ { 27150, "SCOREBOARD" },
+ { 27180, "Scoup Plate" },
+ { 27190, "SCR-584" },
+ { 27225, "Sea Archer 2" },
+ { 27270, "Sea Hunter 4 MG" },
+ { 27315, "Sea Hunter 4 TA" },
+ { 27360, "Sea Hunter 4 TT" },
+ { 27405, "Sea Gull" },
+ { 27450, "Sea Net" },
+ { 27495, "Sea Spray" },
+ { 27540, "Sea Tiger" },
+ { 27570, "Searchwater" },
+ { 27585, "Selenia Orion 7" },
+ { 27630, "Selenia type 912" },
+ { 27675, "Selennia RAN 12 L/X" },
+ { 27720, "Selennia RTN 10X" },
+ { 27765, "Selinia ARP 1645" },
+ { 27810, "SGR 102 00" },
+ { 27855, "SGR 103/02" },
+ { 27870, "SGR-104" },
+ { 27900, "Sheet Bend" },
+ { 27945, "Sheet Curve" },
+ { 27990, "Ship Globe" },
+ { 28035, "Ship Wheel" },
+ { 28080, "SGR 114" },
+ { 28125, "Shore Walk A" },
+ { 28170, "Short Horn" },
+ { 28215, "Shot Dome" },
+ { 28260, "Side Globe JN" },
+ { 28280, "PRV-11, Side Net" },
+ { 28305, "Side Walk A" },
+ { 28350, "Signaal DA 02" },
+ { 28395, "Signaal DA 05" },
+ { 28440, "Signaal DA 08" },
+ { 28485, "Signaal LW 08" },
+ { 28530, "Signaal LWOR" },
+ { 28575, "Signaal M45" },
+ { 28620, "Signaal MW 08" },
+ { 28665, "Signaal SMART" },
+ { 28710, "Signaal STING" },
+ { 28755, "Signaal STIR" },
+ { 28800, "Signaal WM 20/2" },
+ { 28845, "Signaal WM 25" },
+ { 28890, "Signaal WM 27" },
+ { 28935, "Signaal WM 28" },
+ { 28980, "Signaal ZW 01" },
+ { 29025, "Signaal ZW 06" },
+ { 29070, "Ski Pole" },
+ { 29115, "Skin Head" },
+ { 29160, "Skip Spin" },
+ { 29185, "SKYGUARD TA, UAR-1021" },
+ { 29190, "SKYGUARD TT, UAR-1021" },
+ { 29205, "Sky Watch" },
+ { 29215, "SKYSHADOW" },
+ { 29220, "SKYSHIELD TA" },
+ { 29250, "SL" },
+ { 29270, "SL/ALQ-234" },
+ { 29295, "Slap Shot E" },
+ { 29340, "Slim Net" },
+ { 29385, "Slot Back A" },
+ { 29400, "Slot Back ILL" },
+ { 29430, "Slot Back B" },
+ { 29440, "Slot Rest" },
+ { 29475, "SMA 3 RM" },
+ { 29520, "SMA 3 RM 20" },
+ { 29565, "SMA 3RM 20A/SMG" },
+ { 29610, "SMA BPS 704" },
+ { 29655, "SMA SPIN 749 (V) 2" },
+ { 29700, "SMA SPN 703" },
+ { 29745, "SMA SPN 751" },
+ { 29790, "SMA SPOS 748" },
+ { 29835, "SMA SPQ 2" },
+ { 29880, "SMA SPQ 2D" },
+ { 29925, "SMA SPQ 701" },
+ { 29970, "SMA SPS 702 UPX" },
+ { 30015, "SMA ST 2 OTOMAT II MH" },
+ { 30060, "SMA 718 Beacon" },
+ { 30080, "SNAP SHOT" },
+ { 30105, "Snoop Drift" },
+ { 30150, "Snoop Head" },
+ { 30195, "Snoop Pair" },
+ { 30240, "Snoop Plate" },
+ { 30285, "Snoop Slab" },
+ { 30330, "Snoop Tray" },
+ { 30375, "Snoop Tray 1" },
+ { 30420, "Snoop Tray 2" },
+ { 30465, "Snoop Watch" },
+ { 30470, "9S18M1, Snow Drift" },
+ { 30510, "SO-1" },
+ { 30520, "SO-12" },
+ { 30555, "SO A Communist" },
+ { 30580, "SO-69" },
+ { 30600, "Sock Eye" },
+ { 30645, "SOM 64" },
+ { 30670, "SPADA TT" },
+ { 30690, "Sparrow (AIM/RIM-7) ILL" },
+ { 30700, "Sperry M-3" },
+ { 30735, "SPG 53F" },
+ { 30780, "SPG 70 (RTN 10X)" },
+ { 30825, "SPG 74 (RTN 20X)" },
+ { 30870, "SPG 75 (RTN 30X)" },
+ { 30915, "SPG 76 (RTN 30X)" },
+ { 30960, "Spin Scan A" },
+ { 31005, "Spin Scan B" },
+ { 31050, "Spin Trough" },
+ { 31095, "Splash Drop" },
+ { 31140, "SPN 35A" },
+ { 31185, "SPN 41" },
+ { 31230, "SPN 42" },
+ { 31275, "SPN 43A" },
+ { 31320, "SPN 43B" },
+ { 31365, "SPN 44" },
+ { 31410, "SPN 46" },
+ { 31455, "SPN 703" },
+ { 31500, "SPN 728 (V) 1" },
+ { 31545, "SPN 748" },
+ { 31590, "SPN 750" },
+ { 31635, "Sponge Cake" },
+ { 31680, "P-12, Spoon Rest" },
+ { 31681, "P-18, Spoon Rest A" },
+ { 31682, "P-18, Spoon Rest B" },
+ { 31684, "P-18, Spoon Rest D" },
+ { 31725, "SPQ 712 (RAN 12 L/X)" },
+ { 31770, "SPS 6C" },
+ { 31815, "SPS 10F" },
+ { 31860, "SPS 12" },
+ { 31905, "(deleted)SPS 58" },
+ { 31950, "(deleted)SPS 64" },
+ { 31995, "SPS 768 (RAN EL)" },
+ { 32040, "SPS 774 (RAN 10S)" },
+ { 32085, "SPY 790" },
+ { 32130, "Square Head" },
+ { 32175, "Square Pair" },
+ { 32220, "Square Slot" },
+ { 32265, "Square Tie" },
+ { 32310, "Squash Dome" },
+ { 32330, "P-15M, Squat Eye" },
+ { 32355, "Squint Eye" },
+ { 32400, "SRN 6" },
+ { 32445, "SRN 15" },
+ { 32490, "SRN 745" },
+ { 32535, "SRO 1" },
+ { 32580, "SRO 2" },
+ { 32625, "SS C 2B Samlet MG" },
+ { 32670, "SS N 2A B CSSC" },
+ { 32715, "SS N 2A B CSSC 2A 3A2 MH" },
+ { 32760, "SS N 2C Seeker" },
+ { 32805, "SS N 2C D Styx" },
+ { 32850, "SS N 2C D Styx C D MH" },
+ { 32895, "SS N 3 SSC SS C 18 BN" },
+ { 32940, "SS N 3B Sepal AL" },
+ { 32985, "SS N 3B Sepal MH" },
+ { 33030, "SS N 9 Siren" },
+ { 33075, "SS N 9 Siren AL" },
+ { 33120, "SS N 9 Siren MH" },
+ { 33165, "SS N 12 Sandbox AL" },
+ { 33210, "SS N 12 Sandbox MH" },
+ { 33255, "SS N 19 Shipwreck" },
+ { 33300, "SS N 19 Shipwreck AL" },
+ { 33345, "SS N 19 Shipwreck MH" },
+ { 33390, "SS N 21 AL" },
+ { 33435, "SS N 22 Sunburn" },
+ { 33480, "SS N 22 Sunburn MH" },
+ { 33525, "Stone Cake" },
+ { 33570, "STR 41" },
+ { 33590, "Straight Flush TA" },
+ { 33595, "Straight Flush TT" },
+ { 33600, "Straight Flush ILL" },
+ { 33615, "Strike Out" },
+ { 33660, "Strut Curve" },
+ { 33705, "Strut Pair" },
+ { 33750, "Strut Pair 1" },
+ { 33795, "Strut Pair 2" },
+ { 33840, "Sun Visor" },
+ { 33860, "Superfledermaus" },
+ { 33885, "Swift Rod 1" },
+ { 33930, "Swift Rod 2" },
+ { 33975, "T1166" },
+ { 34020, "T1171" },
+ { 34040, "T1202" },
+ { 34065, "T6004" },
+ { 34110, "T6031" },
+ { 34155, "T8067" },
+ { 34200, "T8068" },
+ { 34245, "T8124" },
+ { 34290, "T8408" },
+ { 34335, "T8911" },
+ { 34380, "T8937" },
+ { 34425, "T8944" },
+ { 34470, "T8987" },
+ { 34515, "P-14, Tall King" },
+ { 34560, "Tall Mike" },
+ { 34605, "Tall Path" },
+ { 34625, "Team Work" },
+ { 34640, "THAAD GBR" },
+ { 34650, "THD 225" },
+ { 34670, "THD 1940, Picador" },
+ { 34695, "THD 5500" },
+ { 34740, "Thin Path" },
+ { 34785, "PRV-9, Thin Skin" },
+ { 34795, "Thompson CSF TA-10" },
+ { 34830, "Thompson CSF TH D 1040 Neptune" },
+ { 34875, "Thompson CSF Calypso" },
+ { 34920, "Thompson CSF CASTOR" },
+ { 34965, "Thompson CSF Castor II" },
+ { 35010, "Thompson CSF DRBC 32A" },
+ { 35055, "Thompson CSF DRBJ 11 D/E" },
+ { 35100, "Thompson CSF DRBV 15A" },
+ { 35145, "Thompson CSF DRBV 15C" },
+ { 35190, "Thompson CSF DRBV 22D" },
+ { 35235, "Thompson CSF DRBV 23B" },
+ { 35280, "Thompson CSF DRUA 33" },
+ { 35325, "Thompson CSF Mars DRBV 21A" },
+ { 35370, "Thompson CSF Sea Tiger" },
+ { 35415, "Thompson CSF Triton" },
+ { 35460, "Thompson CSF Vega with DRBC 32E" },
+ { 35480, "TRS-2105, TIGER-G" },
+ { 35490, "TRS-2100, TIGER-S" },
+ { 35505, "Tie Rods" },
+ { 35550, "36D6, Tin Shield" },
+ { 35570, "Tin Trap" },
+ { 35580, "TIRSPONDER" },
+ { 35595, "Toad Stool 1" },
+ { 35640, "Toad Stool 2" },
+ { 35685, "Toad Stool 3" },
+ { 35730, "Toad Stool 4" },
+ { 35775, "Toad Stool 5" },
+ { 35800, "Tomb Stone" },
+ { 35820, "Top Bow" },
+ { 35865, "Top Dome" },
+ { 35910, "Top Knot" },
+ { 35955, "Top Mesh" },
+ { 36000, "Top Pair" },
+ { 36045, "Top Plate" },
+ { 36090, "Top Sail" },
+ { 36135, "Top Steer" },
+ { 36180, "Top Trough" },
+ { 36220, "Scrum Half TA" },
+ { 36225, "TorScrum Half TT, Tor" },
+ { 36230, "Scrum Half MG" },
+ { 36270, "Track Dish" },
+ { 36315, "TORSO M" },
+ { 36360, "Trap Door" },
+ { 36380, "TRISPONDE" },
+ { 36405, "TRS 3033" },
+ { 36420, "TRS 3405" },
+ { 36425, "TRS 3410" },
+ { 36430, "TRS 3415" },
+ { 36450, "TRS-N" },
+ { 36495, "TSE 5000" },
+ { 36540, "TSR 333" },
+ { 36585, "Tube Arm" },
+ { 36630, "Twin Eyes" },
+ { 36675, "Twin Pill" },
+ { 36720, "Twin Scan" },
+ { 36765, "Twin Scan Ro" },
+ { 36810, "Two Spot" },
+ { 36855, "TYPE 262" },
+ { 36900, "TYPE 275" },
+ { 36945, "TYPE 293" },
+ { 36990, "TYPE 343 SUN VISOR B" },
+ { 37035, "TYPE 347B" },
+ { 37050, "Type-404A(CH)" },
+ { 37080, "Type 756" },
+ { 37125, "TYPE 903" },
+ { 37170, "TYPE 909 TI" },
+ { 37215, "TYPE 909 TT" },
+ { 37260, "TYPE 910" },
+ { 37265, "TYPE-931(CH)" },
+ { 37305, "TYPE 965" },
+ { 37350, "TYPE 967" },
+ { 37395, "TYPE 968" },
+ { 37440, "TYPE 974" },
+ { 37485, "TYPE 975" },
+ { 37530, "TYPE 978" },
+ { 37575, "TYPE 992" },
+ { 37620, "TYPE 993" },
+ { 37665, "TYPE 994" },
+ { 37710, "TYPE 1006(1)" },
+ { 37755, "TYPE 1006(2)" },
+ { 37800, "TYPE 1022" },
+ { 37845, "UK MK 10" },
+ { 37850, "UPS-220C" },
+ { 37890, "UPX 1 10" },
+ { 37935, "UPX 27" },
+ { 37980, "URN 20" },
+ { 38025, "URN 25" },
+ { 38045, "VOLEX III/IV" },
+ { 38070, "W8818" },
+ { 38115, "W8838" },
+ { 38120, "W8852" },
+ { 38160, "WAS-74S" },
+ { 38205, "Wasp Head" },
+ { 38210, "WATCHDOG" },
+ { 38250, "Watch Guard" },
+ { 38260, "Watchman" },
+ { 38295, "Western Electric MK 10" },
+ { 38320, "Westinghouse ADR-4 LRSR" },
+ { 38340, "Westinghouse Electric SPG 50" },
+ { 38385, "Westinghouse Electric W 120" },
+ { 38430, "Westinghouse SPS 29C" },
+ { 38475, "Westinghouse SPS 37" },
+ { 38520, "Wet Eye" },
+ { 38565, "Wet Eye Mod" },
+ { 38570, "WGU-41/B" },
+ { 38572, "WGU-44/B" },
+ { 38610, "Whiff" },
+ { 38655, "Whiff Brick" },
+ { 38700, "Whiff Fire" },
+ { 38715, "WHITE HOUSE" },
+ { 38745, "Wild Card" },
+ { 38790, "Witch Eight" },
+ { 38835, "Witch Five" },
+ { 38880, "WM2X Series" },
+ { 38925, "WM2X Series CAS" },
+ { 38950, "WSR-74C" },
+ { 38955, "WSR-74S" },
+ { 38970, "Wood Gage" },
+ { 39015, "Yard Rake" },
+ { 39060, "Yew Loop" },
+ { 39105, "Yo-Yo" },
+ { 39150, "(deleted)" },
+ { 0, NULL }
+};
+
+/******************************************************************************
+*
+* FIELDS
+*
+*******************************************************************************/
static gint proto_dis = -1;
-int hf_dis_proto_ver = -1;
-int hf_dis_exercise_id = -1;
-int hf_dis_pdu_type = -1;
-int hf_dis_proto_fam = -1;
-int hf_dis_pdu_length = -1;
-int hf_dis_entity_id_site = -1;
-int hf_dis_entity_id_application = -1;
-int hf_dis_entity_id_entity = -1;
-int hf_dis_num_art_params = -1;
-int hf_dis_entityKind = -1;
-int hf_dis_entityDomain = -1;
-int hf_dis_category_land = -1;
-int hf_dis_category_air = -1;
-int hf_dis_category_surface = -1;
-int hf_dis_category_subsurface = -1;
-int hf_dis_category_space = -1;
-int hf_dis_category_radio = -1;
-int hf_dis_num_electromagnetic_emission_systems = -1;
-int hf_dis_emitter_name = -1;
-int hf_dis_emission_function = -1;
-int hf_dis_beam_function = -1;
-int hf_dis_radio_id = -1;
-int hf_dis_ens = -1;
-int hf_dis_ens_class = -1;
-int hf_dis_ens_type = -1;
-int hf_dis_ens_type_audio = -1;
-int hf_dis_tdl_type = -1;
-int hf_dis_sample_rate = -1;
-int hf_dis_data_length = -1;
-int hf_dis_num_of_samples = -1;
-int hf_dis_signal_data = -1;
-int hf_dis_radio_category = -1;
-int hf_dis_nomenclature_version = -1;
-int hf_dis_nomenclature = -1;
-int hf_dis_radio_transmit_state = -1;
-int hf_dis_radio_input_source = -1;
-int hf_dis_antenna_pattern_type = -1;
-int hf_dis_antenna_pattern_length = -1;
-int hf_dis_transmit_frequency = -1;
-int hf_dis_spread_spectrum_usage = -1;
-int hf_dis_frequency_hopping = -1;
-int hf_dis_pseudo_noise_modulation = -1;
-int hf_dis_time_hopping = -1;
-int hf_dis_modulation_major = -1;
-int hf_dis_modulation_system = -1;
-int hf_dis_crypto_system = -1;
-int hf_dis_crypto_key = -1;
-int hf_dis_encryption_mode = -1;
-int hf_dis_key_identifier = -1;
-int hf_dis_modulation_parameter_length = -1;
-int hf_dis_mod_param_fh_net_id = -1;
-int hf_dis_mod_param_fh_set_id = -1;
-int hf_dis_mod_param_fh_lo_set_id = -1;
-int hf_dis_mod_param_fh_msg_start = -1;
-int hf_dis_mod_param_fh_reserved = -1;
-int hf_dis_mod_param_fh_sync_time_offset = -1;
-int hf_dis_mod_param_fh_security_key = -1;
-int hf_dis_mod_param_fh_clear_channel = -1;
-int hf_dis_mod_param_dump = -1;
-int hf_dis_mod_param_ts_allocation_mode = -1;
-int hf_dis_mod_param_transmitter_prim_mode = -1;
-int hf_dis_mod_param_transmitter_second_mode = -1;
-int hf_dis_mod_param_sync_state = -1;
-int hf_dis_mod_param_network_sync_id = -1;
-int hf_dis_antenna_pattern_parameter_dump = -1;
-int hf_dis_num_shafts = -1;
-int hf_dis_num_apas = -1;
-int hf_dis_num_ua_emitter_systems = -1;
-int hf_dis_signal_link16_npg = -1;
-int hf_dis_signal_link16_tsec_cvll = -1;
-int hf_dis_signal_link16_msec_cvll = -1;
-int hf_dis_signal_link16_message_type = -1;
-int hf_dis_signal_link16_ptt = -1;
-int hf_dis_signal_link16_time_slot_type = - 1;
-int hf_dis_signal_link16_rti = -1;
-int hf_dis_signal_link16_stn = -1;
-int hf_dis_signal_link16_sdusn = -1;
-
-/* Initialize the subtree pointers */
+static int hf_dis_proto_ver = -1;
+static int hf_dis_exercise_id = -1;
+static int hf_dis_pdu_type = -1;
+static int hf_dis_proto_fam = -1;
+static int hf_dis_pdu_length = -1;
+static int hf_dis_entity_id_site = -1;
+static int hf_dis_entity_id_application = -1;
+static int hf_dis_entity_id_entity = -1;
+static int hf_dis_num_art_params = -1;
+static int hf_dis_entityKind = -1;
+static int hf_dis_entityDomain = -1;
+static int hf_dis_category_land = -1;
+static int hf_dis_category_air = -1;
+static int hf_dis_category_surface = -1;
+static int hf_dis_category_subsurface = -1;
+static int hf_dis_category_space = -1;
+static int hf_dis_category_radio = -1;
+static int hf_dis_num_electromagnetic_emission_systems = -1;
+static int hf_dis_emitter_name = -1;
+static int hf_dis_emission_function = -1;
+static int hf_dis_beam_function = -1;
+static int hf_dis_radio_id = -1;
+static int hf_dis_ens = -1;
+static int hf_dis_ens_class = -1;
+static int hf_dis_ens_type = -1;
+static int hf_dis_ens_type_audio = -1;
+static int hf_dis_tdl_type = -1;
+static int hf_dis_sample_rate = -1;
+static int hf_dis_data_length = -1;
+static int hf_dis_num_of_samples = -1;
+static int hf_dis_signal_data = -1;
+static int hf_dis_radio_category = -1;
+static int hf_dis_nomenclature_version = -1;
+static int hf_dis_nomenclature = -1;
+static int hf_dis_radio_transmit_state = -1;
+static int hf_dis_radio_input_source = -1;
+static int hf_dis_antenna_pattern_type = -1;
+static int hf_dis_antenna_pattern_length = -1;
+static int hf_dis_transmit_frequency = -1;
+static int hf_dis_spread_spectrum_usage = -1;
+static int hf_dis_frequency_hopping = -1;
+static int hf_dis_pseudo_noise_modulation = -1;
+static int hf_dis_time_hopping = -1;
+static int hf_dis_modulation_major = -1;
+static int hf_dis_modulation_system = -1;
+static int hf_dis_crypto_system = -1;
+static int hf_dis_crypto_key = -1;
+static int hf_dis_encryption_mode = -1;
+static int hf_dis_key_identifier = -1;
+static int hf_dis_modulation_parameter_length = -1;
+static int hf_dis_mod_param_fh_net_id = -1;
+static int hf_dis_mod_param_fh_set_id = -1;
+static int hf_dis_mod_param_fh_lo_set_id = -1;
+static int hf_dis_mod_param_fh_msg_start = -1;
+static int hf_dis_mod_param_fh_reserved = -1;
+static int hf_dis_mod_param_fh_sync_time_offset = -1;
+static int hf_dis_mod_param_fh_security_key = -1;
+static int hf_dis_mod_param_fh_clear_channel = -1;
+static int hf_dis_mod_param_dump = -1;
+static int hf_dis_mod_param_ts_allocation_mode = -1;
+static int hf_dis_mod_param_transmitter_prim_mode = -1;
+static int hf_dis_mod_param_transmitter_second_mode = -1;
+static int hf_dis_mod_param_sync_state = -1;
+static int hf_dis_mod_param_network_sync_id = -1;
+static int hf_dis_antenna_pattern_parameter_dump = -1;
+static int hf_dis_num_shafts = -1;
+static int hf_dis_num_apas = -1;
+static int hf_dis_num_ua_emitter_systems = -1;
+static int hf_dis_signal_link16_npg = -1;
+static int hf_dis_signal_link16_tsec_cvll = -1;
+static int hf_dis_signal_link16_msec_cvll = -1;
+static int hf_dis_signal_link16_message_type = -1;
+static int hf_dis_signal_link16_ptt = -1;
+static int hf_dis_signal_link16_time_slot_type = - 1;
+static int hf_dis_signal_link16_rti = -1;
+static int hf_dis_signal_link16_stn = -1;
+static int hf_dis_signal_link16_sdusn = -1;
+
+static gint ettVariableParameters[DIS_PDU_MAX_VARIABLE_PARAMETERS];
+static gint ettVariableRecords[DIS_PDU_MAX_VARIABLE_RECORDS];
+
+static gint ettFixedData = -1;
+static gint ettVariableData = -1;
+
static gint ett_dis = -1;
static gint ett_dis_header = -1;
static gint ett_dis_po_header = -1;
static gint ett_dis_payload = -1;
-int ett_dis_ens = -1;
-int ett_dis_crypto_key = -1;
-int ett_dis_signal_link16_network_header = -1;
-int ett_dis_signal_link16_message_data = -1;
-int ett_dis_signal_link16_jtids_header = -1;
+static gint ett_dis_ens = -1;
+static gint ett_dis_crypto_key = -1;
+static gint ett_dis_signal_link16_network_header = -1;
+static gint ett_dis_signal_link16_message_data = -1;
+static gint ett_dis_signal_link16_jtids_header = -1;
+
+
+/* enumeration of all field types used for DIS parsing. */
+typedef enum
+{
+ /* end marker to indicate the end of a parser sequence */
+ DIS_FIELDTYPE_END = 0,
+
+ /* basic numeric types */
+ DIS_FIELDTYPE_INT8,
+ DIS_FIELDTYPE_INT16,
+ DIS_FIELDTYPE_INT32,
+ DIS_FIELDTYPE_INT64,
+ DIS_FIELDTYPE_UINT8,
+ DIS_FIELDTYPE_UINT16,
+ DIS_FIELDTYPE_UINT32,
+ DIS_FIELDTYPE_UINT64,
+ DIS_FIELDTYPE_FLOAT32,
+ DIS_FIELDTYPE_FLOAT64,
+
+ /* padding */
+ DIS_FIELDTYPE_PAD8,
+ DIS_FIELDTYPE_PAD16,
+ DIS_FIELDTYPE_PAD24,
+ DIS_FIELDTYPE_PAD32,
+
+ /* enumerations */
+ DIS_FIELDTYPE_ACKNOWLEDGE_FLAG,
+ DIS_FIELDTYPE_ACTION_ID,
+ DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS,
+ DIS_FIELDTYPE_APPLICATION_STATUS_TYPE,
+ DIS_FIELDTYPE_APPLICATION_TYPE,
+ DIS_FIELDTYPE_CATEGORY,
+ DIS_FIELDTYPE_CONTROL_ID,
+ DIS_FIELDTYPE_DETONATION_RESULT,
+ DIS_FIELDTYPE_DOMAIN,
+ DIS_FIELDTYPE_ENTITY_KIND,
+ DIS_FIELDTYPE_FROZEN_BEHAVIOR,
+ DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR,
+ DIS_FIELDTYPE_PDU_TYPE,
+ DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE,
+ DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS,
+ DIS_FIELDTYPE_PROTOCOL_FAMILY,
+ DIS_FIELDTYPE_PROTOCOL_VERSION,
+ DIS_FIELDTYPE_REASON,
+ DIS_FIELDTYPE_REQUEST_STATUS,
+ DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE,
+ DIS_FIELDTYPE_RESPONSE_FLAG,
+ DIS_FIELDTYPE_TDL_TYPE,
+ DIS_FIELDTYPE_RADIO_CATEGORY,
+ DIS_FIELDTYPE_NOMENCLATURE_VERSION,
+ DIS_FIELDTYPE_NOMENCLATURE,
+ DIS_FIELDTYPE_RADIO_TRANSMIT_STATE,
+ DIS_FIELDTYPE_RADIO_INPUT_SOURCE,
+ DIS_FIELDTYPE_ANTENNA_PATTERN_TYPE,
+ DIS_FIELDTYPE_SPREAD_SPECTRUM,
+ DIS_FIELDTYPE_MODULATION_MAJOR,
+ DIS_FIELDTYPE_MODULATION_DETAIL,
+ DIS_FIELDTYPE_MODULATION_SYSTEM,
+ DIS_FIELDTYPE_CRYPTO_SYSTEM,
+ DIS_FIELDTYPE_EMITTER_NAME,
+ DIS_FIELDTYPE_EMISSION_FUNCTION,
+ DIS_FIELDTYPE_BEAM_FUNCTION,
+
+ /* other atomic types */
+ DIS_FIELDTYPE_PDU_LENGTH,
+ DIS_FIELDTYPE_EXERCISE_ID,
+ DIS_FIELDTYPE_SITE,
+ DIS_FIELDTYPE_APPLICATION,
+ DIS_FIELDTYPE_ENTITY,
+ DIS_FIELDTYPE_APPEARANCE,
+ DIS_FIELDTYPE_ARTIC_PARAM_TYPE,
+ DIS_FIELDTYPE_CAPABILITIES,
+ DIS_FIELDTYPE_COUNTRY,
+ DIS_FIELDTYPE_DATUM_ID,
+ DIS_FIELDTYPE_DATUM_LENGTH,
+ DIS_FIELDTYPE_DEAD_RECKONING_PARAMS,
+ DIS_FIELDTYPE_DEAD_RECKONING_ALGORITHM,
+ DIS_FIELDTYPE_DEAD_RECKONING_OTHER_PARAMS,
+ DIS_FIELDTYPE_ENTITY_MARKING,
+ DIS_FIELDTYPE_EXTRA,
+ DIS_FIELDTYPE_FIXED_DATUM_VALUE,
+ DIS_FIELDTYPE_FIXED_LEN_STR,
+ DIS_FIELDTYPE_FORCE_ID,
+ DIS_FIELDTYPE_FUSE,
+ DIS_FIELDTYPE_NUM_FIXED_DATA,
+ DIS_FIELDTYPE_NUM_VARIABLE_DATA,
+ DIS_FIELDTYPE_REQUEST_ID,
+ DIS_FIELDTYPE_SPECIFIC,
+ DIS_FIELDTYPE_SUBCATEGORY,
+ DIS_FIELDTYPE_TIME_INTERVAL,
+ DIS_FIELDTYPE_TIMESTAMP,
+ DIS_FIELDTYPE_WARHEAD,
+ DIS_FIELDTYPE_RADIO_ID,
+ DIS_FIELDTYPE_SAMPLE_RATE,
+ DIS_FIELDTYPE_DATA_LENGTH,
+ DIS_FIELDTYPE_NUMBER_OF_SAMPLES,
+ DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS,
+ DIS_FIELDTYPE_ANTENNA_PATTERN_LENGTH,
+ DIS_FIELDTYPE_TRANSMIT_FREQUENCY,
+ DIS_FIELDTYPE_MODULATION_PARAMETER_LENGTH,
+ DIS_FIELDTYPE_FH_NETWORK_ID,
+ DIS_FIELDTYPE_FH_SET_ID,
+ DIS_FIELDTYPE_LO_SET_ID,
+ DIS_FIELDTYPE_FH_MSG_START,
+ DIS_FIELDTYPE_RESERVED,
+ DIS_FIELDTYPE_FH_SYNC_TIME_OFFSET,
+ DIS_FIELDTYPE_FH_SECURITY_KEY,
+ DIS_FIELDTYPE_FH_CLEAR_CHANNEL,
+ DIS_FIELDTYPE_TS_ALLOCATION_MODE,
+ DIS_FIELDTYPE_TRANSMITTER_PRIMARY_MODE,
+ DIS_FIELDTYPE_TRANSMITTER_SECONDARY_MODE,
+ DIS_FIELDTYPE_JTIDS_SYNC_STATE,
+ DIS_FIELDTYPE_NETWORK_SYNC_ID,
+ DIS_FIELDTYPE_LINK16_NPG,
+ DIS_FIELDTYPE_LINK16_TSEC_CVLL,
+ DIS_FIELDTYPE_LINK16_MSEC_CVLL,
+ DIS_FIELDTYPE_LINK16_MESSAGE_TYPE,
+ DIS_FIELDTYPE_NUM_ELECTROMAGNETIC_EMISSION_SYSTEMS,
+ DIS_FIELDTYPE_NUM_OF_SHAFTS,
+ DIS_FIELDTYPE_NUM_OF_APAS,
+ DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEMS,
+ DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEM_BEAMS,
+
+ /* composite types */
+ DIS_FIELDTYPE_BURST_DESCRIPTOR,
+ DIS_FIELDTYPE_CLOCK_TIME,
+ DIS_FIELDTYPE_ENTITY_ID,
+ DIS_FIELDTYPE_ENTITY_TYPE,
+ DIS_FIELDTYPE_RADIO_ENTITY_TYPE,
+ DIS_FIELDTYPE_EVENT_ID,
+ DIS_FIELDTYPE_LINEAR_VELOCITY,
+ DIS_FIELDTYPE_LOCATION_ENTITY,
+ DIS_FIELDTYPE_LOCATION_WORLD,
+ DIS_FIELDTYPE_ORIENTATION,
+ DIS_FIELDTYPE_SIMULATION_ADDRESS,
+ DIS_FIELDTYPE_VARIABLE_DATUM_VALUE,
+ DIS_FIELDTYPE_VECTOR_32,
+ DIS_FIELDTYPE_VECTOR_64,
+ DIS_FIELDTYPE_ENCODING_SCHEME,
+ DIS_FIELDTYPE_ANTENNA_LOCATION,
+ DIS_FIELDTYPE_REL_ANTENNA_LOCATON,
+ DIS_FIELDTYPE_MODULATION_TYPE,
+ DIS_FIELDTYPE_CRYPTO_KEY_ID,
+ DIS_FIELDTYPE_MODULATION_PARAMETERS,
+ DIS_FIELDTYPE_ANTENNA_PATTERN_PARAMETERS,
+ DIS_FIELDTYPE_MOD_PARAMS_CCTT_SINCGARS,
+ DIS_FIELDTYPE_MOD_PARAMS_JTIDS_MIDS,
+ DIS_FIELDTYPE_LINK16_MESSAGE_DATA,
+ DIS_FIELDTYPE_LINK16_PTT,
+ DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM,
+ DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM,
+ DIS_FIELDTYPE_EMITTER_SYSTEM,
+ DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA,
+ DIS_FIELDTYPE_TRACK_JAM,
+ DIS_FIELDTYPE_SHAFTS,
+ DIS_FIELDTYPE_APA,
+ DIS_FIELDTYPE_UA_EMITTER_SYSTEMS,
+ DIS_FIELDTYPE_UA_BEAMS,
+ DIS_FIELDTYPE_UA_EMITTER_SYSTEM,
+ DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA,
+
+ /* arrays */
+ DIS_FIELDTYPE_FIXED_DATUMS,
+ DIS_FIELDTYPE_FIXED_DATUM_IDS,
+ DIS_FIELDTYPE_VARIABLE_DATUMS,
+ DIS_FIELDTYPE_VARIABLE_DATUM_IDS,
+ DIS_FIELDTYPE_VARIABLE_PARAMETERS,
+ DIS_FIELDTYPE_VARIABLE_RECORDS,
+ DIS_FIELDTYPE_RADIO_DATA
+
+} DIS_FieldType;
+
+/* Struct which contains the data needed to parse a single DIS field.
+ */
+typedef struct DIS_ParserNode_T
+{
+ DIS_FieldType fieldType;
+ const char *fieldLabel;
+ int fieldRepeatLen;
+ int ettVar;
+ struct DIS_ParserNode_T *children;
+ guint32 *outputVar;
+} DIS_ParserNode;
+
+/* Struct which associates a name with a particular bit combination.
+ */
+typedef struct
+{
+ guint32 value;
+ const char *label;
+} DIS_BitMaskMapping;
+
+/* Struct which specifies all possible bit mappings associated with
+ * a particular bit mask.
+ */
+typedef struct
+{
+ guint32 maskBits;
+ guint32 shiftBits;
+ const char *label;
+ DIS_BitMaskMapping bitMappings[33];
+} DIS_BitMask;
+
+/* all of these variables are assigned by reference */
+/* *(parserNode.outputVar) = value */
+static guint32 disProtocolVersion;
+static guint32 pduType;
+static guint32 protocolFamily;
+static guint32 persistentObjectPduType;
+static guint32 entityKind;
+static guint32 entityDomain;
+static guint32 category;
+static guint32 radioID;
+static guint32 disRadioTransmitState;
+static guint32 encodingScheme;
+static guint32 tdlType;
+static guint32 numSamples;
+static guint32 messageType;
+static guint32 numFixed;
+static guint32 numVariable;
+static guint32 numBeams;
+static guint32 numTrackJamTargets;
+static guint32 numShafts;
+static guint32 numApas;
+static guint32 numUAEmitter;
+static guint32 numUABeams;
+static guint32 variableDatumLength;
+static guint32 variableParameterType;
+static guint32 variableRecordLength;
+static guint32 variableRecordType;
+static guint32 majorModulation;
+static guint32 systemModulation;
+static guint32 modulationParamLength;
+static guint32 disAntennaPattern;
+
+/* Headers
+ */
+static DIS_ParserNode DIS_FIELDS_PDU_HEADER[] =
+{
+ { DIS_FIELDTYPE_PROTOCOL_VERSION, "Protocol Version",0,0,0,&disProtocolVersion },
+ { DIS_FIELDTYPE_EXERCISE_ID, "Exercise ID",0,0,0,0 },
+ { DIS_FIELDTYPE_PDU_TYPE, "PDU Type",0,0,0,&pduType },
+ { DIS_FIELDTYPE_PROTOCOL_FAMILY, "Protocol Family",0,0,0,&protocolFamily },
+ { DIS_FIELDTYPE_TIMESTAMP, "Timestamp",0,0,0,0 },
+ { DIS_FIELDTYPE_PDU_LENGTH, "Length",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_PERSISTENT_OBJECT_HEADER[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Protocol Version",0,0,0,0 },
+ { DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE, "PO PDU Type",0,0,0,&persistentObjectPduType },
+ { DIS_FIELDTYPE_UINT8, "Exercise ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "PO Database ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Length",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "PDU Count",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* Composite types
+ */
+
+static DIS_ParserNode DIS_FIELDS_BURST_DESCRIPTOR[] =
+{
+ { DIS_FIELDTYPE_ENTITY_TYPE, "Munition",0,0,0,0 },
+ { DIS_FIELDTYPE_WARHEAD, "Warhead",0,0,0,0 },
+ { DIS_FIELDTYPE_FUSE, "Fuse",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Quantity",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Rate",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_CLOCK_TIME[] =
+{
+ { DIS_FIELDTYPE_UINT32, "Hour",0,0,0,0 },
+ { DIS_FIELDTYPE_TIMESTAMP, "Time Past The Hour",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_ENTITY_ID[] =
+{
+ { DIS_FIELDTYPE_SITE, "Site",0,0,0,0 },
+ { DIS_FIELDTYPE_APPLICATION, "Application",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY, "Entity",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_ENTITY_TYPE[] =
+{
+ { DIS_FIELDTYPE_ENTITY_KIND, "Entity Kind",0,0,0,&entityKind },
+ { DIS_FIELDTYPE_DOMAIN, "Domain",0,0,0,&entityDomain },
+ { DIS_FIELDTYPE_COUNTRY, "Country",0,0,0,0 },
+ { DIS_FIELDTYPE_CATEGORY, "Category",0,0,0,&category },
+ { DIS_FIELDTYPE_SUBCATEGORY, "Subcategory",0,0,0,0 },
+ { DIS_FIELDTYPE_SPECIFIC, "Specific",0,0,0,0 },
+ { DIS_FIELDTYPE_EXTRA, "Extra",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_RADIO_ENTITY_TYPE[] =
+{
+ { DIS_FIELDTYPE_ENTITY_KIND, "Entity Kind",0,0,0,&entityKind },
+ { DIS_FIELDTYPE_DOMAIN, "Domain",0,0,0,&entityDomain },
+ { DIS_FIELDTYPE_COUNTRY, "Country",0,0,0,0 },
+ { DIS_FIELDTYPE_RADIO_CATEGORY, "Radio Category",0,0,0,&category },
+ { DIS_FIELDTYPE_NOMENCLATURE_VERSION, "Nomenclature Version",0,0,0,0 },
+ { DIS_FIELDTYPE_NOMENCLATURE, "Nomenclature",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_MODULATION_TYPE[] =
+{
+ { DIS_FIELDTYPE_SPREAD_SPECTRUM, "Spread Spectrum",0,0,0,0 },
+ { DIS_FIELDTYPE_MODULATION_MAJOR, "Major",0,0,0,&majorModulation },
+ { DIS_FIELDTYPE_MODULATION_DETAIL, "Detail",0,0,0,0 },
+ { DIS_FIELDTYPE_MODULATION_SYSTEM, "System",0,0,0,&systemModulation },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_EVENT_ID[] =
+{
+ { DIS_FIELDTYPE_UINT16, "Site",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Application",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Event Number",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_ORIENTATION[] =
+{
+ { DIS_FIELDTYPE_FLOAT32, "Psi",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Theta",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Phi",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_SIMULATION_ADDRESS[] =
+{
+ { DIS_FIELDTYPE_UINT16, "Site",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Application",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_32[] =
+{
+ { DIS_FIELDTYPE_FLOAT32, "X",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Y",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Z",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_64[] =
+{
+ { DIS_FIELDTYPE_FLOAT64, "X",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT64, "Y",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT64, "Z",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS[] =
+{
+ { DIS_FIELDTYPE_FH_NETWORK_ID, "Frequency Hopping Network ID",0,0,0,0 },
+ { DIS_FIELDTYPE_FH_SET_ID, "Frequency Set ID",0,0,0,0 },
+ { DIS_FIELDTYPE_LO_SET_ID, "Lockout Set ID",0,0,0,0 },
+ { DIS_FIELDTYPE_FH_MSG_START, "Frequency Hopping Message Start",0,0,0,0 },
+ { DIS_FIELDTYPE_RESERVED, "Reserved",0,0,0,0 },
+ { DIS_FIELDTYPE_FH_SYNC_TIME_OFFSET, "FH Synchronization Time Offset",0,0,0,0 },
+ { DIS_FIELDTYPE_FH_SECURITY_KEY, "Transmission Security Key",0,0,0,0 },
+ { DIS_FIELDTYPE_FH_CLEAR_CHANNEL, "Clear Channel",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS[] =
+{
+ { DIS_FIELDTYPE_TS_ALLOCATION_MODE, "Time Slot Allocaton Mode",0,0,0,0 },
+ { DIS_FIELDTYPE_TRANSMITTER_PRIMARY_MODE, "Transmitter Primary Mode",0,0,0,0 },
+ { DIS_FIELDTYPE_TRANSMITTER_SECONDARY_MODE, "Transmitter Secondary Mode",0,0,0,0 },
+ { DIS_FIELDTYPE_JTIDS_SYNC_STATE, "Synchronization State",0,0,0,0 },
+ { DIS_FIELDTYPE_NETWORK_SYNC_ID, "Network Sync ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER[] =
+{
+ { DIS_FIELDTYPE_LINK16_NPG, "Network Participant Group",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Network Number",0,0,0,0 },
+ { DIS_FIELDTYPE_LINK16_TSEC_CVLL, "TSEC CVLL",0,0,0,0 },
+ { DIS_FIELDTYPE_LINK16_MSEC_CVLL, "MSEC CVLL",0,0,0,0 },
+ { DIS_FIELDTYPE_LINK16_MESSAGE_TYPE, "Message Type",0,0,0,&messageType },
+ { DIS_FIELDTYPE_UINT16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Time Slot ID",0,0,0,0 },
+ { DIS_FIELDTYPE_LINK16_PTT, "Perceived Transmit Time",0,0,0,0 },
+ { DIS_FIELDTYPE_LINK16_MESSAGE_DATA, "Message Data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* Array records
+ */
+static DIS_ParserNode DIS_FIELDS_FIXED_DATUM[] =
+{
+ { DIS_FIELDTYPE_DATUM_ID, "Datum ID",0,0,0,0 },
+ { DIS_FIELDTYPE_FIXED_DATUM_VALUE, "Datum value",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VARIABLE_DATUM[] =
+{
+ { DIS_FIELDTYPE_DATUM_ID, "Datum ID",0,0,0,0 },
+ { DIS_FIELDTYPE_DATUM_LENGTH, "Datum length",0,0,0,&variableDatumLength },
+ { DIS_FIELDTYPE_VARIABLE_DATUM_VALUE, "Datum value",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_DATUM_IDS[] =
+{
+ { DIS_FIELDTYPE_DATUM_ID, "Datum ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_EMITTER_SYSTEM[] =
+{
+ { DIS_FIELDTYPE_EMITTER_NAME, "Emitter Name",0,0,0,0 },
+ { DIS_FIELDTYPE_EMISSION_FUNCTION, "Function",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Emitter ID Number",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_UA_SHAFT[] =
+{
+ { DIS_FIELDTYPE_INT16, "Current Shaft RPM",0,0,0,0 },
+ { DIS_FIELDTYPE_INT16, "Ordered Shaft RPM",0,0,0,0 },
+ { DIS_FIELDTYPE_INT32, "Shaft RPM Rate of Change",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_APA[] =
+{
+ { DIS_FIELDTYPE_INT16, "Parameter Index",0,0,0,0 }, /*FIXME enum*/
+ { DIS_FIELDTYPE_INT16, "Value", 0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_UA_EMITTER_SYSTEM[] =
+{
+ { DIS_FIELDTYPE_UINT16, "Acoustic Emitter Name",0,0,0,0 }, /*FIXME enum*/
+ { DIS_FIELDTYPE_UINT8, "Function",0,0,0,0 }, /*FIXME enum*/
+ { DIS_FIELDTYPE_UINT8, "Acoustic ID Number",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_FUNDAMENTAL_PARAMETER_DATA[] =
+{
+ { DIS_FIELDTYPE_FLOAT32, "Frequency",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Frequency Range",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Effective Radiated Power",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Pulse Repetition Frequency",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Pulse Width",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Beam Azimuth Center",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Beam Azimuth Sweep",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Beam Elevation Center",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Beam Elevation Sweep",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Beam Sweep Sync",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_TRACK_JAM[] =
+{
+ { DIS_FIELDTYPE_SITE, "Site",0,0,0,0 },
+ { DIS_FIELDTYPE_APPLICATION, "Application",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY, "Entity",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Emitter ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Beam ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* Variable Parameters
+ */
+static DIS_ParserNode DIS_FIELDS_VP_TYPE[] =
+{
+ { DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR, "Variable Parameter Type",0,0,0,&variableParameterType },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* Array record contents - variable parameter records
+ */
+static DIS_ParserNode DIS_FIELDS_VP_GENERIC[] =
+{
+ { DIS_FIELDTYPE_FIXED_LEN_STR, "Data",15,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VP_ARTICULATED_PART[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Change",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Part Attached To ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ARTIC_PARAM_TYPE, "Parameter Type",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT64, "Parameter Value",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VP_ATTACHED_PART[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Attached Indicator",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Part Attached To ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ARTIC_PARAM_TYPE, "Parameter Type",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_TYPE, "Part Type",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VP_ENTITY_OFFSET[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Offset Type",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",2,0,0,0 },
+ { DIS_FIELDTYPE_VECTOR_32, "Offset",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VP_ENTITY_ASSOCIATION[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Change Indicator",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Association Status",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Association Type",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Object Identifier",2,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Own Station Location",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Physical Connection Type",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Group Member Type",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Group Number",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+/* Variable Records
+ */
+static DIS_ParserNode DIS_FIELDS_VR_TYPE[] =
+{
+ { DIS_FIELDTYPE_UINT32, "Record Type",0,0,0,&variableRecordType },
+ { DIS_FIELDTYPE_UINT16, "Record Length",0,0,0,&variableRecordLength },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_APPLICATION_HEALTH_STATUS[] =
+{
+ { DIS_FIELDTYPE_PAD8, "Padding",2,0,0,0 },
+ { DIS_FIELDTYPE_APPLICATION_STATUS_TYPE, "Status Type",0,0,0,0 },
+ { DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS, "General Status",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Specific Status",0,0,0,0 },
+ { DIS_FIELDTYPE_INT32, "Status Value Int",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT64, "Status Value Float",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_APPLICATION_INITIALIZATION[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Exercise ID",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_FIXED_LEN_STR, "Exercise File Path",256,0,0,0 },
+ { DIS_FIELDTYPE_FIXED_LEN_STR, "Exercise File Name",128,0,0,0 },
+ { DIS_FIELDTYPE_FIXED_LEN_STR, "Application Role",64,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_DATA_QUERY[] =
+{
+ { DIS_FIELDTYPE_UINT16, "Num Records",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_FIXED_DATUM_IDS, "Record",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Beam Data Length",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Beam ID Number",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Beam Parameter Index",0,0,0,0 },
+ { DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA,
+ "Fundamental Parameter Data",0,0,0,0 },
+ { DIS_FIELDTYPE_BEAM_FUNCTION, "Beam Function",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Number of Targets in Track/Jam Field",0,0,0,&numTrackJamTargets },
+ { DIS_FIELDTYPE_UINT8, "High Density Track/Jam",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Jamming Mode Sequence",0,0,0,0 },
+ { DIS_FIELDTYPE_TRACK_JAM, "Track/Jam Entity",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM[] =
+{
+ { DIS_FIELDTYPE_UINT8, "System Data Length",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Number of Beams (M)",0,0,0,&numBeams },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_EMITTER_SYSTEM, "Emitter System",0,0,0,0 },
+ { DIS_FIELDTYPE_VECTOR_32, "Location",0,0,0,0 },
+ { DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM, "Beam",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA[] =
+{
+ { DIS_FIELDTYPE_UINT16, "Active Emission Parameter Index",0,0,0,0 }, /*FIXME enum!!!*/
+ { DIS_FIELDTYPE_UINT16, "Scan Pattern",0,0,0,0 }, /*FIXME enum!!!*/
+ { DIS_FIELDTYPE_FLOAT32, "Beam Center Azimuth (Horizontal Bearing)",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Azimuthal Beamwidth (Horizontal Beamwidth)",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Beam Center D/E",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "D/E Beamwidth (Vertical Beamwidth)",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_UA_BEAM[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Beam Data Length",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Beam ID Number",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA,
+ "Fundamental Data Parameters",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_FIELDS_VR_UA_EMITTER_SYSTEM[] =
+{
+ { DIS_FIELDTYPE_UINT8, "Emitter System Data Length",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEM_BEAMS, "Number of Beams (m)",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_UA_EMITTER_SYSTEM, "Acoustic Emitter System",0,0,0,0 },
+ { DIS_FIELDTYPE_VECTOR_32, "Location (with respect to entity)",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* Bit fields
+ */
+static DIS_ParserNode DIS_FIELDS_NONE[] =
+{
+ { DIS_FIELDTYPE_END, NULL, 0,0,0,0 }
+};
+
+static DIS_BitMask DIS_APPEARANCE_LANDPLATFORM[] =
+{
+ { 0x00000001, 0, "Paint Scheme", {
+ { 0, "Uniform color" },
+ { 1, "Camouflage" },
+ { 0,0 }
+ } },
+ { 0x00000002, 1, "Mobility", {
+ { 0, "No mobility kill" },
+ { 1, "Mobility kill" },
+ { 0,0 }
+ } },
+ { 0x00000004, 2, "Fire Power", {
+ { 0, "No fire-power kill" },
+ { 1, "Fire-power kill" },
+ { 0,0 }
+ } },
+ { 0x00000018, 3, "Damage", {
+ { 0, "No damage" },
+ { 1, "Slight damage" },
+ { 2, "Moderate damage" },
+ { 3, "Destroyed" },
+ { 0,0 }
+ } },
+ { 0, 0, 0, {
+ { 0, 0 }
+ } }
+};
+
+static DIS_BitMask DIS_APPEARANCE_LIFEFORM[] =
+{
+ { 0x00000001, 0, "Paint Scheme", {
+ { 0, "Uniform color" },
+ { 1, "Camouflage" },
+ { 0,0 }
+ } },
+ { 0x00000018, 3, "Health", {
+ { 0, "No injury" },
+ { 1, "Slight injury" },
+ { 2, "Moderate injury" },
+ { 3, "Fatal injury" },
+ { 0,0 }
+ } },
+ { 0, 0, 0, {
+ { 0, 0 }
+ } }
+};
+
+/******************************************************************************
+*
+* PDUS
+*
+*******************************************************************************/
+
+/* DIS Entity Information / Interaction PDUs
+ */
+static DIS_ParserNode DIS_PARSER_ENTITY_STATE_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_FORCE_ID, "Force ID",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS, "Number of Articulation Parameters",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_ENTITY_TYPE, "Entity Type",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_TYPE, "Alternative Entity Type",0,0,0,0 },
+ { DIS_FIELDTYPE_LINEAR_VELOCITY, "Entity Linear Velocity",0,0,0,0 },
+ { DIS_FIELDTYPE_LOCATION_WORLD, "Entity Location",0,0,0,0 },
+ { DIS_FIELDTYPE_ORIENTATION, "Entity Orientation",0,0,0,0 },
+ { DIS_FIELDTYPE_APPEARANCE, "Entity Appearance",0,0,0,0 },
+ { DIS_FIELDTYPE_DEAD_RECKONING_PARAMS, "Dead Reckoning Parameters",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_MARKING, "Entity Marking",0,0,0,0 },
+ { DIS_FIELDTYPE_CAPABILITIES, "Capabilities",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_PARAMETERS, "Variable Parameter",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* DIS Distributed Emission Regeneration PDUs
+ */
+static DIS_ParserNode DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Emitting Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "State Update Indicator",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_ELECTROMAGNETIC_EMISSION_SYSTEMS, "Number of Systems (N)",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM, "Emission System",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+
+/* DIS Underwater Acoustic PDUs
+ */
+static DIS_ParserNode DIS_PARSER_UNDERWATER_ACOUSTIC_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Emitting Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "State Update Indicator",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Passive Parameter Index", 0,0,0,0 }, /* !! enum !! */
+ { DIS_FIELDTYPE_UINT8, "Propulsion Plant Configuration",0,0,0,0 }, /* !! enum !! */
+ { DIS_FIELDTYPE_NUM_OF_SHAFTS, "Number of Shafts",0,0,0,&numShafts },
+ { DIS_FIELDTYPE_NUM_OF_APAS, "Number of Additional Passive Activities (APA)",0,0,0,&numApas },
+ { DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEMS, "Number of UA Emitter Systems",0,0,0,&numUAEmitter },
+ { DIS_FIELDTYPE_SHAFTS, "Shafts",0,0,0,0 },
+ { DIS_FIELDTYPE_APA, "APAs",0,0,0,0 },
+ { DIS_FIELDTYPE_UA_EMITTER_SYSTEMS, "Underwater Acoustic Emission System",0,0,0,0 },
+ { DIS_FIELDTYPE_UA_BEAMS, "Beams",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+
+/* DIS Radio Communications protocol (RCP) family PDUs
+ */
+static DIS_ParserNode DIS_PARSER_TRANSMITTER_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_RADIO_ID, "Radio ID",0,0,0,&radioID },
+ { DIS_FIELDTYPE_RADIO_ENTITY_TYPE, "Radio Entity Type",0,0,0,0 },
+ { DIS_FIELDTYPE_RADIO_TRANSMIT_STATE, "Radio Transmit State",0,0,0,&disRadioTransmitState },
+ { DIS_FIELDTYPE_RADIO_INPUT_SOURCE, "Radio Input Source",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_ANTENNA_LOCATION, "Antenna Location",0,0,0,0 },
+ { DIS_FIELDTYPE_REL_ANTENNA_LOCATON, "Relative Antenna Location",0,0,0,0 },
+ { DIS_FIELDTYPE_ANTENNA_PATTERN_TYPE, "Antenna Pattern Type",0,0,0,&disAntennaPattern },
+ { DIS_FIELDTYPE_ANTENNA_PATTERN_LENGTH, "Antenna Pattern Length",0,0,0,0 },
+ { DIS_FIELDTYPE_TRANSMIT_FREQUENCY, "Transmit Frequency",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Transmit Frequency Bandwidth",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Transmit Power",0,0,0,0 },
+ { DIS_FIELDTYPE_MODULATION_TYPE, "Modulation Type",0,0,0,0 },
+ { DIS_FIELDTYPE_CRYPTO_SYSTEM, "Crypto System",0,0,0,0 },
+ { DIS_FIELDTYPE_CRYPTO_KEY_ID, "Crypto Key ID",0,0,0,0 },
+ { DIS_FIELDTYPE_MODULATION_PARAMETER_LENGTH, "Modulation Parameter Length",0,0,0,&modulationParamLength },
+ { DIS_FIELDTYPE_PAD24, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_MODULATION_PARAMETERS, "Modulation Parameters",0,0,0,0 },
+ /* need to finish decoding this PDU */
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_SIGNAL_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_RADIO_ID, "Radio ID",0,0,0,&radioID },
+ { DIS_FIELDTYPE_ENCODING_SCHEME, "Encoding Scheme",0,0,0,&encodingScheme },
+ { DIS_FIELDTYPE_TDL_TYPE, "TDL Type",0,0,0,&tdlType },
+ { DIS_FIELDTYPE_SAMPLE_RATE, "Sample Rate",0,0,0,0 },
+ { DIS_FIELDTYPE_DATA_LENGTH, "Data Length",0,0,0,0 },
+ { DIS_FIELDTYPE_NUMBER_OF_SAMPLES, "Number of Samples",0,0,0,&numSamples },
+ { DIS_FIELDTYPE_RADIO_DATA, "Radio Data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* DIS Warfare PDUs
+ */
+static DIS_ParserNode DIS_PARSER_FIRE_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Firing Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Target Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Munition ID",0,0,0,0 },
+ { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Fire Mission Index",0,0,0,0 },
+ { DIS_FIELDTYPE_LOCATION_WORLD, "Location in World Coordinates",0,0,0,0 },
+ { DIS_FIELDTYPE_BURST_DESCRIPTOR, "Burst Descriptor",0,0,0,0 },
+ { DIS_FIELDTYPE_LINEAR_VELOCITY, "Velocity",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Range",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DETONATION_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Firing Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Target Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Munition ID",0,0,0,0 },
+ { DIS_FIELDTYPE_EVENT_ID, "Event ID",0,0,0,0 },
+ { DIS_FIELDTYPE_LINEAR_VELOCITY, "Velocity",0,0,0,0 },
+ { DIS_FIELDTYPE_LOCATION_WORLD, "Location in World Coordinates",0,0,0,0 },
+ { DIS_FIELDTYPE_BURST_DESCRIPTOR, "Burst Descriptor",0,0,0,0 },
+ { DIS_FIELDTYPE_LOCATION_ENTITY, "Location in Entity Coordinates",0,0,0,0 },
+ { DIS_FIELDTYPE_DETONATION_RESULT, "Detonation Result",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS, "Number of Articulation Parameters",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_PARAMETERS, "Variable Parameter",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* DIS Simulation Management PDUs
+ */
+static DIS_ParserNode DIS_PARSER_START_RESUME_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
+ { DIS_FIELDTYPE_CLOCK_TIME, "Simulation Time",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_STOP_FREEZE_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
+ { DIS_FIELDTYPE_REASON, "Reason",0,0,0,0 },
+ { DIS_FIELDTYPE_FROZEN_BEHAVIOR, "Frozen Behavior",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD16, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_ACKNOWLEDGE_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ACKNOWLEDGE_FLAG, "Acknowledge Flag",0,0,0,0 },
+ { DIS_FIELDTYPE_RESPONSE_FLAG, "Response Flag",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_ACTION_REQUEST_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ACTION_ID, "Action ID",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_ACTION_RESPONSE_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_STATUS, "Request Status",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DATA_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD32, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DATA_QUERY_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_TIME_INTERVAL, "Time interval",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Datum Ids",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Datum Ids",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUM_IDS, "Fixed datum ids",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUM_IDS, "Variable datum ids",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_COMMENT_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_SIMAN_ENTITY_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* DIS Simulation Management with Reliability PDUs
+ */
+static DIS_ParserNode DIS_PARSER_START_RESUME_R_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
+ { DIS_FIELDTYPE_CLOCK_TIME, "Simulation Time",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_STOP_FREEZE_R_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_CLOCK_TIME, "Real World Time",0,0,0,0 },
+ { DIS_FIELDTYPE_REASON, "Reason",0,0,0,0 },
+ { DIS_FIELDTYPE_FROZEN_BEHAVIOR, "Frozen Behavior",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_ACTION_REQUEST_R_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ACTION_ID, "Action ID",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DATA_R_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Data Fields",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Data Fields",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUMS, "Fixed data",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUMS, "Variable data",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DATA_QUERY_R_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_TIME_INTERVAL, "Time interval",0,0,0,0 },
+ { DIS_FIELDTYPE_NUM_FIXED_DATA, "Number of Fixed Datum Ids",0,0,0,&numFixed },
+ { DIS_FIELDTYPE_NUM_VARIABLE_DATA, "Number of Variable Datum Ids",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_FIXED_DATUM_IDS, "Fixed datum ids",0,0,0,0 },
+ { DIS_FIELDTYPE_VARIABLE_DATUM_IDS, "Variable datum ids",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_SIMAN_ENTITY_R_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",3,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* DIS Experimental V-DIS PDUs
+ */
+static DIS_ParserNode DIS_PARSER_APPLICATION_CONTROL_PDU[] =
+{
+ { DIS_FIELDTYPE_ENTITY_ID, "Originating Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Receiving Entity ID",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE, "Reliability",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Time Interval",0,0,0,0 },
+ { DIS_FIELDTYPE_CONTROL_ID, "Control ID",0,0,0,0 },
+ { DIS_FIELDTYPE_PAD8, "Padding",0,0,0,0 },
+ { DIS_FIELDTYPE_APPLICATION_TYPE, "Originating App Type",0,0,0,0 },
+ { DIS_FIELDTYPE_APPLICATION_TYPE, "Receiving App Type",0,0,0,0 },
+ { DIS_FIELDTYPE_REQUEST_ID, "Request ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Number of Parts",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Current Part",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Number of Variable Records",0,0,0,&numVariable },
+ { DIS_FIELDTYPE_VARIABLE_RECORDS, "Record",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+/* Persistent Object (PO) Family PDU parsers
+ */
+static DIS_ParserNode DIS_PARSER_SIMULATOR_PRESENT_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Simulator Type",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Database Sequence Number",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Simulator Load",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Simulation Load",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Time",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Packets Sent",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Unit Database Version",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Relative Battle Scheme",0,0,0,0 },
+ { DIS_FIELDTYPE_FIXED_LEN_STR, "Terrain Name",32,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Terrain Version",0,0,0,0 },
+ { DIS_FIELDTYPE_FIXED_LEN_STR, "Host Name",32,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DESCRIBE_OBJECT_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_UINT32, "Database Sequence Number",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "Object ID",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Owner",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT16, "Sequence Number",0,0,0,0 },
+ { DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS, "Object Class",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Missing From World State",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_OBJECTS_PRESENT_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Owner",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Object Count",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_OBJECT_REQUEST_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Requesting Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Object Owner",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Object Count",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_DELETE_OBJECTS_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Requesting Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT8, "Object Count",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_SET_WORLD_STATE_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Requesting Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_FLOAT32, "Clock Rate",0,0,0,0 },
+ { DIS_FIELDTYPE_UINT32, "Seconds Since 1970",0,0,0,0 },
+ { DIS_FIELDTYPE_ENTITY_ID, "World State ID",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+static DIS_ParserNode DIS_PARSER_NOMINATION_PO_PDU[] =
+{
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Nominated Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Nominating Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_SIMULATION_ADDRESS, "Missing Simulator",0,0,0,0 },
+ { DIS_FIELDTYPE_END, NULL,0,0,0,0 }
+};
+
+
+static void initializeParser(DIS_ParserNode parserNodes[]);
+
+/* Create a specific subtree for a PDU or a composite PDU field.
+ */
+static DIS_ParserNode *createSubtree(DIS_ParserNode parserNodes[], gint *ettVar)
+{
+ guint fieldIndex = 0;
+ guint fieldCount;
+ gint *ett[1];
+ DIS_ParserNode *newSubtree;
+
+ while (parserNodes[fieldIndex].fieldType != DIS_FIELDTYPE_END)
+ {
+ ++fieldIndex;
+ }
+
+ fieldCount = fieldIndex + 1;
+
+ newSubtree = (DIS_ParserNode*)g_malloc(sizeof(DIS_ParserNode) * fieldCount);
+
+ memcpy(newSubtree, parserNodes, sizeof(DIS_ParserNode) * fieldCount);
+
+ initializeParser(newSubtree);
+
+ *ettVar = -1;
+ ett[0] = ettVar;
+ proto_register_subtree_array(ett, array_length(ett));
+
+ return newSubtree;
+}
+
+/* Initialize an array of parser nodes.
+ */
+static void initializeParser(DIS_ParserNode parserNodes[])
+{
+ guint parserIndex = 0;
+
+ /* Create the parser subtrees for each of the composite field types.
+ */
+ while (parserNodes[parserIndex].fieldType != DIS_FIELDTYPE_END)
+ {
+ switch (parserNodes[parserIndex].fieldType)
+ {
+ /* Bit fields */
+ case DIS_FIELDTYPE_APPEARANCE:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_NONE,
+ &parserNodes[parserIndex].ettVar);
+ break;
+
+ /* Composite types */
+ case DIS_FIELDTYPE_MOD_PARAMS_CCTT_SINCGARS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_MOD_PARAMS_JTIDS_MIDS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS,
+ &parserNodes[parserIndex].ettVar);
+ break;
+
+ case DIS_FIELDTYPE_BURST_DESCRIPTOR:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_BURST_DESCRIPTOR,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_CLOCK_TIME:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_CLOCK_TIME,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_ENTITY_ID:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_ENTITY_ID,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_ENTITY_TYPE:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_ENTITY_TYPE,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_RADIO_ENTITY_TYPE:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_RADIO_ENTITY_TYPE,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_EVENT_ID:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_EVENT_ID,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_ORIENTATION:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_ORIENTATION,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_SIMULATION_ADDRESS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_SIMULATION_ADDRESS,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_LINEAR_VELOCITY:
+ case DIS_FIELDTYPE_LOCATION_ENTITY:
+ case DIS_FIELDTYPE_REL_ANTENNA_LOCATON:
+ case DIS_FIELDTYPE_VECTOR_32:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VECTOR_FLOAT_32,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_LOCATION_WORLD:
+ case DIS_FIELDTYPE_ANTENNA_LOCATION:
+ case DIS_FIELDTYPE_VECTOR_64:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VECTOR_FLOAT_64,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_MODULATION_TYPE:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_MODULATION_TYPE,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_EMITTER_SYSTEM:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_EMITTER_SYSTEM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_FUNDAMENTAL_PARAMETER_DATA,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_TRACK_JAM:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_TRACK_JAM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_SHAFTS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_UA_SHAFT,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_APA:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_APA,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_UA_EMITTER_SYSTEMS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_UA_EMITTER_SYSTEM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_UA_EMITTER_SYSTEM:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_UA_EMITTER_SYSTEM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_UA_BEAMS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_UA_BEAM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ /* Array records */
+ case DIS_FIELDTYPE_FIXED_DATUMS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_FIXED_DATUM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_VARIABLE_DATUMS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VARIABLE_DATUM,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_FIXED_DATUM_IDS:
+ case DIS_FIELDTYPE_VARIABLE_DATUM_IDS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_DATUM_IDS,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_VARIABLE_PARAMETERS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VP_TYPE,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ case DIS_FIELDTYPE_VARIABLE_RECORDS:
+ parserNodes[parserIndex].children = createSubtree(
+ DIS_FIELDS_VR_TYPE,
+ &parserNodes[parserIndex].ettVar);
+ break;
+ default:
+ break;
+ }
+ ++parserIndex;
+ }
+}
+
+/* Initialize the field parsers that are not explicitly included in any
+ * specific PDU. These fields are only accessed and used if a variant
+ * field indicates they are to be used.
+ */
+static void initializeFieldParsers(void)
+{
+ initializeParser(DIS_FIELDS_VP_GENERIC);
+ initializeParser(DIS_FIELDS_VP_ARTICULATED_PART);
+ initializeParser(DIS_FIELDS_VP_ATTACHED_PART);
+ initializeParser(DIS_FIELDS_VP_ENTITY_OFFSET);
+ initializeParser(DIS_FIELDS_VP_ENTITY_ASSOCIATION);
+ initializeParser(DIS_FIELDS_VR_APPLICATION_HEALTH_STATUS);
+ initializeParser(DIS_FIELDS_VR_APPLICATION_INITIALIZATION);
+ initializeParser(DIS_FIELDS_VR_DATA_QUERY);
+ initializeParser(DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM);
+ initializeParser(DIS_FIELDS_VR_ELECTROMAGNETIC_EMISSION_SYSTEM);
+ initializeParser(DIS_FIELDS_VR_UA_SHAFT);
+ initializeParser(DIS_FIELDS_VR_UA_EMITTER_SYSTEM);
+ initializeParser(DIS_FIELDS_VR_UA_BEAM);
+ initializeParser(DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS);
+ initializeParser(DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS);
+ initializeParser(DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER);
+
+}
+
+/* Initialize the parsers for each PDU type and the standard DIS header.
+ */
+static void initializeParsers(void)
+{
+ gint *ett[DIS_PDU_MAX_VARIABLE_PARAMETERS+DIS_PDU_MAX_VARIABLE_RECORDS+2];
+ int i, ett_index;
+
+ initializeParser(DIS_FIELDS_PDU_HEADER);
+
+ /* DIS Entity Information / Interaction PDUs */
+ initializeParser(DIS_PARSER_ENTITY_STATE_PDU);
+
+ /* DIS Distributed Emission Regeneration PDUs */
+ initializeParser(DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU);
+ initializeParser(DIS_PARSER_UNDERWATER_ACOUSTIC_PDU);
+
+ /* DIS Radio Communications protocol (RCP) family PDUs */
+ initializeParser(DIS_PARSER_TRANSMITTER_PDU);
+ initializeParser(DIS_PARSER_SIGNAL_PDU);
+
+ /* DIS Warfare PDUs */
+ initializeParser(DIS_PARSER_FIRE_PDU);
+ initializeParser(DIS_PARSER_DETONATION_PDU);
+
+ /* DIS Simulation Management PDUs */
+ initializeParser(DIS_PARSER_START_RESUME_PDU);
+ initializeParser(DIS_PARSER_STOP_FREEZE_PDU);
+ initializeParser(DIS_PARSER_ACKNOWLEDGE_PDU);
+ initializeParser(DIS_PARSER_ACTION_REQUEST_PDU);
+ initializeParser(DIS_PARSER_ACTION_RESPONSE_PDU);
+ initializeParser(DIS_PARSER_DATA_PDU);
+ initializeParser(DIS_PARSER_DATA_QUERY_PDU);
+ initializeParser(DIS_PARSER_COMMENT_PDU);
+ initializeParser(DIS_PARSER_SIMAN_ENTITY_PDU);
+
+ /* DIS Simulation Management with Reliability PDUs */
+ initializeParser(DIS_PARSER_START_RESUME_R_PDU);
+ initializeParser(DIS_PARSER_STOP_FREEZE_R_PDU);
+ initializeParser(DIS_PARSER_ACTION_REQUEST_R_PDU);
+ initializeParser(DIS_PARSER_DATA_R_PDU);
+ initializeParser(DIS_PARSER_DATA_QUERY_R_PDU);
+ initializeParser(DIS_PARSER_SIMAN_ENTITY_R_PDU);
+
+ /* DIS Experimental V-DIS PDUs */
+ initializeParser(DIS_PARSER_APPLICATION_CONTROL_PDU);
+
+ /* Initialize the Persistent Object PDUs */
+ initializeParser(DIS_FIELDS_PERSISTENT_OBJECT_HEADER);
+ initializeParser(DIS_PARSER_DESCRIBE_OBJECT_PO_PDU);
+ initializeParser(DIS_PARSER_SIMULATOR_PRESENT_PO_PDU);
+ initializeParser(DIS_PARSER_OBJECTS_PRESENT_PO_PDU);
+ initializeParser(DIS_PARSER_OBJECT_REQUEST_PO_PDU);
+ initializeParser(DIS_PARSER_DELETE_OBJECTS_PO_PDU);
+ initializeParser(DIS_PARSER_SET_WORLD_STATE_PO_PDU);
+ initializeParser(DIS_PARSER_NOMINATION_PO_PDU);
+
+ /* Initialize the ett array */
+ ett_index = 0;
+ for (i=0; i<DIS_PDU_MAX_VARIABLE_PARAMETERS; i++, ett_index++)
+ {
+ ettVariableParameters[i] = -1;
+ ett[ett_index] = &ettVariableParameters[i];
+ }
+ for (i=0; i<DIS_PDU_MAX_VARIABLE_RECORDS; i++, ett_index++)
+ {
+ ettVariableRecords[i] = -1;
+ ett[ett_index] = &ettVariableRecords[i];
+ }
+ ett[ett_index++] = &ettFixedData;
+ ett[ett_index++] = &ettVariableData;
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+/* Adjust an offset variable for proper alignment for a specified field length.
+ */
+static gint alignOffset(gint offset, guint fieldLength)
+{
+ gint remainder = offset % fieldLength;
+ if (remainder != 0)
+ {
+ offset += fieldLength - remainder;
+ }
+ return offset;
+}
+
+/* Parse a field consisting of a specified number of bytes. This field parser
+ * doesn't perform any alignment.
+ */
+static gint parseField_Bytes(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
+{
+ proto_tree_add_text(tree, tvb, offset, numBytes, "%s (%d bytes)",
+ parserNode.fieldLabel, numBytes);
+ offset += numBytes;
+ return offset;
+}
+
+/* Parse a bitmask field.
+ */
+static gint parseField_Bitmask(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
+{
+ DIS_BitMask *bitMask = 0;
+ guint64 uintVal = 0;
+
+ offset = alignOffset(offset, numBytes);
+
+ switch(numBytes)
+ {
+ case 1:
+ uintVal = tvb_get_guint8(tvb, offset);
+ break;
+ case 2:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ break;
+ case 4:
+ uintVal = tvb_get_ntohl(tvb, offset);
+ break;
+ case 8:
+ uintVal = tvb_get_ntoh64(tvb, offset);
+ break;
+ default:
+ /* assert */
+ break;
+ }
+
+ switch(parserNode.fieldType)
+ {
+ case DIS_FIELDTYPE_APPEARANCE:
+ if ((entityKind == DIS_ENTITYKIND_PLATFORM) &&
+ (entityDomain == DIS_DOMAIN_LAND))
+ {
+ bitMask = DIS_APPEARANCE_LANDPLATFORM;
+ }
+ else if (entityKind == DIS_ENTITYKIND_LIFE_FORM)
+ {
+ bitMask = DIS_APPEARANCE_LIFEFORM;
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (bitMask != 0)
+ {
+ int maskIndex = 0;
+ while (bitMask[maskIndex].maskBits != 0)
+ {
+ int mapIndex = 0;
+ DIS_BitMaskMapping *bitMaskMap = bitMask[maskIndex].bitMappings;
+
+ while (bitMaskMap[mapIndex].label != 0)
+ {
+ if (((bitMask[maskIndex].maskBits & uintVal) >> bitMask[maskIndex].shiftBits) ==
+ bitMaskMap[mapIndex].value)
+ {
+ proto_tree_add_text(tree, tvb, offset, numBytes,
+ "%s = %s", bitMask[maskIndex].label,
+ bitMaskMap[mapIndex].label);
+ break;
+ }
+ ++mapIndex;
+ }
+ ++maskIndex;
+ }
+ }
+ else
+ {
+ proto_tree_add_text(tree, tvb, offset, numBytes,
+ "Unknown Appearance Type (%" G_GINT64_MODIFIER "u)", uintVal);
+ }
+
+ offset += numBytes;
+
+ return offset;
+}
+
+/* Parse an unsigned integer field of a specified number of bytes.
+ */
+static gint parseField_UInt(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
+{
+ guint64 uintVal = 0;
+
+ offset = alignOffset(offset, numBytes);
+
+ switch(numBytes)
+ {
+ case 1:
+ uintVal = tvb_get_guint8(tvb, offset);
+ break;
+ case 2:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ break;
+ case 4:
+ uintVal = tvb_get_ntohl(tvb, offset);
+ break;
+ case 8:
+ uintVal = tvb_get_ntoh64(tvb, offset);
+ break;
+ default:
+ /* assert */
+ break;
+ }
+
+ proto_tree_add_text(tree, tvb, offset, numBytes, "%s = %" G_GINT64_MODIFIER "u",
+ parserNode.fieldLabel, uintVal);
+
+ if (parserNode.outputVar != 0)
+ {
+ *(parserNode.outputVar) = (guint32)uintVal;
+ }
+
+ offset += numBytes;
+
+ return offset;
+}
+
+/* Parse a signed integer field of a specified number of bytes.
+ */
+static gint parseField_Int(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
+{
+ gint64 intVal = 0;
+
+ offset = alignOffset(offset, numBytes);
+
+ switch(numBytes)
+ {
+ case 1:
+ intVal = (gint8)tvb_get_guint8(tvb, offset);
+ break;
+ case 2:
+ intVal = (gint16)tvb_get_ntohs(tvb, offset);
+ break;
+ case 4:
+ intVal = (gint32)tvb_get_ntohl(tvb, offset);
+ break;
+ case 8:
+ intVal = (gint64)tvb_get_ntoh64(tvb, offset);
+ break;
+ default:
+ /* assert */
+ break;
+ }
+
+ proto_tree_add_text(tree, tvb, offset, numBytes, "%s = %" G_GINT64_MODIFIER "d",
+ parserNode.fieldLabel, intVal);
+
+ offset += numBytes;
+
+ return offset;
+}
+
+/* Parse a field that explicitly specified a number of pad bytes (vs implicit
+ * padding, which occurs whenever padding is inserted to properly align the
+ * field.
+ */
+static gint parseField_Pad(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode _U_, guint numBytes)
+{
+ proto_tree_add_text(tree, tvb, offset, numBytes,
+ "Explicit Padding (%d bytes)", numBytes);
+
+ offset += numBytes;
+
+ return offset;
+}
+
+/* Parse an enumerated type field.
+ */
+static gint parseField_Enum(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes)
+{
+ const value_string *enumStrings = 0;
+ guint32 enumVal = 0;
+ const gchar *enumStr = 0;
+#if 0
+ proto_item *pi;
+#endif
+ int dis_hf_id = -1;
+
+ offset = alignOffset(offset, numBytes);
+
+ switch(parserNode.fieldType)
+ {
+ case DIS_FIELDTYPE_ACKNOWLEDGE_FLAG:
+ enumStrings = DIS_PDU_AcknowledgeFlag_Strings;
+ break;
+ case DIS_FIELDTYPE_ACTION_ID:
+ enumStrings = DIS_PDU_ActionId_Strings;
+ break;
+ case DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS:
+ enumStrings = DIS_PDU_ApplicationGeneralStatus_Strings;
+ break;
+ case DIS_FIELDTYPE_APPLICATION_STATUS_TYPE:
+ enumStrings = DIS_PDU_ApplicationStatusType_Strings;
+ break;
+ case DIS_FIELDTYPE_APPLICATION_TYPE:
+ enumStrings = DIS_PDU_ApplicationType_Strings;
+ break;
+ case DIS_FIELDTYPE_CONTROL_ID:
+ enumStrings = DIS_PDU_ControlId_Strings;
+ break;
+ case DIS_FIELDTYPE_PROTOCOL_VERSION:
+ enumStrings = DIS_PDU_ProtocolVersion_Strings;
+ dis_hf_id = hf_dis_proto_ver;
+ break;
+ case DIS_FIELDTYPE_PROTOCOL_FAMILY:
+ enumStrings = DIS_PDU_ProtocolFamily_Strings;
+ dis_hf_id = hf_dis_proto_fam;
+ break;
+ case DIS_FIELDTYPE_PDU_TYPE:
+ enumStrings = DIS_PDU_Type_Strings;
+ dis_hf_id = hf_dis_pdu_type;
+ break;
+ case DIS_FIELDTYPE_ENTITY_KIND:
+ enumStrings = DIS_PDU_EntityKind_Strings;
+ dis_hf_id = hf_dis_entityKind;
+ break;
+ case DIS_FIELDTYPE_DOMAIN:
+ enumStrings = DIS_PDU_Domain_Strings;
+ dis_hf_id = hf_dis_entityDomain;
+ break;
+ case DIS_FIELDTYPE_DETONATION_RESULT:
+ enumStrings = DIS_PDU_DetonationResult_Strings;
+ break;
+ case DIS_FIELDTYPE_FROZEN_BEHAVIOR:
+ enumStrings = DIS_PDU_FrozenBehavior_Strings;
+ break;
+ case DIS_FIELDTYPE_RADIO_CATEGORY:
+ enumStrings = DIS_PDU_RadioCategory_Strings;
+ dis_hf_id = hf_dis_category_radio;
+ break;
+ case DIS_FIELDTYPE_NOMENCLATURE_VERSION:
+ enumStrings = DIS_PDU_NomenclatureVersion_Strings;
+ break;
+ case DIS_FIELDTYPE_NOMENCLATURE:
+ enumStrings = DIS_PDU_Nomenclature_Strings;
+ break;
+ case DIS_FIELDTYPE_CATEGORY:
+ if (entityKind == DIS_ENTITYKIND_PLATFORM)
+ {
+ switch(entityDomain)
+ {
+ case DIS_DOMAIN_LAND:
+ enumStrings = DIS_PDU_Category_LandPlatform_Strings;
+ dis_hf_id = hf_dis_category_land;
+ break;
+ case DIS_DOMAIN_AIR:
+ enumStrings = DIS_PDU_Category_AirPlatform_Strings;
+ dis_hf_id = hf_dis_category_air;
+ break;
+ case DIS_DOMAIN_SURFACE:
+ enumStrings = DIS_PDU_Category_SurfacePlatform_Strings;
+ dis_hf_id = hf_dis_category_surface;
+ break;
+ case DIS_DOMAIN_SUBSURFACE:
+ enumStrings = DIS_PDU_Category_SubsurfacePlatform_Strings;
+ dis_hf_id = hf_dis_category_subsurface;
+ break;
+ case DIS_DOMAIN_SPACE:
+ enumStrings = DIS_PDU_Category_SpacePlatform_Strings;
+ dis_hf_id = hf_dis_category_space;
+ break;
+ default:
+ enumStrings = 0;
+ break;
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_EMITTER_NAME:
+ enumStrings = DIS_PDU_EmitterName_Strings;
+ dis_hf_id = hf_dis_emitter_name;
+ break;
+ case DIS_FIELDTYPE_EMISSION_FUNCTION:
+ enumStrings = DIS_PDU_EmissionFunction_Strings;
+ dis_hf_id = hf_dis_emission_function;
+ break;
+ case DIS_FIELDTYPE_BEAM_FUNCTION:
+ enumStrings = DIS_PDU_BeamFunction_Strings;
+ dis_hf_id = hf_dis_beam_function;
+ break;
+ case DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR:
+ enumStrings = DIS_PDU_ParameterTypeDesignator_Strings;
+ break;
+ case DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE:
+ enumStrings = DIS_PDU_PersistentObjectType_Strings;
+ break;
+ case DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS:
+ enumStrings = DIS_PDU_PO_ObjectClass_Strings;
+ break;
+ case DIS_FIELDTYPE_REASON:
+ enumStrings = DIS_PDU_Reason_Strings;
+ break;
+ case DIS_FIELDTYPE_REQUEST_STATUS:
+ enumStrings = DIS_PDU_RequestStatus_Strings;
+ break;
+ case DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE:
+ enumStrings = DIS_PDU_RequiredReliabilityService_Strings;
+ break;
+ case DIS_FIELDTYPE_RESPONSE_FLAG:
+ enumStrings = DIS_PDU_DisResponseFlag_Strings;
+ break;
+ case DIS_FIELDTYPE_MODULATION_DETAIL:
+ switch (majorModulation) {
+ case DIS_MAJOR_MOD_AMPLITUDE:
+ enumStrings = DIS_PDU_DetailModulationAmplitude_Strings;
+ break;
+ case DIS_MAJOR_MOD_AMPLITUDE_AND_ANGLE:
+ enumStrings = DIS_PDU_DetailModulationAmpAndAngle_Strings;
+ break;
+ case DIS_MAJOR_MOD_ANGLE:
+ enumStrings = DIS_PDU_DetailModulationAngle_Strings;
+ break;
+ case DIS_MAJOR_MOD_COMBINATION:
+ enumStrings = DIS_PDU_DetailModulationCombination_Strings;
+ break;
+ case DIS_MAJOR_MOD_PULSE:
+ enumStrings = DIS_PDU_DetailModulationPulse_Strings;
+ break;
+ case DIS_MAJOR_MOD_UNMODULATED:
+ enumStrings = DIS_PDU_DetailModulationUnmodulated_Strings;
+ break;
+ case DIS_MAJOR_MOD_CPSM: /* CPSM only has "other" defined */
+ case DIS_MAJOR_MOD_OTHER:
+ default:
+ enumStrings = DIS_PDU_DetailModulationCPSM_Strings;
+ break;
+ }
+ break;
+ case DIS_FIELDTYPE_LINK16_MESSAGE_TYPE:
+ enumStrings = DIS_PDU_Link16_MessageType_Strings;
+ dis_hf_id = hf_dis_signal_link16_message_type;
+ break;
+ default:
+ enumStrings = 0;
+ break;
+ }
+
+ switch(numBytes)
+ {
+ case 1:
+ enumVal = tvb_get_guint8(tvb, offset);
+ break;
+ case 2:
+ enumVal = tvb_get_ntohs(tvb, offset);
+ break;
+ case 4:
+ enumVal = tvb_get_ntohl(tvb, offset);
+ break;
+ default:
+ /* assert */
+ break;
+ }
+
+ enumStr = val_to_str(enumVal, enumStrings, "Unknown Enumeration (%d)");
+
+ if (dis_hf_id != -1) {
+#if 0
+ pi = proto_tree_add_item(tree, dis_hf_id, tvb, offset, numBytes, ENC_BIG_ENDIAN);
+ proto_item_set_text(pi, "%s = %s", parserNode.fieldLabel, enumStr);
+#else
+ proto_tree_add_item(tree, dis_hf_id, tvb, offset, numBytes, ENC_BIG_ENDIAN);
+#endif
+ }
+ else {
+ proto_tree_add_text(tree, tvb, offset, numBytes, "%s = %s",
+ parserNode.fieldLabel, enumStr);
+ }
+
+ if (parserNode.outputVar != 0)
+ {
+ *(parserNode.outputVar) = enumVal;
+ }
+
+ offset += numBytes;
+
+ return offset;
+}
+
+/* Parse a 4-byte floating-point value.
+ */
+static gint parseField_Float(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode)
+{
+ gfloat floatVal;
+
+ offset = alignOffset(offset, 4);
+ floatVal = tvb_get_ntohieee_float(tvb, offset);
+ proto_tree_add_text(tree, tvb, offset, 4, "%s = %f",
+ parserNode.fieldLabel, floatVal);
+
+ offset += 4;
+
+ return offset;
+}
+#if 0
+/* Parse a 4-byte floating-point value, given text label.
+ */
+static gint parseField_Float_Text(tvbuff_t *tvb, proto_tree *tree, gint offset, gchar *charStr)
+{
+ gfloat floatVal;
+
+ offset = alignOffset(offset, 4);
+ floatVal = tvb_get_ntohieee_float(tvb, offset);
+ proto_tree_add_text(tree, tvb, offset, 4, "%s = %f",
+ charStr, floatVal);
+
+ offset += 4;
+
+ return offset;
+}
+#endif
+/* Parse an 8-byte floating-point value.
+ */
+static gint parseField_Double(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode)
+{
+ gdouble doubleVal;
+
+ offset = alignOffset(offset, 8);
+ doubleVal = tvb_get_ntohieee_double(tvb, offset);
+ proto_tree_add_text(tree, tvb, offset, 8, "%s = %f",
+ parserNode.fieldLabel, doubleVal);
+
+ offset += 8;
+
+ return offset;
+}
+
+/* Parse the Timestamp */
+static gint parseField_Timestamp(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode)
+{
+ /* some consts */
+ static double MSEC_PER_SECOND = 1000.0;
+ static double MSEC_PER_MINUTE = 60.0 * 1000.0 ;
+ static double MSEC_PER_HOUR = 60.0 * 60.0 * 1000.0;
+ static double FSV = 0x7fffffff;
+ /* variables */
+ guint isAbsolute = 0;
+ guint32 uintVal;
+ guint minutes;
+ guint seconds;
+ guint milliseconds;
+ double ms;
+
+ offset = alignOffset(offset, 4);
+
+ /* convert to host value */
+ uintVal = tvb_get_ntohl(tvb, offset);
+ /* determine absolute vis sim time */
+ if( uintVal & 1 )
+ isAbsolute = 1;
+
+ /* convert TS to MS */
+ ms = (uintVal >> 1) * MSEC_PER_HOUR / FSV;
+ ms += 0.5;
+
+ /* calc minutes and reduce ms */
+ minutes = (guint) (ms / MSEC_PER_MINUTE);
+ ms -= (minutes * MSEC_PER_MINUTE);
+
+ /* calc seconds and reduce ms */
+ seconds = (guint) (ms / MSEC_PER_SECOND);
+ ms -= (seconds * MSEC_PER_SECOND);
+
+ /* truncate milliseconds */
+ milliseconds = (guint) ms;
+
+ /* push out the values */
+ if( isAbsolute )
+ {
+ proto_tree_add_text(tree, tvb, offset, 4, "%s = %02d:%02d %03d absolute (UTM)",
+ parserNode.fieldLabel, minutes, seconds, milliseconds);
+ }
+ else
+ {
+ proto_tree_add_text(tree, tvb, offset, 4, "%s = %02d:%02d %03d relative",
+ parserNode.fieldLabel, minutes, seconds, milliseconds);
+ }
+
+ offset += 4;
+ return offset;
+}
+
+static gint parseField_VariableParameter(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo);
+static gint parseField_VariableRecord(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo);
+
+/* Parse Link 16 Message Data record (SISO-STD-002, Tables 5.2.5 through 5.2.12)
+ */
+static gint parse_Link16_Message_Data(proto_tree *tree, tvbuff_t *tvb, gint offset, packet_info *pinfo)
+{
+ guint32 cache, value, i;
+ Link16State state;
+ tvbuff_t *newtvb;
+
+ static const int * jtids_message_header_fields[] = {
+ &hf_dis_signal_link16_time_slot_type,
+ &hf_dis_signal_link16_rti,
+ &hf_dis_signal_link16_stn,
+ NULL
+ };
+
+ switch (messageType) {
+ case DIS_MESSAGE_TYPE_JTIDS_HEADER_MESSAGES:
+ proto_tree_add_bitmask_text(tree, tvb, offset, 4, "JTIDS Header", NULL, ett_dis_signal_link16_jtids_header, jtids_message_header_fields, ENC_BIG_ENDIAN, BMT_NO_APPEND);
+
+ cache = tvb_get_ntohl(tvb, offset);
+ value = (cache >> 4) & 0x7FFF;
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", STN=0%o, Link 16 Words:", value);
+
+ value = (cache >> 19);
+ offset += 4;
+ cache = tvb_get_ntohl(tvb, offset);
+ value |= (cache & 0x7) << 13;
+ proto_tree_add_uint(tree, hf_dis_signal_link16_sdusn, tvb, offset - 4, 8, value);
+ offset += 4;
+
+ memset(&state, 0, sizeof(state));
+
+ for (i = 0; i < (encodingScheme & 0x3FFF); i++) {
+ gint8 *word = (gint8 *)g_malloc(10);
+ if (!(i & 1)) {
+ word[0] = (cache >> 16) & 0xFF;
+ word[1] = (cache >> 24) & 0xFF;
+ cache = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+ word[2] = cache & 0xFF;
+ word[3] = (cache >> 8) & 0xFF;
+ word[4] = (cache >> 16) & 0xFF;
+ word[5] = (cache >> 24) & 0xFF;
+ cache = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+ word[6] = cache & 0xFF;
+ word[7] = (cache >> 8) & 0xFF;
+ word[8] = (cache >> 16) & 0xFF;
+ word[9] = (cache >> 24) & 0xFF;
+ } else {
+ cache = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+ word[0] = cache & 0xFF;
+ word[1] = (cache >> 8) & 0xFF;
+ word[2] = (cache >> 16) & 0xFF;
+ word[3] = (cache >> 24) & 0xFF;
+ cache = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+ word[4] = cache & 0xFF;
+ word[5] = (cache >> 8) & 0xFF;
+ word[6] = (cache >> 16) & 0xFF;
+ word[7] = (cache >> 24) & 0xFF;
+ cache = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+ word[8] = cache & 0xFF;
+ word[9] = (cache >> 8) & 0xFF;
+ }
+
+ newtvb = tvb_new_child_real_data(tvb, word, 10, 10);
+ tvb_set_free_cb(newtvb, g_free);
+ add_new_data_source(pinfo, newtvb, "Link 16 Word");
+ call_dissector_with_data(find_dissector("link16"), newtvb, pinfo, tree, &state);
+ }
+ break;
+ }
+ return offset;
+}
+
+/* Parse packet data based on a specified array of DIS_ParserNodes.
+ */
+static gint parseFields(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNodes[], packet_info *pinfo)
+{
+ guint fieldIndex = 0;
+ guint fieldRepeatLen = 0;
+ guint64 uintVal = 0;
+ proto_item *pi = NULL;
+ proto_tree *sub_tree = NULL;
+ tvbuff_t *newtvb = NULL;
+ gint length = 0;
+ guint16 spread_spectrum = 0;
+
+
+ /* Get the length while ensuring there's at least one byte for us to
+ * decode (if not, throw an exception so as to prevent very long loops).
+ */
+ length = tvb_ensure_length_remaining(tvb, offset+1);
+
+ while ((parserNodes[fieldIndex].fieldType != DIS_FIELDTYPE_END)
+ && (length > 0 ) )
+ {
+ proto_item *newField = 0;
+
+ fieldRepeatLen = (guint) ((parserNodes[fieldIndex].fieldRepeatLen > 1) ?
+ parserNodes[fieldIndex].fieldRepeatLen : 1);
+
+ switch(parserNodes[fieldIndex].fieldType)
+ {
+ /* basic numeric types */
+ case DIS_FIELDTYPE_INT8:
+ offset = parseField_Int(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+ case DIS_FIELDTYPE_INT16:
+ offset = parseField_Int(tvb, tree, offset,
+ parserNodes[fieldIndex], 2);
+ break;
+ case DIS_FIELDTYPE_INT32:
+ offset = parseField_Int(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_INT64:
+ offset = parseField_Int(tvb, tree, offset,
+ parserNodes[fieldIndex], 8);
+ break;
+ case DIS_FIELDTYPE_UINT8:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+ case DIS_FIELDTYPE_UINT16:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 2);
+ break;
+ case DIS_FIELDTYPE_UINT32:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_UINT64:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 8);
+ break;
+ case DIS_FIELDTYPE_FLOAT32:
+ offset = parseField_Float(tvb, tree, offset,
+ parserNodes[fieldIndex]);
+ break;
+ case DIS_FIELDTYPE_FLOAT64:
+ offset = parseField_Double(tvb, tree, offset,
+ parserNodes[fieldIndex]);
+ break;
+ case DIS_FIELDTYPE_EXERCISE_ID:
+ proto_tree_add_item(tree, hf_dis_exercise_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_NUM_ARTICULATION_PARAMS:
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_num_art_params, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ break;
+ case DIS_FIELDTYPE_PDU_LENGTH:
+ proto_tree_add_item(tree, hf_dis_pdu_length, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_SITE:
+ proto_tree_add_item(tree, hf_dis_entity_id_site, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_APPLICATION:
+ proto_tree_add_item(tree, hf_dis_entity_id_application, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_ENTITY:
+ proto_tree_add_item(tree, hf_dis_entity_id_entity, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_RADIO_ID:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_radio_id, tvb, offset, 2, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_ENCODING_SCHEME:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ pi = proto_tree_add_item(tree, hf_dis_ens, tvb, offset, 2, ENC_BIG_ENDIAN);
+ sub_tree = proto_item_add_subtree(pi, ett_dis_ens);
+ proto_tree_add_item(sub_tree, hf_dis_ens_class, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(sub_tree,
+ (uintVal >> 14) == DIS_ENCODING_CLASS_ENCODED_AUDIO ? hf_dis_ens_type_audio : hf_dis_ens_type,
+ tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_item_set_end(pi, tvb, offset);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_TDL_TYPE:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_tdl_type, tvb, offset, 2, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_SAMPLE_RATE:
+ proto_tree_add_item(tree, hf_dis_sample_rate, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ break;
+ case DIS_FIELDTYPE_DATA_LENGTH:
+ proto_tree_add_item(tree, hf_dis_data_length, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_NUMBER_OF_SAMPLES:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_num_of_samples, tvb, offset, 2, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_RADIO_DATA:
+ if (tdlType == DIS_TDL_TYPE_LINK16_STD) {
+ pi = proto_tree_add_text(tree, tvb, offset, 16, "Link 16 Network Header");
+ sub_tree = proto_item_add_subtree(pi, ett_dis_signal_link16_network_header);
+ offset = parseFields(tvb, sub_tree, offset, DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER, pinfo);
+ proto_item_set_end(pi, tvb, offset);
+
+ pi = proto_tree_add_text(tree, tvb, offset, -1, "Link 16 Message Data: %s",
+ val_to_str(messageType, DIS_PDU_Link16_MessageType_Strings, ""));
+ sub_tree = proto_item_add_subtree(pi, ett_dis_signal_link16_message_data);
+ offset = parse_Link16_Message_Data(sub_tree, tvb, offset, pinfo);
+ proto_item_set_end(pi, tvb, offset);
+ } else {
+ proto_tree_add_item(tree, hf_dis_signal_data, tvb, offset, -1, ENC_NA );
+ }
+ /* ****ck******* need to look for padding bytes */
+ break;
+ case DIS_FIELDTYPE_LINK16_PTT:
+ if (tvb_get_ntohl(tvb, offset) == 0xFFFFFFFF)
+ proto_tree_add_text(tree, tvb, offset, 8, "%s: NO STATEMENT", parserNodes[fieldIndex].fieldLabel);
+ else
+ proto_tree_add_item(tree, hf_dis_signal_link16_ptt, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+ offset += 8;
+ break;
+ case DIS_FIELDTYPE_RADIO_CATEGORY:
+ proto_tree_add_item(tree, hf_dis_radio_category, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_NOMENCLATURE_VERSION:
+ proto_tree_add_item(tree, hf_dis_nomenclature_version, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_NOMENCLATURE:
+ proto_tree_add_item(tree, hf_dis_nomenclature, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_RADIO_TRANSMIT_STATE:
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_radio_transmit_state, tvb, offset, 1, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_RADIO_INPUT_SOURCE:
+ proto_tree_add_item(tree, hf_dis_radio_input_source, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_ANTENNA_PATTERN_TYPE:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_antenna_pattern_type, tvb, offset, 2, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_ANTENNA_PATTERN_LENGTH:
+ proto_tree_add_item(tree, hf_dis_antenna_pattern_length, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_TRANSMIT_FREQUENCY:
+ proto_tree_add_item(tree, hf_dis_transmit_frequency, tvb, offset, 8, ENC_BIG_ENDIAN);
+ offset += 8;
+ break;
+ case DIS_FIELDTYPE_SPREAD_SPECTRUM:
+ spread_spectrum = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_boolean(tree, hf_dis_spread_spectrum_usage, tvb, offset, 2, spread_spectrum);
+ proto_tree_add_boolean(tree, hf_dis_frequency_hopping, tvb, offset, 2, spread_spectrum);
+ proto_tree_add_boolean(tree, hf_dis_pseudo_noise_modulation, tvb, offset, 2, spread_spectrum);
+ proto_tree_add_boolean(tree, hf_dis_time_hopping, tvb, offset, 2, spread_spectrum);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_MODULATION_MAJOR:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_modulation_major, tvb, offset, 2, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_MODULATION_SYSTEM:
+ uintVal = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_modulation_system, tvb, offset, 2, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_CRYPTO_SYSTEM:
+ proto_tree_add_item(tree, hf_dis_crypto_system, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_CRYPTO_KEY_ID:
+ pi = proto_tree_add_item(tree, hf_dis_crypto_key, tvb, offset, 2, ENC_BIG_ENDIAN);
+ sub_tree = proto_item_add_subtree(pi, ett_dis_crypto_key);
+ proto_tree_add_item(sub_tree, hf_dis_encryption_mode, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(sub_tree, hf_dis_key_identifier, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_item_set_end(pi, tvb, offset);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_MODULATION_PARAMETER_LENGTH:
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_modulation_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_FH_NETWORK_ID:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_net_id, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_FH_SET_ID:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_set_id, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_LO_SET_ID:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_lo_set_id, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_FH_MSG_START:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_msg_start, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_RESERVED:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_FH_SYNC_TIME_OFFSET:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_sync_time_offset, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ break;
+ case DIS_FIELDTYPE_FH_SECURITY_KEY:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_security_key, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_FH_CLEAR_CHANNEL:
+ proto_tree_add_item(tree, hf_dis_mod_param_fh_clear_channel, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_TS_ALLOCATION_MODE:
+ proto_tree_add_item(tree, hf_dis_mod_param_ts_allocation_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_TRANSMITTER_PRIMARY_MODE:
+ proto_tree_add_item(tree, hf_dis_mod_param_transmitter_prim_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_TRANSMITTER_SECONDARY_MODE:
+ proto_tree_add_item(tree, hf_dis_mod_param_transmitter_second_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_JTIDS_SYNC_STATE:
+ proto_tree_add_item(tree, hf_dis_mod_param_sync_state, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case DIS_FIELDTYPE_NETWORK_SYNC_ID:
+ proto_tree_add_item(tree, hf_dis_mod_param_network_sync_id, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ break;
+ case DIS_FIELDTYPE_MODULATION_PARAMETERS:
+ /* need to check to see if mod parms length > 0 */
+ /* could get here when there are antenna pattern parameter but no mod params */
+ if (modulationParamLength > 0 ) { /* we do have a mod param */
+ if (systemModulation == DIS_SYSTEM_MOD_CCTT_SINCGARS)
+ {
+ pi = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ sub_tree = proto_item_add_subtree(pi, parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, sub_tree, offset, DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS, pinfo);
+ proto_item_set_end(pi, tvb, offset);
+ break;
+ }
+ else if (systemModulation == DIS_SYSTEM_MOD_JTIDS_MIDS) {
+ pi = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ sub_tree = proto_item_add_subtree(pi, parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, sub_tree, offset, DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS, pinfo);
+ proto_item_set_end(pi, tvb, offset);
+ break;
+ }
+ else { /* just dump what is available */
+ newtvb = tvb_new_subset(tvb, offset,modulationParamLength, modulationParamLength);
+ proto_tree_add_item(tree, hf_dis_mod_param_dump, newtvb, 0, -1, ENC_NA );
+ offset += modulationParamLength;
+ break;
+ }
+ } /* else, leave offset alone, and then check antenna pattern param field */
+ break;
+ case DIS_FIELDTYPE_ANTENNA_PATTERN_PARAMETERS:
+ /* just dump the bytes for now. Need to do finish */
+ newtvb = tvb_new_subset_remaining(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_antenna_pattern_parameter_dump, newtvb, 0, -1, ENC_NA );
+ break;
+ case DIS_FIELDTYPE_LINK16_NPG:
+ proto_tree_add_item(tree, hf_dis_signal_link16_npg, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ break;
+ case DIS_FIELDTYPE_LINK16_TSEC_CVLL:
+ proto_tree_add_item(tree, hf_dis_signal_link16_tsec_cvll, tvb, offset, 1, ENC_NA);
+ offset++;
+ break;
+ case DIS_FIELDTYPE_LINK16_MSEC_CVLL:
+ proto_tree_add_item(tree, hf_dis_signal_link16_msec_cvll, tvb, offset, 1, ENC_NA);
+ offset++;
+ break;
+
+ /* padding */
+ case DIS_FIELDTYPE_PAD8:
+ offset = parseField_Pad(tvb, tree, offset,
+ parserNodes[fieldIndex], 1 * fieldRepeatLen);
+ break;
+ case DIS_FIELDTYPE_PAD16:
+ offset = parseField_Pad(tvb, tree, offset,
+ parserNodes[fieldIndex], 2 * fieldRepeatLen);
+ break;
+ case DIS_FIELDTYPE_PAD24:
+ offset = parseField_Pad(tvb, tree, offset,
+ parserNodes[fieldIndex], 3 * fieldRepeatLen);
+ break;
+ case DIS_FIELDTYPE_PAD32:
+ offset = parseField_Pad(tvb, tree, offset,
+ parserNodes[fieldIndex], 4 * fieldRepeatLen);
+ break;
+
+ /* enumerations (1-byte) */
+ case DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS:
+ case DIS_FIELDTYPE_CATEGORY:
+ case DIS_FIELDTYPE_CONTROL_ID:
+ case DIS_FIELDTYPE_DETONATION_RESULT:
+ case DIS_FIELDTYPE_DOMAIN:
+ case DIS_FIELDTYPE_ENTITY_KIND:
+ case DIS_FIELDTYPE_FROZEN_BEHAVIOR:
+ case DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR:
+ case DIS_FIELDTYPE_PDU_TYPE:
+ case DIS_FIELDTYPE_PROTOCOL_FAMILY:
+ case DIS_FIELDTYPE_PROTOCOL_VERSION:
+ case DIS_FIELDTYPE_REASON:
+ case DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE:
+ case DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS:
+ case DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE:
+ case DIS_FIELDTYPE_EMISSION_FUNCTION:
+ case DIS_FIELDTYPE_BEAM_FUNCTION:
+ case DIS_FIELDTYPE_LINK16_MESSAGE_TYPE:
+ offset = parseField_Enum(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+
+ /* enumerations (2-bytes) */
+ case DIS_FIELDTYPE_ACKNOWLEDGE_FLAG:
+ case DIS_FIELDTYPE_APPLICATION_STATUS_TYPE:
+ case DIS_FIELDTYPE_APPLICATION_TYPE:
+ case DIS_FIELDTYPE_RESPONSE_FLAG:
+ case DIS_FIELDTYPE_MODULATION_DETAIL:
+ case DIS_FIELDTYPE_EMITTER_NAME:
+ offset = parseField_Enum(tvb, tree, offset,
+ parserNodes[fieldIndex], 2);
+ break;
+
+ /* enumerations (4-bytes) */
+ case DIS_FIELDTYPE_ACTION_ID:
+ case DIS_FIELDTYPE_REQUEST_STATUS:
+ offset = parseField_Enum(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+
+ /* other atomic types */
+ case DIS_FIELDTYPE_APPEARANCE:
+ {
+ proto_item *newSubtree;
+ newField = proto_tree_add_text(tree, tvb, offset, 4, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseField_Bitmask(tvb, newSubtree, offset,
+ parserNodes[fieldIndex], 4);
+ }
+ break;
+ case DIS_FIELDTYPE_ARTIC_PARAM_TYPE:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_CAPABILITIES:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_COUNTRY:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 2);
+ break;
+ case DIS_FIELDTYPE_DATUM_ID:
+ case DIS_FIELDTYPE_DATUM_LENGTH:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_DEAD_RECKONING_PARAMS:
+ /* This is really a struct... needs a field parser.
+ * For now, just skip the 12 bytes.
+ */
+ offset = parseField_Bytes(tvb, tree, offset,
+ parserNodes[fieldIndex], 40);
+ break;
+ case DIS_FIELDTYPE_ENTITY_MARKING:
+ /* This is really a struct... needs a field parser.
+ * For now, just skip the 12 bytes.
+ */
+ offset = parseField_Bytes(tvb, tree, offset,
+ parserNodes[fieldIndex], 12);
+ break;
+ case DIS_FIELDTYPE_EXTRA:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+ case DIS_FIELDTYPE_FIXED_DATUM_VALUE:
+ offset = parseField_Bytes(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_FIXED_LEN_STR:
+ offset = parseField_Bytes(tvb, tree, offset,
+ parserNodes[fieldIndex],
+ parserNodes[fieldIndex].fieldRepeatLen);
+ break;
+ case DIS_FIELDTYPE_FORCE_ID:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+ case DIS_FIELDTYPE_FUSE:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 2);
+ break;
+ case DIS_FIELDTYPE_NUM_FIXED_DATA:
+ case DIS_FIELDTYPE_NUM_VARIABLE_DATA:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_REQUEST_ID:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_SPECIFIC:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+ case DIS_FIELDTYPE_SUBCATEGORY:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 1);
+ break;
+ case DIS_FIELDTYPE_TIME_INTERVAL:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 4);
+ break;
+ case DIS_FIELDTYPE_TIMESTAMP:
+ offset = parseField_Timestamp(tvb, tree, offset,
+ parserNodes[fieldIndex]);
+ break;
+ case DIS_FIELDTYPE_WARHEAD:
+ offset = parseField_UInt(tvb, tree, offset,
+ parserNodes[fieldIndex], 2);
+ break;
+
+ /* composite types */
+ case DIS_FIELDTYPE_BURST_DESCRIPTOR:
+ case DIS_FIELDTYPE_CLOCK_TIME:
+ case DIS_FIELDTYPE_ENTITY_ID:
+ case DIS_FIELDTYPE_ENTITY_TYPE:
+ case DIS_FIELDTYPE_RADIO_ENTITY_TYPE:
+ case DIS_FIELDTYPE_ANTENNA_LOCATION:
+ case DIS_FIELDTYPE_REL_ANTENNA_LOCATON:
+ case DIS_FIELDTYPE_EVENT_ID:
+ case DIS_FIELDTYPE_LINEAR_VELOCITY:
+ case DIS_FIELDTYPE_LOCATION_ENTITY:
+ case DIS_FIELDTYPE_LOCATION_WORLD:
+ case DIS_FIELDTYPE_ORIENTATION:
+ case DIS_FIELDTYPE_SIMULATION_ADDRESS:
+ case DIS_FIELDTYPE_VECTOR_32:
+ case DIS_FIELDTYPE_VECTOR_64:
+ case DIS_FIELDTYPE_MODULATION_TYPE:
+ case DIS_FIELDTYPE_EMITTER_SYSTEM:
+ case DIS_FIELDTYPE_FUNDAMENTAL_PARAMETER_DATA:
+ case DIS_FIELDTYPE_UA_EMITTER_SYSTEM:
+ case DIS_FIELDTYPE_UA_BEAM_FUNDAMENTAL_PARAMETER_DATA:
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree = proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ break;
+ case DIS_FIELDTYPE_VARIABLE_DATUM_VALUE:
+ {
+ guint lengthInBytes;
+ lengthInBytes = variableDatumLength / 8;
+ if (variableDatumLength % 8 > 0)
+ {
+ lengthInBytes += (8 - (variableDatumLength % 8));
+ }
+ offset = parseField_Bytes(tvb, tree, offset,
+ parserNodes[fieldIndex], lengthInBytes);
+ }
+ break;
+
+ /* arrays */
+ case DIS_FIELDTYPE_FIXED_DATUMS:
+ {
+ guint i;
+ if (numFixed > INT_MAX)
+ {
+ numFixed = INT_MAX;
+ }
+
+ for (i = 0; i < numFixed; ++i)
+ {
+ proto_item *newSubtree;
+
+ /* is remaining length large enough for another fixed datum (ID & value) */
+ /* XXX is this really necessary? */
+ tvb_ensure_length_remaining(tvb, offset+8);
+
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree(newField, ettFixedData);
+ offset = parseFields (tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_FIXED_DATUM_IDS:
+ if (numFixed > 0)
+ {
+ guint i;
+ proto_item *newSubtree;
+
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree(newField, ettFixedData);
+
+ if (numFixed > INT_MAX)
+ {
+ numFixed = INT_MAX;
+ }
+
+ for (i = 0; i < numFixed; ++i)
+ {
+ /* is remaining length large enough for another fixed datum ID (32 bit int) */
+ /* XXX is this really necessary? */
+ tvb_ensure_length_remaining(tvb, offset+4);
+ offset = parseFields (tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ break;
+ case DIS_FIELDTYPE_VARIABLE_DATUMS:
+ {
+ guint i;
+ if (numVariable > INT_MAX)
+ {
+ numVariable = INT_MAX;
+ }
+
+ for (i = 0; i < numVariable; ++i)
+ {
+ proto_item *newSubtree;
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree
+ (newField, ettVariableData);
+ offset = parseFields
+ (tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ proto_item_set_end(newField, tvb, offset);
+ }
+
+ }
+ break;
+ case DIS_FIELDTYPE_VARIABLE_DATUM_IDS:
+ if (numVariable > 0)
+ {
+ guint i;
+ proto_item *newSubtree;
+
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree(newField, ettVariableData);
+
+ if (numVariable > INT_MAX)
+ {
+ numVariable = INT_MAX;
+ }
+
+ for (i = 0; i < numVariable; ++i)
+ {
+ offset = parseFields
+ (tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ break;
+ case DIS_FIELDTYPE_VARIABLE_PARAMETERS:
+ {
+ guint i;
+
+ if (numVariable > DIS_PDU_MAX_VARIABLE_PARAMETERS)
+ {
+ numVariable = DIS_PDU_MAX_VARIABLE_PARAMETERS;
+ }
+
+ for (i = 0; i < numVariable; ++i)
+ {
+ proto_item *newSubtree;
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree(newField,
+ ettVariableParameters[i]);
+ offset = parseFields
+ (tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ offset = parseField_VariableParameter
+ (tvb, newSubtree, offset, pinfo);
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_VARIABLE_RECORDS:
+ {
+ guint i;
+
+ if (numVariable > DIS_PDU_MAX_VARIABLE_RECORDS)
+ {
+ numVariable = DIS_PDU_MAX_VARIABLE_RECORDS;
+ }
+
+ for (i = 0; i < numVariable; ++i)
+ {
+ proto_item *newSubtree;
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ newSubtree = proto_item_add_subtree(newField,
+ ettVariableRecords[i]);
+ offset = parseFields
+ (tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ offset = parseField_VariableRecord
+ (tvb, newSubtree, offset, pinfo);
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM_BEAM:
+ {
+ guint i;
+
+ for (i = 0; i < numBeams; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_TRACK_JAM:
+ {
+ guint i;
+
+ for (i = 0; i < numTrackJamTargets; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_NUM_ELECTROMAGNETIC_EMISSION_SYSTEMS:
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_num_electromagnetic_emission_systems, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ break;
+ case DIS_FIELDTYPE_ELECTROMAGNETIC_EMISSION_SYSTEM:
+ {
+ guint i;
+
+ if (numVariable > DIS_PDU_MAX_ELECTROMAGNETIC_EMISSION_SYSTEMS)
+ {
+ numVariable = DIS_PDU_MAX_ELECTROMAGNETIC_EMISSION_SYSTEMS;
+ }
+
+ for (i = 0; i < numVariable; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s",
+ parserNodes[fieldIndex].fieldLabel);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_NUM_OF_SHAFTS:
+ {
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_num_shafts, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ }
+ break;
+ case DIS_FIELDTYPE_SHAFTS:
+ {
+ guint i;
+
+ if (numShafts > DIS_PDU_MAX_SHAFTS)
+ {
+ numShafts = DIS_PDU_MAX_SHAFTS;
+ }
+
+ for (i = 0; i < numShafts; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
+ parserNodes[fieldIndex].fieldLabel, i+1, numShafts);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_NUM_OF_APAS:
+ {
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_num_apas, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ }
+ break;
+ case DIS_FIELDTYPE_APA:
+ {
+ guint i;
+
+ if (numApas > DIS_PDU_MAX_APAS)
+ {
+ numApas = DIS_PDU_MAX_APAS;
+ }
+
+ for (i = 0; i < numApas; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
+ parserNodes[fieldIndex].fieldLabel, i+1, numApas);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEMS:
+ {
+ uintVal = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_dis_num_ua_emitter_systems, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ *(parserNodes[fieldIndex].outputVar) = (guint32)uintVal;
+ }
+ break;
+ case DIS_FIELDTYPE_NUM_OF_UA_EMITTER_SYSTEM_BEAMS:
+ {
+ uintVal = tvb_get_guint8(tvb, offset);
+ offset = parseField_UInt(tvb, tree, offset, parserNodes[fieldIndex], 1);
+ numUABeams += (guint32)uintVal;
+ }
+ break;
+ case DIS_FIELDTYPE_UA_EMITTER_SYSTEMS:
+ {
+ guint i;
+
+ if (numUAEmitter > DIS_PDU_MAX_UA_EMITTER_SYSTEMS)
+ {
+ numUAEmitter = DIS_PDU_MAX_UA_EMITTER_SYSTEMS;
+ }
+
+ for (i = 0; i < numUAEmitter; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
+ parserNodes[fieldIndex].fieldLabel, i+1, numUAEmitter);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ }
+ break;
+ case DIS_FIELDTYPE_UA_BEAMS:
+ {
+ guint i;
+
+ if (numUABeams > DIS_PDU_MAX_UA_BEAMS)
+ {
+ numUABeams = DIS_PDU_MAX_UA_BEAMS;
+ }
+
+ for (i = 0; i < numUABeams; ++i)
+ {
+ newField = proto_tree_add_text(tree, tvb, offset, -1, "%s [%d of %d]",
+ parserNodes[fieldIndex].fieldLabel, i+1, numUABeams);
+ if (parserNodes[fieldIndex].children != 0)
+ {
+ proto_item *newSubtree =
+ proto_item_add_subtree(newField,
+ parserNodes[fieldIndex].ettVar);
+ offset = parseFields(tvb, newSubtree, offset,
+ parserNodes[fieldIndex].children, pinfo);
+ }
+ proto_item_set_end(newField, tvb, offset);
+ }
+ numUABeams = 0; /* reset beam count for this pdu */
+ }
+ break;
+ default:
+ break;
+ }
+
+ ++fieldIndex;
+ length = tvb_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
+/* Parse a variable parameter field.
+ */
+static gint parseField_VariableParameter(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo)
+{
+ DIS_ParserNode *paramParser = 0;
+
+ /* Determine the parser to use based on the type */
+ switch (variableParameterType) {
+ case DIS_PARAM_TYPE_DESIG_ARTICULATED_PART:
+ paramParser = DIS_FIELDS_VP_ARTICULATED_PART;
+ break;
+ case DIS_PARAM_TYPE_DESIG_ATTACHED_PART:
+ paramParser = DIS_FIELDS_VP_ATTACHED_PART;
+ break;
+ case DIS_PARAM_TYPE_DESIG_ENTITY_OFFSET:
+ paramParser = DIS_FIELDS_VP_ENTITY_OFFSET;
+ break;
+ case DIS_PARAM_TYPE_DESIG_ENTITY_ASSOCIATION:
+ paramParser = DIS_FIELDS_VP_ENTITY_ASSOCIATION;
+ break;
+ default:
+ paramParser = DIS_FIELDS_VP_GENERIC;
+ break;
+ }
+
+ /* Parse the variable parameter fields */
+ if (paramParser)
+ {
+ offset = parseFields(tvb, tree, offset, paramParser, pinfo);
+ }
+
+ return offset;
+}
+
+/* Parse a variable record field.
+ */
+static gint parseField_VariableRecord(tvbuff_t *tvb, proto_tree *tree, gint offset, packet_info *pinfo)
+{
+ DIS_ParserNode *paramParser = 0;
+
+ /* Determine the parser to use based on the type */
+ switch (variableRecordType) {
+ case 47200:
+ paramParser = DIS_FIELDS_VR_APPLICATION_HEALTH_STATUS;
+ break;
+ case 47300:
+ paramParser = DIS_FIELDS_VR_APPLICATION_INITIALIZATION;
+ break;
+ case 47600:
+ paramParser = DIS_FIELDS_VR_DATA_QUERY;
+ break;
+ default:
+ {
+
+ guint32 dataLength = variableRecordLength - 6;
+
+ if (dataLength > 0)
+ {
+ proto_tree_add_text(tree, tvb, offset, dataLength,
+ "Record Data (%d bytes)", dataLength);
+ offset += dataLength;
+ }
+ }
+ break;
+ }
+
+ /* Parse the variable record fields */
+ if (paramParser)
+ {
+ offset = parseFields(tvb, tree, offset, paramParser, pinfo);
+ }
+
+ /* Should alignment padding be added */
+ if (variableRecordLength % 8)
+ {
+ guint32 alignmentPadding = (8 - (variableRecordLength % 8));
+
+ proto_tree_add_text(tree, tvb, offset, alignmentPadding,
+ "Alignment Padding (%d bytes)", alignmentPadding);
+ offset += alignmentPadding;
+ }
+
+ return offset;
+}
+
+void proto_register_dis(void);
static const true_false_string dis_modulation_spread_spectrum = {
"Spread Spectrum modulation in use",