Revision: 8735
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8735&view=rev
Author:   natepak
Date:     2010-05-29 18:21:16 +0000 (Sat, 29 May 2010)

Log Message:
-----------
Fixed loading of plugins

Modified Paths:
--------------
    code/gazebo/branches/simpar/server/GazeboError.cc
    code/gazebo/branches/simpar/server/Handler.cc
    code/gazebo/branches/simpar/server/Simulator.cc
    code/gazebo/branches/simpar/server/rendering/OgreVisual.cc
    code/gazebo/branches/simpar/tools/gazebomodel.cc
    code/gazebo/branches/simpar/worlds/pioneer2dx.world

Modified: code/gazebo/branches/simpar/server/GazeboError.cc
===================================================================
--- code/gazebo/branches/simpar/server/GazeboError.cc   2010-05-29 17:53:34 UTC 
(rev 8734)
+++ code/gazebo/branches/simpar/server/GazeboError.cc   2010-05-29 18:21:16 UTC 
(rev 8735)
@@ -38,6 +38,7 @@
   this->file = file;
   this->line = line;
   this->str = msg;
+  std::cerr << *this << "\n";
 }
 
 
////////////////////////////////////////////////////////////////////////////////

Modified: code/gazebo/branches/simpar/server/Handler.cc
===================================================================
--- code/gazebo/branches/simpar/server/Handler.cc       2010-05-29 17:53:34 UTC 
(rev 8734)
+++ code/gazebo/branches/simpar/server/Handler.cc       2010-05-29 18:21:16 UTC 
(rev 8735)
@@ -50,17 +50,15 @@
   void* handle = dlopen(fullname.c_str(), RTLD_LAZY|RTLD_GLOBAL);
   if (!handle)
   {
-    std::ostringstream stream;
-    stream << "Failed to load " << fullname << ": " << dlerror();
-    gzthrow(stream.str());
+    std::cerr << "Failed to load plugin " << fullname << ": " << dlerror();
+    return NULL;
   }
 
   Handler *(*registerFunc)() = (Handler *(*)())dlsym(handle, 
registerName.c_str());
   if(!registerFunc)
   {
-    std::ostringstream stream;
-    stream << "Failed to resolve " << registerName << ": " << dlerror();
-    gzthrow(stream.str());
+    std::cerr << "Failed to resolve " << registerName << ": " << dlerror();
+    return NULL;
   }
 
   // Register the new controller.
@@ -75,10 +73,9 @@
     int errors = lt_dlinit();
     if (errors)
     {
-      std::ostringstream stream;
-      stream << "Error(s) initializing dynamic loader (" 
+      std::cerr << "Error(s) initializing dynamic loader (" 
         << errors << ", " << lt_dlerror() << ")";
-      gzthrow(stream.str());
+      return NULL;
     }
     else
       init_done = true;
@@ -88,17 +85,15 @@
 
   if (!handle)
   {
-    std::ostringstream stream;
-    stream << "Failed to load " << fullname << ": " << lt_dlerror();
-    gzthrow(stream.str());
+    std::cerr << "Failed to load " << fullname << ": " << lt_dlerror();
+    return NULL;
   }
 
   Handler *(*registerFunc)() = (Handler *(*)())lt_dlsym(handle, 
registerName.c_str());
   if(!registerFunc)
   {
-    std::ostringstream stream;
-    stream << "Failed to resolve " << registerName << ": " << lt_dlerror();
-    gzthrow(stream.str());
+    std::cerr << "Failed to resolve " << registerName << ": " << lt_dlerror();
+    return NULL;
   }
 
   // Register the new controller.

Modified: code/gazebo/branches/simpar/server/Simulator.cc
===================================================================
--- code/gazebo/branches/simpar/server/Simulator.cc     2010-05-29 17:53:34 UTC 
(rev 8734)
+++ code/gazebo/branches/simpar/server/Simulator.cc     2010-05-29 18:21:16 UTC 
(rev 8735)
@@ -767,8 +767,11 @@
 void Simulator::AddHandler(const std::string &name)
 {
   Handler *handler = Handler::Create(name);
-  handler->Load();
-  this->handlers.push_back(handler);
+  if (handler)
+  {
+    handler->Load();
+    this->handlers.push_back(handler);
+  }
 }
 
 
////////////////////////////////////////////////////////////////////////////////

Modified: code/gazebo/branches/simpar/server/rendering/OgreVisual.cc
===================================================================
--- code/gazebo/branches/simpar/server/rendering/OgreVisual.cc  2010-05-29 
17:53:34 UTC (rev 8734)
+++ code/gazebo/branches/simpar/server/rendering/OgreVisual.cc  2010-05-29 
18:21:16 UTC (rev 8735)
@@ -1088,7 +1088,10 @@
 {
   if (value)
   {
-    this->ribbonTrail->addNode(this->sceneNode);
+    try
+    {
+      this->ribbonTrail->addNode(this->sceneNode);
+    } catch (...) { }
   }
   else
   {

Modified: code/gazebo/branches/simpar/tools/gazebomodel.cc
===================================================================
--- code/gazebo/branches/simpar/tools/gazebomodel.cc    2010-05-29 17:53:34 UTC 
(rev 8734)
+++ code/gazebo/branches/simpar/tools/gazebomodel.cc    2010-05-29 18:21:16 UTC 
(rev 8735)
@@ -1,5 +1,9 @@
 #include <iostream>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <boost/regex.hpp>
 #include <boost/algorithm/string.hpp>
 #include <boost/lexical_cast.hpp>
@@ -136,7 +140,14 @@
       std::cerr << "Missing pluing filename\n";
     else
     {
-      this->simIface->AddHandler(params[1]);
+      std::string plugin;
+      struct stat buf;
+      if (stat(params[1].c_str(),&buf) == 0)
+        plugin = std::string(getenv("PWD")) + "/" + params[1];
+      else
+        plugin = params[1];
+
+      this->simIface->AddHandler(plugin);
     }
 
   }
@@ -149,7 +160,14 @@
       std::cerr << "Missing pluing filename\n";
     else
     {
-      this->simIface->RemoveHandler(params[1]);
+      std::string plugin;
+      struct stat buf;
+      if (stat(params[1].c_str(),&buf) == 0)
+        plugin = std::string(getenv("PWD")) + "/" + params[1];
+      else
+        plugin = params[1];
+
+      this->simIface->RemoveHandler(plugin);
     }
 
   }

Modified: code/gazebo/branches/simpar/worlds/pioneer2dx.world
===================================================================
--- code/gazebo/branches/simpar/worlds/pioneer2dx.world 2010-05-29 17:53:34 UTC 
(rev 8734)
+++ code/gazebo/branches/simpar/worlds/pioneer2dx.world 2010-05-29 18:21:16 UTC 
(rev 8735)
@@ -94,7 +94,7 @@
     <xyz>0 0 0.15</xyz>
     <rpy>0.0 0.0 90.0</rpy>
 
-    <!--<model:physical name="laser">
+    <model:physical name="laser">
       <xyz>0.15 0 0.18</xyz>
 
       <attach>
@@ -106,7 +106,6 @@
         <xi:include href="models/sicklms200.model" />
       </include>
     </model:physical>
-    -->
 
     <include embedded="true">
       <xi:include href="models/pioneer2dx.model" />


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------

_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to