Étape 2: programme
Nous avons ajouté le code suivant à la fois notre autonome et teleop programmes. Il vérifie simplement que le dernier contrôleur (et ensuite par défaut tous ceux avant elle) reçoit des nouvelles commandes de la brique NXT non congelé et est capable de déplacer le servo en conséquence, montrant que I2C fonctionne.Le premier bit « taskLookAlive » est juste une déclaration de la tâche. Il peut être mis n’importe où dans vos programmes, aussi longtemps que vous avez un prototype de tâche si c’est après « taskMain. » Je dois préciser « RINGUNLOCKED » et « RINGLOCKED » est des macros préprocesseur qui sont juste des nombres pour les postes de servo.
tâche taskLookAlive()
{
for(;;)
{
servo [servoRingLock] = RINGUNLOCKED + 10 ;
wait1Msec(1000) ;
servo [servoRingLock] = RINGUNLOCKED ;
wait1Msec(1000) ;
}
}
Ce morceau de programme, c’est ce qui passe autour de la commande de la FTC « waitForStart() » la dernière chose que votre robot va faire avant que vous savez que c’est prêt pour le tour sera de commencer cette tâche et le déplacement du servo. La première chose qui va se passer après le démarrage de la série est que votre servo va arrêter de bouger et puis être capable d’être utilisé comme il le ferait régulièrement.
StartTask(taskLookAlive) ;
waitForStart() ; / * attendre début de phase de tele-op * /
StopTask(taskLookAlive) ;