Bematech Software Partners

 
  • jun 24 2009

    Edição 44 – Usando funções de Display

    Caro parceiro,

    Na edição 40 de nosso Flash Tip, vimos como criar o primeiro exemplo e imprimir algumas mensagens no display do usuário, como compilar o projeto, onde os arquivos são alocados no microteminal e qual o arquivo que devemos configurar para que a aplicação seja carregada no processo de BOOT do microterminal.

    Nesta edição, iremos desenvolvedor um pequeno exemplo que nos permita interagir com o microterminal, enviando mensagens para o display e recebendo informações do teclado. Basicamente neste exemplo, usaremos o tão famoso “switch/case”, além das funções nativas do SDK.

    Configurações Iniciais

    Antes de iniciarmos nosso exemplo, devemos inserir em nosso projeto a biblioteca “allegro”, a qual possui uma função específica que irá receber dados do teclado, ou seja, uma função similar ao getchar() do C – a função readkey().

    Não há necessidade de inserir recursos opcionais para trabalharmos com a “allegro”, devido ela já estar presente na instalação do ambiente de desenvolvimento. Então, para inserirmos a biblioteca “allegro” em nosso projeto, devemos seguir os seguintes passos:

    • Na estrutura de pastas, clicamos com o botão direito do mouse sobre a pasta do projeto e em seguida selecionamos “Properties” (nesta ilustração nosso projeto recebe o nome de BemaFit).

    img_1

    • Temos a janela de propriedades do projeto dividida em três colunas. Na primeira coluna selecionamos a opção C/C++ Build. Na coluna do meio, clicamos duas vezes sobre a opção Libraries, em seguida clicamos na opção Add da terceira coluna (ilustrada com um círculo).
    • Será exibida uma nova janela para inserção da biblioteca “allegro”. Simplesmente informamos “alleg” e damos um OK em todas as janelas para confirmar a alteração.

    img_2

    Após a inserção desta biblioteca, já é possível inserimos nosso código no projeto.

    img_3

    Abaixo temos o código pronto que irá testar as funções de display e teclado, conforme mencionamos nesta edição. Basta então, copiá-lo e inserí-lo no projeto, inclusive com seus includes.

    #include <allegro.h>
    #include <UDisplay.h>
    #include <stdio.h>

    int main(void)
    {
      char ch;

      /* instrução necessária para inicializar a biblioteca allegro */
      if (allegro_init() != 0)
        return 1;

      do
      { 
        /* inicializa funções do teclado */
        install_keyboard();

        char buff[256];

        // Inicializar o display do usuario
        UserDisplayInit();

        // Limpa o display do usario 
        UserDisplayClearAll();

        // Monta menu principal no display o usuário
        UserDisplayPrint(1,1, “1 – Escolha um “);
        UserDisplayPrint(2,1, “2 – Escolha dois”);
        UserDisplayPrint(3,1, “Opcao:”);
        memset(buff, 0, 256);
        ch=readkey();

        switch(ch)
        { 
          case ’1′: 
            UserDisplayClearAll(); 
            UserDisplayPrint(2,1, “Key 1 Pressionada!”);
            readkey();
          break;
          case ’2′: 
            UserDisplayClearAll(); 
            UserDisplayPrint(2,1, “Key 2 Pressionada!”);
            readkey();
          break;
          default:
            UserDisplayClearAll(); 
            UserDisplayPrint(2,1, “Programa encerrado!”);
            readkey();
            return EXIT_SUCCESS;
          break;
        } 
        /* Pausa na execução */
        readkey();

      }
      while (ch != ’9′);
    }

    Após realizarmos a compilação do projeto, devemos simplesmente definir no arquivo userrc (localizado dentro do microterminal), o local aonde está nosso projeto compilado para que ele seja carregado na inicialização do microterminal (processo que já abordamos na edição 40 do Flash Tip).

    Basicamente, ao executar o projeto teremos as seguinte opções no display do usuário:

    1 – Escolha um
    2 – Escolha dois
    Opção:

    E, ao pressionar 1 teremos a mensagem “Key 1 Pressionada!” e ao pressionar 2 teremos a mensagem “Key 2 Pressionada!”. Se for pressionado algo diferente, teremos “Programa encerrado!”.

    Assim, temos um pequeno exemplo demonstrando o uso das funções de display e de interação com o microterminal, capturando entradas via teclado.

    Próxima Edição:

    Na próxima edição, vamos avançar um pouco mais no desenvolvimento e realizar a comunicação do microterminal com alguns periféricos.

    Não perca!

    Até lá e boas implementações!

     

1 Comentário

Deixe um comentário