teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
11:631bea162800
Parent:
10:263c093f8977
Child:
13:b9183b4bc049
--- a/funcoesSDCard.cpp	Mon Aug 14 13:59:27 2017 +0000
+++ b/funcoesSDCard.cpp	Wed Aug 30 18:42:18 2017 +0000
@@ -10,6 +10,7 @@
 arquivoSD sdCard::status;
 arquivoSD sdCard::tempFile;
 uint8_t sdCard::currentBank;
+uint8_t sdCard::currentBankSending;
 bool sdCard::arquivosAbertos=false;
 
 char sdCard::nomeArquivoEmRecebimento[30];
@@ -76,10 +77,11 @@
     return true;
 }*/
 
-uint8_t sdCard::verificaCurrentBank(void){
-    uint8_t currentBank = 3;
+void sdCard::verificaCurrentBank(void){        
     if(sdCard::abreArquivo(&sdCard::currentBankFile,"r")){            
-        pc.printf("sdCard::verificaCurrentBank[1]\r\n");        
+        pc.printf("sdCard::verificaCurrentBank[1]\r\n");
+        sdCard::currentBank = 3;
+        sdCard::currentBankSending = 3;
     }else{
         pc.printf("sdCard::verificaCurrentBank[2]\r\n");
         //Criando bank 0
@@ -87,50 +89,56 @@
             sdCard::fechaArquivo(&sdCard::bank0);
         }else{
             pc.printf("sdCard::verificaCurrentBank[3]\r\n");
-            return 2;
+            return;
          }
         //Criando bank 1
         if(sdCard::abreArquivo(&sdCard::bank1,"w")){
             sdCard::fechaArquivo(&sdCard::bank1);
         }else{
             pc.printf("sdCard::verificaCurrentBank[4]\r\n");
-            return 2;
+            return;
          }
         //Criando currentBank
         if(sdCard::abreArquivo(&sdCard::currentBankFile,"w")){            
             fputc('0',sdCard::currentBankFile.fp);
+            fputc('0',sdCard::currentBankFile.fp);
             fflush(sdCard::currentBankFile.fp);
             sdCard::fechaArquivo(&sdCard::currentBankFile);
-            currentBank = 0;
+            sdCard::currentBank = 0;
+            sdCard::currentBankSending = 0;
         }else{            
             pc.printf("sdCard::verificaCurrentBank[5]\r\n");
-            return 2;
+            return;
          }
      }
     
     if(currentBank==3){
         pc.printf("sdCard::verificaCurrentBank[6]\r\n");
-        currentBank = fgetc(sdCard::currentBankFile.fp);
-        currentBank = currentBank - 48;
+        sdCard::currentBank = fgetc(sdCard::currentBankFile.fp);
+        sdCard::currentBank = sdCard::currentBank - 48;
+        sdCard::currentBankSending = fgetc(sdCard::currentBankFile.fp);
+        sdCard::currentBankSending = sdCard::currentBankSending -48;
+        sdCard::fechaArquivo(&sdCard::currentBankFile);
     }
-    pc.printf("sdCard::verificaCurrentBank[7]\r\n");
-    sdCard::fechaArquivo(&sdCard::currentBankFile);
-    pc.printf("sdCard::verificaCurrentBank[8]\r\n");    
-    return currentBank;
+    pc.printf("sdCard::verificaCurrentBank[7]\r\n");    
 }
 
