Wifi_Onboarding_v1/main/nvm.h
2025-02-21 15:00:04 +05:30

75 lines
2.4 KiB
C

/*
* 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_ */