优化ConfigModel,用KVStore替换cJSON
authorSnickerSun <snickersun@163.com>
Fri, 21 Jun 2024 08:28:05 +0000 (16:28 +0800)
committerSnickerSun <snickersun@163.com>
Fri, 21 Jun 2024 08:28:05 +0000 (16:28 +0800)
code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp
code/sdk/drivers/peripheral/config/CMakeLists.txt
code/sdk/drivers/peripheral/config/include/ConfigModel.h
code/sdk/drivers/peripheral/config/include/ConfigModelC.h
code/sdk/drivers/peripheral/config/src/ConfigModel.cpp
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c
code/sdk/drivers/peripheral/utils/custom_runtime.c
code/sdk/drivers/peripheral/utils/custom_utils.c

index 1df04bc..6b26e38 100644 (file)
@@ -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)
index 20c5f3c..a9cb0a0 100644 (file)
@@ -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
index 9c28396..67408b4 100644 (file)
 #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};
         /* -------------------------------------------------------------------------- */
     };
index b80c427..1ea8649 100644 (file)
@@ -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
index cabe49a..2386f1c 100644 (file)
@@ -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<int> &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<double> &data)
+    {
+        WriteJsonData_VectorDouble(GetcJSON(),get_config_name(item),data);
+
+    }
+    void ConfigModel::set_condigData_VectorString(ConfigItem item, const std::vector<std::string> &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<int> &data)
-    {
-        WriteJsonData_VectorInt(GetcJSON(),get_config_name(item),data);
 
-    }
-    void ConfigModel::set_condigData_VectorDouble(ConfigItem item, const std::vector<double> &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<std::string> &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);
 }
index 8475fe7..001ed3f 100644 (file)
@@ -35,7 +35,7 @@
 #include "cywee_hal.h"\r
 #include "cywee_service.h"\r
 #include "custom_utils.h"\r
-\r
+#include "custom_runtime.h"\r
 \r
 FT_CUSTOM_RESULTS_t hrsresult ={0};\r
 \r
@@ -2949,7 +2949,7 @@ void hx3695_hrs_ppg_Int_handle(void)
             encoded_hrm[15] = ppg_s_data.green_cur;//绿灯电流\r
             encoded_hrm[16] = ppg_s_data.ir_cur;//红外电流\r
 \r
-            if(custom_ble_service_on_flag())\r
+            if(cm_custom_ble_service_on_flag())\r
               ble_ppgtest_server_send_input_report(encoded_hrm,PPG_DATA_LEN_MAX);\r
 \r
             // ble_op_att_send_data(ATT_CHARACTERISTIC_2a37_01_VALUE_HANDLE,encoded_hrm, \\r
@@ -3392,7 +3392,7 @@ void hx3695_spo2_ppg_Int_handle(void)
             \r
             encoded_hrm[15] = cal.R_LED;\r
             encoded_hrm[16] = cal.IR_LED1;\r
-            if(custom_ble_service_on_flag())\r
+            if(cm_custom_ble_service_on_flag())\r
               ble_ppgtest_server_send_input_report(encoded_hrm,PPG_DATA_LEN_MAX);\r
         }\r
     }\r
index bce2ecb..8c23033 100644 (file)
@@ -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)
index 806c5fb..890455f 100644 (file)
@@ -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]);