Browse Source

Fix embedis parser

fastled
Xose Pérez 7 years ago
parent
commit
1c2d6ca7a1
1 changed files with 15 additions and 5 deletions
  1. +15
    -5
      code/espurna/settings.ino

+ 15
- 5
code/espurna/settings.ino View File

@ -58,10 +58,12 @@ unsigned int settingsKeyCount() {
unsigned count = 0;
unsigned pos = SPI_FLASH_SEC_SIZE - 1;
while (size_t len = EEPROM.read(pos)) {
pos = pos - len - 2;
len = EEPROM.read(pos);
pos = pos - len - 2;
count ++;
}
return count / 2;
return count;
}
String settingsKeyName(unsigned int index) {
@ -69,18 +71,19 @@ String settingsKeyName(unsigned int index) {
String s;
unsigned count = 0;
unsigned stop = index * 2 + 1;
unsigned pos = SPI_FLASH_SEC_SIZE - 1;
while (size_t len = EEPROM.read(pos)) {
pos = pos - len - 2;
count++;
if (count == stop) {
if (count == index) {
s.reserve(len);
for (unsigned char i = 0 ; i < len; i++) {
s += (char) EEPROM.read(pos + i + 1);
}
break;
}
count++;
len = EEPROM.read(pos);
pos = pos - len - 2;
}
return s;
@ -277,9 +280,16 @@ void settingsSetup() {
#endif
Embedis::command( F("DUMP.RAW"), [](Embedis* e) {
bool ascii = false;
if (e->argc == 2) ascii = String(e->argv[1]).toInt() == 1;
for (unsigned int i = 0; i < SPI_FLASH_SEC_SIZE; i++) {
if (i % 16 == 0) DEBUG_MSG_P(PSTR("\n[%04X] "), i);
DEBUG_MSG_P(PSTR("%02X "), EEPROM.read(i));
byte c = EEPROM.read(i);
if (ascii && 32 <= c && c <= 126) {
DEBUG_MSG_P(PSTR(" %c "), c);
} else {
DEBUG_MSG_P(PSTR("%02X "), c);
}
}
DEBUG_MSG_P(PSTR("\n+OK\n"));
});


Loading…
Cancel
Save