Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

Synthetic map tutorial



The synthetic map tutorial present the usage of a tacticalEnv Application and a UA application to create a synthetic map for a military aircraft.

The source code and configuration of this tutorial can be found here: sourceforge.net/projects/protoframeworksamples/

Use case

In this tutorial, we will create a synthetic map for a military aircraft, and show in this Map:
  • A FEBA (Front Edge of Border Area)[1]
  • A Flightplan and its Waypoints[2]
  • Landing Waypoints
  • Several Zones
  • An Aircraft
We will also add two buttons to change the range of the map.
syntheticmap
To create the objects in the Map, we will use a tacticalEnv Application. The synthetic map itself will be managed by a UA application.

Architecture

Overview

We have the following modules:
syntheticmaparchi

Applications configuration

The applications configuration specifies the modules:
  • The tacticalEnv Application
  • ThetacticalenvModel Application
  • The UA application
  • The userInputs application
First you must put the tacticalEnvCommon.jar Jar file in the global deployment because this library must be shared between the tacticalEnv Application and the UA application. If you don't do that, you would encounter a ClassCast exception[3] :
      <applications>   
         <deployment>
            <lib url="tacticalEnvCommon.jar" />      	  
         </deployment>   
      ...
      </applications>
The UA Application has the following module configuration:
      <application name="uaappli">
         <deployment>
            <lib url="UAApplication.jar" />
            <lib url="UAAppliHelper.jar" />
         </deployment>
         <modules>
            <module name="uaappli">
               <interfaces>
                  <eventReceived service="worldConfig" uri="http://dassault-aviation.com/tacticalenv"/>
                  <eventReceived service="flightplansModel" uri="http://dassault-aviation.com/tacticalenv"/>
                  <eventReceived service="worldModel" uri="http://dassault-aviation.com/tacticalenv"/>  
                  <eventReceived service="waypointsModel" uri="http://dassault-aviation.com/tacticalenv"/>  
                  <subscribe service="aircraftsModel" uri="http://dassault-aviation.com/tacticalenv"/>    
               </interfaces>
            </module>
         </modules>
      </application>
It will be notified from the following services:
  • The worldConfig service to set the center of the map
  • The worldModel service to set the FEBA and the Zones
  • The flightplansModel and waypointsModel services to set the flightplan and the Waypoints
  • The aircraftsModel service to update the position of the Aircraft

Properties configuration

We need to set the properties for the tacticalEnv Application and the UA application:
      <properties>   
         <application name="uaappli" >
            <module name="uaappli" >
               <moduleProperty key="uaImpl" value="SyntheticMapSample.jar" />
               <moduleProperty key="uaPath" value="org.da.arinc.syntheticmap.SyntheticMapSample" />
               <moduleProperty key="a661Config" value="arinc/arincserver.properties" />
               <moduleProperty key="includeServer" value="true" />
            </module>
         </application>	 
	
         <application name="tacticalenv">
            <module name="tacticalenv">
               <moduleProperty key="scenario" value="tacticalEnv.xml" />
            </module>
         </application>   	  
      </properties>
In these properties, we specify that:
  • "scenario": We use the tacticalEnv.xml file for the scenario
  • "includeServer": We use the tacticalEnv.xml file for the scenario
  • "uaImpl": The jar file which will contain our UA is SyntheticMapSample.jar
  • "uaPath": The classpath of our UA is org.da.arinc.syntheticmap.SyntheticMapSample
  • "a661Config": The ARINC 661 configuration is in the arinc/arincserver.properties file

Tactical Environment

The tactical environment scenario contains the following elements: See the definition of the environment.

UA application


The UA application is responsible to:
  • Show the elements of the tactical environment (FEBA, flightplans, waypoints, Zones, and aircraft
  • Handle the Zoom In / Zoom Out on the Map, and the change of the map center

Starting the framework

We start the framework with our filelist.xml file for our configuration, as for all our other tutorials:
      java -jar protoframework.jar config=filelist.xml
As you see, in this configuration, the Aircraft does not move. In the next step, we will very simply make it move alongside the FlightPlan.

Make the Aircraft move alongside the FlightPlan

In this next step, we will chgne the configuration so that the Aircraft will move alongside the FlightPlan. To do that, will only need to add both these properties:
  • activate: to specify that the tactical environment can move
  • updatePeriod: to specify the updating period of the tactical environment
We have the following properties file:
      <properties>   
         <application name="uaappli" >
            <module name="uaappli" >
               <moduleProperty key="uaImpl" value="SyntheticMapSample.jar" />
               <moduleProperty key="uaPath" value="org.da.arinc.syntheticmap.SyntheticMapSample" />
               <moduleProperty key="a661Config" value="arinc/arincserver.properties" />
               <moduleProperty key="includeServer" value="true" />
            </module>
         </application>	 
	
         <application name="tacticalenv">
            <module name="tacticalenv">
               <moduleProperty key="scenario" value="tacticalEnv.xml" />
      <moduleProperty key="activate" value="true" />
               <moduleProperty key="updatePeriod" value="1s" />
            </module>
         </application>   	  
      </properties>

Notes

See also


Categories: tutorials

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence