teste de publish
Dependencies: DS1820 HighSpeedAnalogIn devices mbed
Diff: funcoesSDCard.cpp
- Revision:
- 11:631bea162800
- Parent:
- 10:263c093f8977
- Child:
- 13:b9183b4bc049
diff -r 263c093f8977 -r 631bea162800 funcoesSDCard.cpp --- 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); }