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