// Initialize the JSBsim flight model, dt is the time increment for
// each subsequent iteration through the EOM
-int fgJSBsimInit(double dt) {
+int fgJSBsimInit(double dt, FGInterface& f) {
FG_LOG( FG_FLIGHT, FG_INFO, "Starting initializing JSBsim" );
FG_LOG( FG_FLIGHT, FG_INFO, " created FDMExec" );
FGPath engine_path( current_options.get_fg_root() );
engine_path.append( "Engine" );
- FDMExec.GetAircraft()->LoadAircraftEx(aircraft_path.str(),
+ FDMExec.GetAircraft()->LoadAircraft(aircraft_path.str(),
engine_path.str(), "X15");
FG_LOG( FG_FLIGHT, FG_INFO, " loaded aircraft" );
- FDMExec.GetState()->Reset(aircraft_path.str(), "Reset00");
+// FDMExec.GetState()->Reset(aircraft_path.str(), "Reset00");
+
+ FDMExec.GetState()->Initialize(
+ current_options.get_uBody(),
+ current_options.get_vBody(),
+ current_options.get_wBody(),
+ f.get_Phi(),
+ f.get_Theta(),
+ f.get_Psi(),
+ f.get_Latitude(),
+ f.get_Longitude(),
+ f.get_Altitude()
+ );
+
+// FDMExec.GetState()->Setlatitude(f.get_Latitude());
+// FDMExec.GetState()->Setlongitude(f.get_Longitude());
+// FDMExec.GetState()->Seth(f.get_Altitude());
+// FDMExec.GetRotation()->Setphi(f.get_Phi());
+// FDMExec.GetRotation()->Settht(f.get_Theta());
+// FDMExec.GetRotation()->Setpsi(f.get_Psi());
+
FG_LOG( FG_FLIGHT, FG_INFO, " loaded initial conditions" );
FDMExec.GetState()->Setdt(dt);
}
// copy control positions into the JSBsim structure
- FDMExec.GetFCS()->SetDa( controls.get_aileron() );
+ FDMExec.GetFCS()->SetDa( controls.get_aileron());
FDMExec.GetFCS()->SetDe( controls.get_elevator()
+ controls.get_elevator_trim() );
- FDMExec.GetFCS()->SetDr( controls.get_rudder() );
+ FDMExec.GetFCS()->SetDr( controls.get_rudder());
FDMExec.GetFCS()->SetDf( 0.0 );
FDMExec.GetFCS()->SetDs( 0.0 );
FDMExec.GetFCS()->SetThrottle( FGControls::ALL_ENGINES,
- controls.get_throttle( 0 ) );
+ controls.get_throttle( 0 ) * 100.0 );
// FCS->SetBrake( controls.get_brake( 0 ) );
// Inform JSBsim of the local terrain altitude