//
// Written by Curtis Olson, started November 1999.
//
-// Copyright (C) 1999 Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 1999 Curtis L. Olson - http://www.flightgear.org/~curt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
# include <Network/jpg-httpd.hxx>
#endif
#include <Network/joyclient.hxx>
+#include <Network/jsclient.hxx>
#include <Network/native.hxx>
#include <Network/native_ctrls.hxx>
#include <Network/native_fdm.hxx>
try
{
- if ( protocol == "atc610x" ) {
- FGATC610x *atc610x = new FGATC610x;
- atc610x->set_hz( 30 );
- return atc610x;
+ if ( protocol == "atcsim" ) {
+ FGATC610x *atcsim = new FGATC610x;
+ atcsim->set_hz( 30 );
+ if ( tokens.size() != 6 ) {
+ SG_LOG( SG_IO, SG_ALERT, "Usage: --atcsim=[no-]pedals,"
+ << "input0_config,input1_config,"
+ << "output0_config,output1_config,file.nas" );
+ return NULL;
+ }
+ if ( tokens[1] == "no-pedals" ) {
+ fgSetBool( "/input/atcsim/ignore-pedal-controls", true );
+ } else {
+ fgSetBool( "/input/atcsim/ignore-pedal-controls", false );
+ }
+ atcsim->set_path_names(tokens[2], tokens[3], tokens[4], tokens[5]);
+ return atcsim;
} else if ( protocol == "atlas" ) {
FGAtlas *atlas = new FGAtlas;
io = atlas;
} else if ( protocol == "joyclient" ) {
FGJoyClient *joyclient = new FGJoyClient;
io = joyclient;
+ } else if ( protocol == "jsclient" ) {
+ FGJsClient *jsclient = new FGJsClient;
+ io = jsclient;
} else if ( protocol == "native" ) {
FGNative *native = new FGNative;
io = native;
FGRUL *rul = new FGRUL;
io = rul;
} else if ( protocol == "generic" ) {
- FGGeneric *generic = new FGGeneric( tokens[6] );
+ int n = 6;
+ if (tokens[1] == "socket") n++;
+ else if (tokens[1] == "file") n--;
+ FGGeneric *generic = new FGGeneric( tokens[n] );
io = generic;
#ifdef FG_MPLAYER_AS
}
-// process any serial port work
+// process any IO channel work
void
FGIO::update( double delta_time_sec )
{
// cout << "processing I/O channels" << endl;
-
- // SGTimeStamp current_time;
- // current_time.stamp();
- // static SGTimeStamp start_time = current_time;
- // double elapsed_time = (current_time - start_time) / 1000000.0;
- // cout << " Elapsed time = " << elapsed_time << endl;
+ // cout << " Elapsed time = " << delta_time_sec << endl;
typedef vector< FGProtocol* > container;
container::iterator i = io_channels.begin();
if ( p->is_enabled() ) {
p->dec_count_down( delta_time_sec );
- double dt = 1 / p->get_hz();
- while ( p->get_count_down() < 0.33 * dt ) {
- p->process();
+ double dt = 1 / p->get_hz();
+ if ( p->get_count_down() < 0.33 * dt ) {
+ p->process();
+ p->inc_count();
+ while ( p->get_count_down() < 0.33 * dt ) {
p->inc_count_down( dt );
- p->inc_count();
+ }
+ // double ave = elapsed_time / p->get_count();
+ // cout << " ave rate = " << ave << endl;
}
- // double ave = elapsed_time / p->get_count();
- // cout << " ave rate = " << ave << endl;
}
}
}