From 69a43ad60dd58fcc168e0a9abb253afefcdb3419 Mon Sep 17 00:00:00 2001
From: Joan Perez Ibarz <jperez@iri.upc.edu>
Date: Wed, 31 Aug 2011 14:29:07 +0000
Subject: [PATCH] [joystick_core]   - moving joy.msg from joy to sensor_msgs

[segway_rmp_200]
[segway_rmp_200_node]
  - removing open function from constructor
---
 src/examples/test_segwayRMP200.cpp | 15 +++++++-----
 src/segway_rmp200.cpp              | 39 +++++++-----------------------
 2 files changed, 18 insertions(+), 36 deletions(-)

diff --git a/src/examples/test_segwayRMP200.cpp b/src/examples/test_segwayRMP200.cpp
index 13ba9d3..a4090fb 100755
--- a/src/examples/test_segwayRMP200.cpp
+++ b/src/examples/test_segwayRMP200.cpp
@@ -54,19 +54,22 @@ int main(int argc, char *argv[])
 
   try
   {
+    segway = new CSegwayRMP200();
+
     while(!connected)
     {
       try
       {
-        segway = new CSegwayRMP200();
+        segway->connect();
         connected = true;
       }
       catch(CException &e)
       {
-        if(segway != NULL)
-          delete segway;
-
-        segway = NULL;
+        segway->close();
+//         if(segway != NULL)
+//           delete segway;
+// 
+//         segway = NULL;
 
         std::cout << e.what() << std::endl;
         std::cout << "The segway platfrom is still not ready (is it power on?)" << std::endl << std::endl;
@@ -134,7 +137,7 @@ int main(int argc, char *argv[])
       }
     }
     segway->stop();
-//     segway->close();
+    segway->close();
     delete segway;
   }
   catch(CException &e)
diff --git a/src/segway_rmp200.cpp b/src/segway_rmp200.cpp
index cb9a3ec..1b34333 100755
--- a/src/segway_rmp200.cpp
+++ b/src/segway_rmp200.cpp
@@ -14,7 +14,6 @@ CSegwayRMP200::CSegwayRMP200(const std::string& desc_serial)
   init_ftdi();
   init_threads();
   init_events();
-  connect(desc_serial);
 }
 
 void CSegwayRMP200::init_attributes(void)
@@ -868,13 +867,14 @@ void CSegwayRMP200::close()
   //kill threads
   if(this->comm_dev!=NULL)
   {
-    // finish the threads
+    // finish threads
     this->event_server->set_event(this->read_finish_event);
     this->event_server->set_event(this->command_finish_event);
     this->thread_server->end_thread(this->read_thread_id);
     this->thread_server->end_thread(this->command_thread_id);
     this->thread_server->kill_thread(this->heartbeat_thread_id);
-    /* reset the events if necessary */
+    
+    // reset the events if necessary
     this->event_server->reset_event(this->read_finish_event);
     this->event_server->reset_event(this->command_finish_event);
     if(this->event_server->event_is_set(this->no_heartbeat_event))
@@ -887,7 +887,13 @@ void CSegwayRMP200::close()
     delete this->comm_dev;
     this->comm_dev=NULL;
   }
+}
 
+CSegwayRMP200::~CSegwayRMP200()
+{
+  this->close();
+  
+  // destroy events
   this->event_server->delete_event(this->read_finish_event);
   this->read_finish_event="";
   this->event_server->delete_event(this->command_finish_event);
@@ -912,33 +918,6 @@ void CSegwayRMP200::close()
   this->heartbeat_thread_id="";
 }
 
-CSegwayRMP200::~CSegwayRMP200()
-{
-  this->close();
-  /* destroy the events */
-//   this->event_server->delete_event(this->read_finish_event);
-//   this->read_finish_event="";
-//   this->event_server->delete_event(this->command_finish_event);
-//   this->command_finish_event="";
-//   this->event_server->delete_event(this->cable_disconnected_event);
-//   this->cable_disconnected_event="";
-//   this->event_server->delete_event(this->power_off_event);
-//   this->power_off_event="";
-//   this->event_server->delete_event(this->no_heartbeat_event);
-//   this->no_heartbeat_event="";
-//   this->event_server->delete_event(this->heartbeat_event);
-//   this->heartbeat_event="";
-//   this->event_server->delete_event(this->new_status_event);
-//   this->new_status_event="";
-//   // destroy the threads
-//   this->thread_server->delete_thread(this->read_thread_id);
-//   this->read_thread_id="";
-//   this->thread_server->delete_thread(this->command_thread_id);
-//   this->command_thread_id="";
-//   this->thread_server->delete_thread(this->heartbeat_thread_id);
-//   this->heartbeat_thread_id="";
-}
-
 std::ostream& operator<< (std::ostream& out, CSegwayRMP200& segway)
 {
   segway.access_status.enter();
-- 
GitLab