-
Notifications
You must be signed in to change notification settings - Fork 32
PDU Types
PDUs are grouped into certain different related tasks. Some PDUs are used for shooting, and some to move trucks or tanks, or reflect the collision of two entities. To make sure the PDUs are handled correctly the header has a field in which the PDU group is specified. The entity state PDU header message has its "type" set to "Entity Information/Interaction" represented by a single number, in this case 1 (in a binary form). A cannon fire or shell explosion PDU has header fields as well, but different groups.
Here's some reasoning about PDU types, for example "Entity Information" and "Combat". After this lists of what PDUs belong to what family are listed. Remember that the PDU family and PDU type are in the header, and important to applications.
Sometimes programmers overlook setting up default family values in the header values. Without having values for fields you could cause problems. (From your own programming standpoint, you should discard a PDU with a zero in the PDU Header field.) Perhaps one simulation will receive and decode DIS families for PDUs it can't handle, such as logistics or radio communication. Not handing off those PDUs to decode can save some cycles.
More information about PDU types in the IEEE-1278.1 document, starting at page 26, from which I am quoting in part.
The unique ID of the family is 1.
"The PDUs that provide basic entity and entity collision information are listed under this functional area. An entity is a physical object in the synthetic environment that is created and controlled by a simulation that is affected by the exchange of DIS PDUs. An entity may be a live, virtual, or constructive entity. Examples of entities are as follows: tanks, submarines, ships, aircraft, missiles, buildings, bridges, spacecraft, and life forms such as humans and animals. Information on an entity is sent initially, upon change, and at heartbeat intervals. Such information is designed to support a mixed environment of lower and higher fidelity simulations and visual, aural, and sensor models. A variety of data records allows a specific entity to convey additional attributes needed to support higher fidelity simulations. PDUs can be extended using an attribute message.
Collision interactions that are currently supported include elastic and in-elastic collisions. If two entities collide, the simulations controlling the entities have to be informed of the collision. A message about the collision is sent by each simulation when it detects that its entity has collided with another entity. Each simulation determines the damage to its own entity based on information in the collision message."
"Warfare. The PDUs that provide basic warfare information are contained in this functional area. These PDUs support the firing or launch of weapons, including directed energy weapons, the detonation of munitions, the simulation of non-munition explosions, the release of expendables, and the calculation and dissemination of damage effects. When an entity fires a weapon or releases an expendable, the simulation controlling the entity communicates information regarding the fire event that may be needed by other simulations. The detonation of munitions, non-munitions (e.g., fuel tanks), and expendables is also communicated by the simulation controlling the munition, explosion, or expendable. Using the information in the detonation message, all simulation applications controlling affected entities assess damage to their entities. Directed energy weapons are supported by conveying detailed characteristics of the energy deposition such as the type of weapon, duration, and beam shape. The effects of weapons fire, collisions, or other sources of damage are communicated in entity damage status messages."
"Logistics. Repair and resupply logistic services are modeled in a simulation exercise by means of the logistics PDUs. Messages representing requests for services and the transfer of supplies are exchanged between simulations that are providers of the repair or resupply service and those simulated entities in need of such services."
PDU Family Names and Number | PDU Names and Numbers |
---|---|
Entity Information/Interaction (1) | Entity State PDU (1), Collision PDU (4), Collision-Elastic (66), Entity State Update (67), Attribute (72) |
Warfare (2) | Fire PDU (2), Detonation PDU (3), Directed Energy Fire (68), Entity Damage Status (69) |
Logistics (3) | Service Request PDU (5), Resupply Offer PDU (6), Resupply Received PDU (7), Resupply Cancel PDU (8), Repair Complete PDU (9), Repair Response PDU (10) |
Radio Communications (4) | Transmitter (25), Signal (26), Receiver (27), Intercom Signal (31), Intercom Control (32) |
Simulation Management (5) | Create Entity PDU (11), Remove Entity (12), Start/Resume (13), Stop/Freeze (14), Acknowledge (15), Action Request (16) Action Response (17), Data Query (18), Set Data (19), Data (20), EventReport (21), Comment (22) |
Distributed Emission Regeneration (6) | Electromagnetic Emission(23), Designator PDU (24), Underwater Acoustic (UA) (29), IFF (28),Supplemental Emission/Entity State (SEES) (30) |
Entity Management (7) | Aggregate State (33), IsGroupOf (34), Transfer Ownership (35), IsPartOf (36) |
Minefield (8) | IsPartOf (36), Minefield State (37), Minefield Query (38), Minefield Data (39), Minefield Response Negative Acknowledgment (NACK) (40) |
Synthetic Environment (9) | Environmental Process (41), Gridded Data (42), Point Object State (43), Linear Object State (44), Areal Object State (45) |
Simulation Management with Reliability (10) | Create Entity-R (51), Remove Entity-R (52), Start/Resume-R (53), Stop/Freeze-R (54), Acknowledge-R (55), Action Request-R (56), Action Response-R (57), Data Query-R (58), Set Data-R (59), Data-R(60), EventReport-R(61), Comment-RMessage(62), RecordQuery-R(65), SetRecord-R(64), Record-R(63) |
Information Operations (13) | Information Operations Action (70), Information Operations Report (71) |
Live Entity (LE) (11) (defined in Clause 9) | Time Space Position Information (TSPI) (46), Appearance (47), Articulated Parts (48), LE Fire (49), LE Detonation (50) |
Non-Real-Time Protocol (12) | Defined in IEEE-1268.1 Clause 8 |
The ESPDU communicates the following information about the entity's state. It is often the most used PDU. The value of ESPDU PDU type field in the header is 1. A link to a Javadoc documentation is available.
Collisions are PDU ID 4.
The Collision PDUs are used to communicate collisions between two simulated entities or between an entity and an object in the simulated world.
Collision-Elastic PDUs have ID 66
Collision-Elastic PDUs provide a mechanism for introducing high-fidelity interactions in DIS exercises.
The Entity State Update PDU has an ID of 67.
The ES Update PDU reduces network bandwidth by communicating only specific non-static information about an entity's state. This is a complement to, not replacement for, the ESPDU. Information contained mirrors the ESPDU.
The Attribute PDU has an ID of 72
The Attribute PDU serves two functions. It is a means to extending a PDU with additional information not defined in the PDU itself. It may also be used to communicate attributes that are not associated with a specific PDU type.
The Warfare Family has a value of 2.
The PDU type is 2.
The Fire PDU communicates information associated with the firing of a weapon or expendable. This information feeds visuals, sensors, and effects at the moment of firing and is used to identify the firing entity.
The PDU type is 3.
The Detonation PDU communicates the impact or detonation of a munition, non-munition explosion, or the burst/ignition of an expendable.
The PDU type is 68.
The Directed Energy PDU relates to lasers.
Type PDU type is 69.
Energy damage also relates to lasers.
This page outlines the types of PDUs that DIS programs use. To achieve More detailed information can be found in IEEE 1278.1 chapter 7. The description numbers have not changed since version 5; it is now at release 7. The PDUs sometimes slightly changed names.
To add framework yourself, you can edit a PDU to go with. There are some inherent problems with the programming language you use, and it will be a bit difficult to use a JavaScript language implementation "class structure" with a Java class structure that does exist. Your computer programming language may differ. You can create something similar to this with a language-specific wiki in github. Or you can add new segments to this wiki.
[Some Name PDU](https://github.com/open-dis/DISTutorial/wiki/Some-Name-PDU)
And then add a page as "Some Name PDU" as a link.