Ho un grosso problema
devo leggere da un file in SD
per ogni riga devo estrapolare due dati divisi da un '='
tipo Kiave = Valore.
il contenuto della SD e':
ID_code=A1A0F664
SSID=Xxxxxx
IP=192.168.1.10
GW=192.168.1.1
FTPServer=ftp.XyXxyXX.org
FTPUtente=bingoBongo
FTPPasswd=pimoub
FTPDirectory=/
questo e' il programma
#include <SPI.h>
#include <SoftwareSerial.h>
#include <SD.h>
#include <string.h>
const int chipSelect = 4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.print("Initializing SD card...");
pinMode(SS, OUTPUT);
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed!");
return;
}
}
boolean sdReadConfig() {
char Buf[200];
char * Kiave;
char * Valore;
int px=0;
Serial.print ("-------------------------------- LEGGO CONFIGURAZIONE");
File FileConf;
FileConf=SD.open("Config.ini",FILE_READ);
if(FileConf==false) {
Serial.print ("Non Trovo il file Config.ini");
return false;
}
// Parsed dei dati letti
char *readLine ="";
if (FileConf = SD.open("Config.ini",O_READ) ) {
Serial.println("...........ESISTE IL FILE.......");
char c;
while ( ( c=FileConf.read())>0) { // Cicla fino a quando non ha finito di leggere i dati da SD
readLine += c; // inserisce un carattere alla volta in readLine
if (c=='\n') { // Quando trova un CR+LF chiude la riga
Serial.print("Nuova Linea.............>");
Serial.println( readLine);
Kiave="";
Kiave=strtok(readLine,"=");
Valore=strtok(NULL,"=");
Serial.print("Kiave=");
Serial.println(Kiave);
Serial.print("Valore=");
Serial.println(Valore);
readLine="";
}
}
return true;
}
}
void loop() {
// put your main code here, to run repeatedly:
sdReadConfig();
while (-1) delay(1000);
}
e questo e' il risultato:
Initializing SD card...-------------------------------- LEGGO CONFIGURAZIONE...........ESISTE IL FILE.......
Nuova Linea.............>¹z¹ÿøºoð}û·§™ö» õ!<žicmí³øå—ë®^móÿXßG
]òoíî·†Ý{Ã�evŸú~îׯþwOñ»4¯ªìïU¹ÕY¥?ìeTôIñÿÉ[XïÖ�ÿÿJÝÓsàßþ'oßm
Kiave=¹z¹ÿøºoð}û·§™ö» õ!<žicmí³øå—ë®^móÿXßG
]òoíî·†Ý{Ã�evŸú~îׯþwOñ»4¯ªìïU¹ÕY¥?ìeTôIñÿÉ[XïÖ�ÿÿJÝÓsàßþ'oßm
Valore=
Nuova Linea.............>
Kiave=
Valore=
Nuova Linea.............>
Kiave=
Valore=
Nuova Linea.............>
Kiave=
Valore=
Nuova Linea.............>
Kiave=
Valore=
Nuova Linea.............>¿xþðý8±~}øÜ·tR¼ÿ¿%*eÿ;–óó«Ú]ûÇó&ókÏ3{ðÂb׺·Ù}ü:ÿü-ïÙgÍ^Îo;nœà{nåwl¿÷´¯-ÌÊçf{Yì/Ù»û{ï>E
Kiave=¿xþðý8±~}øÜ·tR¼ÿ¿%*eÿ;–óó«Ú]ûÇó&ókÏ3{ðÂb׺·Ù}ü:ÿü-ïÙgÍ^Îo;nœà{nåwl¿÷´¯-ÌÊçf{Yì/Ù»û{ï>E
Valore=
Nuova Linea.............>%ï+} Þ×þ‰|Wúø·o¸{oÕïý;g‹»¿\‡o÷åqüí„ÎÿÅoG0Xå¶ÎS†3kæß)ÿy¯ÿ4îTíþâJïò�¼¿xþðý8±~}øÜ·tR¼ÿ¿%*eÿ;–óó«Ú]ûÇó&ókÏ3{ðÂb׺·Ù}ü:ÿü-ïÙgÍ^Îo;nœà{nåwl¿÷´¯-ÌÊçf{Yì/Ù»û{ï>E
Kiave=%ï+} Þ×þ‰|Wúø·o¸{oÕïý;g‹»¿\‡o÷åqüí„ÎÿÅoG0Xå¶ÎS†3kæß)ÿy¯ÿ4îTíþâJïò�¼¿xþðý8±~}øÜ·tR¼ÿ¿%*eÿ;–óó«Ú]ûÇó&ókÏ3{ðÂb׺·Ù}ü:ÿü-ïÙgÍ^Îo;nœà{nåwl¿÷´¯-ÌÊçf{Yì/Ù»û{ï>E
Valore=
Nuova Linea.............>âöG¿ß÷NÜ)ŽæÿÚ|ý{ºîó/9Eá㮞۷£êû¶|Žì•Þ÷¯²«ÿõÿ¢w,ÿ§·Oezú¦Gü†ÿDëŸu4ÙäXSÿÿ¯¸OU•Öý–q÷&�þ_÷'’\kßûãØËæ±?O>i>Ô7þüªÿeëÍê¾ÿ>t_ŸÜ•ÇßýP¸ÔòïÖÏ6Í—ï˜ÿñ.?Ø9îתÌî¥ëÃñZÝO‚‡þù³£Ä;ç�/o9ïÇÛ‡¼¹Øè#jÞ-ä·¾Cºt%ï+} Þ×þ‰|Wúø·o¸{oÕïý;g‹»¿\‡o÷åqüí„ÎÿÅoG0Xå¶ÎS†3kæß)ÿy¯ÿ4îTíþâJïò�¼¿xþðý8±~}øÜ·tR¼ÿ¿%*eÿ;–óó«Ú]ûÇó&ókÏ3{ðÂb׺·Ù}ü:ÿü-ïÙgÍ^Îo;nœà{nåwl¿÷´¯-ÌÊçf{Yì/Ù»û{ï>E
Kiave=âöG¿ß÷NÜ)ŽæÿÚ|ý{ºîó/9Eá㮞۷£êû¶|Žì•Þ÷¯²«ÿõÿ¢w,ÿ§·Oezú¦Gü†ÿDëŸu4ÙäXSÿÿ¯¸OU•Öý–q÷&�þ_÷'’\kßûãØËæ±?O>i>Ô7þüªÿeëÍê¾ÿ>t_ŸÜ•ÇßýP¸ÔòïÖÏ6Í—ï˜ÿñ.?Ø9îתÌî¥ëÃñZÝO‚‡þù³£Ä;ç�/o9ïÇÛ‡¼¹Øè#jÞ-ä·¾Cºt%ï+} Þ×þ‰|Wúø·o¸{oÕïý;g‹»¿\‡o÷åqüí„ÎÿÅoG0Xå¶ÎS†3kæß)ÿy¯ÿ4îTíþâJïò�¼¿xþðý8±~}øÜ·tR¼ÿ¿%*eÿ;–óó«Ú]ûÇó&ókÏ3{ðÂb׺·Ù}ü:ÿü-ïÙgÍ^Îo;nœà{nåwl¿÷´¯-ÌÊçf{Yì/Ù»û{ï>E
Valore=
se tolgo la parte di conversione strtok() il valore della stringa readLine viene fuori giusto
chi mi puo' dire qualche cosa in merito?