diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2023-06-10 23:20:37 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2023-06-10 23:20:37 +0300 |
commit | a6d8ba93056c1a4e243d56da447e241b2504fae2 (patch) | |
tree | 3ee5372ef4e4a2b8532bf8bc57d7151d77d96f71 /include/pio/libs/config/homekit/config.h | |
parent | b0bf43e6a272d42a55158e657bd937cb82fc3d8d (diff) |
move files again
Diffstat (limited to 'include/pio/libs/config/homekit/config.h')
-rw-r--r-- | include/pio/libs/config/homekit/config.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/pio/libs/config/homekit/config.h b/include/pio/libs/config/homekit/config.h new file mode 100644 index 0000000..28f01fb --- /dev/null +++ b/include/pio/libs/config/homekit/config.h @@ -0,0 +1,37 @@ +#ifndef COMMON_HOMEKIT_CONFIG_H +#define COMMON_HOMEKIT_CONFIG_H + +#include <Arduino.h> + +namespace homekit::config { + +struct ConfigFlags { + uint8_t wifi_configured: 1; + uint8_t node_configured: 1; + uint8_t reserved: 6; +} __attribute__((packed)); + +struct ConfigData { + // helpers + uint32_t crc = 0; + uint32_t magic = 0; + char node_id[16] = {0}; + char wifi_ssid[32] = {0}; + char wifi_psk[63] = {0}; + ConfigFlags flags {0}; + + // helper methods + char* escapeHomeId(char* buf, size_t len); +} __attribute__((packed)); + + +ConfigData read(); +void write(ConfigData& data); +void erase(); +void erase(ConfigData& data); +bool isValid(ConfigData& data); +bool isDirty(ConfigData& data); + +} + +#endif //COMMON_HOMEKIT_CONFIG_H
\ No newline at end of file |