HB++: Configurando o Desligamento Automático do PDA

Gostou deste artigo? Compartilhe!

CategoriasPalm OS, Handheld Basic
ComentáriosComentários (4)

HB++: Configurando o Desligamento Automático do PDA

Introdução

O painel de preferências do Palm OS (Prefs), permite configurarmos quando o PDA deve ser desligado automaticamente, no caso de inatividade do usuário. Este é um recurso importante do sistema operacional que nos ajuda a economizar bateria se, por acaso, esquecermos o PDA ligado ou ainda se ele for ligado sem intenção quando o carregamos no bolso ou dentro de uma mochila, por exemplo.

Conceito

A opção de desligamento automático está normalmente disponível no item "General" do painel de preferências, no campo "Auto-off After", onde podemos definir que o PDA deve ser desligado automaticamente após 30 segundos, 1, 2, ou 3 minutos de inatividade. Podemos notar que através do painel de preferências, não é possível especificar valores diferentes dos itens da lista, por exemplo, não é possível definir que o PDA deve ser desligado após 10 minutos, somente, ou ainda, desligar este recurso para que o PDA nunca seja desligado automaticamente, dessa forma, podemos alcançar essas funcionalidades via programação.

Painel de Preferências do Palm OS

Programação

O Palm OS possui uma função API chamada sysTrapSysSetAutoOffTime, que nos permite informar, em segundos, quando o PDA deve ser desligado automaticamente. Esta função recebe um valor do tipo Integer com o número de segundos, e retorna outro valor do tipo Integer, que corresponte ao valor que estava configurado antes. Dessa forma, se passarmos o valor 40, por exemplo, o PDA será desligado após 40 segundos de inatividade, assim como, se informarmos o valor 1800, o PDA será desligado automaticamente após 1800 segundos, o que equivale a 30 minutos (60 * 30), já para desligar o recurso de desligamento automático, basta passar o valor 0 (zero) para a função sysTrapSysSetAutoOffTime.

Assim, o primeiro passo é criar um módulo no projeto, e declarar a função API:

'Declaração da função SysSetAutoOffTime, que aponta para a API sysTrapSysSetAutoOffTime do Palm OS
Public Declare Function SysSetAutoOffTime(ByVal seconds As Integer) As Integer TRAP &HA0C0

Com a função declarada, basta efetuarmos a chamada:

Private Sub btnExemplo1_Click()
    'Define que o PDA será desligado após 1200 
    'segundos de inatividade (20 minutos)
    SysSetAutoOffTime 1200
End Sub
		
Private Sub btnExemplo2_Click()
    'Define que o PDA será desligado após 300 
    'segundos de inatividade (5 minutos)
    SysSetAutoOffTime 60 * 5
End Sub

Private Sub btnExemplo3_Click()
    'Define que o PDA nunca será desligado por inatividade
    SysSetAutoOffTime 0
End Sub

Caso seja necessário conhecer o valor configurado antes da chamada da função, basta verificar o retorno da função:

Private Sub btnExemplo2_Click()
    'Variável para guardar o valor configurado anteriormente
    Dim iValorAntigo As Integer

    'Define que o PDA será desligado após 300 
    'segundos de inatividade (5 minutos)
    iValorAntigo = SysSetAutoOffTime(60 * 5)

    'Mostra mensagems informativas
    MsgBox "Desligamento automático definido para " & CStr(iSegundos / 60) & " Minutos."
    MsgBox "Valor definido anteriormente: " & CStr(iValorAntigo / 60) & " Minutos."
End Sub

Histórico

  • 22/05/2007 - Primeira versão deste artigo.

Sobre o Autor

Caio ProieteCaio Proiete é Arquiteto de Soluções, especialista em desenvolvimento de softwares para PDAs e telefones celulares, principalmente nas plataformas Palm OS, Windows Mobile e Symbian OS.

Atualmente suas principais ferramentas/tecnologias de trabalho incluem CodeWarrior C++, Handheld Basic, eMbedded Visual C++, .NET Compact Framework, C# .NET, e Carbide.c++.

Possui extensa experiência em arquitetura e desenvolvimento de sistemas baseados em web e smart-clients, gerenciamento de projetos e treinamento, e atua também como instrutor oficial Microsoft em centros de treinamentos (CLPS), e é detentor das seguintes certificações:

  • MCT - Microsoft Certified Trainer;
  • MCSD - Microsoft Certified Solution Developer;
  • MCDBA - Microsoft Certified Database Administrator;
  • MCAD .NET - Microsoft Certified Application Developer;
  • MCSD .NET - Microsoft Certified Solution Developer for .NET;
  • MCTS - Microsoft Certified Technology Specialist for Windows Mobile.

Veja o todos os artigos publicados por Caio Proiete no PDAExpert.

Artigos Relacionados

  • Não existem artigos relacionados

4 Comentários »

Comentários via RSS TrackBack URI

  1. Sherly em 28/05/2007 12:06

    Oi, ou cosumidor assíduo das suas dicas sobre HB++, parabéns pelo trabalho e obrigaddo por compatirlhar com a galera!!
    Mas eu tenho uma duvida sobre HB++ que não quer calar, seria possível ligar e desligar o rádio wi-fi do palm TX via código, sem aparecer aquele MSGBOX: “Deseja ligar wi-fi”?
    Obrigado pela atenção !!

  2. Equipe PDAExpert em 03/06/2007 13:50

    Sherly,

    A área de comentários deve ser utilizada para dúvidas sobre o artigo em questão.
    Para dúvidas não relacionadas com o artigo, utilize nosso fórum.

    Atenciosamente,

    Equipe PDAExpert
    www.pdaexpert.net

  3. Daniel Krabbe em 20/08/2007 21:22

    Oi Caio, boa noite.

    (excelente artigo…)

    Nós queríamos uma função que desabilitasse o botão de power off por uma quantidade estimada de tempo (o reset funcionaria). Vc tem alguma sugestão?

    Abraços

    Daniel Krabbe

  4. Caio Proiete em 21/08/2007 05:42

    Obrigado Daniel,

    Sobre sua dúvida, utilize o evento KeyPress do formulário e capture o hbCharHardPower e cancele sua execução (bForward = False).

    Abraços,
    Caio Proiete

Envie seu comentário

ATENÇÃO: A área de comentários deve ser utilizada apenas para dúvidas sobre este artigo. Para dúvidas não relacionadas a este artigo, utilize o Fórum PDAExpert.net.

Nome

E-mail

URL

Comentário

XHTML: São permitidas as seguintes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

campos obrigatórios