main/config.c

changeset 77
15dc572a7fcb
parent 74
34da2d2b12d5
child 80
715785443a95
equal deleted inserted replaced
76:0432d9147682 77:15dc572a7fcb
9 static const char *TAG = "config"; 9 static const char *TAG = "config";
10 10
11 unit_t units[3]; ///< Pressure test units 11 unit_t units[3]; ///< Pressure test units
12 SemaphoreHandle_t xSemaphoreUnits = NULL; ///< Semaphore Units records 12 SemaphoreHandle_t xSemaphoreUnits = NULL; ///< Semaphore Units records
13 wifiStation_t wifiStation; 13 wifiStation_t wifiStation;
14 strConfig_t config;
15
16
17 void write_config() {
18 uint8_t *dst = (uint8_t *)&config;
19 FILE *f = fopen("/spiffs/config.conf", "w+");
20
21 if (f == NULL) {
22 ESP_LOGE(TAG, "write /spiffs/config.conf failed");
23 return;
24 }
25
26 size_t bytes = fwrite(dst, 1, sizeof(config), f);
27 fclose(f);
28 if (bytes != sizeof(config)) {
29 ESP_LOGE(TAG, "/spiffs/config.conf written %d/%d bytes", bytes, sizeof(config));
30 } else {
31 ESP_LOGD(TAG, "/spiffs/config.conf written %d bytes", bytes);
32 }
33 }
34
35
36
37 void read_config() {
38 uint8_t *dst;
39 uint8_t mac_addr[8] = {0};
40 FILE *f = fopen("/spiffs/config.conf", "r");
41
42 if (f == NULL) {
43 // No configuration yet, create it.
44 esp_efuse_mac_get_default(mac_addr);
45 config.Version = 1;
46 sprintf(config.hostname, "co2meter-%02x%02x%02x", mac_addr[3], mac_addr[4], mac_addr[5]);
47 config.mqtt_server[0] = '\0';
48 config.mqtt_port = 1883;
49 config.mqtt_user[0] = '\0';
50 config.mqtt_pwd[0] = '\0';
51 sprintf(config.uuid, "c0ffeeee-dead-beef-cafe-%02x%02x%02x%02x%02x%02x",
52 mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
53 write_config();
54 } else {
55 dst = (uint8_t*)&config;
56 size_t bytes = fread(dst, 1, sizeof(config), f);
57 fclose(f);
58 ESP_LOGD(TAG, "/spiffs/config.conf read %d bytes", bytes);
59 }
60 }
61 14
62 15
63 16
64 void write_units() { 17 void write_units() {
65 uint8_t *dst = (uint8_t *)&units; 18 uint8_t *dst = (uint8_t *)&units;

mercurial