Versión de Firmware con funciones de RAM incorporadas.

Dependencies:   mbed

Fork of VmRecorderV1dot1 by virtualmech

Committer:
JuanManuelAmador
Date:
Tue Jul 14 08:34:11 2015 +0000
Revision:
2:e818c80e6d5c
Parent:
0:3d456b8ce449
Funciones de memoria RAM introducidas.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JuanManuelAmador 0:3d456b8ce449 1 /**
JuanManuelAmador 0:3d456b8ce449 2 * @author Juan Manuel Amador Olivares (virtualmech)
JuanManuelAmador 0:3d456b8ce449 3 */
JuanManuelAmador 0:3d456b8ce449 4 #ifndef TECLADO_H
JuanManuelAmador 0:3d456b8ce449 5 #define TECLADO_H
JuanManuelAmador 0:3d456b8ce449 6
JuanManuelAmador 0:3d456b8ce449 7 #include "Seleccion.h"
JuanManuelAmador 0:3d456b8ce449 8 #include "doggy.h"
JuanManuelAmador 0:3d456b8ce449 9
JuanManuelAmador 0:3d456b8ce449 10 #define POSCADENAX 3
JuanManuelAmador 0:3d456b8ce449 11 #define OFFSETX 4 // Espacio en pixeles que se deja antes de escribir una linea de caracteres
JuanManuelAmador 0:3d456b8ce449 12 #define OFFSETY 4 // Espacio en pixeles que se deja antes de escribir una linea de caracteres en la parte superior
JuanManuelAmador 0:3d456b8ce449 13 #define CARACTER11 11 // Anchura de un caracter de media
JuanManuelAmador 0:3d456b8ce449 14 #define CARACTER8 8 // Anchura de un caracter de media
JuanManuelAmador 0:3d456b8ce449 15 #define WRITTENSPACE 9 // Pixeles de alto que requiere el espacio donde se irá mostrando lo que se está escribiendo con el teclado
JuanManuelAmador 0:3d456b8ce449 16 #define MAXCARACTERESESCRITURA 19 // Máximos caracteres que se pueden escribir para el nombre del archivo
JuanManuelAmador 0:3d456b8ce449 17
JuanManuelAmador 0:3d456b8ce449 18 #define FILASMATRIZ 5
JuanManuelAmador 0:3d456b8ce449 19 #define COLUMNASMATRIZ 11
JuanManuelAmador 0:3d456b8ce449 20
JuanManuelAmador 0:3d456b8ce449 21
JuanManuelAmador 0:3d456b8ce449 22 /***************************
JuanManuelAmador 0:3d456b8ce449 23 Para controlar la posición del teclado se va a hacer una matriz de 11x5. A cada elemento de la matriz se le asignará un valor (la letra correspondiente)
JuanManuelAmador 0:3d456b8ce449 24 y valores especiales las teclas especiales:
JuanManuelAmador 0:3d456b8ce449 25
JuanManuelAmador 0:3d456b8ce449 26 0-> espacio vacio
JuanManuelAmador 0:3d456b8ce449 27 1-> borrar
JuanManuelAmador 0:3d456b8ce449 28 2-> mayus
JuanManuelAmador 0:3d456b8ce449 29 3-> barra espaciadora
JuanManuelAmador 0:3d456b8ce449 30 4-> Aplicar
JuanManuelAmador 0:3d456b8ce449 31 **************************/
JuanManuelAmador 0:3d456b8ce449 32 #define BACK 1
JuanManuelAmador 0:3d456b8ce449 33 #define MAYUS 2
JuanManuelAmador 0:3d456b8ce449 34 #define SPACEBAR 3
JuanManuelAmador 0:3d456b8ce449 35 #define APLICAR 4
JuanManuelAmador 0:3d456b8ce449 36
JuanManuelAmador 0:3d456b8ce449 37 #define ULTIMOCARACTERESPECIAL 4 // Se va a usar para comprobar si un elemento de la matrzi es un caracter especial o tecla especial
JuanManuelAmador 0:3d456b8ce449 38
JuanManuelAmador 0:3d456b8ce449 39
JuanManuelAmador 0:3d456b8ce449 40 // Lista de elementos seleccionables. Tamaño de caracteres 8.
JuanManuelAmador 0:3d456b8ce449 41 class Teclado: public Seleccion{
JuanManuelAmador 0:3d456b8ce449 42 public:
JuanManuelAmador 0:3d456b8ce449 43
JuanManuelAmador 0:3d456b8ce449 44 virtual void initialize(DogMLCD* lcd);
JuanManuelAmador 0:3d456b8ce449 45 int addElement(char text[], char nameNextScreen[NCARSCREEN]);
JuanManuelAmador 0:3d456b8ce449 46
JuanManuelAmador 0:3d456b8ce449 47 char *getNombre(); // Devuelve un puntero al último nombre escrito con el teclado
JuanManuelAmador 0:3d456b8ce449 48
JuanManuelAmador 0:3d456b8ce449 49 void setNextScreen(char nameScreen[NCARSCREEN]);
JuanManuelAmador 0:3d456b8ce449 50
JuanManuelAmador 0:3d456b8ce449 51 virtual void button1pressed(DogMLCD* lcd); // Esta función se llama cuando el botón superior es pulsado, definirla para añadir funcionalidades
JuanManuelAmador 0:3d456b8ce449 52 virtual void button2pressed(DogMLCD* lcd); // Esta función se llama cuando el botón superior es pulsado, definirla para añadir funcionalidades
JuanManuelAmador 0:3d456b8ce449 53 virtual void button3pressed(DogMLCD* lcd); // Esta función se llama cuando el botón superior es pulsado, definirla para añadir funcionalidades
JuanManuelAmador 0:3d456b8ce449 54 virtual void button4pressed(DogMLCD* lcd); // Esta función se llama cuando el botón inferior es pulsado, definirla para añadir funcionalidades
JuanManuelAmador 0:3d456b8ce449 55 virtual void button5pressed(DogMLCD* lcd); // Esta función se llama cuando el botón central es pulsado, definirla para añadir funcionalidades
JuanManuelAmador 0:3d456b8ce449 56
JuanManuelAmador 0:3d456b8ce449 57 private:
JuanManuelAmador 0:3d456b8ce449 58
JuanManuelAmador 0:3d456b8ce449 59 char nameNextScreen[NCARSCREEN];
JuanManuelAmador 0:3d456b8ce449 60
JuanManuelAmador 0:3d456b8ce449 61 char m[FILASMATRIZ][COLUMNASMATRIZ];
JuanManuelAmador 0:3d456b8ce449 62 char Xsel, Ysel, lastXsel, lastYsel; // posición x e y en la matriz del elemento seleccionado y el anterior
JuanManuelAmador 0:3d456b8ce449 63
JuanManuelAmador 0:3d456b8ce449 64 char nombre[MAXCARACTERESESCRITURA+1]; // Guarda la cadena con el nombre escrito
JuanManuelAmador 0:3d456b8ce449 65 char indiceEscritura; // Indica por donde se va escribiendo en el recuadro
JuanManuelAmador 0:3d456b8ce449 66
JuanManuelAmador 0:3d456b8ce449 67 void mostrarCaracteres(DogMLCD* lcd); // Muestra los caracteres de la matriz
JuanManuelAmador 0:3d456b8ce449 68 void mostrarEspeciales(DogMLCD* lcd); // Muestra los caracteres especiales
JuanManuelAmador 0:3d456b8ce449 69 void asignarMinusculas(); // Asigna a la matriz valores de caracteres de las letras minusculas
JuanManuelAmador 0:3d456b8ce449 70 void asignarMayusculas(); // Asigna a la matriz valores de caracteres de las letras minusculas
JuanManuelAmador 0:3d456b8ce449 71
JuanManuelAmador 0:3d456b8ce449 72 void mostrarRecuadro(DogMLCD* lcd); // Muestra el recuadro que señala lo que se está escribiendo
JuanManuelAmador 0:3d456b8ce449 73
JuanManuelAmador 0:3d456b8ce449 74 // Cuadros seleccionables especiales
JuanManuelAmador 0:3d456b8ce449 75 void seleccionarBarraEspaciadora(DogMLCD* lcd);
JuanManuelAmador 0:3d456b8ce449 76 void deseleccionarBarraEspaciadora(DogMLCD* lcd);
JuanManuelAmador 0:3d456b8ce449 77
JuanManuelAmador 0:3d456b8ce449 78 void seleccionarAplicar(DogMLCD* lcd);
JuanManuelAmador 0:3d456b8ce449 79 void deseleccionarAplicar(DogMLCD* lcd);
JuanManuelAmador 0:3d456b8ce449 80
JuanManuelAmador 0:3d456b8ce449 81 bool ifMayus;
JuanManuelAmador 0:3d456b8ce449 82
JuanManuelAmador 0:3d456b8ce449 83 };
JuanManuelAmador 0:3d456b8ce449 84
JuanManuelAmador 0:3d456b8ce449 85 #endif