Tutorial yarp devices

From Asociación de Robótica UC3M
Revision as of 12:56, 11 March 2016 by Jgvictores (talk | contribs)
Jump to navigation Jump to search

Un YARP device es por norma general una clase C++ que hereda de yarp::dev::DeviceDriver y que además tiene un poco de magia CMake. Las versiones actuales de YARP compilan esta clase en una librería dinámica que se puede cargar de dos maneras:

YARP device desde yarpdev

Para ver los YARP devices disponibles, tecleamos:

yarpdev --list

Para lanzar un YARP device, tecleamos:

yarpdev --device nombre_dispositivo

YARP device desde un programa

int main(int argc, char *argv[]) {

   yarp::os::Network yarp;
   if ( ! yarp::os::Network::checkNetwork() )
   {
       printf("Please start a yarp name server first\n");
       return(1);
   }
   yarp::os::Property options;
   options.put("device","nombre_dispositivo");
   //-- Se pueden pasar más parámetros al YARP device en el formato:
   //options.put("mas_parametros","valor_de_ese_parametro");
   //options.put("mas_parametros","valor_de_ese_parametro");
   //-- ...
   yarp::dev::PolyDriver dd(options);
   if( ! dd.isValid() )
   {
       printf("Device not available.\n");
       dd.close();
       yarp::os::Network::fini();
       return 1;
   }

   while(1);  //-- Esta no es la mejor práctica, la idea es no cerrar el programa!

   return 0;
}