File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change 2424
2525#include < stddef.h>
2626#include < stdint.h>
27+ #include < string.h>
2728
2829class 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;
You can’t perform that action at this time.
0 commit comments