![]() |
VR-Forces 4.10 Class Documentation
|
VR-Forces can display information about tactical data link (TDL) messages received over the network or sent by simulation objects that have a tactical data link message generator system.
TDL Messages exist in many formats and can differ significantly between users. One widely used format is Link 16. Link 16 is a message format defined as a Nation Standard Agreement (STANAG) document used by NATO and other partner nations. VR-Forces has a plug-in module that supports Link 16. However, this plug-in is ITAR-controlled and may not be available to all VR-Forces customers. The VR-Forces API provides a structure within which customers can build their own plug-ins to send and receive TDL messages using whatever formats they wish. The base application includes message generator systems that emulate TDL messages, but do not conform to any standard. The front-end can display the data sent by these messages.
VR-Forces includes an example, tdlMessage, that demonstrates how to extend the TDL message system.
The TDL system defines a position controller, a status controller and a contact controller. TDL messages are sent using a data interaction in the VR-Forces interface message content range. These messages are a prescribed byte layout of fixed and variable portions of the data (as described in the TDL message header files).
The API has a factory to create the VRF TDL messages and a transporter that sends the messages. The transporter does not split content. It is expected that TDL messages will fit into the message size limit boundary for sending.
Each controller is responsible for sending one particular type of TDL message. The messages are heartbeated and are expected to contain very specific information to that message. Each TDL message is given a unique identifier that is used by the front-end to gather the messages into a single report to display to the user. If a controller does not send out regular messages the front-end will eventually time out the display of the reports.
DtTDLPPLIMessageGeneratorController. This controller sends out a position report for the entity (including force and DIS enumeration). This report is used to associate a status report that is sent by the status controller and shows an icon on the screen to represent this entity (much like a spot report). Without this report the status report is not shown.
DtTDLStatusMessageGeneratorController. A string/value pair of status messages for the object in question. This can be any kind of text, and, when sent, will be associated with an entity sent from a previous PPI message via the unique identifier.
These controllers are configured in the tdl-<platform>-message-generator.sysdef, where <platform> can be air, ground, surface, or subsurface. Currently there are no entities configured for this system, however, it can be added to any simulation object that you want. This sytems only works for reporting on single point objects. Multi-point objects, such as areas and routes cannot be reported on.
VR-Forces customers who want to implement a TDL system that conforms to a particular standard can subclass these controllers and install versions that can send the standard-specific messages. If you want to add a new TDL message, you can add it to the TDL message factory with a new TDL type and implement the setToNet (fixed and variable portions) and setFromNet (fixed and variable portions) for that message.
The API for receiving TDL messages has a network component for receiving the messages and a display component that converts the message data into data the the front-end knows how to display. Customers writing their own TDL plug-ins would override the network component.
In the VR-Forces generic implementation of TDL message processing, DtVrfTDLMessageProcessor (subclassed from the DtTDLMessageProcessor) listens to and processes the VR-Forces TDL messages. This processor uses the VR-Forces TDL message transporter to register callbacks for when any VR-Forces TDL message is received and then has methods to process the individual messages. (Customers writing their own TDL message processing plug-in would subclass from DtTDLMessageProcessor).
The messages received over the network are transformed into the following generic types:
DtTDLGenericNetworkMessage. This is a basic message that contains the unique identifier of the message, the time it was sent out from the source, and a dictionary of key/value pairs of data that might appear in the message.
The dictionary of this message is a key component of the message. Since VR-Forces does not know what information a message might need to display, it simply transforms the message into lines of text or symbols. The TDL Settings page of the Application Settings dialog box lets you specify how may lines of symbol decoration they want on the screen. If the dictionary contains a "TDL Line <n>" (where n is the line number starting at 1), that information can be shown as a symbol decoration on the screen (this is used for marking text and status information).
Once this information is posted from the network thread to the GUI thread, there is a system that gathers this information and, using the unique identifier, ties it all together into a single report with a merged dictionary (items are never removed from the dictionary, only added). Once the system has position information it creates a report on the screen that the user can click and get more information for (much like a spot report).
[<< Message Classes] [Home] [Top of Page]