teste de publish
Dependencies: DS1820 HighSpeedAnalogIn devices mbed
Diff: funcoesSDCard.cpp
- Revision:
- 9:cf406384efd9
- Parent:
- 7:ae9c47f62946
- Child:
- 10:263c093f8977
diff -r 9f8ad3dbeb87 -r cf406384efd9 funcoesSDCard.cpp --- a/funcoesSDCard.cpp Tue Jul 18 20:00:43 2017 +0000 +++ b/funcoesSDCard.cpp Wed Aug 09 20:38:10 2017 +0000 @@ -169,6 +169,11 @@ return 1; } + sdCard::getFileTam(&sdCard::armazenamento); + if(armazenamento.bytes>46080){ + sdCard::excluiArquivo(&sdCard::armazenamento); + } + //Incluindo o status no envio modemCom::writeStatusToSD(); @@ -227,11 +232,11 @@ } -//*********************************************************** +/*//*********************************************************** // file_rename: renames a file (via copy & delete). // Moves data instead of adjusting the file name in the // file directory. Checks to insure the file was renamed. -// Returns -1 = error; 0 = success +// Returns 0 = error; 1 = success //*********************************************************** uint8_t sdCard::file_rename(const char *oldfname, const char *newfname) { //rename(oldfname,newfname); @@ -283,4 +288,85 @@ sdCard::arquivosAbertos=false; pc.printf("file_rename retval <%lu>.\r\n",retval); return (retval); +}*/ + +//*********************************************************** +// file_rename: renames a file (via copy & delete). +// Moves data instead of adjusting the file name in the +// file directory. Checks to insure the file was renamed. +// Returns 0 = error; 1 = success +//*********************************************************** +uint8_t sdCard::file_rename(const char *oldfname, const char *newfname) { + //rename(oldfname,newfname); + #define maxTamFileCopy 128 + char bufCopy[maxTamFileCopy]; + uint8_t retval = 0; + uint32_t fileSize = 0; + uint32_t fileNumParts = 0; + uint32_t fileEnding=0; + char ch; + uint32_t i,j; + sdCard::envio.bytes=0; + + if(!sdCard::arquivoAberto(30000)){return false;} + + + FILE *fpold = fopen(oldfname, "r"); // src file + + if(fpold == NULL){ + fclose(fpold); + return 0; + } + + sdCard::arquivosAbertos = true; + + FILE *fpnew = fopen(newfname, "w"); // dest file + + if(fpnew == NULL){ + fclose(fpnew); + return 0; + sdCard::arquivosAbertos = false; + } + + + pc.printf("Iniciando copia.\n"); + + + fseek(fpold, 0, SEEK_END); // seek to end of file + fileSize = ftell(fpold); // get current file pointer + fseek(fpold, 0, SEEK_SET); // seek back to beginning of file + + sdCard::envio.bytes=0; + + fileNumParts = fileSize/maxTamFileCopy; + fileEnding = fileSize%maxTamFileCopy; + for(i=0;i<fileNumParts;i++){ + for(j=0;j<maxTamFileCopy;j++){ + bufCopy[j]=fgetc(fpold); + } + for(j=0;j<maxTamFileCopy;j++){ + fputc(bufCopy[j],fpnew); + } + } + for(j=0;j<fileEnding;j++){ + bufCopy[j]=fgetc(fpold); + } + for(j=0;j<fileEnding;j++){ + fputc(bufCopy[j],fpnew); + } + fclose(fpnew); + fclose(fpold); + + fpnew = fopen(newfname, "r"); // Reopen dest to insure + if(fpnew == NULL) { // that it was created. + retval = (0); // Return Error. + } + else { + fclose(fpnew); + remove(oldfname); // Remove original file. + retval = (1); // Return Success. + } + sdCard::arquivosAbertos=false; + pc.printf("file_rename retval <%lu>.\r\n",retval); + return (retval); }