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

Added the functions to power the robot on and off.

Modified the manger example.
parent 80e193a5
No related branches found
No related tags found
No related merge requests found
......@@ -20,6 +20,9 @@ class CDarwinDynManager : public CDarwinRobotBase
bool is_running(void);
void start_scan(void);
bool is_scanning(void);
void enable_power(void);
void disable_power(void);
bool is_power_enabled(void);
unsigned char get_num_devices(void);
unsigned int get_present_devices(void);
~CDarwinDynManager();
......
......@@ -25,9 +25,6 @@ class CDarwinMManager : public CDarwinDynManager
void assign_module(unsigned char servo_id, mm_mode_t mode);
void assign_module(std::string &servo,std::string &module);
mm_mode_t get_module(unsigned char servo_id);
// void enable_power(void);
// void disable_power(void);
// bool is_power_enabled(void);
std::vector<double> get_servo_angles(void);
double get_servo_angle(unsigned char servo_id);
void set_servo_offset(unsigned char servo_id,double offset);
......
......@@ -79,6 +79,27 @@ bool CDarwinDynManager::is_scanning(void)
return scanning&MANAGER_SCANNING;
}
void CDarwinDynManager::enable_power(void)
{
this->is_valid();
this->robot_device->write_byte_register(MANAGER_CONTROL,MANAGER_ENABLE_POWER);
}
void CDarwinDynManager::disable_power(void)
{
this->is_valid();
this->robot_device->write_byte_register(MANAGER_CONTROL,MANAGER_DISABLE_POWER);
}
bool CDarwinDynManager::is_power_enabled(void)
{
unsigned char powered;
this->is_valid();
this->robot_device->read_byte_register(MANAGER_CONTROL,&powered);
return powered&MANAGER_POWERED;
}
unsigned char CDarwinDynManager::get_num_devices(void)
{
unsigned char num;
......
......@@ -21,6 +21,9 @@ int main(int argc, char *argv[])
std::cout << "Number of modules: " << darwin.get_num_modules() << std::endl;
std::cout << "Number of masters: " << darwin.get_num_masters() << std::endl;
std::cout << "Motion manager period: " << darwin.get_period() << std::endl;
darwin.enable_power();
sleep(2);
darwin.stop();
darwin.start_scan();
while(darwin.is_scanning())
......@@ -66,6 +69,7 @@ int main(int argc, char *argv[])
usleep(100000);
}
darwin.stop();
darwin.disable_power();
}catch(CException &e){
std::cout << e.what() << 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