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