VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TDL Message Extension (tdlMessageGui)

Table of Contents

The TDL Message Example Extension demonstrates the following:

Using VR-Vantage Accessories

In order to incorporate a protocol-specific extension in the VR-Forces front-end, the VR-Vantage Accessories concept is used. An accessory is an external plugin that can be used in association with a particular application driver (scene, transport, etc). In the case of this example, a transport driver is used to extend functionality of the system.

When using accessories to extend the protocol-specific workings, it is important to note the following:

TDL Messaging and Components

The VR-Forces TDL (Tactical Data Link) system sends VR-Forces specific TDL messages that are handled outside of the normal VR-Forces Spot Report and Data Interaction messages. The VR-Forces TDL messages are show as spot report like icons on the screen, containing a fixed number of additional "lines" of information. You can show the extended TDL lines of information by selecting which information to show on the TDL Settings page.

This example will add a new line of information in relation to the entity that is currently being targeted by the reporting entity. This information will be shown in TDL Line 4. The back-end piece of this example will create and send the new ExampleTDLMessage message, filling in the appropriate information. The new example TDL message processor will add a callback for this message and then use the UUID of the VR-Forces object to relate this information to the TDL system. This is done by creating a makVrf::DtTDLGenericNetworkMessage, setting the unique identifier to tie this information to, and then sending that information to the TDL Message processor parent for processing. See the ExampleTDLMessageProcessor::processExTDLMessage for how this is done.

Using this example you can add any number of TDL messages and TDL information lines to your TDL report.

How to Run the Example

Usage

In the Launcher, click the Plug-ins button to bring up the Plug-ins Selection dialog. Enable the tdlMessage plugin. The plugin configuration includes both the tdlMessageSim and tdlVrfGuiAccessory plugins. Both the VrfSim and vrfGui blugins have to be loaded for this example to work.

To view the new behavior:

  1. Start VR-Forces GUI and SIM.
  2. Load the tdlExampleMessage.scnx scenario from the /scenarios/developer_toolkit_examples/tdlExample/ directory
  3. Choose Settings -> Application. Select the Tactical Data Link Options page and make sure the Process of Tactical Data Link Messages is enabled.
  4. Go to the Display tab and make sure TDL Line 4 is checked (this is where the example data will be displayed)
  5. Go to the Spot Reports Options tab and turn off ground truth for all items just so you will only see the TDL messages.
  6. The two entities will dissapear from the Objects List and the terrain map.
  7. Run the scenario.
  8. A TDL Tracks folder will appear in the Objects List panel. It will have an Air sub-folder with the friendly fixed wing entity.
  9. The friendly fixed wing will be shown on the terrain map and will have a symbol decoration line showing who the fixed wing is tracking.

When you are done with the scenario, make sure to turn on ground truth for all items and to turn of TDL Message handling so the next scenario run goes as expected.

Classes

ExampleTDLMessageThe message that contains the new VR-Forces TDL Message.
ExampleTDLMessageProcessorProcessor used to receive the new extended TDL message and take the information to display in the report

Plugin Entry Points

/*******************************************************************************
** Copyright (c) 2018 MAK Technologies, Inc.
** All rights reserved.
*******************************************************************************/
#include <vrvCore/DtDe.h>
#include <QtWidgets/QMessageBox>
using namespace makVrv;
using namespace makVrf;
//Implemented to be able to use the INIT_ONCE method
bool initDeModule(DtDe* de)
{
DtVrfGuiNetworkFactory::setTDLMessageProcessorCreatorFcn(&ExampleTDLMessageProcessor::creator);
return true;
}
{
info.pluginName = "exTDLVrfGuiAccessory";
info.pluginDescription = "This accessory will enable the VR-Forces GUI to listen for and display the example TDL message";
info.pluginVersion = "1.00";
info.pluginCreator = "MAK Technologies";
info.pluginCreatorEmail = "sales@mak.com";
info.pluginContactWebPage = "www.mak.com";
info.pluginContactMailingAddress = "10 Fawcett Street, Suite 204, Cambridge, MA 02138 USA";
info.pluginContactPhone = "(617) 876 8085";
}

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)