Mode LinearOp vs Mode Op

Il existe deux classes OpMode dans le SDK de FTC : OpMode et LinearOpMode. Celle que vous utilisez affecte la façon dont vous écrivez le programme. Pour des exemples d’utilisation d’OpMode et de LinearOpMode, ``référez-vous aux exemples d’OpModes dans le SDK <https://github.com/FIRST-Tech-Challenge/FtcRobotController/tree/master/FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples>`_.

Méthodes LinearOpMode

  • runOpMode() : Le code contenu dans cette méthode sera exécuté exactement une fois après que vous aurez appuyé sur le bouton INIT. C’est ici que vous devez placer tout le code de l’OpMode.

  • waitForStart() : Cette méthode met en pause le mode Op jusqu’à ce que vous appuyiez sur le bouton START du poste de conduite.

  • isStarted() : renvoie true si le bouton START a été pressé, sinon il renvoie false.

  • isStopRequested() : renvoie true si le bouton STOP a été pressé, sinon il renvoie false.

  • idle() : appelle Thread.yield, permettant à d’autres threads ayant le même niveau de priorité de s’exécuter.

  • opModeIsActive() : renvoie isStarted() && !isStopRequested() et appelle idle().

  • opModeInInit() : renvoie !isStarted() && !isStopRequested() et n’appelle pas idle().

Méthodes OpMode

  • init() : Le code contenu dans cette méthode s’exécutera exactement une fois après que vous aurez appuyé sur le bouton INIT de la station de pilotage.

  • init_loop() : Une fois que le code de init() a été exécuté, le code contenu dans cette méthode s’exécutera en continu jusqu’à ce que le bouton START soit pressé sur le poste de conduite.

  • start() : Le code contenu dans cette méthode s’exécutera exactement une fois après que vous aurez appuyé sur le bouton START du poste de conduite.

  • loop() : Une fois que le code de start() a été exécuté, le code à l’intérieur de cette méthode s’exécutera en continu jusqu’à ce que le bouton STOP soit pressé sur le poste de conduite.

  • stop() : Le code contenu dans cette méthode s’exécutera exactement une fois après que vous aurez appuyé sur le bouton STOP du poste de conduite.

Note

Depuis la version 8.1 du SDK, lors de l’exécution de OpMode, il y a un délai négligeable d’une milliseconde entre les appels de loop(). Auparavant, les délais étaient imprévisibles, mais depuis la version 8.1, les performances sont similaires à celles de LinearOpMode.

Conclusion

Globalement, l’utilisation de LinearOpMode ou de OpMode est une question de préférence. |La version française de Gm0 utilise LinearOpMode partout pour des raisons de cohérence.