High Level Architecture (HLA) support is currently considered experimental and is only available with the Professional Plus variant. Major changes are expected in future updates.
High Level Architecture (HLA) is a simulation interoperability standard that provides simulation applications with the ability to communicate and exchange information. Prepar3D utilizes the OpenRTI library and supports Real-time Platform Reference Federation Object Model Version 2.0 (RPR FOM 2).
Starting a Session
The user should configure their HLA session before attempting to connect. Configuration includes items such as entity ids, connection parameters, and federate names. The OpenRTI RTINode server executable and the RPR FOM 2 are not included with Prepar3D. The creation of RTINode and the download of RPR FOM 2 are described below.
In order to run the RTINode server, the OpenRTI API must be first downloaded and built:
- Download the OpenRTI library (https://sourceforge.net/projects/openrti/)
- Make the OpenRTI solutions and projects using a program like CMake (https://cmake.org/)
- Build the OpenRTI RTINode project
Once you have the RTINode application built, it will need to be executed on a separate machine. When running the RTINode, command line parameters can be passed to tell it what IP addresses to listen to. To listen to all IP addresses, pass the following command line parameter to RTINode:
- -i 0.0.0.0
Prepar3D applications on that network can now connect to the server.
The RPR FOM v2 (Real-time Platform Reference Federation Object Model Version 2.0) XML file must then be downloaded and configured:
- Go to the Simulation Interoperability Standards Organization Digital Library (https://www.sisostds.org/digitalLibrary.aspx)
- Search for SISO-STD-001.1-2015
- Download the SISO-STD-001.1-2015 Annex B Files Informative zip file
- Extract the zip file
- Set the RPRFOM2FilePath entry of the Federate section of the HLA user interface to the full file path of the RPR_FOM_v2.0_1516-2010.xml file.
Each HLA federate must also configure their entity information. This includes the site, application, and entity ids. This set of IDs should be unique for each federate in the federation.
The name of the federation execution to join must then be provided. This name should be the same for machines joining the given federation execution. RTI specific local parameters can also then be specified. For OpenRTI, this should be of the form rti://[ip_address]:[port] where [ip_address] and [port] are the IP address and port of the machine running the remote RTINode server.
The name and type of the machine's federate can then be specified. The federate type is optional, however the federate name is required. The full file path to the RPR FOM v2 XML file can also specified as described above.
If the above has been configured correctly, the federate should be able to connect to the federation execution.
Note: HLA is considered experimental and no error reporting is currently supported.
Here are some basic troubleshooting steps:
- Ensure the machines attempting to connect can ping one another
- Ensure the OpenRTI or RTI specific local parameters are correct
- If using OpenRTI, ensure that the RTINode server is executed with the correct command line parameters
- Ensure you are using the correct FOM version and the path is correctly configured
- Ensure that each machine has a unique set of site, application, and entity id's
- Ensure that each machine is specifying the correct federate execution name
The HLA user interface can be found under Networking in the main menu bar. The following is a description of options available from within the user interface as well as descriptions and examples of the XML format used for the configuration.
|Site ID||The Site ID of this application instance. Site IDs may be the same for multiple applications as long as each application's Application ID is unique. Valid Site IDs range from 0 to 65535.|
|Application ID||The Application ID of this application instance. Application IDs should be unique for all applications participating in a given exercise from a given site. For example, the Application ID should be unique for all simulations sharing the same Exercise ID and Site ID. Valid Application IDs range from 0 to 65535.|
|Entity ID||The Entity ID of the user entity. Valid Entity IDs range from 0 to 65535.|
|LocalParameters||The local parameters to be passed into the RTI's connect() function. For OpenRTI, this should be of the form rti://[ip_address]:[port] where [ip_address] and [port] are the IP address and port of the machine running the remote RTINode server.|
|FederationExecutionName||The name of the federation execution to join.|
|FederateName||The federate name of this machine.|
|FederateType||The federate type of this machine (optional).|
|RPRFOM2FilePath||The full file path of the RPR FOM v2 XML file.|
|Attribute Update Rate||The amount of time between sending attribute updates in seconds. Attribute data is only sent if it has changed.|
|Endianness||The endianness in which attribute data is broadcast.|
Entity configuration is currently shared between both HLA and DIS. Please see the Entity Configuration article for more information.
The following classes and interactions are currently supported:
- RPR FOM v2 Object Classes
- RPR FOM v2 Interactions
- None at this time