Gestire lo stato di spegnimento per i dispositivi Azure SphereManage Power Down state for Azure Sphere devices

Un'applicazione Azure Sphere di alto livello può usare l'API di risparmio energia per impostare lo stato di spegnimento del dispositivo.A high-level Azure Sphere application can use the power management API to put the device into the Power Down state. Lo stato di spegnimento è lo stato di alimentazione più basso possibile in cui un dispositivo può trovarsi prima dello spegnimento completo.The Power Down state is the lowest possible power state a device can be in other than being fully powered off. Il dispositivo può essere riattivato da uno dei due eventi seguenti:The device can be woken up by either of two events:

  1. Arrivo di un segnale di input che attiva il pin WAKEUP.Arrival of an input signal triggering the WAKEUP pin.
  2. Passaggio di un periodo di tempo specificato.Passage of a specified amount of time.

Per usare questa funzionalità, è necessario:To use this feature, you must:

  1. Configurare l'hardware.Configure your hardware.
  2. Dichiarare il valore ForcePowerDown per la funzionalità PowerControls nel manifesto dell'applicazione.Declare the ForcePowerDown value for the PowerControls capability in the application manifest.
  3. Usare PowerManagement_ForceSystemPowerDown dall'API di risparmio energia.Use PowerManagement_ForceSystemPowerDown from the Power Management API.

Stato di spegnimentoPower Down state

Lo stato di spegnimento presenta le caratteristiche seguenti:The Power Down state has the following characteristics:

  • Tutto è spento tranne l'orologio in tempo reale.Everything is powered off except the real-time clock (RTC). Ciò significa che tutti i componenti di connettività, RAM, Flash, core CPU e così via sono tutti spenti.This means all connectivity, RAM, flash, CPU cores, and so forth, are all powered off.
  • Non esiste alcuna conservazione dello stato.There is no state preservation. La riattivazione dallo spegnimento è equivalente a un avvio a freddo.Waking up from Power Down is equivalent to a cold boot.
  • La riattivazione dallo spegnimento si verifica quando viene attivato l'allarme dell'orologio in tempo reale (riattivazione basata sul tempo) o quando viene abbassato il pin WAKEUP (riattivazione basata sugli eventi), a seconda di quale evento si verifichi per primo.Wake from Power Down occurs when the real-time clock alarm fires (time-based wakeup) or when the WAKEUP pin is pulled low (event-based wakeup), whichever comes first.

Specifiche di MT3620MT3620 specifics

Le considerazioni sul risparmio energetico MediaTek MT3620 sono disponibili in MT3620: note sull'hardware.MediaTek MT3620 Power Down considerations are provided in MT3620 hardware notes.

Forzare lo spegnimento e gli aggiornamentiForce Power Down and updates

Avviso

Se non si seguono le linee guida di questa sezione, potrebbe verificarsi che il dispositivo non riesca a recuperare gli aggiornamenti dell'applicazione o del sistema operativo e che quindi sia necessario eseguirne il ripristino.Failure to follow the guidance in this section could result in your device being unable to fetch application or OS updates and requiring recovery. Leggere attentamente prima di usare ForcePowerDown.Please read carefully before using ForcePowerDown.

Poiché sia ForcePowerDown che ForceReboot consentono a un'applicazione di spegnere il dispositivo in qualsiasi momento, diventa responsabilità di tale applicazione verificare che il dispositivo sia ancora in grado di controllare periodicamente la disponibilità di aggiornamenti quando si usa ForcePowerDown o ForceReboot.Because both ForcePowerDown and ForceReboot allow an application to power down the device at any time, it becomes the responsibility of that application to ensure the device is still able to periodically check for updates when using ForcePowerDown or ForceReboot. Per semplificare la verifica della disponibilità di aggiornamenti in questo scenario, sono state introdotte notifiche degli eventi di sistema correlate agli aggiornamenti per fornire alle applicazioni informazioni sul processo di aggiornamento, in modo che le app possano prendere una decisione informata su quando spegnere il dispositivo.To make it easier to check for updates in this scenario, we have introduced update-related system event notifications to give applications information about the update process so your apps can make an informed decision about when to power down the device. Le notifiche degli eventi di sistema disponibili pertinenti sono:The relevant available system event notifications are:

  • SysEvent_Events_NoUpdateAvailable: il controllo degli aggiornamenti è terminato e non sono disponibili aggiornamenti del sistema operativo o dell'applicazione.SysEvent_Events_NoUpdateAvailable: The update check has finished and no OS or application updates are available.
  • SysEvent_Events_UpdateStarted: è stato avviato il download di un aggiornamento del sistema operativo o dell'applicazione.SysEvent_Events_UpdateStarted: An OS or application update has started downloading. Questo evento sarà seguito dall'evento SysEvent_Events_UpdateReadyForInstall non appena l'aggiornamento è stato scaricato completamente ed è pronto per l'installazione.This event will be followed by the SysEvent_Events_UpdateReadyForInstall event when the update is fully downloaded and ready for installation. Se non è disponibile alcun aggiornamento, invece di questo evento verrà inviato l'evento SysEvent_Events_NoUpdateAvailable.If no update is available, SysEvent_Events_NoUpdateAvailable will be sent instead of this event.
  • SysEvent_Events_UpdateReadyForInstall: il download di un aggiornamento è terminato ed è pronto per essere applicato al riavvio.SysEvent_Events_UpdateReadyForInstall: An update has finished downloading and is ready to be applied on reboot.

