Esempio n. 1
0
void runJoystickControlled(Drone& drone, const string& joystickDevice)
{
  Joystick js(drone.io_service(), joystickDevice);
  boost::asio::signal_set signals(drone.io_service());
  signals.add(SIGINT);
  signals.add(SIGTERM);
#ifdef SIGQUIT
  signals.add(SIGQUIT);
#endif
  JoystickDroneHandler joyHandler(drone, js);
  signals.async_wait(boost::bind(&JoystickDroneHandler::stop, &joyHandler));
  drone.io_service().run();
}
Esempio n. 2
0
void runKeyboardControlled(Drone& drone)
{
  show_control_tips();
  Keyboard keyboard(drone.io_service());
  boost::asio::signal_set signals(drone.io_service());
  signals.add(SIGINT);
  signals.add(SIGTERM);
#ifdef SIGQUIT
  signals.add(SIGQUIT);
#endif
  KeybaordDroneHandler handler(drone, keyboard);
  keyboard.start();
  signals.async_wait(boost::bind(&KeybaordDroneHandler::stop, &handler));
  drone.io_service().run();
}
Esempio n. 3
0
 JoystickDroneHandler(Drone& drone, Joystick& joystick)
 : drone_(drone),
   joystick_(joystick),
   deadline_(drone.io_service()),
   heigthAdj_(0.0),
   yawAdj_(0.0)  
 {
   joystick.setButtonHandler(boost::bind(&JoystickDroneHandler::handleButton, this, _1, _2));
   joystick.setAxisHandler(boost::bind(&JoystickDroneHandler::handleAxis, this, _1, _2));
   joystick.start();
   deadline_.async_wait(boost::bind(&JoystickDroneHandler::checkDeadLine, this));
   deadline_.expires_from_now(boost::posix_time::milliseconds(50));
 }