- ls_toplevel_init( 0.0,
- (char *)fgGetString("/sim/aircraft").c_str() );
- lsic=new LaRCsimIC; //this needs to be brought up after LaRCsim is
- copy_to_LaRCsim(); // initialize all of LaRCsim's vars
- //this should go away someday -- formerly done in fg_init.cxx
- Mass = 8.547270E+01;
- I_xx = 1.048000E+03;
- I_yy = 3.000000E+03;
- I_zz = 3.530000E+03;
- I_xz = 0.000000E+00;
- //current_aircraft.fdm_state->set_Tank1Fuel(15.0);
- //current_aircraft.fdm_state->set_Tank2Fuel(15.0);
- //Tank1Fuel = 15.0;
- //Tank2Fuel = 15.0;
-}
+ speed_up = fgGetNode("/sim/speed-up", true);
+ aircraft = fgGetNode("/sim/aircraft", true);
+
+ ls_toplevel_init( 0.0, (char *)(aircraft->getStringValue().c_str()) );
- // translate FG to LaRCsim structure
- copy_to_LaRCsim();
-
- // actual LaRCsim top level init
- // ls_toplevel_init( dt, (char *)fgGetString("/sim/aircraft").c_str() );
-
- FG_LOG( FG_FLIGHT, FG_INFO, "FG pos = " <<
- get_Latitude() );
-
- // translate LaRCsim back to FG structure
- copy_from_LaRCsim();
+// Initialize the LaRCsim flight model, dt is the time increment for
+// each subsequent iteration through the EOM
+void FGLaRCsim::init() {
- FG_LOG( FG_FLIGHT, FG_INFO, "Throttle = "
- << controls.get_throttle( 0 ) * 100.0);
- FG_LOG( FG_FLIGHT, FG_INFO, " Mixture = " << 80);
- FG_LOG( FG_FLIGHT, FG_INFO, " RPM = " << eng.get_RPM());
- FG_LOG( FG_FLIGHT, FG_INFO, " MP = " << eng.get_Manifold_Pressure());
- FG_LOG( FG_FLIGHT, FG_INFO, " HP = "
+ SG_LOG( SG_FLIGHT, SG_INFO, "Throttle = "
+ << globals->get_controls()->get_throttle( 0 ) * 100.0);
+ SG_LOG( SG_FLIGHT, SG_INFO, " Mixture = " << 80);
+ SG_LOG( SG_FLIGHT, SG_INFO, " RPM = " << eng.get_RPM());
+ SG_LOG( SG_FLIGHT, SG_INFO, " MP = " << eng.get_Manifold_Pressure());
+ SG_LOG( SG_FLIGHT, SG_INFO, " HP = "
- FG_LOG( FG_FLIGHT, FG_INFO, " EGT = " << eng.get_EGT());
- FG_LOG( FG_FLIGHT, FG_INFO, " Thrust (N) "
+ SG_LOG( SG_FLIGHT, SG_INFO, " EGT = " << eng.get_EGT());
+ SG_LOG( SG_FLIGHT, SG_INFO, " Thrust (N) "
<< " lat_geoc = " << Lat_geocentric << " lat_geod = " << Latitude
<< " alt = " << Altitude << " sl_radius = " << Sea_level_radius
<< " radius_to_vehicle = " << Radius_to_vehicle );
double tmp_lon_geoc = Lon_geocentric;
<< " lat_geoc = " << Lat_geocentric << " lat_geod = " << Latitude
<< " alt = " << Altitude << " sl_radius = " << Sea_level_radius
<< " radius_to_vehicle = " << Radius_to_vehicle );
double tmp_lon_geoc = Lon_geocentric;
_set_Geodetic_Position( Latitude, tmp_lon, Altitude );
_set_Euler_Angles( Phi, Theta, Psi );
_set_Geodetic_Position( Latitude, tmp_lon, Altitude );
_set_Euler_Angles( Phi, Theta, Psi );
+ // cout << "climb rate = " << -V_down * 60 << endl;
+
+ if ( aircraft->getStringValue() == "uiuc" ) {
+ if (pilot_elev_no) {
+ globals->get_controls()->set_elevator(Long_control);
+ globals->get_controls()->set_elevator_trim(Long_trim);
+ // controls.set_elevator(Long_control);
+ // controls.set_elevator_trim(Long_trim);
+ }
+ if (pilot_ail_no) {
+ globals->get_controls()->set_aileron(Lat_control);
+ // controls.set_aileron(Lat_control);
+ }
+ if (pilot_rud_no) {
+ globals->get_controls()->set_rudder(Rudder_pedal);
+ // controls.set_rudder(Rudder_pedal);
+ }
+ if (Throttle_pct_input) {
+ globals->get_controls()->set_throttle(0,Throttle_pct);
+ // controls.set_throttle(0,Throttle_pct);
+ }
+ }
- FG_LOG( FG_FLIGHT, FG_INFO, " FGLaRCsim::set_ls(): " );
- FG_LOG( FG_FLIGHT, FG_INFO, " Phi: " << Phi );
- FG_LOG( FG_FLIGHT, FG_INFO, " Theta: " << Theta );
- FG_LOG( FG_FLIGHT, FG_INFO, " Psi: " << Psi );
- FG_LOG( FG_FLIGHT, FG_INFO, " V_north: " << V_north );
- FG_LOG( FG_FLIGHT, FG_INFO, " V_east: " << V_east );
- FG_LOG( FG_FLIGHT, FG_INFO, " V_down: " << V_down );
- FG_LOG( FG_FLIGHT, FG_INFO, " Altitude: " << Altitude );
- FG_LOG( FG_FLIGHT, FG_INFO, " Latitude: " << Latitude );
- FG_LOG( FG_FLIGHT, FG_INFO, " Longitude: " << Longitude );
- FG_LOG( FG_FLIGHT, FG_INFO, " Runway_altitude: " << Runway_altitude );
- FG_LOG( FG_FLIGHT, FG_INFO, " V_north_airmass: " << V_north_airmass );
- FG_LOG( FG_FLIGHT, FG_INFO, " V_east_airmass: " << V_east_airmass );
- FG_LOG( FG_FLIGHT, FG_INFO, " V_down_airmass: " << V_down_airmass );
+ SG_LOG( SG_FLIGHT, SG_INFO, " FGLaRCsim::set_ls(): " );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Phi: " << Phi );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Theta: " << Theta );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Psi: " << Psi );
+ SG_LOG( SG_FLIGHT, SG_INFO, " V_north: " << V_north );
+ SG_LOG( SG_FLIGHT, SG_INFO, " V_east: " << V_east );
+ SG_LOG( SG_FLIGHT, SG_INFO, " V_down: " << V_down );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Altitude: " << Altitude );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Latitude: " << Latitude );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Longitude: " << Longitude );
+ SG_LOG( SG_FLIGHT, SG_INFO, " Runway_altitude: " << Runway_altitude );
+ SG_LOG( SG_FLIGHT, SG_INFO, " V_north_airmass: " << V_north_airmass );
+ SG_LOG( SG_FLIGHT, SG_INFO, " V_east_airmass: " << V_east_airmass );
+ SG_LOG( SG_FLIGHT, SG_INFO, " V_down_airmass: " << V_down_airmass );
- FG_LOG( FG_FLIGHT, FG_INFO, "FGLaRCsim::set_Density: " << rho );
- FG_LOG( FG_FLIGHT, FG_INFO,
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Density: " << rho );
+ SG_LOG( SG_FLIGHT, SG_INFO,