Le applicazioni che usano ForcePowerDown devono essere consapevoli dello stato di aggiornamento del dispositivo.Applications that use ForcePowerDown need to be mindful of the update state of the device. Le applicazioni che usano ForcePowerDown devono sempre registrarsi per questi eventi e tenerne conto per garantire che l'app non rimandi un aggiornamento per un periodo illimitato.Applications that use ForcePowerDown should always register for these events and heed them to ensure the app does not cause an update to be postponed indefinitely.

Viene fornita un'applicazione di esempio che illustra come compilare correttamente i controlli di aggiornamento in un'applicazione che usa ForcePowerDown.We provide a sample application that demonstrates how to properly build update checks into an application that uses ForcePowerDown. Si consiglia di iniziare con questo esempio quando si sviluppano app con ForcePowerDown.It is highly recommended that you begin with this sample when developing apps with ForcePowerDown.

Chiusura dell'applicazioneApplication termination

Dopo l'invio di una richiesta di spegnimento, viene inviato un segnale SIGTERM all'app.After a Power Down request is issued, a SIGTERM signal is sent to your app. Se l'app gestisce il segnale, sono consentiti fino a 2 secondi per eseguire le operazioni di pulizia.If your app handles the signal, it has up to 2 seconds to do cleanup work. In caso contrario, l'app verrà chiusa immediatamente.Otherwise, the app will be terminated immediately. Per altre informazioni, incluso come gestire correttamente il segnale, vedere la chiusura dell'app per l'aggiornamento.For more information, including how to properly handle the signal, see app termination for update.

Applicazione di esempioSample application

L'applicazione di esempio di spegnimento illustra come usare correttamente ForcePowerDown per ridurre il consumo di energia garantendo comunque che il dispositivo rimanga periodicamente attivo per verificare la disponibilità di aggiornamenti del sistema operativo e delle app.The Power Down sample application demonstrates how to properly make use of ForcePowerDown to reduce power consumption while still ensuring the device will periodically stay awake to check for OS and app updates.

In questo esempio lampeggia un LED rosso, che rappresenta il lavoro o la "logica di business" che un'app può dover eseguire quando il dispositivo è attivo, quindi spegne il dispositivo per un periodo di tempo specificato.This sample blinks an LED red, representing work or 'business logic' that an app may need to do while the device is awake, then powers down the device for a specified amount of time. A ogni ennesimo ciclo di spegnimento/riattivazione, l'app manterrà il dispositivo attivo più a lungo per verificare la disponibilità di aggiornamenti invece di spegnersi immediatamente dopo il completamento della logica di business (il LED rosso lampeggiante in questo caso).Every Nth Power Down/wake cycle, the app will keep the device awake longer to check for updates instead of immediately powering down following completion of the business logic (the blinking red LED in this case). Per assicurarsi che gli aggiornamenti siano stati completati prima dello spegnimento, l'app di esempio usa tre notifiche degli eventi di sistema (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted e SysEvent_Events_UpdateReadyForInstall) che indicano all'app lo stato del controllo/download degli aggiornamenti.To ensure updates have completed before powering down, the sample app makes use of three system event notifications (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted, and SysEvent_Events_UpdateReadyForInstall) that inform the app about the status of the update check/download. L'app di esempio mostra anche come misurare il consumo corrente di RDB per verificare che il dispositivo stia entrando in stato di spegnimento.The sample app also shows how to measure the current consumption of the RDB to validate that the device is entering Power Down.