/*
 * https://forum.arduino.cc/t/esp8266-eeprom/631650/10
 * https://docs.arduino.cc/learn/built-in-libraries/eeprom#put
 */

#include <EEPROM.h>

using Container = byte[4];



struct EpData // eine Datensammlung im EEPROM
{
  int kram;
  Container container;
  bool flagge;
  // usw
};

Container satzA {'a','b','c','d'}; // beispieldaten
Container satzB {'w','x','y','z'};  // beispieldaten

struct MyObject {
  float field1;
  byte field2;
  char name[10];
};

MyObject obj1 {1.111f, 42, "siarp"};





void setup(void)
{
  EEPROM.begin(512); // Um Speicherplatz zu sparen, sollte der Pufferspeicher nicht größer als notwendig initialisiert werden. Die Maximale Größe beträgt 4096.
  Serial.begin(9600);
  
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

/*  Serial.println();
  Serial.println();
  Serial.println(" Menue");
  Serial.println(" a) schreibt satzA");
  Serial.println(" b) schreibt satzB");
  Serial.println(" p) liest EEPROM und zeigt den Inhalt");
  
  Serial.println();
  Serial.println();*/

//  EEPROM.put(0, obj1);
//  EEPROM.commit();

  MyObject rObj;
  EEPROM.get(0, rObj);

  Serial.println("Read custom object from EEPROM:");
  Serial.println(rObj.field1);
  Serial.println(rObj.field2);
  Serial.println(rObj.name);

}


void loop(void)
{/*
  switch(Serial.read())
  {
    case 'a':  EEPROM.put(offsetof(EpData,container),satzA);
               EEPROM.commit();
               Serial.println(" SatzA geschrieben");
               break;
               
    case 'b':  EEPROM.put(offsetof(EpData,container),satzB);
               EEPROM.commit();
               Serial.println(" SatzB geschrieben");
               break;
               
    case 'p':   Serial.println(" Satz lesen ");
                Container gelesenerSatz;
                EEPROM.get(offsetof(EpData,container),gelesenerSatz );
                for(byte g:gelesenerSatz)
                {
                  Serial.print(g); 
                  Serial.print(',');
                }
                Serial.println();
                break;
  }*/
}
