Funções Solidtec

Revision:
0:73f074c39876
Child:
1:392e0e10ccf7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tela.h	Fri Dec 08 19:15:28 2017 +0000
@@ -0,0 +1,111 @@
+/*
+** Cabeçalhos das funções implementadas no módulo tela.cpp ,
+** que servem para desenhar os botões e imagens na tela
+*/
+
+#include "mbed.h"
+#include "LCD_DISCO_F746NG.h"
+#include "TS_DISCO_F746NG.h"
+
+//Constantes de Botão 
+#define TEMPO_PRESSIONADO_BOTAO 0.01000f
+#define TEMPO_ATUALIZAR 0.20000f
+
+//Estruturas dos Botões
+/*
+** Base do botão com dimensões e posicionamento
+*/
+typedef struct{
+    uint16_t x;
+    uint16_t y;
+    uint16_t largura;
+    uint16_t altura;
+}dadosRetanguloBase;
+/*
+** Estrutura do botão com a base, tempo pressionado e flags de alteração
+*/
+typedef struct{
+    dadosRetanguloBase retanguloObjeto;
+    bool isPressed; 
+    bool updateFlag;
+    Timer depressTime;
+}botao;
+/*
+** Estrutura de imagem com dimensões e cor Key
+*/
+typedef struct{
+    uint16_t largura;
+    uint16_t altura;    
+    uint32_t corKey;
+}dadosImagem;
+
+/*
+==============================================================================================
+** Funções de Tela
+==============================================================================================
+*/
+/*
+** Função desenharImagem desenha a imagem na tela
+*/
+void desenharImagem(const unsigned long *PICTURE, uint16_t largura, uint16_t altura,uint16_t posX, uint16_t posY);
+/*
+** Função desenharImagemKey desenha a imagem trocando a cor key pela informada na função
+*/
+void desenharImagemKey(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeFundo,uint16_t posX, uint16_t posY);
+/*
+** Função desenhaCaixaMensagem desenha caixa retangular com a cor informada de borda e fundo
+** e coloca a imagem da mensagem sobreposta com Key
+*/
+void desenhaCaixaMensagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corDeBordaCaixa, uint32_t corDeFundoCaixa, dadosRetanguloBase *baseMensagem);
+/*
+** Função desenhaBotaoComImagem desenha o botão retangular com a cor informada e coloca a imagem sobreposta com Key
+*/
+void desenhaBotaoComImagem (const unsigned long *PICTURE, dadosImagem imagem, uint32_t cor, botao *botaoObjeto);
+/*
+** Função iniciarBotaoArea limita área de toque aonde cria um evento de botão. Para funcionar tem que gerar
+** condição de update do flag e função de callback
+No loop 
+if(botao.updateFlag){
+    botao_callback();
+}
+Criar função no programa
+void botao_callback(){
+    botao.updateFlag = 0;
+    atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora
+}
+*/
+void iniciarBotaoArea(botao *botaoObjeto, TS_StateTypeDef *toqueTela);
+/*
+** Função iniciarBotaoComImagem cria um botão com cores diferentes de clique e insere uma imagem
+** com key. Para funcionar tem que gerar condição de update do flag e função de callback
+No loop 
+if(botao.updateFlag){
+    botao_callback();
+}
+Criar função no programa
+void botao_callback(){
+    botao.updateFlag = 0;
+    atualizarTela = true; // Flag indispensável para a lógica do loop para não chamar toda hora
+}
+*/
+void iniciarBotaoComImagem(const unsigned long *PICTURE, dadosImagem imagem, uint32_t corSemClick, uint32_t corComClick, botao *botaoObjeto, TS_StateTypeDef *toqueTela);
+
+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);
+
+/*
+** Função escreverInteiroTelaDireita imprime na tela na posição x contrária e alinhada à direita
+*/
+void escreverInteiroTelaDireita(int variavel, int x, int y);
+/*
+** Função escreverDoubleTelaDireita imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais
+*/
+void escreverDoubleTelaDireita(double variavel, int x, int y);
+/*
+** Função escreverInteiroTelaEsquerda imprime na tela na posição x contrária e alinhada à direita
+*/
+void escreverInteiroTelaEsquerda(int variavel, int x, int y);
+/*
+** Função escreverDoubleTelaEsquerda imprime na tela na posição x contrária e alinhada à direita com duas casas Decimais
+*/
+void escreverDoubleTelaEsquerda(double variavel, int x, int y);
+