36class FramSpi :
public Storage {
42 unsigned int storageStartingOffset = 0)
43 : Storage(storageStartingOffset), fram(clk, miso, mosi, framCs) {
44 setStateSavePeriod(SUPLA_FRAM_WRITING_PERIOD);
47 explicit FramSpi(int8_t framCs,
unsigned int storageStartingOffset = 0)
48 : Storage(storageStartingOffset), fram(framCs) {
49 setStateSavePeriod(SUPLA_FRAM_WRITING_PERIOD);
54 Serial.println(F(
"Storage: FRAM found"));
56 Serial.println(F(
"Storage: FRAM not found"));
59 return Storage::init();
65 int readStorage(
unsigned int offset,
70 Serial.print(F(
"readStorage: "));
72 Serial.print(F(
"; Read: ["));
74 for (
int i = 0; i < size; i++) {
75 buf[i] = fram.read8(offset + i);
77 Serial.print(
static_cast<unsigned char *
>(buf)[i], HEX);
82 Serial.println(F(
"]"));
87 int writeStorage(
unsigned int offset,
const unsigned char *buf,
int size) {
88 fram.writeEnable(
true);
89 fram.write(offset,
const_cast<uint8_t *
>(buf), size);
90 fram.writeEnable(
false);
91 Serial.print(F(
"Wrote "));
93 Serial.print(F(
" bytes to storage at "));
94 Serial.println(offset);
98 Adafruit_FRAM_SPI fram;