Files
firmware/right/src/config/config_state.c
2017-07-09 10:23:51 -07:00

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;
}