Arduino Forum

Development => Other Software Development => Topic started by: mromani on Jan 18, 2012, 11:53 am

Title: [proposal] write+verify function for EEPROMAnything.h
Post by: mromani on Jan 18, 2012, 11:53 am
Writes the data to eeprom, reads it back and compares it to the original data. It returns true if the argument and the read-back data are the same, false otherwise.
In other words, true meanse "write successful", false means "write failed. eeprom probably corrupt".

template <class T> boolean EEPROM_writeVerifyAnything(int ee, const T& value)
{
    T aux;
    EEPROM_writeAnything(ee, value);
    EEPROM_readAnything(ee, aux);
    return memcmp((const byte*)&value, (const byte*)&aux, sizeof(T)) == 0;
}

Comments are welcome. :-)
Title: Re: [proposal] write+verify function for EEPROMAnything.h
Post by: GaryP on Jan 18, 2012, 02:42 pm
What if there's byte in eeprom that is corrupted, should it be marked for the future? Write something that would indicate the failure?
That would make it too complicated? Some area for the information about bad bytes?

Too much for me, just thinking...

Cheers,
Kari
Title: Re: [proposal] write+verify function for EEPROMAnything.h
Post by: mromani on Jan 18, 2012, 03:09 pm
The idea behind this function it to make easy to detect eeprom write errors.
What to do in case of error is left as an exercise to the reader :-)

Seriously, though, I guess that type of functionality belongs to a higher software level. Probably another library...

Thanks for your suggestions.