From 7156f624672347a2aad73160c94ac28e034383cd Mon Sep 17 00:00:00 2001
From: Sergi Hernandez Juan <shernand@iri.upc.edu>
Date: Tue, 31 Mar 2020 18:06:27 +0200
Subject: [PATCH] Used only the Serial Dynamixel Server version. REmoved the
 sim parameter from the constructor.

---
 include/darwin_action.h                    |  2 +-
 include/darwin_balance.h                   |  2 +-
 include/darwin_dyn_manager.h               |  2 +-
 include/darwin_head_tracking.h             |  2 +-
 include/darwin_imu.h                       |  2 +-
 include/darwin_joint_motion.h              |  2 +-
 include/darwin_mmanager.h                  |  2 +-
 include/darwin_robot_base.h                |  5 ++-
 include/darwin_walk.h                      |  2 +-
 src/CMakeLists.txt                         |  5 +++
 src/darwin_action.cpp                      |  2 +-
 src/darwin_balance.cpp                     |  2 +-
 src/darwin_dyn_manager.cpp                 |  2 +-
 src/darwin_head_tracking.cpp               |  2 +-
 src/darwin_imu.cpp                         |  2 +-
 src/darwin_joint_motion.cpp                |  2 +-
 src/darwin_mmanager.cpp                    |  2 +-
 src/darwin_robot_base.cpp                  | 40 +++++-----------------
 src/darwin_walk.cpp                        |  2 +-
 src/examples/darwin_action_test.cpp        | 10 ++++--
 src/examples/darwin_head_tracking_test.cpp | 10 ++++--
 src/examples/darwin_imu_test.cpp           |  8 +++--
 src/examples/darwin_joint_motion_test.cpp  | 10 ++++--
 src/examples/darwin_manager_test.cpp       |  8 +++--
 src/examples/darwin_walking_test.cpp       | 16 +++++----
 25 files changed, 75 insertions(+), 69 deletions(-)

