Quick Notes on Building a New JFORCES Interface.
This document provides pointers to key documents meant to instruct a programmer in how to build an interface between JFORCES and either a live system or a simulation. It is limited to developing interfaces for systems already on LANS; our experience in tying to live systems via radio interfaces have been so tailored for each application that we have not been able to derive a standardized approach.
The first step in developing an interface to an other simulation (or model) is to evaluation the timing and functionality needs of the interface and determine which of the typical JFORCES integration methods are appropriate. These methods are data coupling, micro-integration, message coupling, and confederation. These are described here.
For many simulations and for most live systems message coupling is the best approach. This involves building a gateway, which is a separate asynchronous application that communicates to JFORCES via executive message passing, clock control and process control services. If unfamiliar with these services they are described in this link. The method to actually implement a gateway is best described in the tutorial found at this link. It describes methods to build both a tailored gateway between two applications and a gateway that parasitically links to a JFORCES execution, that is links to it without the simulation knowing it's there but requesting copies of selected message types from the simulation executive(s) via executive services. This tutorial comes with all source code for the gateways and a very simple stand-alone simulation. A direct link to this sample code including the README documentation to help users build both gateways and the simulation is provided here. Depending on your browser you might have right-click this link and select “Save Link” to download this code. This is a compressed tarball and can be unzipped either with Winzip or a tar command using the “zx” options.
A more extensive application and gateway is provided here. This application is a weapons effect server. The code and makefiles to create the server library in either Linux or windows are in the main directory. A text description of the application's purpose, implementation, and use is in the “thesis” subdirectory. The code to build a gateway from this application is in the “gateway” subdirectory.
A flexible gateway named SuperGate has bee distributed since Balder 7.5. This interface passes a user selection of a wide variety of JFORCES messages that originate from the core simulation to external applications through a TCP socket. Click here to retrieve the current use notes.