]> git.mxchange.org Git - flightgear.git/commitdiff
Data logging patches from Jon Berndt
authorcurt <curt>
Thu, 5 Apr 2001 15:39:37 +0000 (15:39 +0000)
committercurt <curt>
Thu, 5 Apr 2001 15:39:37 +0000 (15:39 +0000)
Fix for model loading under plib-1.2.x in main.cxx

src/FDM/JSBSim.cxx
src/FDM/JSBSim.hxx
src/FDM/JSBSim/FGOutput.h
src/FDM/flight.cxx
src/FDM/flight.hxx
src/Main/keyboard.cxx
src/Main/main.cxx

index d8defe1a3640c8f44f6ffd21d641ac4f5de0e395..bc31e1a174c3b274357835f66abda1282df11803 100644 (file)
@@ -431,6 +431,22 @@ void FGJSBsim::snap_shot(void) {
 }                              
 
 
+bool FGJSBsim::ToggleDataLogging(void) {
+    return fdmex->GetOutput()->Toggle();
+}
+
+
+bool FGJSBsim::ToggleDataLogging(bool state) {
+    if (state) {
+      fdmex->GetOutput()->Enable();
+      return true;
+    } else {
+      fdmex->GetOutput()->Disable();
+      return false;
+    }
+}
+
+
 //Positions
 void FGJSBsim::set_Latitude(double lat) {
     double sea_level_radius_meters,lat_geoc;
index b6f50b435e35bcb616401f5eb1f2a3f0e6817b3e..3c749c4c8428f1a2eea030abaab4d8dd611a1056 100644 (file)
@@ -194,6 +194,8 @@ public:
         @param multiloop number of times to loop through the FDM
              @return true if successful */
     bool update( int multiloop );
+    bool ToggleDataLogging(bool state);
+    bool ToggleDataLogging(void);
 
 private:
     FGFDMExec *fdmex;
index 5d5c91c27e99b767bafb87702937ab316f86640f..96aafb63f0508711e003b6853f40fed20d304824 100644 (file)
@@ -79,6 +79,7 @@ public:
   void SetSubsystems(int tt) {SubSystems = tt;}
   inline void Enable(void) { enabled = true; }
   inline void Disable(void) { enabled = false; }
+  inline bool Toggle(void) {enabled = !enabled; return enabled;}
 
 protected:
 
index 7d7f9723381fdd95f5eb2f319bfaeeec1c7d4585..a53a6680cae637969bfb381491905e82e2100461 100644 (file)
@@ -577,3 +577,8 @@ void FGInterface::_busdump(void) {
     SG_LOG(SG_FLIGHT,SG_INFO,"altitude_agl: " << altitude_agl );
 }  
 
+
+void fgToggleFDMdataLogging(void) {
+  cur_fdm_state->ToggleDataLogging();
+}
+
index 86d2ca5235817f38797f1da290b8d2fa2f1999ac..1017127d1be9866135ee9a801077c7383680d1fe 100644 (file)
@@ -447,6 +447,8 @@ public:
     virtual void unbind ();
     virtual void update ();
     virtual bool update( int multi_loop );
+    virtual bool ToggleDataLogging(bool state) {};
+    virtual bool ToggleDataLogging(void) {};
 
     // Define the various supported flight models (many not yet implemented)
     enum {
@@ -1134,5 +1136,8 @@ void fgFDMForceAltitude(const string &model, double alt_meters);
 // Set the local ground elevation
 void fgFDMSetGroundElevation(const string &model, double alt_meters);
 
+// Toggle data logging on/off
+void fgToggleFDMdataLogging(void);
+
 
 #endif // _FLIGHT_HXX
index f9763949a10ab54e3326c349a3523c34458560e8..b1dea16f02e79162da014d8a654d752043d2ee37 100644 (file)
@@ -449,53 +449,66 @@ void GLUTspecialkey(int k, int x, int y) {
            return;
        }
        case GLUT_KEY_F3: {
-         string panel_path =
-           fgGetString("/sim/panel/path", "Panels/Default/default.xml");
-         FGPanel * new_panel = fgReadPanel(panel_path);
-         if (new_panel == 0) {
-           SG_LOG(SG_INPUT, SG_ALERT,
-                  "Error reading new panel from " << panel_path);
-           return;
-         }
-         SG_LOG(SG_INPUT, SG_INFO, "Loaded new panel from " << panel_path);
-         current_panel->unbind();
-         delete current_panel;
-         current_panel = new_panel;
-         return;
+            string panel_path =
+                fgGetString("/sim/panel/path", "Panels/Default/default.xml");
+            FGPanel * new_panel = fgReadPanel(panel_path);
+            if (new_panel == 0) {
+                SG_LOG(SG_INPUT, SG_ALERT,
+                       "Error reading new panel from " << panel_path);
+                return;
+            }
+            SG_LOG(SG_INPUT, SG_INFO, "Loaded new panel from " << panel_path);
+            current_panel->unbind();
+            delete current_panel;
+            current_panel = new_panel;
+            return;
        }
        case GLUT_KEY_F4: {
-         SGPath props_path(globals->get_fg_root());
-         props_path.append("preferences.xml");
-         SG_LOG(SG_INPUT, SG_INFO, "Rereading global preferences");
-         if (!readProperties(props_path.str(), globals->get_props())) {
-           SG_LOG(SG_INPUT, SG_ALERT,
-                  "Failed to reread global preferences from "
-                  << props_path.str());
-         } else {
-           SG_LOG(SG_INPUT, SG_INFO, "Finished Reading global preferences");
-         }
-         return;
+            SGPath props_path(globals->get_fg_root());
+            props_path.append("preferences.xml");
+            SG_LOG(SG_INPUT, SG_INFO, "Rereading global preferences");
+            if (!readProperties(props_path.str(), globals->get_props())) {
+                SG_LOG(SG_INPUT, SG_ALERT,
+                       "Failed to reread global preferences from "
+                       << props_path.str());
+            } else {
+                SG_LOG(SG_INPUT, SG_INFO, "Finished Reading global preferences");
+            }
+            return;
        }
        case GLUT_KEY_F5: {
-         current_panel->setYOffset(current_panel->getYOffset() - 5);
-         fgReshape(fgGetInt("/sim/startup/xsize"),
-                   fgGetInt("/sim/startup/ysize"));
-         return;
+            current_panel->setYOffset(current_panel->getYOffset() - 5);
+            fgReshape(fgGetInt("/sim/startup/xsize"),
+                      fgGetInt("/sim/startup/ysize"));
+            return;
        }
        case GLUT_KEY_F6: {
-         current_panel->setYOffset(current_panel->getYOffset() + 5);
-         fgReshape(fgGetInt("/sim/startup/xsize"),
-                   fgGetInt("/sim/startup/ysize"));
-         return;
+            current_panel->setYOffset(current_panel->getYOffset() + 5);
+            fgReshape(fgGetInt("/sim/startup/xsize"),
+                      fgGetInt("/sim/startup/ysize"));
+            return;
        }
        case GLUT_KEY_F7: {
-         current_panel->setXOffset(current_panel->getXOffset() - 5);
-         return;
+            current_panel->setXOffset(current_panel->getXOffset() - 5);
+            return;
        }
        case GLUT_KEY_F8: {
-         current_panel->setXOffset(current_panel->getXOffset() + 5);
-         return;
+            current_panel->setXOffset(current_panel->getXOffset() + 5);
+            return;
        }
+        // case GLUT_KEY_F9: {
+        //     return;
+        // }
+        case GLUT_KEY_F10: {
+            fgToggleFDMdataLogging();
+            return;
+        }
+        // case GLUT_KEY_F11: {
+        //     return;
+        // }
+        // case GLUT_KEY_F12: {
+        //     return;
+        // }
        case GLUT_KEY_END: // numeric keypad 1
            v->set_goal_view_offset( SGD_PI * 0.75 );
            return;
index 30caafe1f7d2fe5ec15f46672f194f2b50ed5fa1..c4b6cd0def3147754d8f9ef3ec2540893de226ea 100644 (file)
@@ -1577,8 +1577,13 @@ int main( int argc, char **argv ) {
        fgGetString("/sim/model/path", "Models/Geometry/glider.ac");
     SGPath full_model = globals->get_fg_root();
     full_model.append(acmodel_path);
-    // this should be redundant...
+
+#if !defined( PLIB_1_2_X )
+    // this should be redundant ... but it breaks for relative paths
+    // w/ plib-1.2.0
     ssgModelPath( (char *)full_model.dir().c_str() );
+#endif
+
     ssgTexturePath( (char *)full_model.dir().c_str() );
     ssgEntity *acmodel_obj = ssgLoad( (char *)full_model.c_str() );