Para que nuestro robot ejecute el código, utilizamos un tipo de estructura de programación que se nos da en forma de plantilla. Esta estructura se llama Programación Basada en Comandos. Cuando tengas el código en tu portátil, verás algo parecido a la foto.
En la Programación Basada en Comandos, hay dos tipos principales de clases: subsistemas y comandos. También hay diferentes tipos de clases como la clase Robot, la clase RobotContainer, y la clase OI
Subsistemas y comandos
Los subsistemas son los que definen las capacidades de cada mecanismo del robot. Se puede pensar en ellos como diferentes partes del robot. Algunos ejemplos son el tren motriz o el mecanismo que lanza una pelota a una portería.
Los comandos son el funcionamiento del robot, utilizando las capacidades de los subsistemas. Se trata de dar acciones u órdenes a las distintas partes del robot. Por ejemplo, si el código de tu robot tiene un subsistema para una entrada, el programa tendrá un comando para recoger las pelotas llamado "entrada", que hará girar un motor para recoger las pelotas.
Funcionamiento de los subsistemas
Los subsistemas tienen métodos donde se puede declarar el hardware, como un motor, que será utilizado por los comandos. Estos métodos se utilizan para controlar diferentes mecanismos en el robot.
Si el robot tiene un brazo de admisión, el brazo de admisión tendrá que hacer 2 cosas. Tiene que moverse hacia arriba y hacia abajo. Para que esto suceda, tienes que añadir dos métodos. El primer método se llamará public void armUp()methods. Dentro de este método configuraras tu motor para que se mueva hacia arriba. El segundo método se llamará. Dentro de este método configurarás tu motor para que se mueva hacia abajo. Puedes ver como se ve esto mirando el código del equipo.
Cómo funcionan los comandos
Los comandos utilizan muchos métodos para definir la acción de un robot. Cuando un programador crea un comando o mira el comando de ejemplo dado, verá que hay unos 4 métodos. Estos son
initialized(): Se llama antes de que el comando se ejecute por primera vez.
execute(): Este método es el código que tiene las operaciones para completar una tarea. Es básicamente donde va la lógica.
isFinished(): Esto dice si la acción está hecha o no. Después de que el código en execute() se ejecuta, va al método isFinished() para ver si la acción se ha completado. Devuelve true cuando está terminada y false cuando no. Si la acción se ha completado y isFinished() devuelve true, pasa a end(). Si la acción no se ha completado, continúa hasta que termine.
end(): Tiene el código de lo que debe hacer el robot después de que isFinished() devuelva true. Este método también es llamado cuando el comando es interrumpido.
OI, Constants, RobotContainer, and Robot
En la programación basada en comandos, se le dan 3 archivos diferentes que están fuera de las carpetas de subsistemas y comandos. Estos 3 archivos son:
RobotContainer.java
Constantes.java
Robot.java
Main.java
Hay un cuarto archivo que añadimos llamado OI. Este archivo no se añade con la plantilla, añadimos este archivo para el código del joystick.
RobotContainer.java
Aquí es donde se declara gran parte del código del robot. Los subsistemas y comandos del robot se definen en RobotContainer, junto con los dispositivos OI, y los comandos, y la asignación de botones a comandos.
Constants.java
Constantes establece el mapeo para los puertos de dispositivo y es un buen lugar para declarar variables constantes. Utilizamos el archivo Constantes para configurar los controladores de motor y los botones del panel de control.
Robot.java
Aquí es donde se declara gran parte del código del robot. Los subsistemas y comandos del robot se definen en RobotContainer, junto con los dispositivos OI, y los comandos, y la asignación de botones a comandos.
Main.java
El archivo principal no debe ser modificado. Si se modifica, el código del robot se romperá.
OI.java
La OI (Operator Interface) es una clase donde se declara y obtiene información de otros dispositivos de interfaz de operador como joystick, mandos de xbox y mandos de wii.