Skip to content

Commit 3ef9f9d

Browse files
committed
Merge pull request #80 from boybundit/eeprom-get-put
Add get and put functions to EEPROM
2 parents 9645fd9 + 5a4c4c3 commit 3ef9f9d

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

libraries/EEPROM/EEPROM.h

+22
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
#include <stddef.h>
2626
#include <stdint.h>
27+
#include <string.h>
2728

2829
class EEPROMClass
2930
{
@@ -35,6 +36,27 @@ class EEPROMClass
3536
void commit();
3637
void end();
3738

39+
template<typename T> T &get(int address, T &t)
40+
{
41+
if (address < 0 || address + sizeof(T) > _size)
42+
return t;
43+
44+
uint8_t *ptr = (uint8_t*) &t;
45+
memcpy(ptr, _data + address, sizeof(T));
46+
return t;
47+
}
48+
49+
template<typename T> const T &put(int address, const T &t)
50+
{
51+
if (address < 0 || address + sizeof(T) > _size)
52+
return t;
53+
54+
const uint8_t *ptr = (const uint8_t*) &t;
55+
memcpy(_data + address, ptr, sizeof(T));
56+
_dirty = true;
57+
return t;
58+
}
59+
3860
protected:
3961
uint8_t* _data;
4062
size_t _size;

0 commit comments

Comments
 (0)