Udostępnij za pośrednictwem


Zarządzanie stanem zasilania dla urządzeń Azure Sphere

Aplikacja Azure Sphere wysokiego poziomu może używać interfejsu API zarządzania energią, aby umieścić urządzenie w stanie Power Down. Stan Zasilanie w dół to najniższy możliwy stan zasilania, w który urządzenie może być inne niż pełne wyłączenie. Urządzenie może zostać obudzone przez jedno z dwóch zdarzeń:

  • Nadejście sygnału wejściowego wyzwalającego pinezkę WAKEUP.
  • Upływ określonego czasu.

Aby korzystać z tej funkcji, musisz wykonać następujące czynności:

  1. Skonfiguruj sprzęt.
  2. Zadeklaruj wartość ForcePowerDown dla funkcji PowerControls w manifeście aplikacji.
  3. Użyj PowerManagement_ForceSystemPowerDown z interfejsu API zarządzania energią .

Stan zasilania w dół

Stan Zasilanie w dół ma następujące cechy:

  • Wszystko jest wyłączone z wyjątkiem zegara w czasie rzeczywistym (RTC). Oznacza to, że cała łączność, pamięć RAM, lampa błyskowa, rdzenie procesora itd. są wyłączone.
  • Nie ma zachowania stanu. Wznowienie pracy z dodatku Power Down jest równoznaczne z zimnym rozruchem.
  • Wznowienie z dodatku Power Down występuje, gdy alarm zegara w czasie rzeczywistym uruchamia się (wznawianie oparte na czasie) lub gdy pinezkę WAKEUP jest pobierana jako niska (wznawianie oparte na zdarzeniach), w zależności od tego, co nastąpi wcześniej.

Uwaga

Certyfikat daa (klient) jest trwale przechowywany. W związku z tym urządzenie nie łączy się z as3 w celu utworzenia nowego certyfikatu po każdym zimnym rozruchu lub dodatku Power Down, który występuje między normalnymi aktualizacjami 24-godzinowymi. Zmniejsza to zarówno zużycie energii, jak i czas wymagany do nawiązania połączenia z chmurą.

Szczegóły MT3620

Zagadnienia dotyczące dodatku Power Down dla mediatek MT3620 są dostępne w notatkach sprzętowych MT3620.

Wymuś zasilanie i aktualizacje

Ostrzeżenie

Niestosowanie się do wskazówek zawartych w tej sekcji może spowodować, że urządzenie nie będzie mogło pobrać aktualizacji aplikacji lub systemu operacyjnego i wymagać odzyskiwania. Przeczytaj uważnie przed użyciem ForcePowerDown.

Ponieważ zarówno ForcePowerDown, jak i ForceReboot umożliwiają aplikacji do zasilania urządzenia w dowolnym momencie, to staje się obowiązkiem tej aplikacji, aby upewnić się, że urządzenie jest nadal w stanie okresowo sprawdzać dostępność aktualizacji podczas korzystania z ForcePowerDown lub ForceReboot. Aby ułatwić sprawdzanie dostępności aktualizacji w tym scenariuszu, wprowadziliśmy powiadomienia o zdarzeniach systemowych związanych z aktualizacjami w celu przekazania aplikacjom informacji o procesie aktualizacji, aby aplikacje mogły podejmować świadome decyzje o tym, kiedy wyłączyć urządzenie. Odpowiednie dostępne powiadomienia o zdarzeniach systemowych to:

  • SysEvent_Events_NoUpdateAvailable: Sprawdzanie aktualizacji zostało zakończone i nie są dostępne żadne aktualizacje systemu operacyjnego ani aplikacji.
  • SysEvent_Events_UpdateStarted: Rozpoczęto pobieranie aktualizacji systemu operacyjnego lub aplikacji. Po tym zdarzeniu będzie występować zdarzenie SysEvent_Events_UpdateReadyForInstall , gdy aktualizacja zostanie w pełni pobrana i gotowa do zainstalowania. Jeśli nie jest dostępna żadna aktualizacja, zamiast tego zdarzenia zostaną wysłane SysEvent_Events_NoUpdateAvailable .
  • SysEvent_Events_UpdateReadyForInstall: Aktualizacja zakończyła pobieranie i jest gotowa do zastosowania po ponownym uruchomieniu.

Aplikacje korzystające z forcepowerdown muszą mieć na uwadze stan aktualizacji urządzenia. Aplikacje korzystające z ForcePowerDown powinny zawsze rejestrować się do tych zdarzeń i zachowuj ich, aby upewnić się, że aplikacja nie powoduje, że aktualizacja zostanie przełożona na czas nieokreślony.

Udostępniamy przykładową aplikację , która pokazuje, jak prawidłowo tworzyć testy aktualizacji w aplikacji używającej forcepowerdown. Zdecydowanie zaleca się rozpoczęcie od tego przykładu podczas tworzenia aplikacji przy użyciu forcepowerdown.

Zakończenie aplikacji

Po wysłaniu żądania dodatku Power Down do aplikacji jest wysyłany sygnał SIGTERM. Jeśli aplikacja obsługuje sygnał, trwa do 2 sekund. W przeciwnym razie aplikacja zostanie natychmiast zakończona. Aby uzyskać więcej informacji, w tym o tym, jak prawidłowo obsługiwać sygnał, zobacz zakończenie aplikacji w celu aktualizacji.

Przykładowa aplikacja

Przykładowa aplikacja Power Down pokazuje, jak prawidłowo korzystać z forcepowerdown w celu zmniejszenia zużycia energii, przy jednoczesnym zapewnieniu, że urządzenie będzie okresowo zasnąć, aby sprawdzić dostępność aktualizacji systemu operacyjnego i aplikacji.

Ta próbka miga na czerwono led, reprezentując pracę lub "logikę biznesową", które aplikacja może robić, gdy urządzenie jest w stanie aktywności, a następnie zasila urządzenie przez określony czas. W każdym cyklu Nth Power Down/wake cycle aplikacja dłużej wybudzi urządzenie, aby sprawdzić dostępność aktualizacji, zamiast natychmiast włączać po zakończeniu działania logiki biznesowej (w tym przypadku migająca czerwona dioda LED). Aby upewnić się, że aktualizacje zostały ukończone przed wyładowaniem zasilania, przykładowa aplikacja korzysta z trzech powiadomień o zdarzeniach systemowych (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted i SysEvent_Events_UpdateReadyForInstall), które informują aplikację o stanie sprawdzania/pobierania aktualizacji. Przykładowa aplikacja pokazuje również, jak zmierzyć bieżące zużycie bazy danych RDB w celu sprawdzenia, czy urządzenie wprowadza dodatek Power Down.