Funções Solidtec

Committer:
marcusncunha
Date:
Fri Dec 08 19:15:28 2017 +0000
Revision:
0:73f074c39876
Child:
1:392e0e10ccf7
Solidtec

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcusncunha 0:73f074c39876 1 /*
marcusncunha 0:73f074c39876 2 ** Cabeçalhos das funções implementadas no módulo tela.cpp ,
marcusncunha 0:73f074c39876 3 ** que servem para desenhar os botões e imagens na tela
marcusncunha 0:73f074c39876 4 */
marcusncunha 0:73f074c39876 5
marcusncunha 0:73f074c39876 6 #include "mbed.h"
marcusncunha 0:73f074c39876 7 #include "LCD_DISCO_F746NG.h"
marcusncunha 0:73f074c39876 8 #include "TS_DISCO_F746NG.h"
marcusncunha 0:73f074c39876 9
marcusncunha 0:73f074c39876 10 //Constantes de Botão
marcusncunha 0:73f074c39876 11 #define TEMPO_PRESSIONADO_BOTAO 0.01000f
marcusncunha 0:73f074c39876 12 #define TEMPO_ATUALIZAR 0.20000f
marcusncunha 0:73f074c39876 13
marcusncunha 0:73f074c39876 14 //Estruturas dos Botões
marcusncunha 0:73f074c39876 15 /*
marcusncunha 0:73f074c39876 16 ** Base do botão com dimensões e posicionamento
marcusncunha 0:73f074c39876 17 */
marcusncunha 0:73f074c39876 18 typedef struct{
marcusncunha 0:73f074c39876 19 uint16_t x;
marcusncunha 0:73f074c39876 20 uint16_t y;
marcusncunha 0:73f074c39876 21 uint16_t largura;
marcusncunha 0:73f074c39876 22 uint16_t altura;
marcusncunha 0:73f074c39876 23 }dadosRetanguloBase;
marcusncunha 0:73f074c39876 24 /*
marcusncunha 0:73f074c39876 25 ** Estrutura do botão com a base, tempo pressionado e flags de alteração
marcusncunha 0:73f074c39876 26 */
marcusncunha 0:73f074c39876 27 typedef struct{
marcusncunha 0:73f074c39876 28 dadosRetanguloBase retanguloObjeto;
marcusncunha 0:73f074c39876 29 bool isPressed;
marcusncunha 0:73f074c39876 30 bool updateFlag;
marcusncunha 0:73f074c39876 31 Timer depressTime;
marcusncunha 0:73f074c39876 32 }botao;
marcusncunha 0:73f074c39876 33 /*
marcusncunha 0:73f074c39876 34 ** Estrutura de imagem com dimensões e cor Key
marcusncunha 0:73f074c39876 35 */
marcusncunha 0:73f074c39876 36 typedef struct{
marcusncunha 0:73f074c39876 37 uint16_t largura;
marcusncunha 0:73f074c39876 38 uint16_t altura;
marcusncunha 0:73f074c39876 39 uint32_t corKey;
marcusncunha 0:73f074c39876 40 }dadosImagem;
marcusncunha 0:73f074c39876 41
marcusncunha 0:73f074c39876 42 /*
marcusncunha 0:73f074c39876 43 ==============================================================================================
marcusncunha 0:73f074c39876 44 ** Funções de Tela
marcusncunha 0:73f074c39876 45 ==============================================================================================
marcusncunha 0:73f074c39876 46 */
marcusncunha 0:73f074c39876 47 /*
marcusncunha 0:73f074c39876 48 ** Função desenharImagem desenha a imagem na tela
marcusncunha 0:73f074c39876 49 */
marcusncunha 0:73f074c39876 50 void desenharImagem(const unsigned long *PICTURE, uint16_t largura, uint16_t altura,uint16_t posX, uint16_t posY);
marcusncunha 0:73f074c39876 51 /*
marcusncunha 0:73f074c39876 52 ** Função desenharImagemKey desenha a imagem trocando a cor key pela informada na função
marcusncunha 0:73f074c39876 53 */
marcusncunha 0:73f074c39876 54 void desenharImagemKey(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeFundo,uint16_t posX, uint16_t posY);
marcusncunha 0:73f074c39876 55 /*
marcusncunha 0:73f074c39876 56 ** Função desenhaCaixaMensagem desenha caixa retangular com a cor informada de borda e fundo
marcusncunha 0:73f074c39876 57 ** e coloca a imagem da mensagem sobreposta com Key
marcusncunha 0:73f074c39876 58 */
marcusncunha 0:73f074c39876 59 void desenhaCaixaMensagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeBordaCaixa, uint32_t corDeFundoCaixa, dadosRetanguloBase *baseMensagem);
marcusncunha 0:73f074c39876 60 /*
marcusncunha 0:73f074c39876 61 ** Função desenhaBotaoComImagem desenha o botão retangular com a cor informada e coloca a imagem sobreposta com Key
marcusncunha 0:73f074c39876 62 */
marcusncunha 0:73f074c39876 63 void desenhaBotaoComImagem (const unsigned long *PICTURE, dadosImagem imagem, uint32_t cor, botao *botaoObjeto);
marcusncunha 0:73f074c39876 64 /*
marcusncunha 0:73f074c39876 65 ** Função iniciarBotaoArea limita área de toque aonde cria um evento de botão. Para funcionar tem que gerar
marcusncunha 0:73f074c39876 66 ** condição de update do flag e função de callback
marcusncunha 0:73f074c39876 67 No loop
marcusncunha 0:73f074c39876 68 if(botao.updateFlag){
marcusncunha 0:73f074c39876 69 botao_callback();
marcusncunha 0:73f074c39876 70 }
marcusncunha 0:73f074c39876 71 Criar função no programa
marcusncunha 0:73f074c39876 72 void botao_callback(){
marcusncunha 0:73f074c39876 73 botao.updateFlag = 0;
marcusncunha 0:73f074c39876 74 atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora
marcusncunha 0:73f074c39876 75 }
marcusncunha 0:73f074c39876 76 */
marcusncunha 0:73f074c39876 77 void iniciarBotaoArea(botao *botaoObjeto, TS_StateTypeDef *toqueTela);
marcusncunha 0:73f074c39876 78 /*
marcusncunha 0:73f074c39876 79 ** Função iniciarBotaoComImagem cria um botão com cores diferentes de clique e insere uma imagem
marcusncunha 0:73f074c39876 80 ** com key. Para funcionar tem que gerar condição de update do flag e função de callback
marcusncunha 0:73f074c39876 81 No loop
marcusncunha 0:73f074c39876 82 if(botao.updateFlag){
marcusncunha 0:73f074c39876 83 botao_callback();
marcusncunha 0:73f074c39876 84 }
marcusncunha 0:73f074c39876 85 Criar função no programa
marcusncunha 0:73f074c39876 86 void botao_callback(){
marcusncunha 0:73f074c39876 87 botao.updateFlag = 0;
marcusncunha 0:73f074c39876 88 atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora
marcusncunha 0:73f074c39876 89 }
marcusncunha 0:73f074c39876 90 */
marcusncunha 0:73f074c39876 91 void iniciarBotaoComImagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela);
marcusncunha 0:73f074c39876 92
marcusncunha 0:73f074c39876 93 void iniciarBotaoComImagemClick(const unsigned long *PICTURE, const unsigned long *PICTURECLK, dadosImagem imagem, dadosImagem imagemClk,uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela);
marcusncunha 0:73f074c39876 94
marcusncunha 0:73f074c39876 95 /*
marcusncunha 0:73f074c39876 96 ** Função escreverInteiroTelaDireita imprime na tela na posição x contrária e alinhada à direita
marcusncunha 0:73f074c39876 97 */
marcusncunha 0:73f074c39876 98 void escreverInteiroTelaDireita(int variavel, int x, int y);
marcusncunha 0:73f074c39876 99 /*
marcusncunha 0:73f074c39876 100 ** Função escreverDoubleTelaDireita imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais
marcusncunha 0:73f074c39876 101 */
marcusncunha 0:73f074c39876 102 void escreverDoubleTelaDireita(double variavel, int x, int y);
marcusncunha 0:73f074c39876 103 /*
marcusncunha 0:73f074c39876 104 ** Função escreverInteiroTelaEsquerda imprime na tela na posição x contrária e alinhada à direita
marcusncunha 0:73f074c39876 105 */
marcusncunha 0:73f074c39876 106 void escreverInteiroTelaEsquerda(int variavel, int x, int y);
marcusncunha 0:73f074c39876 107 /*
marcusncunha 0:73f074c39876 108 ** Função escreverDoubleTelaEsquerda imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais
marcusncunha 0:73f074c39876 109 */
marcusncunha 0:73f074c39876 110 void escreverDoubleTelaEsquerda(double variavel, int x, int y);
marcusncunha 0:73f074c39876 111