ArduinoNVS ou Preferences - impossible de stocker des String de 80 octets
Bonjour à tous.
N'ayant pas trouvé la solution pour stocker des fichiers de 80 octets sur SPIFFS ou avec LittleFS, j'ai tenté de le faire dans un premier temps en vain avec la librairie ArduinoNVS puis avec Preferences.
Dans ces deux derniers cas, il parait impossible de stocker plus de 8 octets: l'enregistrement se passe bien mais à la relecture le fichier est vide.
La routine d'enregistrement:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Preferences pref;
//*********Enregistrement en NVS d'un programme complet (10 manip de 8 octets) 6x => Px x=0 a* 9
case '6':{
String tempo="";
char nFic[3];
nprog = ci(com[1]); //numero de programme Conversion ASCII en Numérique
if(!(nprog>=0 && nprog<=9)) afficErreurs(prg);
else{
nFic[0]= 'P'; nFic[1]=com[1]; nFic[2]='\0'; //numero de fic Px avec x=0 à 9
for(int i=0;i<80;i++){
tempo += pg[nprog][i]; //char pg[10][80]; 10 programmes de 8*10 manips
}
int size = pref.putString(nFic,tempo); //dans le fichier Px on enregistre tout le programme x
lcd.clear();lcd.print(size); delay(2000); lcd.clear();
}
}
break; |
Le résultat indique bien le nombre d'octets enregistré.
Mais à la relecture, l'enregistrement est vide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| //****affichage memoire programmee x *****
case '5':{
String tempo="";
char prog[3];
prog[0]='P'; prog[1]= com[1]; prog[2]='\0';
tempo = pref.getString(prog,"");
for(i=0;i<10;i++){
lcd.clear(); lcd.print(String(prog) + " " + String(i));
lcd.setCursor(0,1); lcd.print(tempo.substring(i*8,i*8+8)); //affichage par 8 octets
delai('s',2);
}
}
break; |
Si quelqu'un a une idée pour ce problème.