From 46fc2331dfd7d8d49778ff2260ba8c11460b6d10 Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Fri, 21 Jun 2024 16:28:05 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96ConfigModel,=E7=94=A8KVStore?= =?utf8?q?=E6=9B=BF=E6=8D=A2cJSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../screensetting/src/ScreenModels.cpp | 5 +- .../drivers/peripheral/config/CMakeLists.txt | 2 + .../peripheral/config/include/ConfigModel.h | 30 +- .../peripheral/config/include/ConfigModelC.h | 42 +- .../peripheral/config/src/ConfigModel.cpp | 431 +++++++++++++----- .../drivers/peripheral/ppg/hx3695/hx3695.c | 6 +- .../drivers/peripheral/utils/custom_runtime.c | 4 +- .../drivers/peripheral/utils/custom_utils.c | 24 +- 8 files changed, 380 insertions(+), 164 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp b/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp index 1df04bcce..6b26e3841 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp @@ -42,8 +42,9 @@ ScreenModels *ScreenModels::GetInstance(void) void ScreenModels::InitKvStorage(void) { - int ret = UtilsSetEnv("/user"); - WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "UtilsSetEnv /user ret = %d", ret); + // ConfigModel +// int ret = UtilsSetEnv("/user"); + // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "UtilsSetEnv /user ret = %d", ret); } void ScreenModels::LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId) diff --git a/code/sdk/drivers/peripheral/config/CMakeLists.txt b/code/sdk/drivers/peripheral/config/CMakeLists.txt index 20c5f3c0d..a9cb0a087 100644 --- a/code/sdk/drivers/peripheral/config/CMakeLists.txt +++ b/code/sdk/drivers/peripheral/config/CMakeLists.txt @@ -15,6 +15,8 @@ set(PUBLIC_HEADER set(PRIVATE_HEADER ${CMAKE_SOURCE_DIR}/middleware/utils/update/inner_include + ${CMAKE_SOURCE_DIR}/open_source/openharmony/utils/native/lite/include + ${CMAKE_SOURCE_DIR}/open_source/openharmony/utils/native/lite/kv_store/innerkits ) set(PRIVATE_DEFINES diff --git a/code/sdk/drivers/peripheral/config/include/ConfigModel.h b/code/sdk/drivers/peripheral/config/include/ConfigModel.h index 9c2839660..67408b44e 100644 --- a/code/sdk/drivers/peripheral/config/include/ConfigModel.h +++ b/code/sdk/drivers/peripheral/config/include/ConfigModel.h @@ -10,6 +10,11 @@ #ifdef FD230 #include "language/font/ui_resource_string.h" #endif + + +#define USE_KVSTORE_STORE_CONFIG + + struct dial_config { std::string dialname; @@ -18,6 +23,7 @@ struct dial_config extern struct dial_config global_dial_config; namespace OHOS { + class ConfigModel { public: @@ -132,6 +138,7 @@ namespace OHOS void Init(void); /* -------------- 通用 读值 赋值 函数 ----------------- */ int get_configData_int(ConfigItem item); + ConfigItem get_ConfigItem_by_Keyname(char* keyname); double get_configData_double(ConfigItem item); bool get_configData_bool(ConfigItem item); std::string get_configData_string(ConfigItem item); @@ -336,9 +343,24 @@ namespace OHOS ConfigModel(const ConfigModel &) = delete; // 禁止拷贝构造 ConfigModel &operator=(const ConfigModel &) = delete; // 禁止赋值运算符 ~ConfigModel(); + void DumpItem(ConfigItem item); + void DumpData(void); +#ifdef USE_KVSTORE_STORE_CONFIG + std::string ReadKVData_String(const char *field_name); + double ReadKVData_Double(const char *field_name); + int ReadKVData_Int(const char *field_name); + bool ReadKVData_Bool(const char *field_name); + + void WriteKVData_Int(const char *field_name, int data); + void WriteKVData_Double(const char *field_name, double data); + void WriteKVData_Bool(const char *field_name, bool data); + void WriteKVData_String(const char *field_name, const char *data); + bool LoadKVData(void); + void DumpKVItem(ConfigItem item); +#else cJSON *GetcJSON(void); bool LoadJsonData(void); - void DumpJsonItem(ConfigItem item); + /* --------------------------私有 通用 读写Json数据函数------------------------------------------------ */ std::string ReadJsonData_String(const cJSON *json_obj, const char *field_name); double ReadJsonData_Double(const cJSON *json_obj, const char *field_name); @@ -356,14 +378,14 @@ namespace OHOS void WriteJsonToFile(char *json_string, const char *file_path); /* -------------------------------------------------------------------------- */ - void DumpJsonData(void); - cJSON *get_item(ConfigItem item); private: const std::string filePath = "/system/ConfigModel.json"; cJSON *cjson_json{nullptr}; - +#endif + + private: bool model_initialled{false}; /* -------------------------------------------------------------------------- */ }; diff --git a/code/sdk/drivers/peripheral/config/include/ConfigModelC.h b/code/sdk/drivers/peripheral/config/include/ConfigModelC.h index b80c4275e..1ea864944 100644 --- a/code/sdk/drivers/peripheral/config/include/ConfigModelC.h +++ b/code/sdk/drivers/peripheral/config/include/ConfigModelC.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-17 09:32:03 * @LastEditors: SnickerSun snickersun@163.com - * @LastEditTime: 2024-06-19 20:23:10 + * @LastEditTime: 2024-06-21 10:37:35 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModelC.h */ #ifndef _CONFIG_MODEL_C_H_ @@ -23,74 +23,74 @@ uint32_t ConfigModelInit(void); /*** * 蓝牙服务是否开启 */ -bool custom_ble_service_on_flag(void); +bool cm_custom_ble_service_on_flag(void); /*** * Cat1服务是否开启 */ -bool poweron_cat1_on_bootup_flag(void); +bool cm_poweron_cat1_on_bootup_flag(void); -void sync_all_config_to_disk(void); +void cm_sync_all_config_to_disk(void); /* * @brief 初始化屏幕亮度 */ -void initScreenBrightness(void); +void cm_initScreenBrightness(void); /* * @brief 初始化亮屏时间 */ -void initializeScreenDuration(void); +void cm_initializeScreenDuration(void); /* * @brief 初始化抬腕亮屏 */ -void initializeRaiseToWake(void); +void cm_initializeRaiseToWake(void); /* * @brief 初始化系统音量和通话音量 */ -void initializeVolume(void); +void cm_initializeVolume(void); /* * @brief 初始化震动模式 */ -void initializeVibrationModel(void); +void cm_initializeVibrationModel(void); /* * @brief 初始化静音模式 */ -void initializeSilentModel(void); +void cm_initializeSilentModel(void); /* * @brief 初始化VOLTE通话开关 */ -void initializeVoLTECall(void); +void cm_initializeVoLTECall(void); /* * @brief 初始化4G能力开关 */ -void initialize4GCapability(void); +void cm_initialize4GCapability(void); /* * @brief 初始化运动识别开关 */ -void initializeMotionRecognition(void); +void cm_initializeMotionRecognition(void); -bool get_SPP_switch(void); +bool cm_get_SPP_switch(void); -bool get_HFP_switch(void); +bool cm_get_HFP_switch(void); -bool get_A2DP_switch(void); +bool cm_get_A2DP_switch(void); -void set_timezone_quarters(int16_t timezone_quarters); +void cm_set_timezone_quarters(int16_t timezone_quarters); -int16_t get_timezone_quarters(void); +int16_t cm_get_timezone_quarters(void); -uint8_t get_hour_show_model(void); -void set_hour_show_model(uint8_t showtype); +uint8_t cm_get_hour_show_model(void); +void cm_set_hour_show_model(uint8_t showtype); -uint8_t get_vibmod(void); +uint8_t cm_get_vibmod(void); #ifdef __cplusplus #if __cplusplus diff --git a/code/sdk/drivers/peripheral/config/src/ConfigModel.cpp b/code/sdk/drivers/peripheral/config/src/ConfigModel.cpp index cabe49a5d..2386f1ce6 100644 --- a/code/sdk/drivers/peripheral/config/src/ConfigModel.cpp +++ b/code/sdk/drivers/peripheral/config/src/ConfigModel.cpp @@ -2,8 +2,15 @@ #include "ConfigModelC.h" #include "custom_utils.h" #include "custom_runtime.h" + +#include "kv_store.h" +#include "kvstore_env.h" + + namespace OHOS { + #define MAX_NUM_BUF_LEN 32 + #define MAX_STRING_DATA_LEN 128 ConfigModel::ConfigModel() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " ConfigModel::ConfigModel"); @@ -20,80 +27,41 @@ namespace OHOS static ConfigModel instance; return &instance; } - - /// @brief 获取cjson对象 - cJSON *ConfigModel::GetcJSON(void) - { - return cjson_json; - } - - cJSON *ConfigModel::get_item(ConfigItem item) - { - return cJSON_GetObjectItem(GetcJSON(),get_config_name(item)); - } - - void ConfigModel::reset_item_to_default(ConfigItem item) + void ConfigModel::DumpItem(ConfigItem item) { switch(get_config_datatype(item)) { case ConfigDataType::DATATYPE_BOOL: - - { - bool defaultvalue = false; - if (strncmp(configmodel_item_key_name[item].defaultValue,"true",sizeof("true"))==0) defaultvalue = true; - set_condigData_Bool(item,defaultvalue); - } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(bool):value(%d)", get_config_name(item), get_configData_bool(item)); break; case ConfigDataType::DATATYPE_DOUBLE: - { - double defaultvalue = atof(configmodel_item_key_name[item].defaultValue); - set_condigData_Double(item,defaultvalue); - } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(double):value(%f)", get_config_name(item), get_configData_double(item)); break; case ConfigDataType::DATATYPE_INT : - { - int defaultvalue = atoi(configmodel_item_key_name[item].defaultValue); - set_condigData_Int(item,defaultvalue); - } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(int):value(%d)", get_config_name(item), get_configData_int(item)); break; case ConfigDataType::DATATYPE_STRING: - - set_condigData_String(item,configmodel_item_key_name[item].defaultValue); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(string):value(%s)", get_config_name(item), get_configData_string(item).c_str()); break; case ConfigDataType::DATATYPE_VECTOR_DOUBLE: - /** - * configmodel_item_key_name[item].defaultValue 转换成jsongArrayObj 再存入 - */ - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_double):value(%s)", + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_double):value(%f)", get_config_name(item), ""); break; case ConfigDataType::DATATYPE_VECTOR_INT: - /** - * configmodel_item_key_name[item].defaultValue 转换成jsongArrayObj 再存入 - */ - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_int):value(%s)", + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_int):value(%d)", get_config_name(item), ""); break; case ConfigDataType::DATATYPE_VECTOR_STRING: - /** - * configmodel_item_key_name[item].defaultValue 转换成jsongArrayObj 再存入 - */ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_string):value(%s)", get_config_name(item), ""); @@ -102,6 +70,152 @@ namespace OHOS } } + /// @brief 显示读取到的json数据 + void ConfigModel::DumpData(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------- JsonData: ------------------------------- */\n"); + for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++) + { + DumpItem((ConfigItem)i); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------------------------------------------------- */\n"); + } +#ifdef USE_KVSTORE_STORE_CONFIG + + std::string ConfigModel::ReadKVData_String(const char *field_name) + { + char* stringtmp=(char*)malloc(MAX_STRING_DATA_LEN); + int value_len = UtilsGetValue(field_name,stringtmp,MAX_STRING_DATA_LEN); + if (value_len<0)//没有变量则用默认值初始化 + { + free(stringtmp); + return "-1"; + } + else + { + std::string ret = std::string(stringtmp); + free(stringtmp); + return ret; + } + } + double ConfigModel::ReadKVData_Double(const char *field_name) + { + + char *buf = (char*)malloc(MAX_NUM_BUF_LEN); + int value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN); + double ret = 0.0f; + + if (value_len >=0) + { + ret = atof(buf); + free(buf); + return ret; + } + else + { + free(buf); + return 0.0f; + } + } + int ConfigModel::ReadKVData_Int(const char *field_name) + { + char *buf = (char*)malloc(MAX_NUM_BUF_LEN); + int value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN); + int ret = 0; + + if (value_len >=0) + { + ret = atoi(buf); + free(buf); + return ret; + } + else + { + free(buf); + return 0; + } + } + bool ConfigModel::ReadKVData_Bool(const char *field_name) + { + char *buf = (char*)malloc(MAX_NUM_BUF_LEN); + int value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN); + int ret = 0; + + if (value_len >=0) + { + ret = atoi(buf); + free(buf); + if(ret > 0) + return true; + else + return false; + } + else + { + free(buf); + return false; + } + } + + void ConfigModel::WriteKVData_Int(const char *field_name, int data) + { + char *buf = (char*)malloc(MAX_NUM_BUF_LEN); + memset(buf,0,MAX_NUM_BUF_LEN); + sprintf_s(buf,32,"%d",data); + UtilsSetValue(field_name,buf); + free(buf); + } + void ConfigModel::WriteKVData_Double(const char *field_name, double data) + { + char *buf = (char*)malloc(MAX_NUM_BUF_LEN); + memset(buf,0,MAX_NUM_BUF_LEN); + sprintf_s(buf,32,"%f",data); + UtilsSetValue(field_name,buf); + free(buf); + } + void ConfigModel::WriteKVData_Bool(const char *field_name, bool data) + { + char *buf = (char*)malloc(MAX_NUM_BUF_LEN); + memset(buf,0,MAX_NUM_BUF_LEN); + sprintf_s(buf,32,"%d",data); + UtilsSetValue(field_name,buf); + free(buf); + } + void ConfigModel::WriteKVData_String(const char *field_name, const char *data) + { + char *buf = (char*)malloc(MAX_STRING_DATA_LEN); + memset(buf,0,MAX_STRING_DATA_LEN); + sprintf_s(buf,MAX_STRING_DATA_LEN,"%s",data); + UtilsSetValue(field_name,buf); + free(buf); + } + bool ConfigModel::LoadKVData() + { + char* buf=(char*)malloc(MAX_STRING_DATA_LEN); + for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++) + { + ConfigItem item = (ConfigItem)i; + int ret = UtilsGetValue(get_config_name(item),buf,MAX_STRING_DATA_LEN); + if (ret < 0) //没有变量则用默认值初始化 + { + reset_item_to_default(item); + } + } + free(buf); + return true; + } +#else + /// @brief 获取cjson对象 + cJSON *ConfigModel::GetcJSON(void) + { + return cjson_json; + } + + cJSON *ConfigModel::get_item(ConfigItem item) + { + return cJSON_GetObjectItem(GetcJSON(),get_config_name(item)); + } + /// @brief 加载json文件 /// @param filePath 指定要加载和解析的 JSON 文件的路径 /// @return true 加载json文件成功,反之失败 @@ -426,58 +540,90 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "JSON data written to file: %s", file_path); } - /* -------------------------------------------------------------------------- */ + + - void ConfigModel::Init(void) + + void ConfigModel::set_condigData_VectorInt(ConfigItem item, const std::vector &data) { - if (model_initialled == true) - { - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init already done"); - return ; - } - /* -------------------------------- 1.加载json文件 -------------------------------- */ - bool ret = LoadJsonData(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init %d",ret); + WriteJsonData_VectorInt(GetcJSON(),get_config_name(item),data); - /* ------------------------------ 2.显示读取到的json数据 ------------------------------ */ - DumpJsonData(); - model_initialled = true; } - void ConfigModel::DumpJsonItem(ConfigItem item) + void ConfigModel::set_condigData_VectorDouble(ConfigItem item, const std::vector &data) + { + WriteJsonData_VectorDouble(GetcJSON(),get_config_name(item),data); + + } + void ConfigModel::set_condigData_VectorString(ConfigItem item, const std::vector &data) + { + WriteJsonData_VectorString(GetcJSON(),get_config_name(item),data); + + } + +#endif + + void ConfigModel::reset_item_to_default(ConfigItem item) { switch(get_config_datatype(item)) { case ConfigDataType::DATATYPE_BOOL: + + { + bool defaultvalue = false; + if (strncmp(configmodel_item_key_name[item].defaultValue,"true",sizeof("true"))==0) defaultvalue = true; + set_condigData_Bool(item,defaultvalue); + } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(bool):value(%d)", get_config_name(item), get_configData_bool(item)); break; case ConfigDataType::DATATYPE_DOUBLE: + { + double defaultvalue = atof(configmodel_item_key_name[item].defaultValue); + set_condigData_Double(item,defaultvalue); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(double):value(%f)", get_config_name(item), get_configData_double(item)); break; case ConfigDataType::DATATYPE_INT : + { + int defaultvalue = atoi(configmodel_item_key_name[item].defaultValue); + set_condigData_Int(item,defaultvalue); + } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(int):value(%d)", get_config_name(item), get_configData_int(item)); break; case ConfigDataType::DATATYPE_STRING: + + set_condigData_String(item,configmodel_item_key_name[item].defaultValue); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(string):value(%s)", get_config_name(item), get_configData_string(item).c_str()); break; case ConfigDataType::DATATYPE_VECTOR_DOUBLE: - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_double):value(%f)", + /** + * configmodel_item_key_name[item].defaultValue 转换成jsongArrayObj 再存入 + */ + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_double):value(%s)", get_config_name(item), ""); break; case ConfigDataType::DATATYPE_VECTOR_INT: - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_int):value(%d)", + /** + * configmodel_item_key_name[item].defaultValue 转换成jsongArrayObj 再存入 + */ + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_int):value(%s)", get_config_name(item), ""); break; case ConfigDataType::DATATYPE_VECTOR_STRING: + /** + * configmodel_item_key_name[item].defaultValue 转换成jsongArrayObj 再存入 + */ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_string):value(%s)", get_config_name(item), ""); @@ -485,16 +631,37 @@ namespace OHOS } } - /// @brief 显示读取到的json数据 - void ConfigModel::DumpJsonData(void) + + + /* -------------------------------------------------------------------------- */ + + void ConfigModel::Init(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------- JsonData: ------------------------------- */\n"); - for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++) + if (model_initialled == true) { - DumpJsonItem((ConfigItem)i); + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init already done"); + return ; } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------------------------------------------------- */\n"); + + //UtilsSetEnv从ScreenModels.cpp移动到此,因此不收 USE_KVSTORE_STORE_CONFIG管理只是为了使用KVStore时更方便。 + int rets = UtilsSetEnv("/system"); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "UtilsSetEnv /system ret = %d", rets); +#ifdef USE_KVSTORE_STORE_CONFIG + + bool ret = LoadKVData(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init %d",ret); +#else + /* -------------------------------- 1.加载json文件 -------------------------------- */ + bool ret = LoadJsonData(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init %d",ret); + + +#endif + /* ------------------------------ 2.显示读取到的Config数据 ------------------------------ */ + DumpData(); + model_initialled = true; } + /* -------------------------------- set与get方法 ------------------------------- */ @@ -520,7 +687,7 @@ namespace OHOS void ConfigModel::SetScreenDuration(unsigned int value) { set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,value); - initializeScreenDuration(); + cm_initializeScreenDuration(); } /// @brief 获取亮屏时长单位ms @@ -853,7 +1020,7 @@ namespace OHOS void ConfigModel::SetBrightness(int level) { set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,level); - initScreenBrightness();//实时更新屏幕亮度用于协议下发亮度值 + cm_initScreenBrightness();//实时更新屏幕亮度用于协议下发亮度值 } // 获取亮度值 @@ -913,64 +1080,88 @@ namespace OHOS /* ---------------------------------------------------------------------------- */ int ConfigModel::get_configData_int(ConfigItem item) { - return ReadJsonData_Int(GetcJSON(),get_config_name(item)); + #ifdef USE_KVSTORE_STORE_CONFIG + return ReadKVData_Int(get_config_name(item)); + #else + return ReadJsonData_Int(GetcJSON(),get_config_name(item)); + #endif } double ConfigModel::get_configData_double(ConfigItem item) { - return ReadJsonData_Double(GetcJSON(),get_config_name(item)); - + #ifdef USE_KVSTORE_STORE_CONFIG + return ReadKVData_Double(get_config_name(item)); + #else + return ReadJsonData_Double(GetcJSON(),get_config_name(item)); + #endif } bool ConfigModel::get_configData_bool(ConfigItem item) { - return ReadJsonData_Bool(GetcJSON(),get_config_name(item)); + + #ifdef USE_KVSTORE_STORE_CONFIG + return ReadKVData_Bool(get_config_name(item)); + #else + return ReadJsonData_Bool(GetcJSON(),get_config_name(item)); + #endif } std::string ConfigModel::get_configData_string(ConfigItem item) { - return ReadJsonData_String(GetcJSON(),get_config_name(item)); + #ifdef USE_KVSTORE_STORE_CONFIG + return ReadKVData_String(get_config_name(item)); + #else + return ReadJsonData_String(GetcJSON(),get_config_name(item)); + #endif } void ConfigModel::set_condigData_Int(ConfigItem item, int data) { - WriteJsonData_Int(GetcJSON(),get_config_name(item),data); + + #ifdef USE_KVSTORE_STORE_CONFIG + WriteKVData_Int(get_config_name(item),data); + #else + WriteJsonData_Int(GetcJSON(),get_config_name(item),data); + #endif } void ConfigModel::set_condigData_Double(ConfigItem item, double data) { - WriteJsonData_Double(GetcJSON(),get_config_name(item),data); + #ifdef USE_KVSTORE_STORE_CONFIG + WriteKVData_Double(get_config_name(item),data); + #else + WriteJsonData_Double(GetcJSON(),get_config_name(item),data); + #endif } void ConfigModel::set_condigData_Bool(ConfigItem item, bool data) { - WriteJsonData_Bool(GetcJSON(),get_config_name(item),data); + #ifdef USE_KVSTORE_STORE_CONFIG + WriteKVData_Bool(get_config_name(item),data); + #else + WriteJsonData_Bool(GetcJSON(),get_config_name(item),data); + #endif } void ConfigModel::set_condigData_String(ConfigItem item, const char *data) { - WriteJsonData_String(GetcJSON(),get_config_name(item),data); + #ifdef USE_KVSTORE_STORE_CONFIG + WriteKVData_String(get_config_name(item),data); + #else + WriteJsonData_String(GetcJSON(),get_config_name(item),data); + #endif } - void ConfigModel::set_condigData_VectorInt(ConfigItem item, const std::vector &data) - { - WriteJsonData_VectorInt(GetcJSON(),get_config_name(item),data); - } - void ConfigModel::set_condigData_VectorDouble(ConfigItem item, const std::vector &data) + int ConfigModel::sync_all_to_disk(void) { - WriteJsonData_VectorDouble(GetcJSON(),get_config_name(item),data); + #ifdef USE_KVSTORE_STORE_CONFIG - } - void ConfigModel::set_condigData_VectorString(ConfigItem item, const std::vector &data) - { - WriteJsonData_VectorString(GetcJSON(),get_config_name(item),data); - } - int ConfigModel::sync_all_to_disk(void) - { + #else char *jsonString = cJSON_Print(GetcJSON()); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); // Write to file as before WriteJsonToFile(jsonString, filePath.c_str()); cJSON_free(jsonString); + #endif return 1; } } @@ -984,12 +1175,12 @@ extern "C" { /*开机时从配置文件里读取的文件,直接同步到runtime里,方便其他应用使用*/ void installize_dev_runtime(void) { - int16_t timezone = get_timezone_quarters(); + int16_t timezone = cm_get_timezone_quarters(); uapi_set_timezone(timezone); //更新24小时显示模式 - uint8_t showtype=get_hour_show_model(); + uint8_t showtype=cm_get_hour_show_model(); uapi_dev_runtime_set_time_hour_show_model(showtype); - uint8_t vibmod=get_vibmod(); + uint8_t vibmod=cm_get_vibmod(); uapi_dev_runtime_set_vibmod(vibmod); } @@ -1003,40 +1194,40 @@ uint32_t ConfigModelInit(void) /*** * 蓝牙服务是否开启 */ -bool custom_ble_service_on_flag(void) +bool cm_custom_ble_service_on_flag(void) { return OHOS::ConfigModel::GetInstance()->GetClassicBlueToothState(); } /*** * Cat1服务是否开启 */ -bool poweron_cat1_on_bootup_flag(void) +bool cm_poweron_cat1_on_bootup_flag(void) { return OHOS::ConfigModel::GetInstance()->GetCat1_4Gability(); } -void sync_all_config_to_disk(void) +void cm_sync_all_config_to_disk(void) { OHOS::ConfigModel::GetInstance()->sync_all_to_disk(); } -void initScreenBrightness(void) +void cm_initScreenBrightness(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initScreenBrightness"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initScreenBrightness"); int brightness = OHOS::ConfigModel::GetInstance()->GetBrightness(); uapi_setScreenBrightness(brightness); } -void initializeScreenDuration(void) +void cm_initializeScreenDuration(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeScreenDuration"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeScreenDuration"); unsigned int time = OHOS::ConfigModel::GetInstance()->GetScreenDuration(); uapi_setScreenDuration(time); } -void initializeRaiseToWake(void) +void cm_initializeRaiseToWake(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeRaiseToWake"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeRaiseToWake"); bool isOpen = OHOS::ConfigModel::GetInstance()->GetRaiseToWake(); if(isOpen == true) { @@ -1048,94 +1239,94 @@ void initializeRaiseToWake(void) } } -void initializeVolume(void) +void cm_initializeVolume(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeVolume"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeVolume"); int systemVolume = OHOS::ConfigModel::GetInstance()->GetSystemVolume(); int callVolume = OHOS::ConfigModel::GetInstance()->GetCallVolume(); uapi_systemVolumeSet(systemVolume); uapi_callVolumeSet(callVolume); } -void initializeVibrationModel(void) +void cm_initializeVibrationModel(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeVibrationModel"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeVibrationModel"); int value = OHOS::ConfigModel::GetInstance()->GetVibrationReminder(); uapi_vibrationModeSet(value); } -void initializeSilentModel(void) +void cm_initializeSilentModel(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeSilentModel"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeSilentModel"); bool isopen = OHOS::ConfigModel::GetInstance()->GetSilentMode(); uapi_setSilentMode(isopen); } -void initializeVoLTECall(void) +void cm_initializeVoLTECall(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeVoLTECall"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeVoLTECall"); } -void initialize4GCapability(void) +void cm_initialize4GCapability(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initialize4GCapability"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initialize4GCapability"); bool isopen = OHOS::ConfigModel::GetInstance()->GetCat1_4Gability(); uapi_set4GCapability(isopen); } -void initializeMotionRecognition(void) +void cm_initializeMotionRecognition(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeMotionRecognition"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cm_initializeMotionRecognition"); bool isopen = OHOS::ConfigModel::GetInstance()->GetMotionRecognition(); } -bool get_SPP_switch(void) +bool cm_get_SPP_switch(void) { bool isopen = OHOS::ConfigModel::GetInstance()->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPP); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getSPPSwitch %d",isopen); return isopen; } -bool get_HFP_switch(void) +bool cm_get_HFP_switch(void) { bool isopen = OHOS::ConfigModel::GetInstance()->GetHFPState(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getHFPSwitch %d",isopen); return isopen; } -bool get_A2DP_switch(void) +bool cm_get_A2DP_switch(void) { bool isopen = OHOS::ConfigModel::GetInstance()->GetA2DPState(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getA2DPSwitch %d",isopen); return isopen; } -void set_timezone_quarters(int16_t timezone_quarters) +void cm_set_timezone_quarters(int16_t timezone_quarters) { OHOS::ConfigModel::GetInstance()->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TIMEZONE,timezone_quarters); } -int16_t get_timezone_quarters(void) +int16_t cm_get_timezone_quarters(void) { int16_t timezone_quarters; timezone_quarters = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TIMEZONE); return timezone_quarters; } -uint8_t get_hour_show_model(void) +uint8_t cm_get_hour_show_model(void) { uint8_t showtype = 0; showtype = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_24HOUR); return showtype; } -uint8_t get_vibmod(void) +uint8_t cm_get_vibmod(void) { uint8_t vibmod = 0; vibmod = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_VIBRATOR_SWITCH); return vibmod; } -void set_hour_show_model(uint8_t showtype) +void cm_set_hour_show_model(uint8_t showtype) { OHOS::ConfigModel::GetInstance()->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_24HOUR,showtype); } diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c index 8475fe746..001ed3fcc 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c @@ -35,7 +35,7 @@ #include "cywee_hal.h" #include "cywee_service.h" #include "custom_utils.h" - +#include "custom_runtime.h" FT_CUSTOM_RESULTS_t hrsresult ={0}; @@ -2949,7 +2949,7 @@ void hx3695_hrs_ppg_Int_handle(void) encoded_hrm[15] = ppg_s_data.green_cur;//绿灯电流 encoded_hrm[16] = ppg_s_data.ir_cur;//红外电流 - if(custom_ble_service_on_flag()) + if(cm_custom_ble_service_on_flag()) ble_ppgtest_server_send_input_report(encoded_hrm,PPG_DATA_LEN_MAX); // ble_op_att_send_data(ATT_CHARACTERISTIC_2a37_01_VALUE_HANDLE,encoded_hrm, \ @@ -3392,7 +3392,7 @@ void hx3695_spo2_ppg_Int_handle(void) encoded_hrm[15] = cal.R_LED; encoded_hrm[16] = cal.IR_LED1; - if(custom_ble_service_on_flag()) + if(cm_custom_ble_service_on_flag()) ble_ppgtest_server_send_input_report(encoded_hrm,PPG_DATA_LEN_MAX); } } diff --git a/code/sdk/drivers/peripheral/utils/custom_runtime.c b/code/sdk/drivers/peripheral/utils/custom_runtime.c index bce2ecb63..8c23033f2 100644 --- a/code/sdk/drivers/peripheral/utils/custom_runtime.c +++ b/code/sdk/drivers/peripheral/utils/custom_runtime.c @@ -257,8 +257,8 @@ void uapi_dev_runtime_set_time_hour_show_model(uint8_t hour_type) void uapi_dev_runtime_sync_runtime_env_to_config(void) { uint16_t timezone_quarters=uapi_get_timezone(); - set_timezone_quarters(timezone_quarters); - set_hour_show_model(g_runtime.time_hour_show_model); + cm_set_timezone_quarters(timezone_quarters); + cm_set_hour_show_model(g_runtime.time_hour_show_model); } void uapi_dev_runtime_set_ancs_clientid(uint16_t clientid) diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 806c5fb08..890455f0c 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -132,7 +132,7 @@ uint32_t zh_set_sn(uint8_t *buf_sn, uint32_t len_sn) extern uint32_t mcu_os_sys_reset(uint8_t *para, uint32_t para_len); extern void uapi_sys_shipmode(uint32_t arg); -extern void sync_all_config_to_disk(void); +extern void cm_sync_all_config_to_disk(void); void uapi_poweroff_device(void) { @@ -157,7 +157,7 @@ void shutdown_reboot_prejobs_task(void) //同步所有需要保存实时数据到config文件 uapi_dev_runtime_sync_runtime_env_to_config(); //保存config文件到磁盘 - sync_all_config_to_disk(); + cm_sync_all_config_to_disk(); //重启前要保存时间 uapi_calendar_store_date(); } @@ -304,18 +304,18 @@ void startup_post_init_task(void) uapi_calendar_recover_date(); - if(!custom_ble_service_on_flag()) + if(!cm_custom_ble_service_on_flag()) { stop_custom_ble_service(); } - initScreenBrightness(); - initializeScreenDuration(); - initializeRaiseToWake(); - initializeVolume(); - initializeVibrationModel(); - initializeSilentModel(); - // initializeVoLTECall(); + cm_initScreenBrightness(); + cm_initializeScreenDuration(); + cm_initializeRaiseToWake(); + cm_initializeVolume(); + cm_initializeVibrationModel(); + cm_initializeSilentModel(); + // cm_initializeVoLTECall(); //initialize4GCapability(); //initializeMotionRecognition(); @@ -332,7 +332,7 @@ void startup_post_init_task(void) addressbookToRead(NULL); up_report_timer(); - if ( poweron_cat1_on_bootup_flag() ) + if ( cm_poweron_cat1_on_bootup_flag() ) { PRINT("PowerOn Cat1 !\r\n"); @@ -1774,7 +1774,7 @@ void uapi_restore_factory_setting(void) { char *filebuf[3] = {"/system/ConfigModel.json", "/user/userdata", - "/user/kvstore" + "/system/kvstore" }; for(int i = 0; i < 3; i++) uapi_delete_files(filebuf[i]); -- 2.17.1