Partilhar via


Gerir o estado do Power Down para dispositivos do Azure Sphere

Uma aplicação de alto nível do Azure Sphere pode utilizar a API de gestão de energia para colocar o dispositivo no estado Power Down. O estado de Ligar/desligar é o estado de energia mais baixo possível em que um dispositivo pode estar, além de estar totalmente desligado. O dispositivo pode ser acordado por um dos dois eventos:

  • A chegada de um sinal de entrada aciona o pino WAKEUP.
  • Passagem de um período de tempo especificado.

Para utilizar esta funcionalidade, tem de:

  1. Configure o hardware.
  2. Declare o valor ForcePowerDown para a capacidade powerControls no manifesto da aplicação.
  3. Utilize PowerManagement_ForceSystemPowerDown da API de Gestão de Energia .

Estado de ligar/desligar

O estado Desativado tem as seguintes características:

  • Tudo está desligado, exceto o relógio em tempo real (RTC). Isto significa que toda a conectividade, RAM, flash, núcleos de CPU, etc., estão todos desligados.
  • Não há preservação do Estado. Acordar do Power Down é equivalente a uma bota fria.
  • A reativação do Power Down ocorre quando o alarme do relógio em tempo real é acionado (reativação baseada no tempo) ou quando o pino WAKEUP é baixa (reativação baseada em eventos), o que ocorrer primeiro.

Nota

O certificado DAA (cliente) é armazenado persistentemente. Como resultado, um dispositivo não liga ao AS3 para um novo certificado após cada arranque a frio ou Ligar/desligar que ocorre entre as atualizações normais de 24 horas. Isto reduz o consumo de energia e o tempo necessário para ligar à cloud.

Detalhes do MT3620

As considerações de MediaTek MT3620 Power Down são fornecidas nas notas de hardware do MT3620.

Forçar Ligar/desligar e atualizar

Aviso

Se não seguir a documentação de orientação nesta secção, o dispositivo poderá não conseguir obter as atualizações da aplicação ou do SO e exigir a recuperação. Leia atentamente antes de utilizar ForcePowerDown.

Uma vez que o ForcePowerDown e o ForceReboot permitem que uma aplicação desligue o dispositivo em qualquer altura, torna-se da responsabilidade dessa aplicação garantir que o dispositivo ainda consegue verificar periodicamente a existência de atualizações ao utilizar ForcePowerDown ou ForceReboot. Para facilitar a procura de atualizações neste cenário, introduzimos notificações de eventos do sistema relacionadas com a atualização para fornecer às aplicações informações sobre o processo de atualização para que as suas aplicações possam tomar uma decisão informada sobre quando ligar o dispositivo. As notificações de eventos do sistema disponíveis relevantes são:

  • SysEvent_Events_NoUpdateAvailable: a verificação de atualização foi concluída e não existem atualizações do SO ou da aplicação disponíveis.
  • SysEvent_Events_UpdateStarted: foi iniciada a transferência de uma atualização do SO ou da aplicação. Este evento será seguido pelo evento SysEvent_Events_UpdateReadyForInstall quando a atualização estiver totalmente transferida e pronta para instalação. Se não estiver disponível nenhuma atualização, SysEvent_Events_NoUpdateAvailable serão enviadas em vez deste evento.
  • SysEvent_Events_UpdateReadyForInstall: Uma atualização terminou a transferência e está pronta para ser aplicada ao reinício.

As aplicações que utilizam ForcePowerDown têm de estar atentas ao estado de atualização do dispositivo. As aplicações que utilizam ForcePowerDown devem sempre registar-se nestes eventos e prestar-lhes atenção para garantir que a aplicação não faz com que uma atualização seja adiada indefinidamente.

Fornecemos uma aplicação de exemplo que demonstra como criar corretamente verificações de atualização numa aplicação que utiliza ForcePowerDown. Recomenda-se vivamente que comece com este exemplo quando desenvolver aplicações com ForcePowerDown.

Terminação da aplicação

Depois de efetuar um pedido de Power Down, é enviado um sinal SIGTERM para a sua aplicação. Se a sua aplicação processar o sinal, tem até 2 segundos para fazer o trabalho de limpeza. Caso contrário, a aplicação será terminada imediatamente. Para obter mais informações, incluindo como lidar corretamente com o sinal, veja terminação da aplicação para atualização.

Aplicação de exemplo

O exemplo de aplicação Power Down demonstra como utilizar corretamente o ForcePowerDown para reduzir o consumo de energia, garantindo que o dispositivo permanecerá periodicamente ativo para verificar a existência de atualizações do SO e da aplicação.

Este exemplo pisca um led vermelho, representando o trabalho ou a "lógica de negócio" que uma aplicação pode ter de fazer enquanto o dispositivo está ativo e, em seguida, ativa o dispositivo durante um determinado período de tempo. A cada Nth Power Down/ciclo de reativação, a aplicação manterá o dispositivo ativo durante mais tempo para procurar atualizações em vez de desligar imediatamente após a conclusão da lógica de negócio (o LED vermelho intermitente neste caso). Para garantir que as atualizações foram concluídas antes de desligar, a aplicação de exemplo utiliza três notificações de eventos do sistema (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted e SysEvent_Events_UpdateReadyForInstall) que informam a aplicação sobre o estado da verificação/transferência da atualização. A aplicação de exemplo também mostra como medir o consumo atual do RDB para confirmar que o dispositivo está a entrar no Power Down.