teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
9:cf406384efd9
Parent:
7:ae9c47f62946
Child:
10:263c093f8977
--- 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);
 }