VR-Forces: Software Developer FAQ
Learn the answers to these questions by clicking through the tabs.
What DIS PDUs does VR-Forces Support?
The DIS PDU types that VR-Forces supports as it is shipped are listed below. The unsupported PDU types are supported by the VR-Link API and can be added to VR-Forces through the toolkit API. Many PDUs have various fields and aspects, and VR-Forces does not necessarily react to or send all parts of PDUs that are listed as supported below.
PDU Name |
PDU Number |
VR-Forces Support |
Entity State |
1 |
Send / Receive |
Collision |
4 |
None |
Collision-Elastic |
66 |
None |
Entity State Update |
67 |
Receive |
Attribute |
72 |
Send / Receive |
Fire |
2 |
Send / Receive |
Detonation |
3 |
Send / Receive |
Directed Energy Fire |
68 |
None |
Entity Damage Status |
69 |
None |
Service Request |
5 |
None |
Resupply Offer |
6 |
VRF 4.10+ |
Resupply Received |
7 |
VRF 4.10+ |
Resupply Cancel |
8 |
VRF 4.10+ |
Repair Complete |
9 |
None |
Repair Response |
10 |
None |
Create Entity |
11 |
None |
Remove Entity |
12 |
None |
Start / Resume |
13 |
Send / Receive |
Stop/Freeze |
14 |
Send / Receive |
Acknowledge |
15 |
None |
Action Request |
16 |
None |
Action Response |
17 |
None |
Data Query |
18 |
None |
Set Data |
19 |
None |
Data |
20 |
Send / Receive |
Event Report |
21 |
None |
Comment |
22 |
Send |
Electromagnetic Emission |
23 |
Send / Receive |
Designator |
24 |
Send / Receive |
Underwater Acoustic (UA) |
29 |
Send / Receive |
IFF |
28 |
Send / Receive |
Supplemental Emission/Entity State (SEES) |
30 |
None |
Transmitter |
25 |
Send / Receive |
Signal |
26 |
Send / Receive |
Receiver |
27 |
Send |
Intercom Signal |
31 |
None |
Intercom Control |
32 |
None |
Aggregate State |
33 |
Send / Receive |
IsGroupOf |
34 |
None |
Transfer Ownership |
35 |
None |
IsPartOf |
36 |
None |
Minefield State |
37 |
None |
Minefield Query |
38 |
None |
Minefield Data |
39 |
None |
Minefield Response Negative Acknowledgment (NACK) |
40 |
None |
Environmental Process |
41 |
Send / Receive |
Gridded Data |
42 |
None |
Point Object State |
43 |
None |
Linear Object State |
44 |
None |
Areal Object State |
45 |
None |
Create Entity-R |
51 |
None |
Remove Entity-R |
52 |
None |
Start/Resume-R |
53 |
None |
Stop / Freeze-R |
54 |
None |
Acknowledge-R |
55 |
None |
Action Request-R |
56 |
None |
Action Response-R |
57 |
None |
Data Query-R |
58 |
None |
Set Data-R |
59 |
None |
Data-R |
60 |
None |
Event Report-R |
61 |
None |
Comment-R Message |
62 |
None |
Record Query-R |
65 |
None |
Set Record-R |
64 |
None |
Record-R |
63 |
None |
What is the format for the VRF Sensor Field of View PDU?
The easiest way to publish a Sensor Field of View object that can be view in VR-Forces is to use VR-Link along with the DtRectangularPyramidPublisher class (which is an extension of the DtSensorFieldOfViewPublisher). This will provide the network encoding for DIS or HLA.
In HLA, this data is published in the SensorFieldOfView.RectangularPyramid object class, which can be found in the MAK-VRFExt FOM module.
In DIS it is published into a PDU with kind 154. The layout of the PDU is as follows:
Field Size (bits) |
Field |
Description |
96 |
PDU Header |
Standard DIS PDU header (uses PDU kind 154) |
96 |
Relative Orientation |
3x 32-bit floating-point angles Euler angles specifying orientation relative to host. Only used for Tracking Mode 0. |
192 |
Relative Location |
3x 64-bit floating-point numbers Relative location of the sensor on the host |
48 |
Host Entity ID |
Entity ID to which the sensor view is attached |
8 |
Tracking Mode |
Enumeration 3 = Scan mode (scanning back and forth) 4 = Manual control mode (requires additional PDUs for control) |
8 |
Version |
Integer |
64 |
Maximum Zoom Level |
Floating point number The maximum level the sensor can zoom. Usually 100. |
64 |
Zoom Level |
Floating point number The current zoom level. Between 1 and Maximum Zoom Level. |
64 |
Radius |
Floating point number (m) Radius to which the field of view extends (distance from entity). Mainly for visual purposes. 0.0 is the default, and it extends indefinitely. |
64 |
Minimum Azimuth Angle |
Floating point angle (radians) The minimum azimuth angle the sensor can rotate to |
64 |
Maximum Azimuth Angle |
Floating point angle (radians) The maximum azimuth angle the sensor can rotate to |
64 |
Minimum Elevation Angle |
Floating point angle (radians) The minimum elevation angle the sensor can rotate to |
64 |
Maximum Elevation Angle |
Floating point angle (radians) The maximum elevation angle the sensor can rotate to |
192 |
Targeted Location |
3x 64-bit floating-point numbers Geocentric location being targeted. Only used for Tracking Mode 2. |
32 |
Color |
RGBA color value For visual purposes. |
48 |
Targeted Entity |
Entity ID of the target being tracked. Only used for Tracking Mode 1. |
512 |
ID |
Unique ASCII name for this sensor, to deconflict when an entity publishes more than one sensor field of view. |
64 |
X Half Angle |
Floating point angle (radians) The azimuth angle from the center of the field of view to the edge. |
64 |
Y Half Angle |
Floating point angle (radians) The elevation angle from the center of the field of view to the edge. |