17 #ifndef BayEOSBuffer_h 18 #define BayEOSBuffer_h 19 #define __PROG_TYPES_COMPAT__ 23 #define SERIAL_DEBUG 0 25 #define SECONDS_PER_DAY 86400L 31 DateTime (uint16_t year, uint8_t month, uint8_t day,
32 uint8_t hour =0, uint8_t min =0, uint8_t sec =0);
33 DateTime (
const char* date,
const char* time);
35 uint16_t year()
const;
36 uint8_t month()
const;
39 uint8_t minute()
const;
40 uint8_t second()
const;
41 uint8_t dayOfWeek()
const;
47 uint8_t yOff, m, d, hh, mm, ss;
53 virtual void begin()=0;
54 virtual void adjust(
const DateTime& dt)=0;
72 unsigned long available(
void);
78 uint8_t freeSpace(uint8_t length);
84 int readPacket(uint8_t *dest);
89 uint8_t readBinary(
unsigned long pos,uint8_t length, uint8_t *dest);
94 uint8_t readBinary(
unsigned long pos,
unsigned long end,uint8_t length, uint8_t *dest);
104 void set(
unsigned long pos);
108 void seekReadPointer(
unsigned long pos);
117 uint8_t addPacket(
const uint8_t *payload,uint8_t length);
122 uint8_t initPacket(
unsigned long pos);
127 uint8_t initNextPacket(
void);
131 uint8_t packetLength(
void);
135 unsigned long packetMillis(
void);
143 void setRTC(
RTC& rtc,
boolean absolute_time=
true);
152 unsigned long getTime(
void);
154 unsigned long writePos(
void);
155 unsigned long readPos(
void);
156 unsigned long endPos(
void);
157 unsigned long length(
void);
160 boolean _absoluteTime;
161 boolean _framesDiscarded;
164 unsigned long _max_length;
166 unsigned long _read_pos;
167 unsigned long _write_pos;
170 uint8_t b_write(
const uint8_t b);
171 uint8_t b_write(
const uint8_t *b, uint8_t length);
173 int b_read(uint8_t *dest,
int length);
174 uint8_t b_seek(
unsigned long pos);
181 virtual void resetStorage(
void)=0;
186 virtual uint8_t write(
const uint8_t b)=0;
191 virtual uint8_t write(
const uint8_t *b,uint8_t length)=0;
196 virtual uint8_t seek(
unsigned long pos)=0;
202 virtual int read(
void)=0;
209 virtual int read(uint8_t *dest,
int length)=0;
215 virtual void flush(
void)=0;
217 unsigned long _millis;
218 uint8_t _packet_length;