Data Objects

The charge controller uses the [ThingSet protocol](https://thingset.github.io/) for communication with external devices. Internal data that should be exposed via the protocol is defined in the Data Objects module.

Handling of ThingSet data objects.

Functions

void data_objects_update_conf()

Callback function to be called when conf values were changed

void data_objects_init()

Initializes and reads data objects from EEPROM

void thingset_auth()

Callback to provide authentication mechanism via ThingSet

void uint64_to_base32(uint64_t in, char *out, size_t size, const char *alphabet)

Convert numeric device ID to base32 string

void update_control()

Update control values received via CAN

Variables

bool pub_serial_enable
bool pub_can_enable
const char alphabet_crockford[] = "0123456789abcdefghjkmnpqrstvwxyz"

Alphabet used for base32 encoding

https://en.wikipedia.org/wiki/Base32#Crockford’s_Base32