lib to parse text file from SDCard, for config of RepRap printers December 11, 2010 09:52AM |
Registered: 14 years ago Posts: 356 |
Re: lib to parse text file from SDCard, for config of RepRap printers March 27, 2011 06:21PM |
// Function to clear a string void clearStr (char* str) { int len = strlen(str); for (int c = 0; c < len; c++) { str[c] = 0; } } // Function for parse varibales in a config.txt file stored in sdcard int getconfig(char* str) { int valor=0; char configfile[]="CONFIG.TXT"; // definim fitxer configuracio if (!file.open(&root, configfile, O_READ)) { Serial.println("NO TROB CONFIG.TXT!!!"); Serial.println(); } else{ boolean flag_comando = false; char configcomando[100]; char comana[6]; // pot guardar fins a 99999 (darrera posiciĆ³ reservada per 0; int indexconfig=0; int16_t c; while ((c = file.read()) > 0) { configcomando[indexconfig]=(char)c; indexconfig++; if(strstr(configcomando,str)){ indexconfig=0; clearStr(configcomando); flag_comando = true; } if(c==59){ int llarga = strlen(configcomando); int i2=0; // index de 2on string for(int cont=1;cont0 ;i--){ voltes++; if(voltes==5){ valor=valor+((comana[i-1]-48)*10000); } if(voltes==4){ valor=valor+((comana[i-1]-48)*1000); } if(voltes==3){ valor=valor+((comana[i-1]-48)*100); } if(voltes==2){ valor=valor+((comana[i-1]-48)*10); } if(voltes==1){ valor=valor+(comana[i-1]-48); } } } return valor; }
Re: lib to parse text file from SDCard, for config of RepRap printers March 27, 2011 06:30PM |
Registered: 14 years ago Posts: 356 |
uint16_t read_u16 (FIL *file, uint8_t *line) { f_gets(line, 80, file); /* read one line */ uint8_t *p_pos = strchr(line, '='); /* find the '=' position */ return (atoi(p_pos+1)); }
Re: lib to parse text file from SDCard, for config of RepRap printers July 10, 2012 01:24PM |
#include #include Sd2Card card; SdVolume volume; SdFile root; SdFile file; // store error strings in flash to save RAM #define error(s) error_P(PSTR(s)) void error_P(const char *str) { PgmPrint("error: "); SerialPrintln_P(str); if (card.errorCode()) { PgmPrint("SD error: "); Serial.print(card.errorCode(), HEX); Serial.print(','); Serial.println(card.errorData(), HEX); } while(1); } void setup(void) { Serial.begin(9600); Serial.println(); Serial.println("type any character to start"); while (!Serial.available()); Serial.println(); // initialize the SD card if (!card.init()) error("card.init"); // initialize a FAT volume if (!volume.init(card)) error("volume.init"); Serial.println(); int cytime=getconfig("temps"); Serial.println(cytime); } void loop(void) { } // Function to clear a string void clearStr (char* str) { int len = strlen(str); for (int c = 0; c < len; c++) { str[c] = 0; } } // Function for parse varibales in a config.txt file stored in sdcard int getconfig(char* str) { int valor=0; char configfile[]="CONFIG.TXT"; // definim fitxer configuracio if (!file.open(&root, configfile, O_READ)) { Serial.println("NO TROB CONFIG.TXT!!!"); Serial.println(); } else{ boolean flag_comando = false; char configcomando[100]; char comana[6]; // pot guardar fins a 99999 (darrera posiciĆ³ reservada per 0; int indexconfig=0; int16_t c; while ((c = file.read()) > 0) { configcomando[indexconfig]=(char)c; indexconfig++; } /* if(strstr(configcomando,str)){ indexconfig=0; clearStr(configcomando); flag_comando = true; } */ } return valor; }