Power Down-status voor Azure Sphere-apparaten beheren

Een Azure Sphere-toepassing op hoog niveau kan de energiebeheer-API gebruiken om het apparaat in de status Uitschakelen te plaatsen. De status Uitschakelen is de laagst mogelijke energiestatus die een apparaat kan hebben, behalve dat het apparaat volledig is uitgeschakeld. Het apparaat kan worden gewekt door een van de volgende twee gebeurtenissen:

  • Aankomst van een invoersignaal dat de WAKEUP-pin activeert.
  • Verloop van een opgegeven tijdsduur.

Als u deze functie wilt gebruiken, moet u het volgende doen:

  1. Configureer uw hardware.
  2. Declareer de waarde ForcePowerDown voor de PowerControls-mogelijkheid in het toepassingsmanifest.
  3. Gebruik PowerManagement_ForceSystemPowerDown van de Power Management-API .

Status uitschakelen

De status Power Down heeft de volgende kenmerken:

  • Alles is uitgeschakeld, behalve de real-time klok (RTC). Dit betekent dat alle connectiviteit, RAM, flash, CPU-kernen, enzovoort, allemaal zijn uitgeschakeld.
  • Er is geen staatsbehoud. Wakker worden vanuit Power Down is gelijk aan een koude start.
  • Wake from Power Down treedt op wanneer de realtime klokalarm afgaat (op tijd gebaseerd ontwaken) of wanneer de WAKEUP-pin laag wordt opgehaald (op gebeurtenissen gebaseerd ontwaken), afhankelijk van wat zich het eerst voordoet.

Opmerking

Het DAA-certificaat (klant) wordt permanent opgeslagen. Als gevolg hiervan maakt een apparaat geen verbinding met AS3 voor een nieuw certificaat na elke cold boot of Power Down die plaatsvindt tussen normale 24-uurs updates. Dit vermindert zowel het energieverbruik als de tijd die nodig is om verbinding te maken met de cloud.

MT3620-details

MediaTek MT3620 Power Down-overwegingen zijn opgenomen in MT3620-hardwarenotities.

Uitschakelen en updates forceren

Waarschuwing

Als u de richtlijnen in deze sectie niet volgt, kan dit ertoe leiden dat uw apparaat geen toepassings- of besturingssysteemupdates kan ophalen en dat herstel nodig is. Lees dit zorgvuldig door voordat u ForcePowerDown gebruikt.

Omdat zowel ForcePowerDown als ForceReboot toestaan dat een toepassing het apparaat op elk gewenst moment kan uitschakelen, wordt het de verantwoordelijkheid van die toepassing om ervoor te zorgen dat het apparaat nog steeds periodiek kan controleren op updates wanneer u ForcePowerDown of ForceReboot gebruikt. Om het gemakkelijker te maken om in dit scenario op updates te controleren, hebben we meldingen voor systeemgebeurtenissen voor updates geïntroduceerd om toepassingen informatie te geven over het updateproces, zodat uw apps een weloverwogen beslissing kunnen nemen over wanneer het apparaat moet worden uitgeschakeld. De relevante beschikbare systeem gebeurtenismeldingen zijn:

  • SysEvent_Events_NoUpdateAvailable: de updatecontrole is voltooid en er zijn geen updates van het besturingssysteem of de toepassing beschikbaar.
  • SysEvent_Events_UpdateStarted: een update van het besturingssysteem of de toepassing is begonnen met downloaden. Deze gebeurtenis wordt gevolgd door de SysEvent_Events_UpdateReadyForInstall gebeurtenis wanneer de update volledig is gedownload en klaar is voor installatie. Als er geen update beschikbaar is, wordt SysEvent_Events_NoUpdateAvailable verzonden in plaats van deze gebeurtenis.
  • SysEvent_Events_UpdateReadyForInstall: een update is gedownload en kan bij het opnieuw opstarten worden toegepast.

Toepassingen die gebruikmaken van ForcePowerDown moeten rekening houden met de updatestatus van het apparaat. Toepassingen die gebruikmaken van ForcePowerDown moeten zich altijd registreren voor deze gebeurtenissen en deze in de gaten stellen om ervoor te zorgen dat een update niet voor onbepaalde tijd wordt uitgesteld door de app.

We bieden een voorbeeldtoepassing die laat zien hoe u updatecontroles correct kunt inbouwen in een toepassing die gebruikmaakt van ForcePowerDown. Het wordt ten zeerste aanbevolen om met dit voorbeeld te beginnen bij het ontwikkelen van apps met ForcePowerDown.

Beëindiging van toepassing

Nadat een aanvraag voor uitschakelen is gedaan, wordt er een SIGTERM-signaal naar uw app verzonden. Als uw app het signaal verwerkt, heeft deze maximaal 2 seconden om op te ruimen. Anders wordt de app onmiddellijk beëindigd. Zie app-beëindiging voor update voor meer informatie, waaronder het correct afhandelen van het signaal.

Voorbeeldtoepassing

De Power Down-voorbeeldtoepassing laat zien hoe u op de juiste manier gebruik kunt maken van ForcePowerDown om het energieverbruik te verminderen en er tegelijkertijd voor te zorgen dat het apparaat periodiek actief blijft om te controleren op updates van het besturingssysteem en de app.

In dit voorbeeld knippert een led rood, waarmee het werk of de 'bedrijfslogica' wordt aangegeven die een app mogelijk moet uitvoeren terwijl het apparaat in de slaapstand is. Vervolgens wordt het apparaat gedurende een bepaalde periode uitgeschakeld. Elke Nde schakel-/activeringscyclus houdt de app het apparaat langer wakker om te controleren op updates in plaats van onmiddellijk uit te schakelen na voltooiing van de bedrijfslogica (in dit geval de knipperende rode LED). Om ervoor te zorgen dat updates zijn voltooid voordat de app wordt uitgeschakeld, maakt de voorbeeld-app gebruik van drie systeemgebeurtenismeldingen (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted en SysEvent_Events_UpdateReadyForInstall) die de app informeren over de status van de updatecontrole/-download. De voorbeeld-app laat ook zien hoe u het huidige verbruik van de RDB kunt meten om te valideren dat het apparaat power-down invoert.