1
0
Fork 0

Cleaning out old code ...

This commit is contained in:
curt 1999-11-19 23:19:51 +00:00
parent 1f66606440
commit 24caa82715
5 changed files with 25 additions and 369 deletions

View file

@ -23,21 +23,9 @@
#include <Include/compiler.h>
// #ifdef FG_HAVE_STD_INCLUDES
// # include <cmath>
// # include <cstdlib> // atoi()
// #else
// # include <math.h>
// # include <stdlib.h> // atoi()
// #endif
#include STL_STRING
// #include STL_IOSTREAM
// #include <vector>
#include <Debug/logstream.hxx>
// #include <Aircraft/aircraft.hxx>
// #include <Include/fg_constants.h>
#include <Include/fg_types.hxx>
#include <Main/options.hxx>
@ -51,7 +39,6 @@
#include <Network/pve.hxx>
#include <Network/rul.hxx>
// #include <Time/fg_time.hxx>
#include <Time/timestamp.hxx>
FG_USING_STD(string);
@ -193,190 +180,6 @@ void fgIOInit() {
}
static void send_fgfs_out( FGIOChannel *p ) {
}
static void read_fgfs_in( FGIOChannel *p ) {
}
// "RUL" output format (for some sort of motion platform)
//
// The Baud rate is 2400 , one start bit, eight data bits, 1 stop bit,
// no parity.
//
// For position it requires a 3-byte data packet defined as follows:
//
// First bite: ascII character "P" ( 0x50 or 80 decimal )
// Second byte X pos. (1-255) 1 being 0* and 255 being 359*
// Third byte Y pos.( 1-255) 1 being 0* and 255 359*
//
// So sending 80 127 127 to the two axis motors will position on 180*
// The RS- 232 port is a nine pin connector and the only pins used are
// 3&5.
static void send_rul_out( FGIOChannel *p ) {
#if 0
char rul[256];
FGInterface *f;
FGTime *t;
f = current_aircraft.fdm_state;
t = FGTime::cur_time_params;
// run as often as possibleonce per second
// this runs once per second
// if ( p->last_time == t->get_cur_time() ) {
// return;
// }
// p->last_time = t->get_cur_time();
// if ( t->get_cur_time() % 2 != 0 ) {
// return;
// }
// get roll and pitch, convert to degrees
double roll_deg = f->get_Phi() * RAD_TO_DEG;
while ( roll_deg < -180.0 ) {
roll_deg += 360.0;
}
while ( roll_deg > 180.0 ) {
roll_deg -= 360.0;
}
double pitch_deg = f->get_Theta() * RAD_TO_DEG;
while ( pitch_deg < -180.0 ) {
pitch_deg += 360.0;
}
while ( pitch_deg > 180.0 ) {
pitch_deg -= 360.0;
}
// scale roll and pitch to output format (1 - 255)
// straight && level == (128, 128)
int roll = (int)( (roll_deg+180.0) * 255.0 / 360.0) + 1;
int pitch = (int)( (pitch_deg+180.0) * 255.0 / 360.0) + 1;
sprintf( rul, "p%c%c\n", roll, pitch);
FG_LOG( FG_IO, FG_INFO, "p " << roll << " " << pitch );
string rul_sentence = rul;
p->port.write_port(rul_sentence);
#endif
}
// "PVE" (ProVision Entertainment) output format (for some sort of
// motion platform)
//
// Outputs a 5-byte data packet defined as follows:
//
// First bite: ASCII character "P" ( 0x50 or 80 decimal )
// Second byte: "roll" value (1-255) 1 being 0* and 255 being 359*
// Third byte: "pitch" value (1-255) 1 being 0* and 255 being 359*
// Fourth byte: "heave" value (or vertical acceleration?)
//
// So sending 80 127 127 to the two axis motors will position on 180*
// The RS- 232 port is a nine pin connector and the only pins used are
// 3&5.
static void send_pve_out( FGIOChannel *p ) {
#if 0
char pve[256];
FGInterface *f;
FGTime *t;
f = current_aircraft.fdm_state;
t = FGTime::cur_time_params;
// run as often as possibleonce per second
// this runs once per second
// if ( p->last_time == t->get_cur_time() ) {
// return;
// }
// p->last_time = t->get_cur_time();
// if ( t->get_cur_time() % 2 != 0 ) {
// return;
// }
// get roll and pitch, convert to degrees
double roll_deg = f->get_Phi() * RAD_TO_DEG;
while ( roll_deg <= -180.0 ) {
roll_deg += 360.0;
}
while ( roll_deg > 180.0 ) {
roll_deg -= 360.0;
}
double pitch_deg = f->get_Theta() * RAD_TO_DEG;
while ( pitch_deg <= -180.0 ) {
pitch_deg += 360.0;
}
while ( pitch_deg > 180.0 ) {
pitch_deg -= 360.0;
}
short int heave = (int)(f->get_W_body() * 128.0);
// scale roll and pitch to output format (1 - 255)
// straight && level == (128, 128)
short int roll = (int)(roll_deg * 32768 / 180.0);
short int pitch = (int)(pitch_deg * 32768 / 180.0);
unsigned char roll_b1, roll_b2, pitch_b1, pitch_b2, heave_b1, heave_b2;
roll_b1 = roll >> 8;
roll_b2 = roll & 0x00ff;
pitch_b1 = pitch >> 8;
pitch_b2 = pitch & 0x00ff;
heave_b1 = heave >> 8;
heave_b2 = heave & 0x00ff;
sprintf( pve, "p%c%c%c%c%c%c\n",
roll_b1, roll_b2, pitch_b1, pitch_b2, heave_b1, heave_b2 );
// printf( "p [ %u %u ] [ %u %u ] [ %u %u ]\n",
// roll_b1, roll_b2, pitch_b1, pitch_b2, heave_b1, heave_b2 );
FG_LOG( FG_IO, FG_INFO, "roll=" << roll << " pitch=" << pitch <<
" heave=" << heave );
string pve_sentence = pve;
p->port.write_port(pve_sentence);
#endif
}
// one more level of indirection ...
static void process_port( FGIOChannel *p ) {
#if 0
if ( p->kind == fgIOCHANNEL::FG_SERIAL_NMEA_OUT ) {
send_nmea_out(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_NMEA_IN ) {
read_nmea_in(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_GARMIN_OUT ) {
send_garmin_out(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_GARMIN_IN ) {
read_garmin_in(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_FGFS_OUT ) {
send_fgfs_out(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_FGFS_IN ) {
read_fgfs_in(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_RUL_OUT ) {
send_rul_out(p);
} else if ( p->kind == fgIOCHANNEL::FG_SERIAL_PVE_OUT ) {
send_pve_out(p);
}
#endif
}
// process any serial port work
void fgIOProcess() {
FGProtocol *p;

View file

@ -27,14 +27,6 @@
#include "Include/compiler.h"
// #include <string>
// #ifdef FG_HAVE_STD_INCLUDES
// # include <ctime>
// #else
// # include <time.h>
// #endif
#include <Network/iochannel.hxx>

View file

@ -23,14 +23,6 @@
#include <Include/compiler.h>
// #ifdef FG_HAVE_STD_INCLUDES
// # include <cmath>
// # include <cstdlib> // atoi()
// #else
// # include <math.h>
// # include <stdlib.h> // atoi()
// #endif
#include STL_STRING
#include <Debug/logstream.hxx>
@ -39,8 +31,6 @@
#include <Serial/serial.hxx>
#include <Time/fg_time.hxx>
// #include "options.hxx"
#include "fg_serial.hxx"
FG_USING_STD(string);
@ -72,158 +62,6 @@ bool FGSerial::open( FGProtocol::fgProtocolDir dir ) {
}
#if 0
// "RUL" output format (for some sort of motion platform)
//
// The Baud rate is 2400 , one start bit, eight data bits, 1 stop bit,
// no parity.
//
// For position it requires a 3-byte data packet defined as follows:
//
// First bite: ascII character "P" ( 0x50 or 80 decimal )
// Second byte X pos. (1-255) 1 being 0* and 255 being 359*
// Third byte Y pos.( 1-255) 1 being 0* and 255 359*
//
// So sending 80 127 127 to the two axis motors will position on 180*
// The RS- 232 port is a nine pin connector and the only pins used are
// 3&5.
static void send_rul_out( fgIOCHANNEL *p ) {
char rul[256];
FGInterface *f;
FGTime *t;
f = current_aircraft.fdm_state;
t = FGTime::cur_time_params;
// run as often as possibleonce per second
// this runs once per second
// if ( p->last_time == t->get_cur_time() ) {
// return;
// }
// p->last_time = t->get_cur_time();
// if ( t->get_cur_time() % 2 != 0 ) {
// return;
// }
// get roll and pitch, convert to degrees
double roll_deg = f->get_Phi() * RAD_TO_DEG;
while ( roll_deg < -180.0 ) {
roll_deg += 360.0;
}
while ( roll_deg > 180.0 ) {
roll_deg -= 360.0;
}
double pitch_deg = f->get_Theta() * RAD_TO_DEG;
while ( pitch_deg < -180.0 ) {
pitch_deg += 360.0;
}
while ( pitch_deg > 180.0 ) {
pitch_deg -= 360.0;
}
// scale roll and pitch to output format (1 - 255)
// straight && level == (128, 128)
int roll = (int)( (roll_deg+180.0) * 255.0 / 360.0) + 1;
int pitch = (int)( (pitch_deg+180.0) * 255.0 / 360.0) + 1;
sprintf( rul, "p%c%c\n", roll, pitch);
FG_LOG( FG_IO, FG_INFO, "p " << roll << " " << pitch );
string rul_sentence = rul;
p->port.write_port(rul_sentence);
}
// "PVE" (ProVision Entertainment) output format (for some sort of
// motion platform)
//
// Outputs a 5-byte data packet defined as follows:
//
// First bite: ASCII character "P" ( 0x50 or 80 decimal )
// Second byte: "roll" value (1-255) 1 being 0* and 255 being 359*
// Third byte: "pitch" value (1-255) 1 being 0* and 255 being 359*
// Fourth byte: "heave" value (or vertical acceleration?)
//
// So sending 80 127 127 to the two axis motors will position on 180*
// The RS- 232 port is a nine pin connector and the only pins used are
// 3&5.
static void send_pve_out( fgIOCHANNEL *p ) {
char pve[256];
FGInterface *f;
FGTime *t;
f = current_aircraft.fdm_state;
t = FGTime::cur_time_params;
// run as often as possibleonce per second
// this runs once per second
// if ( p->last_time == t->get_cur_time() ) {
// return;
// }
// p->last_time = t->get_cur_time();
// if ( t->get_cur_time() % 2 != 0 ) {
// return;
// }
// get roll and pitch, convert to degrees
double roll_deg = f->get_Phi() * RAD_TO_DEG;
while ( roll_deg <= -180.0 ) {
roll_deg += 360.0;
}
while ( roll_deg > 180.0 ) {
roll_deg -= 360.0;
}
double pitch_deg = f->get_Theta() * RAD_TO_DEG;
while ( pitch_deg <= -180.0 ) {
pitch_deg += 360.0;
}
while ( pitch_deg > 180.0 ) {
pitch_deg -= 360.0;
}
short int heave = (int)(f->get_W_body() * 128.0);
// scale roll and pitch to output format (1 - 255)
// straight && level == (128, 128)
short int roll = (int)(roll_deg * 32768 / 180.0);
short int pitch = (int)(pitch_deg * 32768 / 180.0);
unsigned char roll_b1, roll_b2, pitch_b1, pitch_b2, heave_b1, heave_b2;
roll_b1 = roll >> 8;
roll_b2 = roll & 0x00ff;
pitch_b1 = pitch >> 8;
pitch_b2 = pitch & 0x00ff;
heave_b1 = heave >> 8;
heave_b2 = heave & 0x00ff;
sprintf( pve, "p%c%c%c%c%c%c\n",
roll_b1, roll_b2, pitch_b1, pitch_b2, heave_b1, heave_b2 );
// printf( "p [ %u %u ] [ %u %u ] [ %u %u ]\n",
// roll_b1, roll_b2, pitch_b1, pitch_b2, heave_b1, heave_b2 );
FG_LOG( FG_IO, FG_INFO, "roll=" << roll << " pitch=" << pitch <<
" heave=" << heave );
string pve_sentence = pve;
p->port.write_port(pve_sentence);
}
#endif
// read data from port
bool FGSerial::read( char *buf, int *length ) {
// read a chunk

View file

@ -38,7 +38,16 @@ FGPVE::~FGPVE() {
}
// generate Garmin message
// "PVE" (ProVision Entertainment) output format (for some sort of
// motion platform)
//
// Outputs a 5-byte data packet defined as follows:
//
// First bite: ASCII character "P" ( 0x50 or 80 decimal )
// Second byte: "roll" value (1-255) 1 being 0* and 255 being 359*
// Third byte: "pitch" value (1-255) 1 being 0* and 255 being 359*
// Fourth byte: "heave" value (or vertical acceleration?)
bool FGPVE::gen_message() {
// cout << "generating pve message" << endl;
FGInterface *f = cur_fdm_state;

View file

@ -39,7 +39,21 @@ FGRUL::~FGRUL() {
}
// generate Garmin message
// "RUL" output format (for some sort of motion platform)
//
// The Baud rate is 2400 , one start bit, eight data bits, 1 stop bit,
// no parity.
//
// For position it requires a 3-byte data packet defined as follows:
//
// First bite: ascII character "P" ( 0x50 or 80 decimal )
// Second byte X pos. (1-255) 1 being 0* and 255 being 359*
// Third byte Y pos.( 1-255) 1 being 0* and 255 359*
//
// So sending 80 127 127 to the two axis motors will position on 180*
// The RS- 232 port is a nine pin connector and the only pins used are
// 3&5.
bool FGRUL::gen_message() {
// cout << "generating rul message" << endl;
FGInterface *f = cur_fdm_state;