An example that creates multiple F18 entities and demonstrates how to parallelize the simulation.
#include <stdlib.h>
#include <iostream>
#ifndef _WIN32
#include <sys/socket.h>
#endif
DtTime timeOutInterval = 12.0;
double translationThreshold = 1.0;
static int keybrdTick( );
#if VXWORKS
#define main realMain
#endif
int main( int argc, char* argv[] )
{
try
{
DtString appName =
"VR-Link F18 " + pidStr;
#if DtDIS
initializer.setDisVersionToSend( 7 );
#else
initializer.setExecName( "MAK-RPR-2.0" );
initializer.setRprFomVersion( 2.0 );
initializer.setRprFomRevision( 1 );
#endif
initializer.setApplicationNumber( pid );
DtString defaultF18Name( initializer.f18Name() );
defaultF18Name += " " + pidStr;
initializer.setF18Name( defaultF18Name );
#ifdef DtHLA
initializer.setFederateType( defaultF18Name );
#endif
initializer.parseCmdLine();
#if DtDIS
DtEntityPublisher::setDfltTimeThreshold( timeThreshold );
initializer.setUseAsynchIO(true);
#endif
int forever = 1;
DtTime dt = initializer.deltaTime();
while( forever )
{
if ( keybrdTick( ) == 0 ) break;
frameDuration = drainDuration + simDuration + pubDuration;
if (frameDuration < dt)
{
idle = dt - frameDuration;
}
else
{
idle = 0.0;
}
std::cout << "total=" << frameDuration << '\t';
std::cout << "idle=" << idle << '\t';
std::cout << "drain=" << drainDuration << '\t';
std::cout << "sim=" << simDuration << '\t';
std::cout << "pub=" << pubDuration << '\t';
std::cout << std::endl;
}
}
return 0;
}
int keybrdTick( )
{
if ( !keyPtr ) return 1;
switch( *keyPtr )
{
case 'q':
case 'Q':
return 0;
default:
std::cout << "Unrecognized command key " << *keyPtr << std::endl;
break;
}
return 1;
}
#include "vehicleSim.h"
#include <stdio.h>
#include <iostream>
{
}
{
}
{
std::cout << "Opening connection..." << std::endl;
{
std::cerr << "Failed to open connection error: " << status << "." << std::endl;
return;
}
#if DtHLA
#if DtHLA_1516
for (std::list<DtObjClassDesc*>::const_iterator item = fom->
objClassList().begin();
++item)
{
#else
classDesc;
{
#endif
}
#endif
std::cout << "Connection open, status=" << status << "." << std::endl;
{
std::cout << "Serial execution." << std::endl;
}
{
std::cout << "Parallel execution." << std::endl;
}
else
{
std::cout << "Unknown execution mode, default to parallel execution." << std::endl;
}
#if DtDIS
#else
#endif
}
{
if (num > 0)
{
}
return myVehicle;
}
{
for (int nVehicle=0; nVehicle<theNumVehicles; ++nVehicle) {
}
}
{
}
{
}
{
}
{
}
{
}
{
}
{
{
}
else
{
}
}
{
}
{
}
{
}