Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of VmRecorderV1dot1 by
Diff: VmRecorderV1dot1.cpp
- Revision:
- 0:3d456b8ce449
- Child:
- 1:a3c9b672b8e2
diff -r 000000000000 -r 3d456b8ce449 VmRecorderV1dot1.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/VmRecorderV1dot1.cpp Mon Jun 15 15:34:27 2015 +0000
@@ -0,0 +1,428 @@
+#include "mbed.h"
+#include "MSCFileSystem.h"
+#include "Configuracion.h"
+#include "SistemaArchivos.h"
+#include "FechaHora.h"
+#include "SelecManager.h"
+#include "ScreenManager.h"
+#include "Portada.cpp"
+#include "Menu.h"
+#include "ListaSelec.h"
+#include "IdiomaSelec.h"
+#include "FormaSelec.h"
+#include "VelAdquisicionSel.h"
+#include "RestaurarValores.h"
+#include "Mensaje.h"
+#include "NuevoViaje.h"
+#include "GuardarViaje.h"
+#include "ArchivoGuardado.h"
+#include "ViajesGuardados.h"
+#include "Teclado.h"
+#include "GuardarOtroNombre.h"
+#include "OpcionesViaje.h"
+#include "FechaHoraConf.h"
+#include "AutoCalibracion.h"
+
+//DEFINICIONES
+#define ESPANOL 0
+#define INGLES 1
+
+/// PEN DRIVE ///
+MSCFileSystem msc("usb");
+
+/// MEMORIA FLASH LOCAL DE LA MBED ///
+LocalFileSystem local("local"); // Create the local filesystem under the name "local"
+Configuracion config = Configuracion();
+SistemaArchivos SA = SistemaArchivos();
+
+// Fecha y hora
+FechaHora FH;
+
+/********************************************
+ PANTALLAS
+ ********************************************/
+SPI spi( p5, NC, p7 ); // MOSI, MISO, CLK
+DogMLCD dog( spi, p10, p8); // SPI, CS, A0
+
+ScreenManager SC(&dog); // Screen Manager
+SelecManager SM; // gestiona las pantallas que tienen elementos seleccionables
+
+Portada portadaVm = Portada();
+Screen* pportadaVm = &portadaVm;
+
+Menu menu = Menu();
+Screen* pmenu = &menu;
+Seleccion* psmenu = &menu;
+
+Teclado keyboard = Teclado();
+Screen* pkeyboard = &keyboard;
+Seleccion* pskeyboard = &keyboard;
+
+ViajesGuardados listaViajes = ViajesGuardados("No existen viajes");
+Screen* plistaViajes = &listaViajes;
+Seleccion* pslistaViajes = &listaViajes;
+
+ListaSelec configuracion = ListaSelec();
+Screen* pconfiguracion = &configuracion;
+Seleccion* psconfiguracion = &configuracion;
+
+RestaurarValores restaurar = RestaurarValores("\250Est\240 seguro?");
+Screen* prestaurar = &restaurar;
+Seleccion* psrestaurar = &restaurar;
+
+IdiomaSelec idioma = IdiomaSelec();
+Screen* pidioma = &idioma;
+Seleccion* psidioma = &idioma;
+
+FormaSelec formaSelec = FormaSelec();
+Screen* pformaSelec = &formaSelec;
+Seleccion* psformaSelec = &formaSelec;
+
+VelAdquisicionSel velAdquisionSel = VelAdquisicionSel();
+Screen* pvelAdquisionSel = &velAdquisionSel;
+Seleccion* psvelAdquisionSel = &velAdquisionSel;
+
+NuevoViaje nuevoViaje = NuevoViaje("Adquiriendo datos", "Frecuencia: ", "OK para comenzar.", "OK para finalizar.", "Pulse atr\240s para cancelar.");
+Screen* pnuevoViaje = &nuevoViaje;
+
+Mensaje noUSB = Mensaje("menu", "Pulse OK para volver.");
+Screen* pnoUSB = &noUSB;
+
+GuardarOtroNombre guardadoCorrect = GuardarOtroNombre("menu", "Pulse OK para continuar.", "Espere por favor");
+Screen* pguardadoCorrect = &guardadoCorrect;
+
+GuardarViaje guardaViaje = GuardarViaje();
+Screen* pguardaViaje = &guardaViaje;
+Seleccion* psguardaViaje = &guardaViaje;
+
+OpcionesViaje opcionesViaje = OpcionesViaje();
+Screen* popcionesViaje = &opcionesViaje;
+Seleccion* psopcionesViaje = &opcionesViaje;
+
+ArchivoGuardado archivoGuardado = ArchivoGuardado("guardaViaje", "Pulse OK para continuar.", "Archivo guardado:", "Fecha:", "Hora:");
+Screen* parchivoGuardado = &archivoGuardado;
+
+Mensaje archivoBorrado = Mensaje("menu", "Pulse OK para continuar.");
+Screen* parchivoBorrado = &archivoBorrado;
+
+Mensaje nombreExistente = Mensaje("guardaViaje", "Pulse OK para volver.");
+Screen* pnombreExistente = &nombreExistente;
+
+FechaHoraConf fechaHoraConf = FechaHoraConf("Pulse las teclas arriba y", "abajo para cambiar los", "valores.", "Fecha:", "Hora:");
+Screen* pfechaHoraConf = &fechaHoraConf;
+Seleccion* psfechaHoraConf = &fechaHoraConf;
+
+AutoCalibracion calibrando = AutoCalibracion();
+Screen* pcalibrando = &calibrando;
+
+// Inglés
+Menu menuEN = Menu();
+Screen* pmenuEN = &menuEN;
+Seleccion* psmenuEN = &menuEN;
+
+ViajesGuardados listaViajesEN = ViajesGuardados("No travels");
+Screen* plistaViajesEN = &listaViajesEN;
+Seleccion* pslistaViajesEN = &listaViajesEN;
+
+ListaSelec configuracionEN = ListaSelec();
+Screen* pconfiguracionEN = &configuracionEN;
+Seleccion* psconfiguracionEN = &configuracionEN;
+
+RestaurarValores restaurarEN = RestaurarValores("Are you sure?");
+Screen* prestaurarEN = &restaurarEN;
+Seleccion* psrestaurarEN = &restaurarEN;
+
+IdiomaSelec idiomaEN = IdiomaSelec();
+Screen* pidiomaEN = &idiomaEN;
+Seleccion* psidiomaEN = &idiomaEN;
+
+FormaSelec formaSelecEN = FormaSelec();
+Screen* pformaSelecEN = &formaSelecEN;
+Seleccion* psformaSelecEN = &formaSelecEN;
+
+NuevoViaje nuevoViajeEN = NuevoViaje("Acquiring data", "Frecuency: ", "Press OK to start.", "Press OK to finish.", "Press back to cancel.");
+Screen* pnuevoViajeEN = &nuevoViajeEN;
+
+Mensaje noUSBEN = Mensaje("menu", "Press OK to back.");
+Screen* pnoUSBEN = &noUSBEN;
+
+GuardarOtroNombre guardadoCorrectEN = GuardarOtroNombre("menu", "Press OK to continue.", "Please wait");
+Screen* pguardadoCorrectEN = &guardadoCorrectEN;
+
+GuardarViaje guardaViajeEN = GuardarViaje();
+Screen* pguardaViajeEN = &guardaViajeEN;
+Seleccion* psguardaViajeEN = &guardaViajeEN;
+
+OpcionesViaje opcionesViajeEN = OpcionesViaje();
+Screen* popcionesViajeEN = &opcionesViajeEN;
+Seleccion* psopcionesViajeEN = &opcionesViajeEN;
+
+ArchivoGuardado archivoGuardadoEN = ArchivoGuardado("guardaViaje", "Press OK to continue.", "Saved file:", "date:", "Time:");
+Screen* parchivoGuardadoEN = &archivoGuardadoEN;
+
+Mensaje archivoBorradoEN = Mensaje("menu", "Press OK to continue.");
+Screen* parchivoBorradoEN = &archivoBorradoEN;
+
+Mensaje nombreExistenteEN = Mensaje("guardaViaje", "Press OK to back.");
+Screen* pnombreExistenteEN = &nombreExistenteEN;
+
+FechaHoraConf fechaHoraConfEN = FechaHoraConf("Press the up and down keys to change values.", "", "", "Date:", "Time:");
+Screen* pfechaHoraConfEN = &fechaHoraConfEN;
+Seleccion* psfechaHoraConfEN = &fechaHoraConfEN;
+
+/********************************************/
+
+/********************************************
+ BOTONES
+ ********************************************/
+DigitalIn boton1(p30);
+DigitalIn boton2(p29);
+DigitalIn boton3(p28);
+DigitalIn boton4(p27);
+DigitalIn boton5(p26);
+DigitalIn boton6(p14);
+/********************************************/
+
+DigitalOut myled(LED2);
+
+Timer t;
+
+int main()
+{
+ /********************************************
+ PANTALLAS
+ ********************************************/
+ /******************* Se añaden las pantallas al ScreenManager ******************************/
+
+ // Portada inicial
+ SC.addScreen(pportadaVm, "portada", ESPANOL);
+ SC.addScreen(pportadaVm, "portada", INGLES);
+
+ // Menu principal
+ menu.addElement("Nuevo viaje", "viaje");
+ menu.addElement("Viajes guardados", "listadoViajes");
+ menu.addElement("Configuraci\242n", "configuracion");
+ menu.setSelect(0);
+ SC.addScreen(pmenu, "menu", ESPANOL);
+ SM.addScreen(psmenu);
+
+ menuEN.addElement("New ride", "viaje");
+ menuEN.addElement("Saved rides", "listadoViajes");
+ menuEN.addElement("Settings", "configuracion");
+ menuEN.setSelect(0);
+ SC.addScreen(pmenuEN, "menu", INGLES);
+ SM.addScreen(psmenuEN);
+
+ // Pantalla teclado
+ keyboard.setSelect(0);
+ SC.addScreen(pkeyboard, "teclado", ESPANOL); // El teclado es el mismo para todos los idiomas
+ SC.addScreen(pkeyboard, "teclado", INGLES);
+ SM.addScreen(pskeyboard);
+
+ // Pantalla de autocalibración
+ SC.addScreen(pcalibrando, "calibrate", ESPANOL); // La pantalla de calibración es la misma para todos los idiomas (el idioma se controla en el propio código de la pantalla)
+ SC.addScreen(pcalibrando, "calibrate", INGLES);
+
+ // Lista de viajes guardados
+ listaViajes.setBackScreen("menu");
+ SC.addScreen(plistaViajes, "listadoViajes", ESPANOL);
+ SM.addScreen(pslistaViajes);
+
+ listaViajesEN.setBackScreen("menu");
+ SC.addScreen(plistaViajesEN, "listadoViajes", INGLES);
+ SM.addScreen(pslistaViajesEN);
+
+ // Lista de configuración
+ configuracion.addElement("Velocidad de adquisici\242n", "velAdquisionSel");
+ configuracion.addElement("Idioma", "idioma");
+ configuracion.addElement("Visualizaci\242n", "formaSelec");
+ configuracion.addElement("Ajustar fecha y hora", "confFecha");
+ configuracion.addElement("Autocalibraci\242n", "calibrate");
+ configuracion.addElement("Valores de f\240brica", "restaurar");
+ configuracion.setBackScreen("menu");
+ SC.addScreen(pconfiguracion, "configuracion", 0);
+ SM.addScreen(psconfiguracion);
+
+ configuracionEN.addElement("Sample Rate", "velAdquisionSel");
+ configuracionEN.addElement("Languaje", "idioma");
+ configuracionEN.addElement("Visualization", "formaSelec");
+ configuracionEN.addElement("Set date and time", "confFecha");
+ configuracionEN.addElement("Autocalibration", "calibrate");
+ configuracionEN.addElement("Restore default settings", "restaurar");
+ configuracionEN.setBackScreen("menu");
+ SC.addScreen(pconfiguracionEN, "configuracion", 1);
+ SM.addScreen(psconfiguracionEN);
+
+ // Pantalla de restauración de datos de fábrica
+ restaurar.addElement("No restaurar", "configuracion");
+ restaurar.addElement("resturar", "configuracion");
+ restaurar.setBackScreen("configuracion");
+ SC.addScreen(prestaurar, "restaurar", 0);
+ SM.addScreen(psrestaurar);
+
+ restaurarEN.addElement("do not restore", "configuracion");
+ restaurarEN.addElement("restore", "configuracion");
+ restaurarEN.setBackScreen("configuracion");
+ SC.addScreen(prestaurarEN, "restaurar", 1);
+ SM.addScreen(psrestaurarEN);
+
+ // pantalla de selección de idioma
+ idioma.addElement("Espa\244ol", "configuracion");
+ idioma.addElement("Ingl\202s", "configuracion");
+ idioma.setBackScreen("configuracion");
+ SC.addScreen(pidioma, "idioma", 0);
+ SM.addScreen(psidioma);
+
+ idiomaEN.addElement("Spanish", "configuracion");
+ idiomaEN.addElement("English", "configuracion");
+ idiomaEN.setBackScreen("configuracion");
+ SC.addScreen(pidiomaEN, "idioma", 1);
+ SM.addScreen(psidiomaEN);
+
+ // Pantalla de selección de la forma de selección
+ formaSelec.addElement("Sombreado", "configuracion");
+ formaSelec.addElement("Encuadrado", "configuracion");
+ formaSelec.setBackScreen("configuracion");
+ SC.addScreen(pformaSelec, "formaSelec", 0);
+ SM.addScreen(psformaSelec);
+
+ formaSelecEN.addElement("Shading", "configuracion");
+ formaSelecEN.addElement("Framing", "configuracion");
+ formaSelecEN.setBackScreen("configuracion");
+ SC.addScreen(pformaSelecEN, "formaSelec", 1);
+ SM.addScreen(psformaSelecEN);
+
+ // Pantalla de selección de la velocidad de adquisición
+ velAdquisionSel.addElement("1000 Hz", "configuracion");
+ velAdquisionSel.addElement("320 Hz", "configuracion");
+ velAdquisionSel.setBackScreen("configuracion");
+ SC.addScreen(pvelAdquisionSel, "velAdquisionSel", ESPANOL);
+ SC.addScreen(pvelAdquisionSel, "velAdquisionSel", INGLES); // Como sólo se muestran valores y sus unidades no es necesaria esta pantalla en otros idiomas
+ SM.addScreen(psvelAdquisionSel);
+
+ // Pantalla de cambio de fecha y hora
+ fechaHoraConf.setSelect(0);
+ fechaHoraConf.setBackScreen("configuracion");
+ SC.addScreen(pfechaHoraConf, "confFecha", ESPANOL);
+ SM.addScreen(psfechaHoraConf);
+
+ fechaHoraConfEN.setSelect(0);
+ fechaHoraConfEN.setBackScreen("configuracion");
+ SC.addScreen(pfechaHoraConfEN, "confFecha", INGLES);
+ SM.addScreen(psfechaHoraConfEN);
+
+ // Pantalla de nuevo viaje
+ SC.addScreen(pnuevoViaje, "viaje", 0);
+ SC.addScreen(pnuevoViajeEN, "viaje", 1);
+
+ // Mensaje de USB lleno o desconectado
+ noUSB.addElement("USB desconectado");
+ noUSB.addElement("o lleno");
+ noUSB.setBackScreen("menu");
+ SC.addScreen(pnoUSB, "USBdesconectado", 0);
+
+ noUSBEN.addElement("USB disconected");
+ noUSBEN.addElement("or full");
+ noUSBEN.setBackScreen("menu");
+ SC.addScreen(pnoUSBEN, "USBdesconectado", 1);
+
+ // Archivo guardado correctamente (Mensaje)
+ guardadoCorrect.addElement("Archivo guardado");
+ guardadoCorrect.addElement("correctamente");
+ guardadoCorrect.setBackScreen("menu");
+ SC.addScreen(pguardadoCorrect, "fileSaved", ESPANOL);
+
+ guardadoCorrectEN.addElement("File saved");
+ guardadoCorrectEN.addElement("correctly");
+ guardadoCorrectEN.setBackScreen("menu");
+ SC.addScreen(pguardadoCorrectEN, "fileSaved", INGLES);
+
+ // Pantalla de guardado de viaje
+ guardaViaje.addElement("Volver al men\243", "menu");
+ //guardaViaje.addElement("Postprocesado", "menu");
+ guardaViaje.addElement("Cambiar nombre", "teclado");
+ guardaViaje.addElement("Borrar", "archivoBorrado");
+ guardaViaje.setSelect(0);
+ SC.addScreen(pguardaViaje, "guardaViaje", ESPANOL);
+ SM.addScreen(psguardaViaje);
+
+ guardaViajeEN.addElement("Back to menu", "menu");
+ //guardaViajeEN.addElement("Postprocessing", "menu");
+ guardaViajeEN.addElement("Rename", "teclado");
+ guardaViajeEN.addElement("Delete", "archivoBorrado");
+ guardaViajeEN.setSelect(0);
+ SC.addScreen(pguardaViajeEN, "guardaViaje", INGLES);
+ SM.addScreen(psguardaViajeEN);
+
+ // Pantalla de las opciones de un viaje cuando accedes a él mediante la lista de viajes
+ opcionesViaje.addElement("Cambiar nombre", "teclado");
+ opcionesViaje.addElement("Borrar", "listadoViajes");
+ opcionesViaje.setSelect(0);
+ opcionesViaje.setBackScreen("listadoViajes");
+ SC.addScreen(popcionesViaje, "rOptions", ESPANOL);
+ SM.addScreen(psopcionesViaje);
+
+ opcionesViajeEN.addElement("Rename", "teclado");
+ opcionesViajeEN.addElement("Delete", "listadoViajes");
+ opcionesViajeEN.setSelect(0);
+ opcionesViajeEN.setBackScreen("listadoViajes");
+ SC.addScreen(popcionesViajeEN, "rOptions", INGLES);
+ SM.addScreen(psopcionesViajeEN);
+
+ // Mensaje de archivo guardado
+ SC.addScreen(parchivoGuardado, "archivoGuardado", ESPANOL);
+ SC.addScreen(parchivoGuardadoEN, "archivoGuardado", INGLES);
+
+ // Mensaje de archivo borrado
+ archivoBorrado.addElement("Viaje borrado");
+ archivoBorrado.addElement("correctamente");
+ archivoBorrado.setBackScreen("menu");
+ SC.addScreen(parchivoBorrado, "archivoBorrado", ESPANOL);
+
+ archivoBorradoEN.addElement("Deleted file");
+ archivoBorradoEN.addElement("corretly");
+ archivoBorradoEN.setBackScreen("menu");
+ SC.addScreen(parchivoBorradoEN, "archivoBorrado", INGLES);
+
+ // Mensade de existencia de un viaje con el mismo nombre
+ nombreExistente.addElement("Ya existe un");
+ nombreExistente.addElement("viaje con el");
+ nombreExistente.addElement("nombre introducido.");
+ nombreExistente.setBackScreen("guardaViaje");
+ SC.addScreen(pnombreExistente, "alredyExist", ESPANOL);
+
+ nombreExistenteEN.addElement("Alredy exist a");
+ nombreExistenteEN.addElement("ride with the");
+ nombreExistenteEN.addElement("entered name");
+ nombreExistenteEN.setBackScreen("guardaViaje");
+ SC.addScreen(pnombreExistenteEN, "alredyExist", INGLES);
+
+ /****************************************/
+
+ /********************************************
+ CARGA DE LA CONFIGURACIÓN
+ ********************************************/
+ char aux[16];
+ // Se selecciona el idioma
+ config.getIdioma(aux);
+ if(strcmp(aux, "spanish") == 0){
+ SC.selectGroup(0);
+ }else if(strcmp(aux, "english") == 0){
+ SC.selectGroup(1);
+ }
+
+ // Se selecciona el modo de selección
+ config.getFormaSeleccion(aux);
+ if(strcmp(aux, "shading") == 0){
+ SM.setInverterSelection();
+ }else if(strcmp(aux, "framing") == 0){
+ SM.setRectSelection();
+ }
+
+ /****************************************/
+
+ SC.initialize();
+ while(1){
+ SC.update();
+ }
+}
\ No newline at end of file
