Étape 6: Ce qui est dans le Code d’appareil ?
Le code d’appareil est long, mais la plupart sont similaires, répétée le code pour les effets météorologiques spécifiques inclus. Voici les éléments de base :
Neopixel classe de base, incluse en « exigeant » la bibliothèque de NeoPixels. Cette classe crée un blob (une structure de données, un peu comme un tableau, mais pouvant être lu et écrit comme un flux de fichier) qui est utilisé comme un tampon de trame. Le frame buffer peut être modifié à tout moment et puis écrit dans l’affichage. Cette classe possède trois fonctions principales :
- clearFrame : effacer le frame buffer (définit les valeurs pour les trois canaux de chaque pixel de retour à zéro)
- writePixel : écrire la valeur d’un seul pixel dans le frame buffer
- writeFrame : envoyer le frame buffer courant à l’écran
La classe d’Extension NeoWeather. Cette classe étend la classe de base, à l’aide de ses fonctions, comme s’ils étaient ses propres, mais aussi apporter de nouvelles. La classe NeoWeather inclut de nouvelles méthodes pour chaque animation distincte. Certaines de ces méthodes, prenez un paramètre - facteur. Ce nombre est un entier compris entre 0 et 9 qui contrôle le « intensité » de l’animation. Dans les effets de la pluie et la neige, augmentant le facteur augmente le nombre de « gouttes » qui apparaissent à l’écran. Jetez un oeil à la méthode de pluie si vous souhaitez approfondir un peu dans cette classe ou ajouter de nouvelles animations de votre choix.
Instanciation de la classe NeoWeather, en vidant le tampon et l’écriture pixel 0 à plein-rouge ressemble à ceci :
Enfin, il y a un gestionnaire de mandataire avec une très grosse pile d’instructions conditionnelles. Lorsque l’agent envoie un message de « seteffect » sur le périphérique, il arrive ici. Cette fonction vérifie des mots clés dans les prévisions météorologiques par ordre de priorité. Si elle trouve une correspondance, il définit l’effet approprié :
Dans certains cas, la prévision est livré avec un modificateur (p. ex. "Heavy Rain"). Le dispositif semble pour cela, aussi et l’utilise pour régler l’intensité de l’effet approprié :
Enfin, nous allons jeter un coup d’oeil sur le code de l’agent.