Skip to content

Commit

Permalink
Merge pull request #140 from PiFou86/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
PiFou86 committed Dec 18, 2023
2 parents 6919537 + 7f2cde8 commit e3bea1e
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 18 deletions.
73 changes: 63 additions & 10 deletions random/EEPROM/include/SauvegardeDonneesEEPROM.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,26 @@
#include <CRC16.h>
#include <EEPROM.h>

#include "SauvegardeDonnees.h"
#include "stringUtil.h"

#include "SauvegardeDonnees.h"
// Pour les couleurs voir : https://en.wikipedia.org/wiki/ANSI_escape_code
// Pour voir les couleurs, modifier le fichier platformio.ini et ajouter "monitor_filters = direct"

// Pour désactiver la couleur mettre la ligne suivante en commentaire
#define USE_COLOR_TERMINAL
#define TEXT_BLUE "\033[34m"
#define TEXT_GREEN "\033[32m"
#define TEXT_RED "\033[31m"
#define TEXT_YELLOW "\033[33m"
#define TEXT_RESET "\033[0m"
#define TEXT_BG_BLACK "\033[40m"
#define TEXT_BOLD "\033[1m"

// Organisation EEPROM :
// || signature app (2 octets) || adresse debut donnees (2 octets) || ...
// || nombre ecritures (2 octets) || crc donnees utilisateur (2 octets) || donnees utilisateur (sizeof(TypeDonneesASauvegarder) octets) || ... ||
// || signature app (2 octets) || adresse debut donnees (2 octets) || ...
// || nombre ecritures (2 octets) || crc donnees utilisateur (2 octets) ||
// donnees utilisateur (sizeof(TypeDonneesASauvegarder) octets) || ... ||
inline String padLeft(String p_texte, uint16_t p_tailleMin,
char p_remplissage = ' ');

