123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #include "aem_adapter_nvram.h"
- #include "aem_log.h"
- #include "aem_project.h"
- #include "aem_nv_id.h"
- #ifdef CONFIG_NVRAM_CONFIG
- #include <drivers/nvram_config.h>
- #endif
- #undef LOG_TAG
- #define LOG_TAG "adapter_nv"
- #define NVRAM_LOG_DEBUG true
- static char *aem_get_db_tag_name(uint16_t id)
- {
- #define DATABASE_TO_NAME_CASE(i) \
- case i: \
- return #i
- switch (id)
- {
- DATABASE_TO_NAME_CASE(AEM_TAG_WORKOUT_SETTINGS);
- DATABASE_TO_NAME_CASE(AEM_TAG_ACTIVITY_REMIND_STATE);
- DATABASE_TO_NAME_CASE(AEM_TAG_ACT_WEEK_HIS_IND);
- DATABASE_TO_NAME_CASE(AEM_TAG_ACT_LAST_WEEK_INFO);
- DATABASE_TO_NAME_CASE(AEM_TAG_ACT_HIS_IND);
- DATABASE_TO_NAME_CASE(AEM_TAG_SPO2_HIS_INDEX);
- DATABASE_TO_NAME_CASE(AEM_TAG_SPO2_RECENT_DATA);
- DATABASE_TO_NAME_CASE(AEM_TAG_HR_HIS_INDEX);
- DATABASE_TO_NAME_CASE(AEM_TAG_HR_RECENT_DATA);
- DATABASE_TO_NAME_CASE(AEM_TAG_STRESS_HIS_INDEX);
- DATABASE_TO_NAME_CASE(AEM_TAG_STRESS_RECENT_DATA);
- DATABASE_TO_NAME_CASE(AEM_TAG_SLEEP_HIS_INDEX);
- DATABASE_TO_NAME_CASE(AEM_TAG_MSG_SETTINGS);
- DATABASE_TO_NAME_CASE(AEM_TAG_OS_SETTINGS);
- DATABASE_TO_NAME_CASE(AEM_TAG_BLE_USER_CFG_INFO);
- DATABASE_TO_NAME_CASE(AEM_TAG_BLE_SET_INFO);
- DATABASE_TO_NAME_CASE(AEM_TAG_BLE_HR_INFO);
- DATABASE_TO_NAME_CASE(AEM_TAG_BLE_REMIND_INFO);
- DATABASE_TO_NAME_CASE(AEM_TAG_BLE_SWITCH_INFO);
- DATABASE_TO_NAME_CASE(AEM_TAG_AUTO_TEST_CFG);
- DATABASE_TO_NAME_CASE(AEM_TAG_WF_INFO);
- DATABASE_TO_NAME_CASE(AEM_LAUNCH_ANIM);
- DATABASE_TO_NAME_CASE(AEM_WF_EDIT_ANIM);
- DATABASE_TO_NAME_CASE(AEM_WF_CUR_WF);
- DATABASE_TO_NAME_CASE(AEM_TAG_GPS_HIS_INDEX);
- DATABASE_TO_NAME_CASE(AEM_TAG_GPS_TRACK_HIS_INDEX);
- default:
- return "UNKNOW";
- }
- }
- static uint32_t nvram_read(uint16_t index, void *p_buf, uint16_t len)
- {
- uint32_t ret_len = 0;
- #if NVRAM_LOG_DEBUG
- AEM_LOG_I("read TAG %d ,name %s \r\n", index, aem_get_db_tag_name(index));
- #endif
- #ifndef CONFIG_SIMULATOR
- #ifdef CONFIG_NVRAM_CONFIG
- int ret = nvram_config_get(aem_get_db_tag_name(index), p_buf, len);
- if (ret > 0)
- {
- ret_len = len;
- }
- else
- {
- #if NVRAM_LOG_DEBUG
- AEM_LOG_I("nvram_config_get index %d name %s ret %d\r\n", index, aem_get_db_tag_name(index), ret);
- #endif
- }
- #endif
- #else
- #endif
- return ret_len;
- }
- static uint32_t nvram_write(uint16_t index, void *p_buf, uint16_t len)
- {
- uint32_t ret_len = 0;
- #if NVRAM_LOG_DEBUG
- AEM_LOG_I("write TAG %d ,name %s \r\n", index, aem_get_db_tag_name(index));
- #endif
- #ifndef CONFIG_SIMULATOR
- #ifdef CONFIG_NVRAM_CONFIG
- int ret = nvram_config_set(aem_get_db_tag_name(index), p_buf, len);
- if (ret == 0)
- {
- ret_len = 0;
- }
- else
- {
- #if NVRAM_LOG_DEBUG
- AEM_LOG_I("nvram_config_set index %d name %s ret %d\r\n", index, aem_get_db_tag_name(index), ret);
- #endif
- ret_len = 1;
- }
- #endif
- #else
- #endif
- return ret_len;
- }
- static uint32_t nvram_delete(uint16_t index)
- {
- uint32_t ret = 0;
- #ifndef BSP_USING_PC_SIMULATOR
- #ifdef PKG_USING_FLASHDB
- #else
- #endif
- #endif
- return ret;
- }
- static uint32_t nvram_delete_all(void)
- {
- uint32_t ret = 0;
- #ifdef CONFIG_NVRAM_CONFIG
- // 清除所有user nvram
- nvram_config_clear_all();
- #endif
- return ret;
- }
- static const aem_nv_ops_t s_nv_ops = {
- .nvram_delete = nvram_delete,
- .nvram_delete_all = nvram_delete_all,
- .nvram_read = nvram_read,
- .nvram_write = nvram_write,
- };
- const aem_nv_ops_t *aem_get_nv_ops(void)
- {
- return &s_nv_ops;
- }
|