Difference between revisions of "Tutorial yarp devices"
Jump to navigation
Jump to search
Jgvictores (talk | contribs) |
Jgvictores (talk | contribs) |
||
Line 8: | Line 8: | ||
== YARP device desde un programa == | == 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; | ||
+ | } |
Revision as of 12:56, 11 March 2016
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; }