diff --git a/include/darwin_action.h b/include/darwin_action.h
index cfd4793..d1c1160 100644
--- a/include/darwin_action.h
+++ b/include/darwin_action.h
@@ -7,7 +7,7 @@
 class CDarwinAction : public CDarwinRobotBase
 {
   public:
-    CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void load_page(unsigned char page_id);
     unsigned char get_current_page(void);
     unsigned char get_current_step(void);
diff --git a/include/darwin_balance.h b/include/darwin_balance.h
index 053af76..ff0ac39 100644
--- a/include/darwin_balance.h
+++ b/include/darwin_balance.h
@@ -9,7 +9,7 @@ typedef enum {FWD_FALL=0,BWD_FALL=1,STANDING=2} fall_t;
 class CDarwinBalance : public CDarwinRobotBase
 {
   public:
-    CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void enable(void);
     void disable(void);
     bool is_enabled(void);
diff --git a/include/darwin_dyn_manager.h b/include/darwin_dyn_manager.h
index d5804c6..f66ceed 100644
--- a/include/darwin_dyn_manager.h
+++ b/include/darwin_dyn_manager.h
@@ -10,7 +10,7 @@ class CDarwinDynManager : public CDarwinRobotBase
     double manager_period;
     unsigned char num_devices;
   public:
-    CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     double get_base_period(void);
     void set_base_period(double period_s);
     unsigned int get_num_modules(void);
diff --git a/include/darwin_head_tracking.h b/include/darwin_head_tracking.h
index 8ce3a4e..fe94346 100644
--- a/include/darwin_head_tracking.h
+++ b/include/darwin_head_tracking.h
@@ -7,7 +7,7 @@
 class CDarwinHeadTracking : public CDarwinRobotBase
 {
   public:
-    CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void set_pan_pid(double p,double i,double d,double i_clamp);
     void get_pan_pid(double *p,double *i,double *d,double *i_clamp);
     void set_tilt_pid(double p,double i,double d,double i_clamp);
diff --git a/include/darwin_imu.h b/include/darwin_imu.h
index 05dcec3..2bcde08 100644
--- a/include/darwin_imu.h
+++ b/include/darwin_imu.h
@@ -7,7 +7,7 @@
 class CDarwinIMU : public CDarwinRobotBase
 {
   public:
-    CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void start(void);
     void stop(void);
     void start_gyro_cal(void);
diff --git a/include/darwin_joint_motion.h b/include/darwin_joint_motion.h
index 90d491e..cd51592 100644
--- a/include/darwin_joint_motion.h
+++ b/include/darwin_joint_motion.h
@@ -9,7 +9,7 @@ typedef enum {JOINTS_GRP0=0,JOINTS_GRP1=1,JOINTS_GRP2=2,JOINTS_GRP3=2} joints_gr
 class CDarwinJointMotion : public CDarwinRobotBase
 {
   public:
-    CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void load(joints_grp_t group,std::vector<unsigned char> &servos,std::vector<double> &angles,std::vector<double> &speeds,std::vector<double> &accels);
     std::vector<unsigned char> get_group_servos(joints_grp_t group);
     std::vector<double> get_group_angles(joints_grp_t group);
diff --git a/include/darwin_mmanager.h b/include/darwin_mmanager.h
index 91307d5..1166724 100644
--- a/include/darwin_mmanager.h
+++ b/include/darwin_mmanager.h
@@ -15,7 +15,7 @@ class CDarwinMManager : public CDarwinDynManager
   protected:
     double mmanager_period;
   public:
-    CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     unsigned int get_present_servos(void);
     void set_period(double period_s);
     double get_period(void);
diff --git a/include/darwin_robot_base.h b/include/darwin_robot_base.h
index a4c3610..cc2c4f6 100644
--- a/include/darwin_robot_base.h
+++ b/include/darwin_robot_base.h
@@ -2,19 +2,18 @@
 #define _DARWIN_ROBOT_BASE_H
 
 #include "dynamixel.h"
-#include "dynamixelserver_ftdi.h"
 #include "dynamixelserver_serial.h"
 #include "darwin_registers.h"
 
 class CDarwinRobotBase
 {
   protected:
-    CDynamixelServer *dyn_server;
+    CDynamixelServerSerial *dyn_server;
     CDynamixel *robot_device;
     std::string robot_name;
     unsigned char robot_id;
   public:
-    CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void is_valid(void);
     virtual ~CDarwinRobotBase();
 };
diff --git a/include/darwin_walk.h b/include/darwin_walk.h
index d40d1d1..0b669bb 100644
--- a/include/darwin_walk.h
+++ b/include/darwin_walk.h
@@ -7,7 +7,7 @@
 class CDarwinWalk : public CDarwinRobotBase
 {
   public:
-    CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim=false);
+    CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id);
     void set_x_offset(double offset_m);
     double get_x_offset(void);
     void set_y_offset(double offset_m);
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2682c6b..c2497d6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -17,6 +17,7 @@ SET(robot_headers ../include/darwin_robot_base.h ../include/darwin_robot_excepti
 
 # locate the necessary dependencies
 FIND_PACKAGE(iriutils REQUIRED)
+FIND_PACKAGE(comm REQUIRED)
 FIND_PACKAGE(dynamixel REQUIRED)
 FIND_PACKAGE(Eigen3 REQUIRED)
 
@@ -34,9 +35,12 @@ IF(EIGEN3_FOUND)
   SET(kin_leg_headers ../include/darwin_leg_kinematics.h ../include/darwin_robot_exceptions.h)
 ENDIF(EIGEN3_FOUND)
 
+#ADD_DEFINITIONS(-D_SIM)
+
 # add the necessary include directories
 INCLUDE_DIRECTORIES(../include)
 INCLUDE_DIRECTORIES(${iriutils_INCLUDE_DIR})
+INCLUDE_DIRECTORIES(${comm_INCLUDE_DIR})
 INCLUDE_DIRECTORIES(${dynamixel_INCLUDE_DIR})
 INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})
 # create the shared library
@@ -44,6 +48,7 @@ ADD_LIBRARY(darwin_robot SHARED ${robot_sources} ${XSD_SOURCES})
 ADD_DEPENDENCIES(darwin_robot xsd_files_gen)
 # link necessary libraries
 TARGET_LINK_LIBRARIES(darwin_robot ${iriutils_LIBRARY})
+TARGET_LINK_LIBRARIES(darwin_robot ${comm_LIBRARY})
 TARGET_LINK_LIBRARIES(darwin_robot ${dynamixel_LIBRARY})
 TARGET_LINK_LIBRARIES(darwin_robot ${XSD_LIBRARY})
 
diff --git a/src/darwin_action.cpp b/src/darwin_action.cpp
index 4c16e46..31dfb8d 100644
--- a/src/darwin_action.cpp
+++ b/src/darwin_action.cpp
@@ -1,7 +1,7 @@
 #include "darwin_action.h"
 #include "darwin_robot_exceptions.h"
 
-CDarwinAction::CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinAction::CDarwinAction(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
 }
 
diff --git a/src/darwin_balance.cpp b/src/darwin_balance.cpp
index ae246dd..4673202 100644
--- a/src/darwin_balance.cpp
+++ b/src/darwin_balance.cpp
@@ -1,7 +1,7 @@
 #include "darwin_balance.h"
 #include "darwin_robot_exceptions.h"
 
-CDarwinBalance::CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinBalance::CDarwinBalance(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
 }
 
diff --git a/src/darwin_dyn_manager.cpp b/src/darwin_dyn_manager.cpp
index 096ab43..f81fd93 100644
--- a/src/darwin_dyn_manager.cpp
+++ b/src/darwin_dyn_manager.cpp
@@ -1,7 +1,7 @@
 #include "darwin_dyn_manager.h"
 #include "darwin_robot_exceptions.h"
 
-CDarwinDynManager::CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinDynManager::CDarwinDynManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
   this->manager_period=this->get_base_period();
 }
diff --git a/src/darwin_head_tracking.cpp b/src/darwin_head_tracking.cpp
index 1b1119a..27d6f9b 100644
--- a/src/darwin_head_tracking.cpp
+++ b/src/darwin_head_tracking.cpp
@@ -1,7 +1,7 @@
 #include "darwin_head_tracking.h"
 #include "darwin_robot_exceptions.h"
 
-CDarwinHeadTracking::CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinHeadTracking::CDarwinHeadTracking(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
 }
 
diff --git a/src/darwin_imu.cpp b/src/darwin_imu.cpp
index db357a8..703666c 100644
--- a/src/darwin_imu.cpp
+++ b/src/darwin_imu.cpp
@@ -1,7 +1,7 @@
 #include "darwin_imu.h"
 #include "darwin_robot_exceptions.h"
 
-CDarwinIMU::CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinIMU::CDarwinIMU(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
 }
 
diff --git a/src/darwin_joint_motion.cpp b/src/darwin_joint_motion.cpp
index 222ebf8..872021a 100644
--- a/src/darwin_joint_motion.cpp
+++ b/src/darwin_joint_motion.cpp
@@ -1,7 +1,7 @@
 #include "darwin_joint_motion.h"
 #include "darwin_robot_exceptions.h"
 
-CDarwinJointMotion::CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinJointMotion::CDarwinJointMotion(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
 }
 
diff --git a/src/darwin_mmanager.cpp b/src/darwin_mmanager.cpp
index b03294b..1395e55 100644
--- a/src/darwin_mmanager.cpp
+++ b/src/darwin_mmanager.cpp
@@ -36,7 +36,7 @@ const std::string servo_names[MAX_NUM_SERVOS]={std::string("Servo0"),
                                                std::string("Servo29"),
                                                std::string("Servo30")};
 
-CDarwinMManager::CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinDynManager(name,bus_id,bus_speed,id,sim)
+CDarwinMManager::CDarwinMManager(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinDynManager(name,bus_id,bus_speed,id)
 {
   this->mmanager_period=this->get_period();
 }
diff --git a/src/darwin_robot_base.cpp b/src/darwin_robot_base.cpp
index 1f34197..5faf9d6 100644
--- a/src/darwin_robot_base.cpp
+++ b/src/darwin_robot_base.cpp
@@ -2,42 +2,20 @@
 #include "darwin_robot_exceptions.h"
 #include "dynamixelexceptions.h"
 
-CDarwinRobotBase::CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim)
+CDarwinRobotBase::CDarwinRobotBase(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id)
 {
-  int num_buses;
-
   this->robot_device=NULL;
   if(name!="")
   {
     this->robot_name=name;
-    if(sim)
-    {
-      this->dyn_server=CDynamixelServerSerial::instance();
-      ((CDynamixelServerSerial *)this->dyn_server)->config_bus(bus_id,bus_speed);
-      num_buses=1;
-    }
-    else
-    {
-      this->dyn_server=CDynamixelServerFTDI::instance();
-      num_buses=((CDynamixelServerFTDI *)this->dyn_server)->get_num_buses();
-      if(num_buses>0)
-        ((CDynamixelServerFTDI *)this->dyn_server)->config_bus(bus_id,bus_speed);
-    }
-    if(num_buses>0)
-    {
-      sleep(1);
-      try{
-        this->robot_device=dyn_server->get_device(id,dyn_version2);
-        this->robot_id=id;
-      }catch(CDynamixelServerException &e){
-        this->dyn_server->free_device(id);
-        throw e;
-      }
-    }
-    else
-    {
-      /* handle exceptions */
-      throw CDarwinRobotException(_HERE_,"No FTDI USB devices found");
+    this->dyn_server=CDynamixelServerSerial::instance();
+    this->dyn_server->config_bus(bus_id,bus_speed);
+    try{
+      this->robot_device=dyn_server->get_device(id,dyn_version2);
+      this->robot_id=id;
+    }catch(CDynamixelServerException &e){
+      this->dyn_server->free_device(id);
+      throw e;
     }
   }
   else
diff --git a/src/darwin_walk.cpp b/src/darwin_walk.cpp
index 2c84fc8..40a2e03 100644
--- a/src/darwin_walk.cpp
+++ b/src/darwin_walk.cpp
@@ -3,7 +3,7 @@
 
 #define PI 3.14159
 
-CDarwinWalk::CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id,bool sim) : CDarwinRobotBase(name,bus_id,bus_speed,id,sim)
+CDarwinWalk::CDarwinWalk(const std::string &name,std::string &bus_id,int bus_speed, unsigned char id) : CDarwinRobotBase(name,bus_id,bus_speed,id)
 {
 }
 
diff --git a/src/examples/darwin_action_test.cpp b/src/examples/darwin_action_test.cpp
index 777b3b9..3f49301 100644
--- a/src/examples/darwin_action_test.cpp
+++ b/src/examples/darwin_action_test.cpp
@@ -4,7 +4,11 @@
 
 #include <iostream>
 
-std::string robot_device="/tmp/darwin_driver";
+#ifdef _SIM
+  std::string robot_device="/tmp/darwin_driver";
+#else
+  std::string robot_device="/dev/ttyACM0";
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -12,8 +16,8 @@ int main(int argc, char *argv[])
   unsigned int present_servos;
 
   try{
-    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true);
-    CDarwinAction action("Darwin",robot_device,1000000,0x01,true);
+    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01);
+    CDarwinAction action("Darwin",robot_device,1000000,0x01);
     std::cout << "Manager period: " << darwin.get_base_period() << std::endl;
     std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl;
     std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;
diff --git a/src/examples/darwin_head_tracking_test.cpp b/src/examples/darwin_head_tracking_test.cpp
index 6dcb357..948d856 100644
--- a/src/examples/darwin_head_tracking_test.cpp
+++ b/src/examples/darwin_head_tracking_test.cpp
@@ -4,7 +4,11 @@
 
 #include <iostream>
 
-std::string robot_device="/tmp/darwin_driver";
+#ifdef _SIM
+  std::string robot_device="/tmp/darwin_driver";
+#else
+  std::string robot_device="/dev/ttyACM0";
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -12,8 +16,8 @@ int main(int argc, char *argv[])
   unsigned int present_servos;
 
   try{
-    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true);
-    CDarwinHeadTracking head("Darwin",robot_device,1000000,0x01,true);
+    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01);
+    CDarwinHeadTracking head("Darwin",robot_device,1000000,0x01);
     std::cout << "Manager period: " << darwin.get_base_period() << std::endl;
     std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl;
     std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;
diff --git a/src/examples/darwin_imu_test.cpp b/src/examples/darwin_imu_test.cpp
index 741bfaf..d911ad8 100644
--- a/src/examples/darwin_imu_test.cpp
+++ b/src/examples/darwin_imu_test.cpp
@@ -3,7 +3,11 @@
 
 #include <iostream>
 
-std::string robot_device="/tmp/darwin_driver";
+#ifdef _SIM
+  std::string robot_device="/tmp/darwin_driver";
+#else
+  std::string robot_device="/dev/ttyACM0";
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -12,7 +16,7 @@ int main(int argc, char *argv[])
   double accel_x,accel_y,accel_z;
 
   try{
-    CDarwinIMU darwin_imu("Darwin",robot_device,1000000,0x01,true);
+    CDarwinIMU darwin_imu("Darwin",robot_device,1000000,0x01);
     std::cout << "found darwin controller" << std::endl;
     std::cout << "Number of calibration samples: " << darwin_imu.get_cal_samples() << std::endl;
     darwin_imu.start();
diff --git a/src/examples/darwin_joint_motion_test.cpp b/src/examples/darwin_joint_motion_test.cpp
index 30473d7..fcec1a0 100644
--- a/src/examples/darwin_joint_motion_test.cpp
+++ b/src/examples/darwin_joint_motion_test.cpp
@@ -4,7 +4,11 @@
 
 #include <iostream>
 
-std::string robot_device="/tmp/darwin_driver";
+#ifdef _SIM
+  std::string robot_device="/tmp/darwin_driver";
+#else
+  std::string robot_device="/dev/ttyACM0";
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -14,8 +18,8 @@ int main(int argc, char *argv[])
   std::vector<double> angles,speeds,accels;
 
   try{
-    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true);
-    CDarwinJointMotion joints("Darwin",robot_device,1000000,0x01,true);
+    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01);
+    CDarwinJointMotion joints("Darwin",robot_device,1000000,0x01);
     std::cout << "Manager period: " << darwin.get_base_period() << std::endl;
     std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl;
     std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;
diff --git a/src/examples/darwin_manager_test.cpp b/src/examples/darwin_manager_test.cpp
index bbe8889..26a5fd1 100644
--- a/src/examples/darwin_manager_test.cpp
+++ b/src/examples/darwin_manager_test.cpp
@@ -3,7 +3,11 @@
 
 #include <iostream>
 
-std::string robot_device="/tmp/darwin_driver";
+#ifdef _SIM
+  std::string robot_device="/tmp/darwin_driver";
+#else
+  std::string robot_device="/dev/ttyACM0";
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -12,7 +16,7 @@ int main(int argc, char *argv[])
   std::vector<double> offsets,angles;
 
   try{
-    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true);
+    CDarwinMManager darwin("Darwin",robot_device,100000,1);
     std::cout << "Manager period: " << darwin.get_base_period() << std::endl;
     std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl;
     std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;
diff --git a/src/examples/darwin_walking_test.cpp b/src/examples/darwin_walking_test.cpp
index 64ae187..095108d 100644
--- a/src/examples/darwin_walking_test.cpp
+++ b/src/examples/darwin_walking_test.cpp
@@ -7,7 +7,11 @@
 
 #include <iostream>
 
-std::string robot_device="/tmp/darwin_driver";
+#ifdef _SIM
+  std::string robot_device="/tmp/darwin_driver";
+#else
+  std::string robot_device="/dev/ttyACM0";
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -15,11 +19,11 @@ int main(int argc, char *argv[])
   unsigned int present_servos;
 
   try{
-    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01,true);
-    CDarwinAction action("Darwin",robot_device,1000000,0x01,true);
-    CDarwinIMU imu("Darwin",robot_device,1000000,0x01,true);
-    CDarwinBalance balance("Darwin",robot_device,1000000,0x01,true);
-    CDarwinWalk walk("Darwin",robot_device,1000000,0x01,true);
+    CDarwinMManager darwin("Darwin",robot_device,1000000,0x01);
+    CDarwinAction action("Darwin",robot_device,1000000,0x01);
+    CDarwinIMU imu("Darwin",robot_device,1000000,0x01);
+    CDarwinBalance balance("Darwin",robot_device,1000000,0x01);
+    CDarwinWalk walk("Darwin",robot_device,1000000,0x01);
     std::cout << "Manager period: " << darwin.get_base_period() << std::endl;
     std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl;
     std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;
-- 
GitLab