Sauvegarde d'un tableau int [3][8] avec ESP32

Bonjour à tous,
Je suis perdu, il a t-il une solution (pas trop compliquée) pour sauvegarder un tableau d'int [3][8] qui doit être mis a jour et restaurer à chaque restart d'un ESP32.
J'ai essayer une usine à gaz en utilisant "preferences" mais sans succès.

Merci de vos lumières

Dans la doc espressif, il y a un chapitre qui aborde la sauvegarde de données volumineuses en utilisant putBytes() et getBytes()

https://docs.espressif.com/projects/arduino-esp32/en/latest/tutorials/preferences.html#working-with-large-data

essayez ce code

#include <Preferences.h>
Preferences preferences;

int tableau[3][8];

void imprime(const char * message ) {
  Serial.println(message);
  for (size_t i = 0; i < 3; i++) {
    for (size_t j = 0; j < 8; j++) {
      Serial.print(tableau[i][j]); Serial.write('\t');
    }
    Serial.println();
  }
  Serial.println("----------------------------");
}

void setup() {
  Serial.begin(115200);
  preferences.begin("tableau", false);
  Serial.println("\n\n----------------------------");

  // on remplit de chiffres
  for (size_t i = 0; i < 3; i++)
    for (size_t j = 0; j < 8; j++)
      tableau[i][j] = 10 * i + j;
  imprime("tableau initial");

  // on sauve ces données
  preferences.putBytes("tableau", &tableau, sizeof tableau);

  // on efface le tableau
  for (size_t i = 0; i < 3; i++)
    for (size_t j = 0; j < 8; j++)
      tableau[i][j] = 0;
  imprime("tableau mis à zéro");

  // on relit le tableau depuis les préférences. On retrouve les valeurs précédentes
  preferences.getBytes("tableau", &tableau, sizeof tableau);
  imprime("tableau relu depuis les préférences");
}


void loop() {}

C'est simple et ça marche finement.
contrairement à mon "usine a gaz"

Milles MERCI

amusez vous bien :slight_smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.