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(): renvoietruesi le bouton START a été pressé, sinon il renvoiefalse.isStopRequested(): renvoietruesi le bouton STOP a été pressé, sinon il renvoiefalse.idle(): appelleThread.yield, permettant à d’autres threads ayant le même niveau de priorité de s’exécuter.opModeIsActive(): renvoieisStarted() && !isStopRequested()et appelleidle().opModeInInit(): renvoie!isStarted() && !isStopRequested()et n’appelle pasidle().
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 deinit()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 destart()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.