Detalles de Datos del Juego 2020

En el juego de 2020 FIRST® Robotics Competition, el objetivo de Control de Posición requiere alianzas para seleccionar un color específico transmitido a ellos cuando se han conocido los pre-requisitos específicos. El campo transmitirá el color seleccionado a los equipos que utilicen Datos del Juego. Esta página detalla el tiempo y la estructura de los datos enviados y proporciona ejemplos de cómo acceder a ellos en los tres lenguajes de programación admitidos.

Los Datos

Sincronización

Los datos de asignación de color se envían a ambas alianzas simultáneamente una vez que la primera alianza en una partida ha alcanzado la Capacidad en la Etapa 3 del Generador de Escudos (consulte el Manual del Juego para obtener más detalles). Entre el comienzo del partido y este punto, los Datos del Juego serán una cadena vacía.

Formato de Datos

El color seleccionado para una alianza se proporcionará como un solo carácter que representa el color (ej. “R” = rojo, “G” = verde, “B” = azul, “Y” = amarillo). Este color indica el color que debe colocarse debajo del sensor de color del Panel de Control para completar el objetivo de Control de Posición (consulte el Manual del Juego para obtener información sobre la ubicación del sensor del Panel de Control).

Acceso a los Datos

Se accede a los datos utilizando los métodos de Datos del Juego o VIs en cada idioma. A continuación, se muestran descripciones y ejemplos de cómo acceder a los datos de cada uno de los tres idiomas. Dado que los datos se proporcionan al Robot durante el período de Teleoperado, los equipos probablemente deseen consultar los datos en el código periódico de Teleoperado, o activar la lectura al presionar un botón u otra acción después de haber alcanzado la capacidad de la Etapa 3.

C++/Java

En C++ y Java, se accede a los Datos del Juego mediante el método GetGameSpecificMessage de la clase DriverStation. Es probable que los equipos quieran consultar los datos en un método Teleop como Teleop Periodic para recibir los datos después de que se envíen durante el partido. Asegúrese de manejar el caso en el que los datos sean una cadena vacía, ya que estos serán los datos hasta que se alcancen los criterios para habilitar el Control de Posición para cualquiera de las alianzas.

import edu.wpi.first.wpilibj.DriverStation;

String gameData;
gameData = DriverStation.getInstance().getGameSpecificMessage();
if(gameData.length() > 0)
{
  switch (gameData.charAt(0))
  {
    case 'B' :
      //Blue case code
      break;
    case 'G' :
      //Green case code
      break;
    case 'R' :
      //Red case code
      break;
    case 'Y' :
      //Yellow case code
      break;
    default :
      //This is corrupt data
      break;
  }
} else {
  //Code for no data received yet
}

LabVIEW

Los Datos del Juego en LabVIEW se acceden desde los Datos de Juego Específicos VI. Este VI puede ser encontrado en la Librería de WPI Robotics -> paleta de la Driver Station.

Los equipos con LabVIEW probablemente querrán consultar los datos en los VIs de Teleop o PeriodicTasks y pueden optar por cerrar la consulta detrás de presionar un botón u otra acción. El siguiente código lee los datos y luego usa una estructura de caso para reaccionar de manera diferente a cada uno de los 5 casos posibles (vacío o cualquiera de las 4 letras).

Making a decision what to do about the game data received using a case structure.

Probando los Datos de Juego Específicos

Puede probar el código de Datos del Juego Específicos sin FMS mediante la Driver Station. Haga clic en la pestaña Configuración de la Driver Station, luego ingrese la cadena de prueba deseada en el campo de texto de los Datos del Juego. Los datos se transmitirán al robot en una de estas dos condiciones: Habilite el robot en el modo Teleop, o cuando el DS llegue al tiempo de Fin del Juego en un Partido de Práctica (los tiempos se pueden configurar en la pestaña Configuración). Se recomienda ejecutar al menos un partido utilizando la funcionalidad de Práctica para verificar que su código funcione correctamente en un flujo de partido completo.

Game Data text box on the Driver Station.