/* * nvm.h * * Created on: Aug 14, 2023 * Author: Sword */ #ifndef MAIN_NVM_H_ #define MAIN_NVM_H_ #include "data_processing.h" #define NVM_CELL_ONBOARDING_KEY "on_boarding" #define NVM_WIFI_ONBOARDING_KEY "wifi_onboarding" #define NVM_WIFI_SSID_KEY "wifi_ssid" #define NVM_WIFI_SSID_LENGTH_KEY "wifi_ssid_len" #define NVM_WIFI_PSWD_KEY "wifi_pswd" #define NVM_WIFI_PSWD_LENGTH_KEY "wifi_pswd_len" #define NVM_COMMS_MODE_KEY "commsMode" #define NVM_HISTORY_DATA_KEY "history_data%u" #define NVM_HISTORY_SECTOR1 "history_data1" #define NVM_HISTORY_SECTOR2 "history_data2" #define NVM_HISTORY_SECTOR3 "history_data3" #define NVM_HISTORY_SECTOR4 "history_data4" #define NVM_HISTORY_SECTOR5 "history_data5" #define NVM_HISTORY_SECTOR6 "history_data6" #define NVM_HISTORY_SECTOR7 "history_data7" #define NVM_HISTORY_SECTOR8 "history_data8" #define NVM_ONBOARDING_SET_VAL 1 #define NVM_ONBOARDING_NOT_SET_VAL 0 #define NVM_ONBOARDING_NOT_STORED_VAL 2 #define NVM_MAX_NUMBER_OF_ALL_READINGS 750 //max number of sensor_readings in all NVM sector #define NVM_MAX_NUMBER_OF_IN_ONE_SECTOR 20 //max number of readings in one NVM/NVS sector #define NVM_NUMBER_OF_SECTORS ((NVM_MAX_NUMBER_OF_ALL_READINGS) / NVM_MAX_NUMBER_OF_IN_ONE_SECTOR) // ----> number_of_sectors = max_num_readings / number of readings in one NVM sector #define NVM_ONE_SECOTR_SIZE (37 * (NVM_NUMBER_OF_SECTORS)) #define NVM_HISTORY_ALL_SECTORS (NVM_NUMBER_OF_SECTORS+1) typedef enum { WIFI_ONBOARDING_KEY, CELL_ONBOARDING_KEY }onboarding_type_t; void nvm_init(void); void nvm_clear(void); uint8_t nvm_read_onboarding_flag(onboarding_type_t flag_key); void nvm_write_onboarding_flag(onboarding_type_t flag_key, uint8_t flag_value); uint8_t nvm_read_comms_mode(void); void nvm_write_comms_mode(uint8_t commsMode); esp_err_t nvm_read_wifi_credentials(char* ssid, char* pswd); void nvm_write_wifi_credentials(char* ssid, uint8_t ssid_len, char* pswd, uint8_t pswd_len); void nvm_write_history_data(historyLog_t* history_data); size_t nvm_read_history_data(historyLog_t* history_data, uint8_t sector_number); void nvm_clear_history_sector(uint8_t sector_num); uint8_t nvm_get_last_written_history_sector(void); void nvm_set_last_posted_history_sector(uint8_t sector_num); uint8_t nvm_get_last_posted_history_sector(void); #endif /* MAIN_NVM_H_ */