Détails des données du jeu 2020

Dans l’édition 2020 du Jeu de compétition de robotique FIRST®, l’objectif de contrôle de position nécessite que les alliances sélectionnent une couleur spécifique qui leur est transmise lorsque des pré-requis spécifiques ont été remplis. Le terrain (FMS) transmettra la couleur sélectionnée aux équipes utilisant les données de jeu. Cette page détaille le timing et la structure des données envoyées et fournit des exemples sur la façon d’y accéder dans les trois langages de programmation pris en charge.

Les données

Le timing

Les données d’attribution de couleur sont envoyées aux deux alliances simultanément une fois que la première alliance d’un match a atteint sa capacité à l’étape 3 du générateur de boucliers (voir le manuel du jeu pour plus de détails). Entre le début du match et ce point, les données du jeu ne seront rien d’autre qu’une chaîne de caractères vide.

Format des données

La couleur sélectionnée pour une alliance sera fournie sous la forme d’un seul caractère représentant la couleur (c’est-à-dire «R» = rouge, «G» = vert, «B» = bleu, «Y» = jaune). Cette couleur indique la couleur qui doit être placée sous le capteur de couleur du panneau de commande afin de compléter l’objectif de contrôle de position (voir le manuel du jeu pour plus d’informations sur l’emplacement du capteur du panneau de commande).

Accéder aux données

Les données sont accessibles à l’aide des méthodes ou des VIs de données de jeu dans chaque langue. Vous trouverez ci-dessous des descriptions et des exemples d’accès aux données de chacune des trois langues. Comme les données sont fournies au robot pendant la période Teleop, les équipes voudront probablement interroger les données dans le code périodique Teleop, ou déclencher leur lecture en appuyant sur un bouton ou une autre action après avoir atteint la capacité de l’étape 3.

C++/Java

En C++ et Java, les données de jeu sont accessibles à l’aide de la méthode GetGameSpecificMessage de la classe DriverStation. Les équipes souhaitent probablement interroger les données dans une méthode Teleop telle que Teleop Periodic afin de recevoir les données après leur envoi pendant le match. Assurez-vous de gérer le cas où les données sont une chaîne de caractères vide car c’est ce que seront les données jusqu’à ce que les critères soient atteints pour activer le contrôle de position pour l’une ou l’autre alliance.

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

Les données de jeu dans LabVIEW sont accessibles à partir du VI Données spécifiques au jeu. Ce VI se trouve dans la bibliothèque WPI Robotics Library -> Palette Driver Station.

Les équipes LabVIEW voudront probablement interroger les données dans les VIs Teleop ou PeriodicTasks et peuvent choisir de bloquer la requête derrière une pression de bouton ou une autre action. Le code ci-dessous lit les données puis utilise une structure de cas pour réagir différemment à chacun des 5 cas possibles (vide, ou l’une des 4 lettres).

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

Test des données spécifiques au jeu

Vous pouvez tester votre code de données spécifiques au jeu sans FMS en utilisant la Driver Station. Cliquez sur l’onglet Configuration de la Driver Station, puis entrez la chaîne de caractères de test souhaitée dans le champ de texte Game Data. Les données seront transmises au robot dans l’une des deux conditions suivantes: Activer le robot en mode Teleop, ou lorsque la DS atteint la fin de la partie dans un match d’entraînement (les temps sont configurables dans l’onglet Configuration). Il est recommandé d’exécuter au moins un match à l’aide de la fonctionnalité Practice pour vérifier que votre code fonctionne correctement dans un match complet.

Game Data text box on the Driver Station.