Správa stavu vypnutí pro zařízení Azure Sphere
Aplikace Azure Sphere vysoké úrovně může pomocí rozhraní API pro řízení spotřeby uvést zařízení do stavu vypnutí. Stav vypnutí je nejnižší možný stav napájení, ve který může být zařízení jiné než plně vypnuté. Zařízení se může probudit některou ze dvou událostí:
- Příchod vstupního signálu, který aktivuje kolík WAKEUP.
- Přechod zadaného časového úseku
Pokud chcete tuto funkci použít, musíte:
- Nakonfigurujte hardware.
- Obecné aspekty návrhu hardwaru najdete v části Požadavky na napájení rtc a aspekty vypnutí v poznámkách k hardwaru MT3620 .
- Informace o konfiguraci hardwaru RDB pro režim vypnutí najdete v částech Napájení a Režim vypnutí v uživatelské příručce MT3620 RDB .
- Deklarujte hodnotu ForcePowerDown pro schopnost PowerControls v manifestu aplikace.
- Použijte PowerManagement_ForceSystemPowerDown z rozhraní API pro správu spotřeby .
Stav vypnutí
Stav Vypnutí má následující vlastnosti:
- Všechno je vypnuté kromě hodin v reálném čase (RTC). To znamená, že všechna připojení, paměť RAM, flash, procesorová jádra atd. jsou vypnuté.
- Neexistuje žádná státní ochrana. Probuzení z power downu je ekvivalentem studené boty.
- Funkce Wake from Power Down nastane, když se aktivuje budík v reálném čase (probuzení založené na čase) nebo když je kolík wakeupu vytažen (probuzení založené na událostech), podle toho, co nastane dříve.
Poznámka
Certifikát DAA (zákazník) je trvale uložený. V důsledku toho se zařízení nepřipojí k AS3 pro nový certifikát po každém studeném spuštění nebo vypnutí, ke kterému dochází mezi normálními 24hodinovými aktualizacemi. Tím se snižuje spotřeba energie i doba potřebná k připojení ke cloudu.
Specifika MT3620
Důležité informace o vypnutí mediaTek MT3620 najdete v poznámkách k hardwaru MT3620.
Vynucení vypnutí a aktualizace
Upozornění
Pokud nebudete postupovat podle pokynů v této části, může to mít za následek, že vaše zařízení nebude moct načíst aktualizace aplikací nebo operačního systému a bude vyžadovat obnovení. Před použitím ForcePowerDownu si prosím pečlivě přečtěte.
Vzhledem k tomu, že forcePowerDown i ForceReboot umožňují aplikaci kdykoli zařízení vypnout, stává se zodpovědností této aplikace zajistit, aby zařízení stále mohlo pravidelně kontrolovat aktualizace při použití forcePowerDown nebo ForceReboot. Abychom v tomto scénáři usnadnili kontrolu aktualizací, zavedli jsme oznámení o systémových událostech souvisejících s aktualizacemi, která aplikacím poskytují informace o procesu aktualizace, aby se vaše aplikace mohly informovaně rozhodnout, kdy zařízení vypnout. Relevantní dostupná oznámení systémových událostí jsou:
- SysEvent_Events_NoUpdateAvailable: Kontrola aktualizací se dokončila a nejsou dostupné žádné aktualizace operačního systému ani aplikací.
- SysEvent_Events_UpdateStarted: Aktualizace operačního systému nebo aplikace se začala stahovat. Po této události bude následovat událost SysEvent_Events_UpdateReadyForInstall, jakmile bude aktualizace plně stažena a připravena k instalaci. Pokud není k dispozici žádná aktualizace, odešle se místo této události SysEvent_Events_NoUpdateAvailable .
- SysEvent_Events_UpdateReadyForInstall: Aktualizace se dokončila a je připravená k použití při restartování.
Aplikace, které používají ForcePowerDown, musí mít na paměti stav aktualizace zařízení. Aplikace, které používají ForcePowerDown, by se k těmto událostem měly vždy registrovat a postupovat podle nich, aby se zajistilo, že aplikace nezpůsobí odložení aktualizace na neurčito.
Poskytujeme ukázkovou aplikaci , která ukazuje, jak správně zabudovat kontroly aktualizací do aplikace, která používá ForcePowerDown. Důrazně doporučujeme začít s touto ukázkou při vývoji aplikací pomocí ForcePowerDownu.
Ukončení aplikace
Po provedení žádosti o vypnutí se do aplikace odešle signál SIGTERM. Pokud vaše aplikace zpracovává signál, má až 2 sekundy na vyčištění. Jinak se aplikace okamžitě ukončí. Další informace, včetně toho, jak správně zpracovat signál, najdete v tématu Ukončení aplikace pro aktualizaci.
Ukázková aplikace
Ukázková aplikace Power Down ukazuje, jak správně využít ForcePowerDown ke snížení spotřeby energie a zároveň zajistit, aby zařízení pravidelně zůstalo vzhůru a kontrolo aktualizace operačního systému a aplikací.
Tato ukázka bliká červeně kontrolkou LED představující pracovní nebo "obchodní logiku", kterou aplikace může potřebovat udělat, když je zařízení probuzené, a pak zařízení po určitou dobu vypne. Při každém n-tém vypnutí/probuzení bude aplikace udržovat zařízení vzhůru déle, aby zkontrolovala aktualizace místo okamžitého vypnutí po dokončení obchodní logiky (v tomto případě bliká červená kontrolka LED). Aby se zajistilo, že se aktualizace před vypnutím dokončily, používá ukázková aplikace tři oznámení o událostech systému (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted a SysEvent_Events_UpdateReadyForInstall), která aplikaci informují o stavu kontroly nebo stahování aktualizací. Ukázková aplikace také ukazuje, jak změřit aktuální spotřebu RDB, aby se ověřilo, že zařízení přechází do vypnutí.