Gérer l’état de consommation minimale pour les appareils Azure Sphere
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Une application Azure Sphere de haut niveau peut utiliser l’API de gestion de l’alimentation pour mettre l’appareil dans l’état de consommation minimale. L’état de consommation minimale est l’état de consommation la plus faible possible où peut se trouver un appareil sans être complètement hors tension. L’appareil peut être sorti de veille par un de ces deux événements :
- Arrivée d’un signal d’entrée déclenchant la broche WAKEUP.
- Passage d’un laps de temps spécifié.
Pour utiliser cette fonctionnalité, vous devez :
- Configurer votre matériel.
- Pour des considérations générales relatives à la conception matérielle, consultez les sections Besoins d’alimentation RTC et Considérations relatives à la consommation minimale des Notes sur le matériel MT3620.
- Pour savoir comment configurer le matériel RDB pour le mode de consommation minimale, consultez les sections Alimentation et Mode de consommation minimale du Guide de l’utilisateur MT3620 RDB.
- Déclarez la valeur ForcePowerDown pour la fonctionnalité PowerControls dans le manifeste de l’application.
- Utilisez PowerManagement_ForceSystemPowerDown de l’API Gestion de l’alimentation.
État de consommation minimale
L’état de consommation minimale présente les caractéristiques suivantes :
- Tout est hors tension, à l’exception de l’horloge temps réel (RTC). Cela signifie que toutes la connectivité, la mémoire RAM, la mémoire flash, les cœurs du processeur, etc., sont tous mis hors tension.
- Il n’y a pas de conservation de l’état. La sortie de veille à partir de l’état de consommation minimale est l’équivalent d’un démarrage à froid.
- La sortie de veille à partir de l’état de consommation minimale se produit quand l’alarme de l’horloge temps réel se déclenche (sortie de veille basée sur le temps) ou quand la broche WAKEUP ne reçoit pas de courant (sortie de veille basée sur un événement), selon ce qui se passe en premier.
Remarque
Le certificat DAA (client) est stocké de manière permanente. Par conséquent, un appareil ne se connecte pas à AS3 pour un nouveau certificat après chaque démarrage à froid ou power Down qui se produit entre les mises à jour normales de 24 heures. Cela réduit la consommation d’énergie et le temps nécessaire pour se connecter au cloud.
Spécificités de MT3620
Des considérations relatives à la consommation minimale du composant MediaTek MT3620 sont fournies dans Notes sur le matériel MT3620.
Forcer la consommation minimale et les mises à jour
Avertissement
Si vous ne suivez pas les instructions de cette section, votre appareil pourrait ne pas être en mesure d’extraire les mises à jour de l’application ou du système d’exploitation, nécessitant alors une récupération. Lisez ceci attentivement avant d’utiliser ForcePowerDown.
Comme ForcePowerDown et ForceReboot permettent à une application de mettre à tout moment l’appareil en consommation minimale, s’ils sont utilisés, il revient à cette application de vérifier que l’appareil est toujours en mesure de vérifier régulièrement s’il y a des mises à jour. Pour faciliter la recherche des mises à jour dans ce scénario, nous avons introduit des notifications d’événements système liées aux mises à jour afin de fournir aux applications des informations sur le processus de mise à jour, pour que vos applications puissent prendre une décision en connaissance de cause quant au moment où l’appareil doit être mis en consommation minimale. Les notifications d’événements système disponibles concernées sont les suivantes :
- SysEvent_Events_NoUpdateAvailable : la vérification de la mise à jour est terminée et aucune mise à jour du système d’exploitation ou de l’application n’est disponible.
- SysEvent_Events_UpdateStarted : une mise à jour du système d’exploitation ou de l’application a démarré le téléchargement. Cet événement est suivi de l’événement SysEvent_Events_UpdateReadyForInstall quand la mise à jour est entièrement téléchargée et prête à être installée. Si aucune mise à jour n’est disponible, SysEvent_Events_NoUpdateAvailable est envoyé à la place de cet événement.
- SysEvent_Events_UpdateReadyForInstall : une mise à jour a terminé le téléchargement et est prête à être appliquée au redémarrage.
Les applications qui utilisent ForcePowerDown doivent prendre en compte l’état de mise à jour de l’appareil. Les applications qui utilisent ForcePowerDown doivent toujours s’inscrire à ces événements et les prendre en compte pour garantir que l’application ne provoque pas le report indéfini d’une mise à jour.
Nous fournissons un exemple d’application qui montre comment créer correctement les recherches des mises à jour dans une application qui utilise ForcePowerDown. Nous vous recommandons fortement de commencer par cet exemple quand vous développez des applications avec ForcePowerDown.
Arrêt de l’application
Une fois qu’une demande Power Down est effectuée, un signal SIGTERM est envoyé à votre application. Si votre application gère le signal, elle a jusqu’à 2 secondes pour effectuer le travail de nettoyage. Sinon, l’application est arrêtée immédiatement. Pour plus d’informations, notamment sur la façon de gérer correctement le signal, consultez Arrêt de l’application pour une mise à jour.
Exemple d’application
L’exemple d’application de consommation minimale montre comment utiliser correctement ForcePowerDown pour réduire la consommation d’énergie tout en faisant en sorte que l’appareil sorte de veille périodiquement pour rechercher s’il y a des mises à jour du système d’exploitation et de l’application.
Cet exemple fait clignoter une LED rouge, représentant le travail ou la « logique métier » qu’une application peut devoir faire alors que l’appareil est à l’état d’éveil, puis met l’appareil en consommation minimale pour un laps de temps spécifié. À chaque nième cycle de mise en consommation minimale/sortie de veille, l’application garde l’appareil en éveil plus longtemps pour vérifier la disponibilité de mises à jour au lieu de le mettre immédiatement en consommation minimale une fois la logique métier effectuée (dans le cas présent, la LED rouge clignotante). Pour garantir que les mises à jour sont terminées avant la mise en consommation minimale, l’exemple d’application utilise trois notifications d’événements système (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted et SysEvent_Events_UpdateReadyForInstall) qui informent l’application de l’état de la vérification de la disponibilité /du téléchargement des mises à jour. L’exemple d’application montre également comment mesurer la consommation actuelle du RDB pour vérifier que l’appareil entre dans l’état de consommation minimale.