Gérer l’état de mise hors tension pour les appareils Azure Sphere

Une application Azure Sphere de haut niveau peut utiliser l’API de gestion de l’alimentation pour placer l’appareil dans l’état Power Down. L’état De mise hors tension est l’état d’alimentation le plus bas possible dans lequel un appareil peut se trouver, à l’inverse d’être complètement hors tension. L’appareil peut être réveillé par l’un des deux événements suivants :

  • Arrivée d’un signal d’entrée déclenchant la broche WAKEUP.
  • Passage d’une durée spécifiée.

Pour utiliser cette fonctionnalité, vous devez :

  1. Configurez votre matériel.
  2. Déclarez la valeur ForcePowerDown pour la fonctionnalité PowerControls dans le manifeste de l’application.
  3. Utilisez PowerManagement_ForceSystemPowerDown à partir de l’API Gestion de l’alimentation .

État de mise hors tension

L’état Power Down présente les caractéristiques suivantes :

  • Tout est éteint à l’exception de l’horloge en temps réel (RTC). Cela signifie que tous les cœurs de connectivité, de RAM, de mémoire flash, de processeur, etc., sont tous hors tension.
  • Il n’y a pas de préservation de l’état. Le réveil à partir de la mise hors tension équivaut à un démarrage à froid.
  • La sortie de mise hors tension se produit lorsque le réveil en temps réel se déclenche (mise en éveil basée sur le temps) ou lorsque la broche WAKEUP est tirée bas (mise en éveil basée sur les événements), selon la première éventualité.

Note

Le certificat DAA (client) est stocké en permanence. Par conséquent, un appareil ne se connecte pas à AS3 pour un nouveau certificat après chaque démarrage à froid ou arrêt qui se produit entre les mises à jour normales de 24 heures. Cela réduit à la fois la consommation d’énergie et le temps nécessaire pour se connecter au cloud.

Spécificités de MT3620

Les considérations relatives à MediaTek MT3620 Power Down sont fournies dans les notes matérielles mt3620.

Forcer l’arrêt et les mises à jour

Avertissement

Si vous ne suivez pas les instructions de cette section, votre appareil peut être incapable d’extraire les mises à jour de l’application ou du système d’exploitation et nécessiter une récupération. Lisez attentivement avant d’utiliser ForcePowerDown.

Étant donné que ForcePowerDown et ForceReboot permettent à une application de mettre hors tension l’appareil à tout moment, il incombe à cette application de s’assurer que l’appareil est toujours en mesure de case activée régulièrement pour les mises à jour lors de l’utilisation de ForcePowerDown ou ForceReboot. Pour faciliter la case activée des mises à jour dans ce scénario, nous avons introduit des notifications d’événements système liées aux mises à jour pour fournir aux applications des informations sur le processus de mise à jour afin que vos applications puissent prendre une décision éclairée sur le moment où mettre hors tension l’appareil. Les notifications d’événements système disponibles pertinentes sont les suivantes :

  • SysEvent_Events_NoUpdateAvailable : le case activée de mise à jour est terminé 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 commencé à être téléchargé. Cet événement est suivi de l’événement SysEvent_Events_UpdateReadyForInstall lorsque la mise à jour est entièrement téléchargée et prête pour l’installation. Si aucune mise à jour n’est disponible, SysEvent_Events_NoUpdateAvailable sera 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 être conscientes de l’état de mise à jour de l’appareil. Les applications qui utilisent ForcePowerDown doivent toujours s’inscrire à ces événements et les tenir compte pour s’assurer que l’application n’entraîne pas de report indéfini d’une mise à jour.

Nous fournissons un exemple d’application qui montre comment générer correctement des vérifications de mise à jour dans une application qui utilise ForcePowerDown. Il est vivement recommandé de commencer par cet exemple lors du développement d’applications avec ForcePowerDown.

Arrêt de l’application

Une fois qu’une demande de mise sous tension 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 immédiatement arrêtée. Pour plus d’informations, notamment sur la façon de gérer correctement le signal, consultez Arrêt de l’application pour la mise à jour.

Exemple d’application

L’exemple d’application Power Down montre comment utiliser correctement ForcePowerDown pour réduire la consommation d’énergie tout en veillant à ce que l’appareil reste régulièrement éveillé pour case activée 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 avoir besoin de faire pendant que l’appareil est en veille, puis met l’appareil hors service pendant un laps de temps spécifié. Chaque nième cycle de mise sous tension/veille, l’application maintient l’appareil en veille plus longtemps pour case activée pour les mises à jour au lieu de s’arrêter immédiatement après l’achèvement de la logique métier (la LED rouge clignotante dans ce cas). Pour vous assurer que les mises à jour sont terminées avant de mettre hors tension, 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 sur les status de la mise à jour case activée/téléchargement. L’exemple d’application montre également comment mesurer la consommation actuelle de la RDB pour vérifier que l’appareil entre sous tension.