From 819eef1743a9f0ae84967ae85feae68ec1db40d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergi=20Hern=C3=A0ndez=20Juan?= <shernand@iri.upc.edu> Date: Wed, 16 Mar 2016 11:39:29 +0000 Subject: [PATCH] Solved a problem when starting a new scan when the previous one was stopped. The new one never started. --- src/dynamixelserver.cpp | 8 ++++---- src/examples/test_dynamixel_server.cpp | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/dynamixelserver.cpp b/src/dynamixelserver.cpp index 7b21203..7f503a1 100644 --- a/src/dynamixelserver.cpp +++ b/src/dynamixelserver.cpp @@ -2,7 +2,6 @@ #include "dynamixelserver.h" #include "eventexceptions.h" #include <sstream> -#include <iostream> const unsigned short crc_table[256] = { 0x0000, 0x8005, 0x800F, 0x000A, 0x801B, 0x001E, 0x0014, 0x8011, @@ -591,7 +590,6 @@ void *CDynamixelServer::scan_thread(void *param) } for(freq=0;freq<9;freq++) { - std::cout << "trying frequency: " << frequencies[freq] << std::endl; dyn_server->set_baudrate(frequencies[freq]); for(id=0;id<0xFD;id++) { @@ -605,9 +603,7 @@ void *CDynamixelServer::scan_thread(void *param) else { try{ - std::cout << "checking device ID: " << id << std::endl; dyn_server->ping(id,20,dyn_server->scan_version); - std::cout << "Found device with ID: " << id << std::endl; }catch(CEventTimeoutException &e){ continue; } @@ -661,6 +657,10 @@ void CDynamixelServer::start_scan(dyn_version_t version) this->stop_scan(); this->devices_v1.clear(); this->devices_v2.clear(); + if(this->event_server->event_is_set(this->stop_scan_event_id)) + this->event_server->reset_event(this->stop_scan_event_id); + if(this->event_server->event_is_set(this->scan_error_event_id)) + this->event_server->reset_event(this->scan_error_event_id); this->thread_server->start_thread(this->scan_thread_id); } } diff --git a/src/examples/test_dynamixel_server.cpp b/src/examples/test_dynamixel_server.cpp index b8567e8..8e3ed0f 100644 --- a/src/examples/test_dynamixel_server.cpp +++ b/src/examples/test_dynamixel_server.cpp @@ -41,7 +41,6 @@ int main(int argc, char *argv[]) } else std::cout << "Error while scanning the bus: " << dyn_server->get_scan_error() << std::endl; - return 0; try{ dyn_server->config_bus(0,1000000); dyn_server->start_scan(); -- GitLab