+ _set_Climb_Rate( -1 * V_down );
+ // cout << "climb rate = " << -V_down * 60 << endl;
+
+ if ( !strcmp(aero->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);
+ }
+ }
+
+ return true;
+}
+
+
+void FGLaRCsim::set_ls(void) {
+ Phi=lsic->GetRollAngleRadIC();
+ Theta=lsic->GetPitchAngleRadIC();
+ Psi=lsic->GetHeadingRadIC();
+ V_north=lsic->GetVnorthFpsIC();
+ V_east=lsic->GetVeastFpsIC();
+ V_down=lsic->GetVdownFpsIC();
+ Altitude=lsic->GetAltitudeFtIC();
+ Latitude=lsic->GetLatitudeGDRadIC();
+ Longitude=lsic->GetLongitudeRadIC();
+ Runway_altitude=lsic->GetRunwayAltitudeFtIC();
+ V_north_airmass = lsic->GetVnorthAirmassFpsIC() * -1;
+ V_east_airmass = lsic->GetVeastAirmassFpsIC() * -1;
+ V_down_airmass = lsic->GetVdownAirmassFpsIC() * -1;
+ ls_loop(0.0,-1);
+ copy_from_LaRCsim();
+}
+
+void FGLaRCsim::snap_shot(void) {
+ lsic->SetLatitudeGDRadIC( get_Latitude() );
+ lsic->SetLongitudeRadIC( get_Longitude() );
+ lsic->SetAltitudeFtIC( get_Altitude() );
+ lsic->SetRunwayAltitudeFtIC( get_Runway_altitude() );
+ lsic->SetVtrueFpsIC( get_V_rel_wind() );
+ lsic->SetPitchAngleRadIC( get_Theta() );
+ lsic->SetRollAngleRadIC( get_Phi() );
+ lsic->SetHeadingRadIC( get_Psi() );
+ lsic->SetClimbRateFpsIC( get_Climb_Rate() );
+ lsic->SetVNEDAirmassFpsIC( get_V_north_airmass(),
+ get_V_east_airmass(),
+ get_V_down_airmass() );
+}
+
+//Positions
+void FGLaRCsim::set_Latitude(double lat) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Latitude: " << lat );
+ snap_shot();
+ lsic->SetLatitudeGDRadIC(lat);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_Longitude(double lon) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Longitude: " << lon );
+ snap_shot();
+ lsic->SetLongitudeRadIC(lon);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_Altitude(double alt) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Altitude: " << alt );
+ snap_shot();
+ lsic->SetAltitudeFtIC(alt);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_V_calibrated_kts(double vc) {
+ SG_LOG( SG_FLIGHT, SG_INFO,
+ "FGLaRCsim::set_V_calibrated_kts: " << vc );
+ snap_shot();
+ lsic->SetVcalibratedKtsIC(vc);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_Mach_number(double mach) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Mach_number: " << mach );
+ snap_shot();
+ lsic->SetMachIC(mach);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_Velocities_Local( double north, double east, double down ){
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Velocities_local: "
+ << north << " " << east << " " << down );
+ snap_shot();
+ lsic->SetVNEDFpsIC(north, east, down);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_Velocities_Wind_Body( double u, double v, double w){
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Velocities_Wind_Body: "
+ << u << " " << v << " " << w );
+ snap_shot();
+ lsic->SetUVWFpsIC(u,v,w);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+//Euler angles
+void FGLaRCsim::set_Euler_Angles( double phi, double theta, double psi ) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Euler_angles: "
+ << phi << " " << theta << " " << psi );
+
+ snap_shot();
+ lsic->SetPitchAngleRadIC(theta);
+ lsic->SetRollAngleRadIC(phi);
+ lsic->SetHeadingRadIC(psi);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+//Flight Path
+void FGLaRCsim::set_Climb_Rate( double roc) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Climb_rate: " << roc );
+ snap_shot();
+ lsic->SetClimbRateFpsIC(roc);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_Gamma_vert_rad( double gamma) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Gamma_vert_rad: " << gamma );
+ snap_shot();
+ lsic->SetFlightPathAngleRadIC(gamma);
+ set_ls();
+ copy_from_LaRCsim(); //update the bus
+}
+
+void FGLaRCsim::set_AltitudeAGL(double altagl) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_AltitudeAGL: " << altagl );
+ snap_shot();
+ lsic->SetAltitudeAGLFtIC(altagl);
+ set_ls();
+ copy_from_LaRCsim();
+}
+
+/* getting a namespace conflict...
+void FGLaRCsim::set_Velocities_Local_Airmass (double wnorth,
+ double weast,
+ double wdown ) {
+ SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Velocities_Local_Airmass: "
+ << wnorth << " " << weast << " " << wdown );
+ snap_shot();
+ lsic->SetVNEDAirmassFpsIC( wnorth, weast, wdown );
+ set_ls();
+ copy_from_LaRCsim();