Uso de bibliotecas externas con el código del robot

Advertencia

El uso de bibliotecas externas puede tener un comportamiento no deseado con el código de su robot. No se recomienda a menos que sea consciente de lo que está haciendo.

A menudo un equipo puede querer añadir librerías externas Java o C++ para utilizarlas con su código de robot. Este artículo destaca la adición de bibliotecas Java a sus dependencias de Gradle, o las opciones que tienen los equipos de C++.

Java

Nota

Cualquier dependencia externa que dependa de bibliotecas nativas (JNI) probablemente no va a funcionar.

En Java es bastante sencillo añadir dependencias externas. Basta con añadir los repositorios y las dependencias necesarias.

Los proyectos Robot por defecto no tienen un bloque repositorios {}` en el archivo ``build.gradle. Tendrás que añadirlo tú mismo. Por encima del bloque dependencies {}, añade lo siguiente:

repositories {
   mavenCentral()
   ...
}

mavenCentral() puede ser sustituido por cualquier repositorio que la biblioteca que quieres importar esté utilizando. Ahora tienes que añadir la dependencia de la propia biblioteca. Esto se hace añadiendo la línea necesaria a tu bloque de ``dependencias {}`. El siguiente ejemplo muestra la adición de Apache Commons a tu proyecto Gradle.

dependencies {
   implementation 'org.apache.commons:commons-lang3:3.6'
   ...
}

Ahora ejecute una compilación y asegúrese de que las dependencias se descargan. Es posible que Intellisense no funcione correctamente hasta que se ejecute una compilación.

C++

Añadir dependencias de C++ a tu proyecto de robot no es trivial debido a la necesidad de compilar para el roboRIO. Tienes un par de opciones.

  1. Copie el código fuente de la biblioteca deseada en su proyecto de robot.

  2. Utilice la vendordep template como ejemplo y crear un vendordep.

Copiar el código fuente

Simplemente copie el código fuente y/o las cabeceras necesarias en su proyecto de robot. A continuación, puede configurar los argumentos de plataforma necesarios como se indica a continuación:

nativeUtils.platformConfigs.named("linuxx86-64").configure {
   it.linker.args.add('-lstdc++fs') // links in C++ filesystem library
}

Creación de un Vendordep

Siga las instrucciones del vendordep repository.