Funções Solidtec

Committer:
marcusncunha
Date:
Tue Nov 06 16:28:00 2018 +0000
Revision:
1:392e0e10ccf7
Parent:
0:73f074c39876
11_06_2018

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