Expand Down Expand Up @@ -179,15 +192,24 @@ void SauvegardeDonneesEEPROM<TypeDonneesASauvegarder>::afficherContenuEEPROM() {
EEPROM.get(ADRESSE_SIGNATURE_APP, signatureApp);
EEPROM.get(ADRESSE_ADRESSE_DEBUT_DONNEES, adresseDonnees);
EEPROM.get(adresseCompteurEcritures(adresseDonnees), compteurEcritures);
EEPROM.get(adresseCRCDonneesUtilisateur(adresseDonnees), crcDonneesUtilisateur);
EEPROM.get(adresseCRCDonneesUtilisateur(adresseDonnees),
crcDonneesUtilisateur);

Serial.println("Taille donnees : " + String(tailleDonnees()));
Serial.println("Signature app : 0x" + padLeft(String(signatureApp, HEX), 4, '0'));
Serial.println("Adresse debut donnees : 0x" + padLeft(String(adresseDonnees, HEX), 4, '0'));
Serial.println("Adresse CRC donnees utilisateur : 0x" + padLeft(String(adresseCRCDonneesUtilisateur(adresseDonnees), HEX), 4, '0'));
Serial.println("Adresse debut donnees utilisateur : 0x" + padLeft(String(adresseDonneesUtilisateur(adresseDonnees), HEX), 4, '0'));
Serial.println("Signature app : 0x" +
padLeft(String(signatureApp, HEX), 4, '0'));
Serial.println("Adresse debut donnees : 0x" +
padLeft(String(adresseDonnees, HEX), 4, '0'));
Serial.println(
"Adresse CRC donnees utilisateur : 0x" +
padLeft(String(adresseCRCDonneesUtilisateur(adresseDonnees), HEX), 4,
'0'));
Serial.println(
"Adresse debut donnees utilisateur : 0x" +
padLeft(String(adresseDonneesUtilisateur(adresseDonnees), HEX), 4, '0'));
Serial.println("Compteur ecritures : " + String(compteurEcritures, DEC));
Serial.println("CRC donnees utilisateur : 0x" + padLeft(String(crcDonneesUtilisateur, HEX), 4, '0'));
Serial.println("CRC donnees utilisateur : 0x" +
padLeft(String(crcDonneesUtilisateur, HEX), 4, '0'));
Serial.println();

Serial.println("Contenu de l'EEPROM :");
Expand All @@ -204,8 +226,39 @@ void SauvegardeDonneesEEPROM<TypeDonneesASauvegarder>::afficherContenuEEPROM() {
Serial.print(padLeft(String((uint16_t)adresse, HEX), 4, '0'));
for (uint16_t offset = 0;
offset < lineOffset && adresse + offset < EEPROM.length(); ++offset) {
uint16_t adresseAAfficher = adresse + offset;
#if defined(USE_COLOR_TERMINAL)
if (adresseAAfficher == ADRESSE_SIGNATURE_APP ||
adresseAAfficher == ADRESSE_SIGNATURE_APP + 1) {
Serial.print(TEXT_BOLD);
Serial.print(TEXT_BG_BLACK);
Serial.print(TEXT_BLUE);
} else if (adresseAAfficher == adresseDonnees ||
adresseAAfficher == adresseDonnees + 1) {
Serial.print(TEXT_BOLD);
Serial.print(TEXT_BG_BLACK);
Serial.print(TEXT_BLUE);
} else if (adresseAAfficher ==
adresseCRCDonneesUtilisateur(adresseDonnees) ||
adresseAAfficher ==
adresseCRCDonneesUtilisateur(adresseDonnees) + 1) {
Serial.print(TEXT_BOLD);
Serial.print(TEXT_BG_BLACK);
Serial.print(TEXT_YELLOW);
} else if (adresseAAfficher >=
adresseDonneesUtilisateur(adresseDonnees) &&
adresseAAfficher < adresseDonneesUtilisateur(adresseDonnees) +
sizeof(TypeDonneesASauvegarder)) {
Serial.print(TEXT_BOLD);
Serial.print(TEXT_BG_BLACK);
Serial.print(TEXT_GREEN);
}
#endif
Serial.print(" " +
padLeft(String(EEPROM.read(adresse + offset), HEX), 2, '0'));
padLeft(String(EEPROM.read(adresseAAfficher), HEX), 2, '0'));
#if defined(USE_COLOR_TERMINAL)
Serial.print(TEXT_RESET);
#endif
}

Serial.print(" | ");
Expand Down
3 changes: 2 additions & 1 deletion random/EEPROM/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ platform = atmelavr
board = uno
framework = arduino
monitor_speed = 115200
monitor_filters = direct
lib_deps =
robtillaart/CRC@^1.0.2
robtillaart/CRC@^1.0.2
15 changes: 8 additions & 7 deletions random/EEPROM/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include "SauvegardeDonneesEEPROM.h"

struct MyStruct {
struct MaStructure {
int a;
int b;
};
Expand All @@ -12,13 +12,14 @@ void setup() {
Serial.begin(115200);
EEPROM.begin();

MyStruct myStruct;
myStruct.a = 0x1234;
myStruct.b = 0x4321;
SauvegardeDonneesEEPROM<MyStruct> sauvegardeDonneesEEPROM(0x6666);
MaStructure maStructure;
maStructure.a = 0x1234;
maStructure.b = 0x4321;
SauvegardeDonneesEEPROM<MaStructure> sauvegardeDonneesEEPROM(0x6666);
sauvegardeDonneesEEPROM.afficherContenuEEPROM();
for (size_t i = 0; i < 1024; i++) {
sauvegardeDonneesEEPROM.donnees(myStruct);
//for (size_t i = 0; i < 1024; i++) {
for (size_t i = 0; i < 2; i++) {
sauvegardeDonneesEEPROM.donnees(maStructure);
if (sauvegardeDonneesEEPROM.sauvegarder()) {
Serial.println("Sauvegarder OK");
} else {
Expand Down

0 comments on commit e3bea1e

Please sign in to comment.