-uint8_t sdCard::modificaCurrentBank(uint8_t newCurrentBank){
-    uint8_t currentBank = sdCard::verificaCurrentBank();
-    if(currentBank == newCurrentBank){
+uint8_t sdCard::modificaCurrentBank(uint8_t newCurrentBank,uint8_t newCurrentBankSending){
+    //sdCard::verificaCurrentBank();
+    if((sdCard::currentBank == newCurrentBank)&&(sdCard::currentBankSending == newCurrentBankSending)){
         return 1;    
     }else{
-        sdCard:excluiArquivo(&sdCard::currentBankFile);
+        //if(!sdCard::excluiArquivo(&sdCard::currentBankFile)){return 0;}
         if(sdCard::abreArquivo(&sdCard::currentBankFile,"w")){
             if(newCurrentBank){fputc('1',sdCard::currentBankFile.fp);fflush(sdCard::currentBankFile.fp);}
             else{fputc('0',sdCard::currentBankFile.fp);fflush(sdCard::currentBankFile.fp);}
-            sdCard::fechaArquivo(&sdCard::currentBankFile);
+            if(newCurrentBankSending){fputc('1',sdCard::currentBankFile.fp);fflush(sdCard::currentBankFile.fp);}
+            else{fputc('0',sdCard::currentBankFile.fp);fflush(sdCard::currentBankFile.fp);}
+            sdCard::fechaArquivo(&sdCard::currentBankFile);            
+            sdCard::currentBank = newCurrentBank;
+            sdCard::currentBankSending = newCurrentBankSending;            
         }else{
-            return 2;   
+            return 0;   
          }
      }
     return 1;
@@ -140,8 +148,8 @@
     //Struct do arquivo, dados a inserir e tamanho deles    
     uint16_t i;
     arquivoSD *arquivo;    
-    sdCard::currentBank = verificaCurrentBank();
-    if(sdCard::currentBank == 2){
+    //verificaCurrentBank();
+    if(sdCard::currentBank > 1){
         pc.printf("sdCard::insereDadosBank[1]\r\n");
         return false;
     }
@@ -186,7 +194,7 @@
     return true;
 }
 bool sdCard::fechaArquivo(arquivoSD* arquivo){
-    //Struct do arquivo    
+    //Struct do arquivo
     fclose(arquivo->fp);
     arquivo->aberto = false;
     return true;    
@@ -194,7 +202,7 @@
 
 bool sdCard::excluiArquivo(arquivoSD *arquivo){
     if(arquivo->aberto){
-        if(!sdCard::fechaArquivo(arquivo)){return false;}
+        sdCard::fechaArquivo(arquivo);
     }
     if(!remove(arquivo->nome)){return false;}
     return true;
@@ -235,7 +243,7 @@
     }else{
         fechaArquivo(&sdCard::devices);   
      }
-    sdCard::currentBank = sdCard::verificaCurrentBank();
+    sdCard::verificaCurrentBank();
     return 1;
 }
 
@@ -243,24 +251,25 @@
     switch(bank){
         case 0:
                 sdCard::excluiArquivo(&sdCard::bank0);
-                sdCard::abreArquivo(&sdCard::bank0,"w");
-                sdCard::fechaArquivo(&sdCard::bank0);
+                /*sdCard::abreArquivo(&sdCard::bank0,"w");
+                sdCard::fechaArquivo(&sdCard::bank0);*/
             break;
         case 1:
                 sdCard::excluiArquivo(&sdCard::bank1);
-                sdCard::abreArquivo(&sdCard::bank1,"w");
-                sdCard::fechaArquivo(&sdCard::bank1);
+                /*sdCard::abreArquivo(&sdCard::bank1,"w");
+                sdCard::fechaArquivo(&sdCard::bank1);*/
             break;
         case 2:
                 sdCard::excluiArquivo(&sdCard::bank0);
-                sdCard::abreArquivo(&sdCard::bank0,"w");
-                sdCard::fechaArquivo(&sdCard::bank0);
+                /*sdCard::abreArquivo(&sdCard::bank0,"w");
+                sdCard::fechaArquivo(&sdCard::bank0);*/
                 sdCard::excluiArquivo(&sdCard::bank1);
-                sdCard::abreArquivo(&sdCard::bank1,"w");
-                sdCard::fechaArquivo(&sdCard::bank1);    
+                /*sdCard::abreArquivo(&sdCard::bank1,"w");
+                sdCard::fechaArquivo(&sdCard::bank1);    */
                 sdCard::excluiArquivo(&sdCard::currentBankFile);
                 if(sdCard::abreArquivo(&sdCard::currentBankFile,"w")){
                     fputc('0',sdCard::currentBankFile.fp);
+                    fputc('0',sdCard::currentBankFile.fp);
                     fflush(sdCard::currentBankFile.fp);
                     sdCard::fechaArquivo(&sdCard::currentBankFile);
                 }