configuration saved to nvs
This commit is contained in:
parent
4a2ae5ee1a
commit
c496f27222
@ -1,3 +1,3 @@
|
|||||||
idf_component_register(SRCS "power_profiler.c" "resistor_ranges.c" "measure.c" "ble.c" "gatt_svcs.c"
|
idf_component_register(SRCS "power_profiler.c" "resistor_ranges.c" "measure.c" "ble.c" "gatt_svcs.c" "configuration.c"
|
||||||
INCLUDE_DIRS "."
|
INCLUDE_DIRS "."
|
||||||
REQUIRES "driver" "esp_adc" "bt" "nvs_flash")
|
REQUIRES "driver" "esp_adc" "bt" "nvs_flash")
|
43
main/configuration.c
Normal file
43
main/configuration.c
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#include "esp_err.h"
|
||||||
|
#include "nvs.h"
|
||||||
|
|
||||||
|
#include "configuration.h"
|
||||||
|
#include "power_profiler.h"
|
||||||
|
|
||||||
|
void init_configuration_from_nvs(configuration* conf){
|
||||||
|
nvs_handle_t handle;
|
||||||
|
ESP_ERROR_CHECK(nvs_open("storage", NVS_READONLY, &handle));
|
||||||
|
|
||||||
|
nvs_get_u32(handle, "refresh_delay", &conf->refresh_delay);
|
||||||
|
nvs_get_u16(handle, "zero_c_nsamp", &conf->zero_cali_nsamp);
|
||||||
|
nvs_get_i32(handle, "range", &conf->range);
|
||||||
|
nvs_get_i32(handle, "auto_range", &conf->auto_range);
|
||||||
|
|
||||||
|
for(int i = 0; i < INPUTS_NUM; i++){
|
||||||
|
char key[16];
|
||||||
|
sprintf(key, "offset%d", i);
|
||||||
|
nvs_get_u32(handle, key, &conf->offsets[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
nvs_close(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void save_configuration_to_nvs(configuration* conf){
|
||||||
|
nvs_handle_t handle;
|
||||||
|
ESP_ERROR_CHECK(nvs_open("storage", NVS_READWRITE, &handle));
|
||||||
|
|
||||||
|
nvs_set_u32(handle, "refresh_delay", conf->refresh_delay);
|
||||||
|
nvs_set_u16(handle, "zero_c_nsamp", conf->zero_cali_nsamp);
|
||||||
|
nvs_set_i32(handle, "range", conf->range);
|
||||||
|
nvs_set_i32(handle, "auto_range", conf->auto_range);
|
||||||
|
|
||||||
|
for(int i = 0; i < INPUTS_NUM; i++){
|
||||||
|
char key[16];
|
||||||
|
sprintf(key, "offset%d", i);
|
||||||
|
nvs_set_u32(handle, key, conf->offsets[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP_ERROR_CHECK(nvs_commit(handle));
|
||||||
|
|
||||||
|
nvs_close(handle);
|
||||||
|
}
|
@ -12,3 +12,6 @@ typedef struct {
|
|||||||
int range;
|
int range;
|
||||||
int auto_range;
|
int auto_range;
|
||||||
} configuration;
|
} configuration;
|
||||||
|
|
||||||
|
void init_configuration_from_nvs(configuration* conf);
|
||||||
|
void save_configuration_to_nvs(configuration* conf);
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
#include "gatt_svcs.h"
|
#include "gatt_svcs.h"
|
||||||
#include "BLE_UUID.h"
|
#include "BLE_UUID.h"
|
||||||
|
#include "configuration.h"
|
||||||
|
|
||||||
static struct char_pres_format current_char_pres_format = {
|
static struct char_pres_format current_char_pres_format = {
|
||||||
.format = FORMAT_UINT32,
|
.format = FORMAT_UINT32,
|
||||||
@ -139,6 +140,7 @@ int gatt_char_access_sampling_rate(uint16_t conn_handle, uint16_t attr_handle, s
|
|||||||
rc = gatt_svr_chr_write(ctxt->om, sizeof(data), sizeof(data), &data, NULL);
|
rc = gatt_svr_chr_write(ctxt->om, sizeof(data), sizeof(data), &data, NULL);
|
||||||
ESP_LOGI("BLE", "Refresh rate : %lu", data);
|
ESP_LOGI("BLE", "Refresh rate : %lu", data);
|
||||||
c_ctxt->conf->refresh_delay = data;
|
c_ctxt->conf->refresh_delay = data;
|
||||||
|
save_configuration_to_nvs(c_ctxt->conf);
|
||||||
break;
|
break;
|
||||||
case BLE_GATT_ACCESS_OP_READ_DSC:
|
case BLE_GATT_ACCESS_OP_READ_DSC:
|
||||||
rc = os_mbuf_append(ctxt->om, &refrsh_rate_char_pres_format, CHAR_PRESENTATION_FORMAT_SIZE);
|
rc = os_mbuf_append(ctxt->om, &refrsh_rate_char_pres_format, CHAR_PRESENTATION_FORMAT_SIZE);
|
||||||
@ -158,12 +160,14 @@ int gatt_char_access_zeros_cali(uint16_t conn_handle, uint16_t attr_handle, stru
|
|||||||
switch (c_ctxt->handle){
|
switch (c_ctxt->handle){
|
||||||
case ZEROS_CALI_ID:
|
case ZEROS_CALI_ID:
|
||||||
start_zero_cali(c_ctxt->meas_ctxt, c_ctxt->conf->zero_cali_nsamp, c_ctxt->conf->offsets);
|
start_zero_cali(c_ctxt->meas_ctxt, c_ctxt->conf->zero_cali_nsamp, c_ctxt->conf->offsets);
|
||||||
|
save_configuration_to_nvs(c_ctxt->conf);
|
||||||
break;
|
break;
|
||||||
case ZEROS_CALI_NSAMP_ID:
|
case ZEROS_CALI_NSAMP_ID:
|
||||||
;
|
;
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
rc = gatt_svr_chr_write(ctxt->om, sizeof(data), sizeof(data), &data, NULL);
|
rc = gatt_svr_chr_write(ctxt->om, sizeof(data), sizeof(data), &data, NULL);
|
||||||
c_ctxt->conf->zero_cali_nsamp = data;
|
c_ctxt->conf->zero_cali_nsamp = data;
|
||||||
|
save_configuration_to_nvs(c_ctxt->conf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,6 +198,7 @@ int gatt_char_access_range(uint16_t conn_handle, uint16_t attr_handle, struct bl
|
|||||||
uint8_t state;
|
uint8_t state;
|
||||||
rc = gatt_svr_chr_write(ctxt->om, sizeof(state), sizeof(state), &state, NULL);
|
rc = gatt_svr_chr_write(ctxt->om, sizeof(state), sizeof(state), &state, NULL);
|
||||||
c_ctxt->conf->auto_range = state;
|
c_ctxt->conf->auto_range = state;
|
||||||
|
save_configuration_to_nvs(c_ctxt->conf);
|
||||||
break;
|
break;
|
||||||
case CURRENT_RANGE_ID:
|
case CURRENT_RANGE_ID:
|
||||||
;
|
;
|
||||||
@ -202,6 +207,7 @@ int gatt_char_access_range(uint16_t conn_handle, uint16_t attr_handle, struct bl
|
|||||||
ESP_LOGI(TAG, "new range %d", data);
|
ESP_LOGI(TAG, "new range %d", data);
|
||||||
c_ctxt->conf->range = data;
|
c_ctxt->conf->range = data;
|
||||||
activate_range(c_ctxt->conf->ranges, data, c_ctxt->conf->ranges_num - 1);
|
activate_range(c_ctxt->conf->ranges, data, c_ctxt->conf->ranges_num - 1);
|
||||||
|
save_configuration_to_nvs(c_ctxt->conf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -142,6 +142,8 @@ void app_main(void){
|
|||||||
|
|
||||||
main_conf.offsets = offsets;
|
main_conf.offsets = offsets;
|
||||||
|
|
||||||
|
init_configuration_from_nvs(&main_conf);
|
||||||
|
|
||||||
uint32_t meas_volts[INPUTS_NUM];
|
uint32_t meas_volts[INPUTS_NUM];
|
||||||
uint32_t meas_amp[INPUTS_NUM];
|
uint32_t meas_amp[INPUTS_NUM];
|
||||||
measurements meas = {
|
measurements meas = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user