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

Added a configuration function (config_bus()) to set the bus identifier and the baudrate.

The set_bus_id() function has been move to the protected class. 
parent 07eedb94
No related branches found
No related tags found
No related merge requests found
......@@ -133,6 +133,14 @@ void *CDynamixelServer::scan_thread(void *param)
pthread_exit(NULL);
}
void CDynamixelServer::config_bus(int bus_id, int baudrate)
{
// set the desired bus identifier
this->set_bus_id(bus_id);
// set the desired baudrate for the bus
this->set_baudrate(baudrate);
}
int CDynamixelServer::get_num_buses(void)
{
CFTDIServer *ftdi_server=CFTDIServer::instance();
......@@ -186,8 +194,6 @@ void CDynamixelServer::set_bus_id(int bus_id)
}
serial=ftdi_server->get_serial_number(bus_id);
this->comm_dev=ftdi_server->get_device(serial);
// configure the communciation device by default
this->set_baudrate(1000000);
this->bus_info.bus_id=bus_id;
}
}
......
......@@ -149,6 +149,11 @@ class CDynamixelServer
*
*/
unsigned char compute_checksum(unsigned char *packet,int len);
/**
* \brief
*
*/
void set_bus_id(int bus_id);
public:
/**
* \brief
......@@ -159,17 +164,22 @@ class CDynamixelServer
* \brief
*
*/
int get_num_buses(void);
void config_bus(int bus_id,int baudrate);
/**
* \brief
*
*/
int get_bus_id(void);
void set_baudrate(int baudrate);
/**
* \brief
*
*/
void set_bus_id(int bus_id);
int get_num_buses(void);
/**
* \brief
*
*/
int get_bus_id(void);
/**
* \brief
*
......@@ -215,11 +225,6 @@ class CDynamixelServer
*
*/
void free_device(int dev_id);
/**
* \brief
*
*/
void set_baudrate(int baudrate);
/**
* \brief
*
......
......@@ -17,7 +17,7 @@ int main(int argc, char *argv[])
if(num_buses>0)
{
events.push_back(dyn_server->get_scan_done_event_id());
dyn_server->set_bus_id(0);
dyn_server->config_bus(0,1000000);
dyn_server->start_scan();
event_server->wait_first(events);
num_dev=dyn_server->get_num_devices();
......@@ -29,7 +29,7 @@ int main(int argc, char *argv[])
std::cout << "Device " << i << ": id -> " << devices[i] << std::endl;
dyn_motor=dyn_server->get_device(devices[0]);
try{
dyn_server->set_bus_id(0);
dyn_server->config_bus(0,1000000);
dyn_server->start_scan();
event_server->wait_first(events,2000);
}catch(CException &e){
......
......@@ -13,8 +13,7 @@ int main(int argc, char *argv[])
std::cout << "Num. buses: " << num_buses << std::endl;
if(num_buses>0)
{
dyn_server->set_bus_id(0);
dyn_server->set_baudrate(1000000);
dyn_server->config_bus(0,1000000);
try{
dyn_motor=dyn_server->get_device(13);
std::cout << "device 13 found!!!" << std::endl;
......
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