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 #include "Seleccion.h"
JuanManuelAmador 0:3d456b8ce449 5
JuanManuelAmador 0:3d456b8ce449 6 extern ScreenManager SC;
JuanManuelAmador 0:3d456b8ce449 7
JuanManuelAmador 0:3d456b8ce449 8 extern DigitalIn boton1;
JuanManuelAmador 0:3d456b8ce449 9 extern DigitalIn boton2;
JuanManuelAmador 0:3d456b8ce449 10 extern DigitalIn boton3;
JuanManuelAmador 0:3d456b8ce449 11 extern DigitalIn boton4;
JuanManuelAmador 0:3d456b8ce449 12 extern DigitalIn boton5;
JuanManuelAmador 0:3d456b8ce449 13 extern DigitalIn boton6;
JuanManuelAmador 0:3d456b8ce449 14
JuanManuelAmador 0:3d456b8ce449 15 Seleccion::Seleccion(){
JuanManuelAmador 0:3d456b8ce449 16 // Se inicializan las variables
JuanManuelAmador 0:3d456b8ce449 17 invType = true;
JuanManuelAmador 0:3d456b8ce449 18 nElementos = 0;
JuanManuelAmador 0:3d456b8ce449 19 select = 0;
JuanManuelAmador 0:3d456b8ce449 20 lastSelect = 0;
JuanManuelAmador 0:3d456b8ce449 21 pulsado1 = false;
JuanManuelAmador 0:3d456b8ce449 22 pulsado2 = false;
JuanManuelAmador 0:3d456b8ce449 23 pulsado3 = false;
JuanManuelAmador 0:3d456b8ce449 24 pulsado4 = false;
JuanManuelAmador 0:3d456b8ce449 25 pulsado5 = false;
JuanManuelAmador 0:3d456b8ce449 26 pulsado6 = false;
JuanManuelAmador 0:3d456b8ce449 27 backScreen = false;
JuanManuelAmador 0:3d456b8ce449 28 }
JuanManuelAmador 0:3d456b8ce449 29
JuanManuelAmador 0:3d456b8ce449 30 void Seleccion::borrarElementos(){
JuanManuelAmador 0:3d456b8ce449 31 // para borrar los elementos existentes sólo hay que reiniciar el número de elementos
JuanManuelAmador 0:3d456b8ce449 32 nElementos = 0;
JuanManuelAmador 0:3d456b8ce449 33 }
JuanManuelAmador 0:3d456b8ce449 34
JuanManuelAmador 0:3d456b8ce449 35 void Seleccion::setInverterSelection(){
JuanManuelAmador 0:3d456b8ce449 36 invType = true;
JuanManuelAmador 0:3d456b8ce449 37 }
JuanManuelAmador 0:3d456b8ce449 38
JuanManuelAmador 0:3d456b8ce449 39 void Seleccion::setRectSelection(){
JuanManuelAmador 0:3d456b8ce449 40 invType = false;
JuanManuelAmador 0:3d456b8ce449 41 }
JuanManuelAmador 0:3d456b8ce449 42
JuanManuelAmador 0:3d456b8ce449 43 int Seleccion::getSelect(){
JuanManuelAmador 0:3d456b8ce449 44 return select;
JuanManuelAmador 0:3d456b8ce449 45 }
JuanManuelAmador 0:3d456b8ce449 46
JuanManuelAmador 0:3d456b8ce449 47 void Seleccion::setSelect(int newSelect){
JuanManuelAmador 0:3d456b8ce449 48 lastSelect = select;
JuanManuelAmador 0:3d456b8ce449 49 select = newSelect;
JuanManuelAmador 0:3d456b8ce449 50 }
JuanManuelAmador 0:3d456b8ce449 51
JuanManuelAmador 0:3d456b8ce449 52 int Seleccion::getLastSelect(){
JuanManuelAmador 0:3d456b8ce449 53 return lastSelect;
JuanManuelAmador 0:3d456b8ce449 54 }
JuanManuelAmador 0:3d456b8ce449 55
JuanManuelAmador 0:3d456b8ce449 56 bool Seleccion::getSelectType(){
JuanManuelAmador 0:3d456b8ce449 57 return invType;
JuanManuelAmador 0:3d456b8ce449 58 }
JuanManuelAmador 0:3d456b8ce449 59
JuanManuelAmador 0:3d456b8ce449 60 void Seleccion::drawSelection(int x, int y, int width, int height, DogMLCD* lcd){
JuanManuelAmador 0:3d456b8ce449 61 // Se pinta de distinta manera dependiendo de la forma de selección
JuanManuelAmador 0:3d456b8ce449 62 if(invType){
JuanManuelAmador 0:3d456b8ce449 63 lcd->InvRect(x, y, x+width, y+height);
JuanManuelAmador 0:3d456b8ce449 64 }else{
JuanManuelAmador 0:3d456b8ce449 65 lcd->Frame(x, y, x+width, y+height);
JuanManuelAmador 0:3d456b8ce449 66 }
JuanManuelAmador 0:3d456b8ce449 67 }
JuanManuelAmador 0:3d456b8ce449 68
JuanManuelAmador 0:3d456b8ce449 69 void Seleccion::drawDeselection(int x, int y, int width, int height, DogMLCD* lcd){
JuanManuelAmador 0:3d456b8ce449 70 // Se pinta de distinta manera dependiendo de la forma de selección
JuanManuelAmador 0:3d456b8ce449 71 if(invType){
JuanManuelAmador 0:3d456b8ce449 72 lcd->InvRect(x, y, x+width, y+height);
JuanManuelAmador 0:3d456b8ce449 73 }else{
JuanManuelAmador 0:3d456b8ce449 74 lcd->Frame(x, y, x+width, y+height, wipe);
JuanManuelAmador 0:3d456b8ce449 75 }
JuanManuelAmador 0:3d456b8ce449 76 }
JuanManuelAmador 0:3d456b8ce449 77
JuanManuelAmador 0:3d456b8ce449 78 // En esta función se comprueba si se han pulsado los botones
JuanManuelAmador 0:3d456b8ce449 79 void Seleccion::update(DogMLCD* lcd){
JuanManuelAmador 0:3d456b8ce449 80 if(boton1 == 1){
JuanManuelAmador 0:3d456b8ce449 81 // Se espera a que se suelte el botón
JuanManuelAmador 0:3d456b8ce449 82 pulsado1 = true;
JuanManuelAmador 0:3d456b8ce449 83 }else{
JuanManuelAmador 0:3d456b8ce449 84 if(pulsado1 == true){
JuanManuelAmador 0:3d456b8ce449 85 // Antes de cambiar de pantalla se llama la siguiente funcion con la que se puede añadir funcionalidad
JuanManuelAmador 0:3d456b8ce449 86 button1pressed(lcd);
JuanManuelAmador 0:3d456b8ce449 87 // Se inicializa la variable que controla la pulsación
JuanManuelAmador 0:3d456b8ce449 88 pulsado1 = false;
JuanManuelAmador 0:3d456b8ce449 89 }
JuanManuelAmador 0:3d456b8ce449 90 }
JuanManuelAmador 0:3d456b8ce449 91 if(boton2 == 1){
JuanManuelAmador 0:3d456b8ce449 92 // Se espera a que se suelte el botón
JuanManuelAmador 0:3d456b8ce449 93 pulsado2 = true;
JuanManuelAmador 0:3d456b8ce449 94 }else{
JuanManuelAmador 0:3d456b8ce449 95 if(pulsado2 == true){
JuanManuelAmador 0:3d456b8ce449 96 // Antes de cambiar de pantalla se llama la siguiente funcion con la que se puede añadir funcionalidad
JuanManuelAmador 0:3d456b8ce449 97 button2pressed(lcd);
JuanManuelAmador 0:3d456b8ce449 98 // Se inicializa la variable que controla la pulsación
JuanManuelAmador 0:3d456b8ce449 99 pulsado2 = false;
JuanManuelAmador 0:3d456b8ce449 100 }
JuanManuelAmador 0:3d456b8ce449 101 }
JuanManuelAmador 0:3d456b8ce449 102 if(boton3 == 1){
JuanManuelAmador 0:3d456b8ce449 103 // Se espera a que se suelte el botón
JuanManuelAmador 0:3d456b8ce449 104 pulsado3 = true;
JuanManuelAmador 0:3d456b8ce449 105 }else{
JuanManuelAmador 0:3d456b8ce449 106 if(pulsado3 == true){
JuanManuelAmador 0:3d456b8ce449 107 // Antes de cambiar de pantalla se llama la siguiente funcion con la que se puede añadir funcionalidad
JuanManuelAmador 0:3d456b8ce449 108 button3pressed(lcd);
JuanManuelAmador 0:3d456b8ce449 109 // Se inicializa la variable que controla la pulsación
JuanManuelAmador 0:3d456b8ce449 110 pulsado3 = false;
JuanManuelAmador 0:3d456b8ce449 111 }
JuanManuelAmador 0:3d456b8ce449 112 }
JuanManuelAmador 0:3d456b8ce449 113 if(boton4 == 1){
JuanManuelAmador 0:3d456b8ce449 114 // Se espera a que se suelte el botón
JuanManuelAmador 0:3d456b8ce449 115 pulsado4 = true;
JuanManuelAmador 0:3d456b8ce449 116 }else{
JuanManuelAmador 0:3d456b8ce449 117 if(pulsado4 == true){
JuanManuelAmador 0:3d456b8ce449 118 // Antes de cambiar de pantalla se llama la siguiente funcion con la que se puede añadir funcionalidad
JuanManuelAmador 0:3d456b8ce449 119 button4pressed(lcd);
JuanManuelAmador 0:3d456b8ce449 120 // Se inicializa la variable que controla la pulsación
JuanManuelAmador 0:3d456b8ce449 121 pulsado4 = false;
JuanManuelAmador 0:3d456b8ce449 122 }
JuanManuelAmador 0:3d456b8ce449 123 }
JuanManuelAmador 0:3d456b8ce449 124 if(boton5 == 1){
JuanManuelAmador 0:3d456b8ce449 125 // Se espera a que se suelte el botón
JuanManuelAmador 0:3d456b8ce449 126 pulsado5 = true;
JuanManuelAmador 0:3d456b8ce449 127 }else{
JuanManuelAmador 0:3d456b8ce449 128 if(pulsado5 == true){
JuanManuelAmador 0:3d456b8ce449 129 // Antes de cambiar de pantalla se llama la siguiente funcion con la que se puede añadir funcionalidad
JuanManuelAmador 0:3d456b8ce449 130 button5pressed(lcd);
JuanManuelAmador 0:3d456b8ce449 131 // Se inicializa la variable que controla la pulsación
JuanManuelAmador 0:3d456b8ce449 132 pulsado5 = false;
JuanManuelAmador 0:3d456b8ce449 133 }
JuanManuelAmador 0:3d456b8ce449 134 }
JuanManuelAmador 0:3d456b8ce449 135 if(boton6 == 1){
JuanManuelAmador 0:3d456b8ce449 136 // Se espera a que se suelte el botón
JuanManuelAmador 0:3d456b8ce449 137 pulsado6 = true;
JuanManuelAmador 0:3d456b8ce449 138 }else{
JuanManuelAmador 0:3d456b8ce449 139 if(pulsado6 == true){
JuanManuelAmador 0:3d456b8ce449 140 // Antes de cambiar de pantalla se llama la siguiente funcion con la que se puede añadir funcionalidad
JuanManuelAmador 0:3d456b8ce449 141 button6pressed(lcd);
JuanManuelAmador 0:3d456b8ce449 142 // Se inicializa la variable que controla la pulsación
JuanManuelAmador 0:3d456b8ce449 143 pulsado6 = false;
JuanManuelAmador 0:3d456b8ce449 144 }
JuanManuelAmador 0:3d456b8ce449 145 }
JuanManuelAmador 0:3d456b8ce449 146 }
JuanManuelAmador 0:3d456b8ce449 147
JuanManuelAmador 0:3d456b8ce449 148 // Esta función guarda la pantalla a la que se debe volver en caso de ser pulsado el boton atras
JuanManuelAmador 0:3d456b8ce449 149 void Seleccion::setBackScreen(char nameScreen[NCARSCREEN]){
JuanManuelAmador 0:3d456b8ce449 150 strcpy(nameBackScreen, nameScreen);
JuanManuelAmador 0:3d456b8ce449 151 backScreen = true;
JuanManuelAmador 0:3d456b8ce449 152 }
JuanManuelAmador 0:3d456b8ce449 153
JuanManuelAmador 0:3d456b8ce449 154 // Esta función desactiva volver a la pantalla anterior (si la pantalla no vuelve a ninguna pantalla debe usarse)
JuanManuelAmador 0:3d456b8ce449 155 void Seleccion::disableBackScreen(){
JuanManuelAmador 0:3d456b8ce449 156 backScreen = false;
JuanManuelAmador 0:3d456b8ce449 157 }
JuanManuelAmador 0:3d456b8ce449 158
JuanManuelAmador 0:3d456b8ce449 159 void Seleccion::button1pressed(DogMLCD* lcd){}
JuanManuelAmador 0:3d456b8ce449 160 void Seleccion::button2pressed(DogMLCD* lcd){}
JuanManuelAmador 0:3d456b8ce449 161 void Seleccion::button3pressed(DogMLCD* lcd){}
JuanManuelAmador 0:3d456b8ce449 162 void Seleccion::button4pressed(DogMLCD* lcd){}
JuanManuelAmador 0:3d456b8ce449 163 void Seleccion::button5pressed(DogMLCD* lcd){}
JuanManuelAmador 0:3d456b8ce449 164 void Seleccion::button6pressed(DogMLCD* lcd){
JuanManuelAmador 0:3d456b8ce449 165 if(backScreen){
JuanManuelAmador 0:3d456b8ce449 166 SC.changeScreen(nameBackScreen);
JuanManuelAmador 0:3d456b8ce449 167 }
JuanManuelAmador 0:3d456b8ce449 168 }