Étape 5: App Inventor Code - Détails
Les principales composantes de l’application de connexion Bluetooth Arduino sont :
- un ListPicker pour dispositifs de synchronisation Bluetooth (ListPicker1)
- 3 boutons, chacun contrôlant le correspondant couleur LED board (RedLedBtn, GreenLedBtn, YellowLedBtn)
- un bouton d’envoi de la commande STATUS (GetStatusBtn)
- un bouton avec un textbox associé pour définir l’intervalle de rapport de situation (SecondsBtn et SecondsTxBx)
- une énorme étiquette d’État multiligne affichant les informations reçues de la carte Arduino (statut)
- l’objet Bluetooth Client mentionné à l’étape précédente (BluetoothClient1)
- un composant de l’horloge qui se déclenche une interruption chaque seconde lorsque le client est connecté (l’horloge1)
Ce qui suit est une description de code d’application basée sur les images ci-dessus.
Figure 1
Variables pour la de LED statut et intervalle sont mis et initialisés lorsque l’écran de l’application est ouverte.
Figure 2
L’objet de ListPicker connection ListPicker1 fonctionne avec deux méthodes :
- une liste des périphériques disponibles à Bluetooth (jumelés) est préparée et a montré à l’utilisateur
- Lorsque l’utilisateur sélectionne un appareil, la méthode Connect de l’objet Bluetooth Client est appelée pour démarrer la connexion : si elle réussit, cela s’affiche dans l’étiquette appropriée et l’interruption de l’horloge est activée afin que les messages provenant de l’appareil peuvent être captés.
Figure 3
Nous montrons ici comment faire pour envoyer des commandes à la carte Arduino.
Lorsque vous appuyez sur la GetStatusBtn, la méthode de Mathias de l’objet Bluetooth Client est appelée et le texte de commande est émis : Notez le « \n » ajouté à la fin de la chaîne « STATUS CMD » afin que la fonction serialEvent() dans l’esquisse de l’Arduino est en mesure de savoir quand le message est terminé.
Le code pour activer/désactiver un voyant allumé ou éteint est légèrement plus complex :
- Nous utilisons la variable correspondante pour garder une trace de son statut actuel : si sur que c’est, nous voulons l’éteindre et l’inverse ; alors, tout d’abord, nous avons alterner la variable ainsi dire booléen
- Ensuite, nous mettons à jour l’étiquette du bouton avec le nouvel État
- Enfin, BluetoothClient1.SendText est appelée pour transmettre la commande.
Le code pour les autres commandes n’est pas affiché car il est très similaire.
Figure 4
Chaque fois que le timer de l’horloge1 se déclenche, cette routine est exécutée : c’est l’équivalent de serialEvent() de l’Arduino ; s’il y a des octets à être reçus par BluetoothClient1, ils sont copiés dans l’étiquette d’État. Notez que l’objet Bluetooth Client possède une méthode retournant la longueur du message reçu.