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

Modified the examples to test concurrent operation of all drivers.

parent 6b936236
No related branches found
No related tags found
1 merge request!1Sergi
......@@ -8,30 +8,32 @@ int main(int argc, char *argv[])
CModelCarActuators *act_driver;
double vx,steer;
try
while(1)
{
act_driver = new CModelCarActuators(name);
act_driver->open();
try
{
act_driver = new CModelCarActuators(name);
act_driver->open();
act_driver->disable_ultrasounds();
act_driver->disable_ultrasounds();
std::cout << "model_car_actuators_test::main: about to test speed, in 3..." << std::endl;
sleep(1);
std::cout << "model_car_actuators_test::main: about to test speed, 2..." << std::endl;
sleep(1);
std::cout << "model_car_actuators_test::main: about to test speed, 1..." << std::endl;
sleep(1);
std::cout << "model_car_actuators_test::main: about to test speed, in 3..." << std::endl;
sleep(1);
std::cout << "model_car_actuators_test::main: about to test speed, 2..." << std::endl;
sleep(1);
std::cout << "model_car_actuators_test::main: about to test speed, 1..." << std::endl;
sleep(1);
std::cout << "model_car_actuators_test::main: sending speed 10" << std::endl;
for(unsigned int i=0;i<100;i++)
{
usleep(100000);
vx=20.0*sin((2.0*3.14159*i)/100.0);
steer=50.0*sin((2.0*3.14159*i)/100.0);
std::cout << vx << "," << steer << std::endl;
act_driver->send_command(vx,steer);
}
act_driver->send_command(0.0,0.0);
std::cout << "model_car_actuators_test::main: sending speed 10" << std::endl;
for(unsigned int i=0;i<100;i++)
{
usleep(100000);
vx=20.0*sin((2.0*3.14159*i)/100.0);
steer=50.0*sin((2.0*3.14159*i)/100.0);
std::cout << vx << "," << steer << std::endl;
act_driver->send_command(vx,steer);
}
act_driver->send_command(0.0,0.0);
/*
if(test_watchdog)
......@@ -54,13 +56,17 @@ int main(int argc, char *argv[])
act_driver->send_disable_uss();
}
*/
act_driver->close();
}
catch (CException &e)
{
std::cout << "model_car_actuators_test: " << e.what() << std::endl;
act_driver->close();
delete act_driver;
}
catch (CException &e)
{
if(act_driver!=NULL)
{
delete act_driver;
act_driver=NULL;
}
std::cout << "model_car_actuators_test: " << e.what() << std::endl;
}
}
delete act_driver;
}
......@@ -7,33 +7,43 @@ int main(int argc, char *argv[])
std::list<std::string> events;
std::string name = "model_car_driver_bat";
CModelCarBatteries *bat_driver;
try
while(1)
{
bat_driver = new CModelCarBatteries(name);
bat_driver->open();
events.push_back(bat_driver->get_new_data_event_id());
try
{
bat_driver = new CModelCarBatteries(name);
bat_driver->open();
events.clear();
events.push_back(bat_driver->get_new_data_event_id());
while(true)
for(unsigned int i=0;i<100;i++)
{
event_server->wait_all(events,2000);
std::cout << " motors battery voltage: " << bat_driver->get_motors_battery_voltage() << std::endl;
std::cout << " motors battery cell1 voltage: " << bat_driver->get_motors_cell1_voltage() << std::endl;
std::cout << " motors battery cell2 voltage: " << bat_driver->get_motors_cell2_voltage() << std::endl;
std::cout << " payload battery voltage: " << bat_driver->get_payload_battery_voltage() << std::endl;
std::cout << " payload battery cell1 voltage: " << bat_driver->get_payload_cell1_voltage() << std::endl;
std::cout << " payload battery cell2 voltage: " << bat_driver->get_payload_cell2_voltage() << std::endl;
std::cout << " payload battery cell3 voltage: " << bat_driver->get_payload_cell3_voltage() << std::endl;
std::cout << " payload battery cell4 voltage: " << bat_driver->get_payload_cell4_voltage() << std::endl;
std::cout << " payload battery cell5 voltage: " << bat_driver->get_payload_cell5_voltage() << std::endl;
std::cout << " payload battery cell6 voltage: " << bat_driver->get_payload_cell6_voltage() << std::endl;
std::cout << std::endl;
}
bat_driver->close();
delete bat_driver;
}
catch (CException &e)
{
event_server->wait_all(events,2000);
std::cout << " motors battery voltage: " << bat_driver->get_motors_battery_voltage() << std::endl;
std::cout << " motors battery cell1 voltage: " << bat_driver->get_motors_cell1_voltage() << std::endl;
std::cout << " motors battery cell2 voltage: " << bat_driver->get_motors_cell2_voltage() << std::endl;
std::cout << " payload battery voltage: " << bat_driver->get_payload_battery_voltage() << std::endl;
std::cout << " payload battery cell1 voltage: " << bat_driver->get_payload_cell1_voltage() << std::endl;
std::cout << " payload battery cell2 voltage: " << bat_driver->get_payload_cell2_voltage() << std::endl;
std::cout << " payload battery cell3 voltage: " << bat_driver->get_payload_cell3_voltage() << std::endl;
std::cout << " payload battery cell4 voltage: " << bat_driver->get_payload_cell4_voltage() << std::endl;
std::cout << " payload battery cell5 voltage: " << bat_driver->get_payload_cell5_voltage() << std::endl;
std::cout << " payload battery cell6 voltage: " << bat_driver->get_payload_cell6_voltage() << std::endl;
std::cout << std::endl;
if(bat_driver!=NULL)
{
delete bat_driver;
bat_driver=NULL;
}
std::cout << e.what() << std::endl;
}
bat_driver->close();
}
catch (CException &e)
{
std::cout << e.what() << std::endl;
}
delete bat_driver;
}
......@@ -12,57 +12,63 @@ int main(int argc, char *argv[])
int tach;
bool dir;
try
while(1)
{
egomotion_driver = new CModelCarEgomotion(name);
egomotion_driver->open();
events.push_back(egomotion_driver->get_new_data_event_id());
while(true)
try
{
try
egomotion_driver = new CModelCarEgomotion(name);
egomotion_driver->open();
events.clear();
events.push_back(egomotion_driver->get_new_data_event_id());
for(unsigned int i=0;i<100;i++)
{
event_server->wait_all(events,1000);
egomotion_driver->get_left_wheel(tach,dir,timestamp);
std::cout << " Left Wheel: " << std::endl;
std::cout << " tachometer: " << tach << std::endl;
std::cout << " direction: " << dir << std::endl;
std::cout << " timestamp: " << timestamp << std::endl;
egomotion_driver->get_right_wheel(tach,dir,timestamp);
std::cout << " Right Wheel: " << std::endl;
std::cout << " tachometer: " << tach << std::endl;
std::cout << " direction: " << dir << std::endl;
std::cout << " timestamp: " << timestamp << std::endl;
egomotion_driver->get_imu_accelerometer(ax,ay,az,timestamp);
std::cout << " IMU: " << std::endl;
std::cout << " ax: " << ax << std::endl;
std::cout << " ay: " << ay << std::endl;
std::cout << " az: " << az << std::endl;
egomotion_driver->get_imu_gyroscope(gx,gy,gz,timestamp);
std::cout << " gx: " << gx << std::endl;
std::cout << " gy: " << gy << std::endl;
std::cout << " gz: " << gz << std::endl;
egomotion_driver->get_imu_magnetometer(mx,my,mz,timestamp);
std::cout << " mx: " << mx << std::endl;
std::cout << " my: " << my << std::endl;
std::cout << " mz: " << mz << std::endl;
std::cout << " timestamp: " << timestamp << std::endl;
std::cout << std::endl;
try
{
event_server->wait_all(events,1000);
egomotion_driver->get_left_wheel(tach,dir,timestamp);
std::cout << " Left Wheel: " << std::endl;
std::cout << " tachometer: " << tach << std::endl;
std::cout << " direction: " << dir << std::endl;
std::cout << " timestamp: " << timestamp << std::endl;
egomotion_driver->get_right_wheel(tach,dir,timestamp);
std::cout << " Right Wheel: " << std::endl;
std::cout << " tachometer: " << tach << std::endl;
std::cout << " direction: " << dir << std::endl;
std::cout << " timestamp: " << timestamp << std::endl;
egomotion_driver->get_imu_accelerometer(ax,ay,az,timestamp);
std::cout << " IMU: " << std::endl;
std::cout << " ax: " << ax << std::endl;
std::cout << " ay: " << ay << std::endl;
std::cout << " az: " << az << std::endl;
egomotion_driver->get_imu_gyroscope(gx,gy,gz,timestamp);
std::cout << " gx: " << gx << std::endl;
std::cout << " gy: " << gy << std::endl;
std::cout << " gz: " << gz << std::endl;
egomotion_driver->get_imu_magnetometer(mx,my,mz,timestamp);
std::cout << " mx: " << mx << std::endl;
std::cout << " my: " << my << std::endl;
std::cout << " mz: " << mz << std::endl;
std::cout << " timestamp: " << timestamp << std::endl;
std::cout << std::endl;
}
catch(CEventTimeoutException &e){
std::cout << e.what() << std::endl;
}
}
catch(CEventTimeoutException &e)
egomotion_driver->close();
delete egomotion_driver;
}
catch (CException &e)
{
if(egomotion_driver!=NULL)
{
std::cout << e.what() << std::endl;
delete egomotion_driver;
egomotion_driver=NULL;
}
std::cout << e.what() << std::endl;
}
std::cout << "model_car_drivers_test_egomotion::main: stopping egomotion_driver" << std::endl;
egomotion_driver->close();
std::cout << "model_car_drivers_test_egomotion::main: egomotion_driver stopped" << std::endl;
}
catch (CException &e)
{
std::cout << e.what() << std::endl;
}
delete egomotion_driver;
}
......@@ -7,30 +7,37 @@ int main(int argc, char *argv[])
std::list<std::string> events;
std::string name = "model_car_driver_uss";
CModelCarUltrasounds *uss_driver;
try
while(1)
{
uss_driver = new CModelCarUltrasounds(name);
uss_driver->open();
events.push_back(uss_driver->get_new_data_event_id());
try
{
uss_driver = new CModelCarUltrasounds(name);
uss_driver->open();
events.clear();
events.push_back(uss_driver->get_new_data_event_id());
for(unsigned int i=0;i<100;i++)
{
event_server->wait_all(events,1000);
std::cout << " Side right ultrasound distance: " << uss_driver->get_side_right_distance() << std::endl;
std::cout << " Side left ultrasound distance: " << uss_driver->get_side_left_distance() << std::endl;
std::cout << " Rear right ultrasound distance: " << uss_driver->get_rear_right_distance() << std::endl;
std::cout << " Rear center ultrasound distance: " << uss_driver->get_rear_center_distance() << std::endl;
std::cout << " Rear left ultrasound distance: " << uss_driver->get_rear_left_distance() << std::endl;
std::cout << std::endl;
}
while(true)
uss_driver->close();
delete uss_driver;
}
catch (CException &e)
{
event_server->wait_all(events,1000);
std::cout << " Side right ultrasound distance: " << uss_driver->get_side_right_distance() << std::endl;
std::cout << " Side left ultrasound distance: " << uss_driver->get_side_left_distance() << std::endl;
std::cout << " Rear right ultrasound distance: " << uss_driver->get_rear_right_distance() << std::endl;
std::cout << " Rear center ultrasound distance: " << uss_driver->get_rear_center_distance() << std::endl;
std::cout << " Rear left ultrasound distance: " << uss_driver->get_rear_left_distance() << std::endl;
std::cout << std::endl;
if(uss_driver!=NULL)
{
delete uss_driver;
uss_driver=NULL;
}
std::cout << e.what() << std::endl;
}
uss_driver->close();
}
catch (CException &e)
{
std::cout << e.what() << std::endl;
}
delete uss_driver;
}
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