Versión de Firmware con funciones de RAM incorporadas.
Dependencies: mbed
Fork of VmRecorderV1dot1 by
Pantallas/GuardarOtroNombre.cpp@2:e818c80e6d5c, 2015-07-14 (annotated)
- 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?
User | Revision | Line number | New 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 "GuardarOtroNombre.h" |
JuanManuelAmador | 0:3d456b8ce449 | 5 | |
JuanManuelAmador | 0:3d456b8ce449 | 6 | extern FechaHora FH; |
JuanManuelAmador | 0:3d456b8ce449 | 7 | extern ScreenManager SC; |
JuanManuelAmador | 0:3d456b8ce449 | 8 | extern SistemaArchivos SA; |
JuanManuelAmador | 0:3d456b8ce449 | 9 | extern MSCFileSystem msc; |
JuanManuelAmador | 0:3d456b8ce449 | 10 | extern Teclado keyboard; |
JuanManuelAmador | 0:3d456b8ce449 | 11 | |
JuanManuelAmador | 0:3d456b8ce449 | 12 | extern Mensaje guardadoCorrect; |
JuanManuelAmador | 0:3d456b8ce449 | 13 | extern Mensaje guardadoCorrectEN; |
JuanManuelAmador | 0:3d456b8ce449 | 14 | |
JuanManuelAmador | 0:3d456b8ce449 | 15 | extern Mensaje nombreExistente; |
JuanManuelAmador | 0:3d456b8ce449 | 16 | extern Mensaje nombreExistenteEN; |
JuanManuelAmador | 0:3d456b8ce449 | 17 | |
JuanManuelAmador | 0:3d456b8ce449 | 18 | GuardarOtroNombre::GuardarOtroNombre(char nextScreen[], char newAdvice[], char newWaitMsg[]):Mensaje(nextScreen, newAdvice){ |
JuanManuelAmador | 0:3d456b8ce449 | 19 | nombreAntiguo = NULL; |
JuanManuelAmador | 0:3d456b8ce449 | 20 | strcpy(waitMsg, newWaitMsg); |
JuanManuelAmador | 0:3d456b8ce449 | 21 | } |
JuanManuelAmador | 0:3d456b8ce449 | 22 | |
JuanManuelAmador | 0:3d456b8ce449 | 23 | void GuardarOtroNombre::setNombreAntiguo(char *oldName){ |
JuanManuelAmador | 0:3d456b8ce449 | 24 | nombreAntiguo = oldName; |
JuanManuelAmador | 0:3d456b8ce449 | 25 | } |
JuanManuelAmador | 0:3d456b8ce449 | 26 | |
JuanManuelAmador | 0:3d456b8ce449 | 27 | void GuardarOtroNombre::disableNombreAntiguo(){ |
JuanManuelAmador | 0:3d456b8ce449 | 28 | nombreAntiguo = NULL; |
JuanManuelAmador | 0:3d456b8ce449 | 29 | } |
JuanManuelAmador | 0:3d456b8ce449 | 30 | |
JuanManuelAmador | 0:3d456b8ce449 | 31 | void GuardarOtroNombre::initialize(DogMLCD* lcd){ |
JuanManuelAmador | 0:3d456b8ce449 | 32 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 33 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 34 | // Se pinta un mensaje de espera |
JuanManuelAmador | 0:3d456b8ce449 | 35 | lcd->XString(OFFSETX + 8, 23, waitMsg); |
JuanManuelAmador | 0:3d456b8ce449 | 36 | // Se envía a la pantalla física |
JuanManuelAmador | 0:3d456b8ce449 | 37 | lcd->Flush(); |
JuanManuelAmador | 0:3d456b8ce449 | 38 | // Se deja la pantalla en blanco para cuando se acabe de cambair de nombre el archivo |
JuanManuelAmador | 0:3d456b8ce449 | 39 | lcd->Clear(); |
JuanManuelAmador | 0:3d456b8ce449 | 40 | |
JuanManuelAmador | 0:3d456b8ce449 | 41 | // Se cambia el nombre del archivo del propio USB |
JuanManuelAmador | 0:3d456b8ce449 | 42 | char oldFile[64]; |
JuanManuelAmador | 0:3d456b8ce449 | 43 | char newName[64]; |
JuanManuelAmador | 0:3d456b8ce449 | 44 | char aux[64]; |
JuanManuelAmador | 0:3d456b8ce449 | 45 | |
JuanManuelAmador | 0:3d456b8ce449 | 46 | // Si el nombreAntiguo vale NULL se toma como nombre antiguo la última fecha y hora guardado |
JuanManuelAmador | 0:3d456b8ce449 | 47 | if(nombreAntiguo == NULL){ |
JuanManuelAmador | 0:3d456b8ce449 | 48 | strcpy(aux, FH.getFechaHora()); |
JuanManuelAmador | 0:3d456b8ce449 | 49 | strcpy(oldFile, "/usb/RAW"); |
JuanManuelAmador | 0:3d456b8ce449 | 50 | strcat(oldFile, aux); |
JuanManuelAmador | 0:3d456b8ce449 | 51 | strcat(oldFile, ".txt"); |
JuanManuelAmador | 0:3d456b8ce449 | 52 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 53 | strcpy(oldFile, "/usb/"); |
JuanManuelAmador | 0:3d456b8ce449 | 54 | strcat(oldFile, nombreAntiguo); |
JuanManuelAmador | 0:3d456b8ce449 | 55 | strcat(oldFile, ".txt"); |
JuanManuelAmador | 0:3d456b8ce449 | 56 | } |
JuanManuelAmador | 0:3d456b8ce449 | 57 | |
JuanManuelAmador | 0:3d456b8ce449 | 58 | // Si el archivo no se puede cargar se pasa a la pantalla que avisa que el USB está lleno o desconectado |
JuanManuelAmador | 0:3d456b8ce449 | 59 | FILE* file; |
JuanManuelAmador | 0:3d456b8ce449 | 60 | file = fopen(oldFile, "r"); |
JuanManuelAmador | 0:3d456b8ce449 | 61 | if(file == NULL){ |
JuanManuelAmador | 0:3d456b8ce449 | 62 | SC.changeScreen("USBdesconectado"); |
JuanManuelAmador | 0:3d456b8ce449 | 63 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 64 | // Se cierra el archivo |
JuanManuelAmador | 0:3d456b8ce449 | 65 | fclose(file); |
JuanManuelAmador | 0:3d456b8ce449 | 66 | // El nombre nuevo se toma de el texto introducido con el teclado |
JuanManuelAmador | 0:3d456b8ce449 | 67 | strcpy(aux, keyboard.getNombre()); |
JuanManuelAmador | 0:3d456b8ce449 | 68 | // Se comprueba si ya existe un fichero con este nombre |
JuanManuelAmador | 0:3d456b8ce449 | 69 | if(SA.alredyExist(aux)){ |
JuanManuelAmador | 0:3d456b8ce449 | 70 | // Se configura la pantalla siguiente según si se está guardan un viaje nuevo con otro nombre o se está cambiando el nombre a uno ya existente |
JuanManuelAmador | 0:3d456b8ce449 | 71 | if(nombreAntiguo != NULL){ // Se debe de volver a la pantalla de opciones del viaje |
JuanManuelAmador | 0:3d456b8ce449 | 72 | nombreExistente.setNextScreen("rOptions"); |
JuanManuelAmador | 0:3d456b8ce449 | 73 | nombreExistente.setBackScreen("rOptions"); |
JuanManuelAmador | 0:3d456b8ce449 | 74 | nombreExistenteEN.setNextScreen("rOptions"); |
JuanManuelAmador | 0:3d456b8ce449 | 75 | nombreExistenteEN.setBackScreen("rOptions"); |
JuanManuelAmador | 0:3d456b8ce449 | 76 | }else{ // Se debe volver a la pantalla de guardado de nuevo viaje |
JuanManuelAmador | 0:3d456b8ce449 | 77 | nombreExistente.setNextScreen("guardaViaje"); |
JuanManuelAmador | 0:3d456b8ce449 | 78 | nombreExistente.setBackScreen("guardaViaje"); |
JuanManuelAmador | 0:3d456b8ce449 | 79 | nombreExistenteEN.setNextScreen("guardaViaje"); |
JuanManuelAmador | 0:3d456b8ce449 | 80 | nombreExistenteEN.setBackScreen("guardaViaje"); |
JuanManuelAmador | 0:3d456b8ce449 | 81 | } |
JuanManuelAmador | 0:3d456b8ce449 | 82 | SC.changeScreen("alredyExist"); |
JuanManuelAmador | 0:3d456b8ce449 | 83 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 84 | // Se va a guardar cno otro nombre el archivo asi que |
JuanManuelAmador | 0:3d456b8ce449 | 85 | if(nombreAntiguo != NULL){ |
JuanManuelAmador | 0:3d456b8ce449 | 86 | SA.renameRide(nombreAntiguo, aux); |
JuanManuelAmador | 0:3d456b8ce449 | 87 | }else{ // Se guarda el nuevo nombre del archivo en la lista de nombres de los viajes sólo si nombreAntiguo vale NULL |
JuanManuelAmador | 0:3d456b8ce449 | 88 | strcpy(newName, "/usb/"); |
JuanManuelAmador | 0:3d456b8ce449 | 89 | strcat(newName, aux); |
JuanManuelAmador | 0:3d456b8ce449 | 90 | strcat(newName, ".txt"); |
JuanManuelAmador | 0:3d456b8ce449 | 91 | SA.file_rename(oldFile, newName); |
JuanManuelAmador | 0:3d456b8ce449 | 92 | strcpy(newName, keyboard.getNombre()); |
JuanManuelAmador | 0:3d456b8ce449 | 93 | SA.addElement(newName); |
JuanManuelAmador | 0:3d456b8ce449 | 94 | } |
JuanManuelAmador | 0:3d456b8ce449 | 95 | |
JuanManuelAmador | 0:3d456b8ce449 | 96 | // Se muestra el mensaje de archivo guardado correctamente por pantalla |
JuanManuelAmador | 0:3d456b8ce449 | 97 | Mensaje::initialize(lcd); |
JuanManuelAmador | 0:3d456b8ce449 | 98 | } |
JuanManuelAmador | 0:3d456b8ce449 | 99 | } |
JuanManuelAmador | 0:3d456b8ce449 | 100 | } |
JuanManuelAmador | 0:3d456b8ce449 | 101 | |
JuanManuelAmador | 0:3d456b8ce449 | 102 | void GuardarOtroNombre::button5pressed(DogMLCD* lcd){ |
JuanManuelAmador | 0:3d456b8ce449 | 103 | Mensaje::button5pressed(lcd); |
JuanManuelAmador | 0:3d456b8ce449 | 104 | } |