Skip to content
Snippets Groups Projects
Commit c29a6631 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Solved a minor bug in the scan function. It stopped after scanning the first frequency.

parent 60b6f129
No related branches found
No related tags found
No related merge requests found
...@@ -51,7 +51,7 @@ void *CDynamixelServer::scan_thread(void *param) ...@@ -51,7 +51,7 @@ void *CDynamixelServer::scan_thread(void *param)
std::string serial,name; std::string serial,name;
CDynamixel *device; CDynamixel *device;
int freq=0,id=0; int freq=0,id=0;
bool end=false; bool end=false,found=false;
dyn_server->close(); dyn_server->close();
dyn_server->state=dyn_scanning; dyn_server->state=dyn_scanning;
...@@ -60,9 +60,9 @@ void *CDynamixelServer::scan_thread(void *param) ...@@ -60,9 +60,9 @@ void *CDynamixelServer::scan_thread(void *param)
try{ try{
serial=ftdi_server->get_serial_number(dyn_server->bus_info.bus_id); serial=ftdi_server->get_serial_number(dyn_server->bus_info.bus_id);
dyn_server->comm_dev=ftdi_server->get_device(serial); dyn_server->comm_dev=ftdi_server->get_device(serial);
for(freq=1;freq<9;freq++) for(freq=0;freq<9;freq++)
{ {
dyn_server->set_baudrate(frequencies[freq-1]); dyn_server->set_baudrate(frequencies[freq]);
for(id=0;id<0xFD;id++) for(id=0;id<0xFD;id++)
{ {
if(dyn_server->event_server->event_is_set(dyn_server->stop_scan_event_id)) if(dyn_server->event_server->event_is_set(dyn_server->stop_scan_event_id))
...@@ -79,7 +79,7 @@ void *CDynamixelServer::scan_thread(void *param) ...@@ -79,7 +79,7 @@ void *CDynamixelServer::scan_thread(void *param)
continue; continue;
} }
dyn_server->dynamixel_access.enter(); dyn_server->dynamixel_access.enter();
dyn_server->bus_info.baud_rate=frequencies[freq-1]; dyn_server->bus_info.baud_rate=frequencies[freq];
device_name.str(""); device_name.str("");
device_name << "dynamixel_bus_" << dyn_server->bus_info.bus_id << "_dev_" << id; device_name << "dynamixel_bus_" << dyn_server->bus_info.bus_id << "_dev_" << id;
name=device_name.str(); name=device_name.str();
...@@ -90,10 +90,10 @@ void *CDynamixelServer::scan_thread(void *param) ...@@ -90,10 +90,10 @@ void *CDynamixelServer::scan_thread(void *param)
device->usb_rx_event_id=dyn_server->comm_dev->get_rx_event_id(); device->usb_rx_event_id=dyn_server->comm_dev->get_rx_event_id();
dyn_server->dynamixel_access.exit(); dyn_server->dynamixel_access.exit();
dyn_server->devices.push_back(device); dyn_server->devices.push_back(device);
found=true;
} }
if(end) break;
} }
if(dyn_server->bus_info.baud_rate!=-1) if(found)
{ {
end=true; end=true;
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment