35 lines
898 B
C
35 lines
898 B
C
#include "config_state.h"
|
|
|
|
static uint8_t config[EEPROM_SIZE];
|
|
serialized_buffer_t ConfigBuffer = { config };
|
|
|
|
uint8_t readUInt8(serialized_buffer_t *buffer) {
|
|
return buffer->buffer[buffer->offset++];
|
|
}
|
|
|
|
uint16_t readUInt16(serialized_buffer_t *buffer) {
|
|
uint8_t firstByte = buffer->buffer[buffer->offset++];
|
|
return firstByte + (buffer->buffer[buffer->offset++] << 8);
|
|
}
|
|
|
|
bool readBool(serialized_buffer_t *buffer) {
|
|
return buffer->buffer[buffer->offset++] == 1;
|
|
}
|
|
|
|
uint16_t readCompactLength(serialized_buffer_t *buffer) {
|
|
uint16_t length = readUInt8(buffer);
|
|
if (length == 0xFF) {
|
|
length = readUInt16(buffer);
|
|
}
|
|
return length;
|
|
}
|
|
|
|
const char *readString(serialized_buffer_t *buffer, uint16_t *len) {
|
|
const char *str = (const char *)&(buffer->buffer[buffer->offset]);
|
|
|
|
*len = readCompactLength(buffer);
|
|
buffer->offset += *len;
|
|
|
|
return str;
|
|
}
|