ConfigModel添加json数据读取set与get方法
authorluozheng <1732036298@qq.com>
Mon, 4 Mar 2024 02:51:20 +0000 (10:51 +0800)
committerluozheng <1732036298@qq.com>
Mon, 4 Mar 2024 02:51:20 +0000 (10:51 +0800)
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothModel.cpp
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/src/SecondaryFunctionModel.cpp

index 54a07f6..7fdca67 100644 (file)
@@ -224,7 +224,7 @@ namespace OHOS
         }
 #endif
         /* ------------------------------- ConfigModel ------------------------------ */
-        ConfigModel::GetInstance()->LoadJsonData();
+        ConfigModel::GetInstance()->Init();
         /* -------------------------------------------------------------------------- */
 
         // 初始化所有预加载slice
index 849e455..b2d2422 100644 (file)
@@ -6,7 +6,7 @@ namespace OHOS
     ClassicBlueToothModel::ClassicBlueToothModel()\r
     {\r
         ConfigModel *p_ConfigModel = ConfigModel::GetInstance();\r
-        TradionalBlueToothToggleButtonState = (p_ConfigModel->ReadJsonData<bool>(p_ConfigModel->GetcJSON(), "TradionalBlueToothToggleButtonState"));\r
+        TradionalBlueToothToggleButtonState = p_ConfigModel->GetTradionalBlueToothToggleButtonState();\r
     }\r
 \r
     ClassicBlueToothModel::~ClassicBlueToothModel() {}\r
index bfbc508..1590945 100644 (file)
@@ -4,7 +4,7 @@
 #include <iostream>
 #include <fstream>
 #include <filesystem>
-#include "cJSON.h"
+#include "../../../../../../open_source/openharmony/third_party/cJSON/cJSON.h"
 #include "wearable_log.h"
 
 namespace OHOS
@@ -19,7 +19,20 @@ namespace OHOS
         T ReadJsonData(const cJSON *json_obj, const char *field_name);
         template <class T>
         void WriteJsonData(cJSON *json_obj, const char *field_name, T data);
-
+        void ShowReadJsonData(void);
+        void Init(void);
+        /* -------------------------------- set与get方法 ------------------------------- */
+        void SetRaiseToBrightnessCheckBoxButtonState(void);
+        bool GetRaiseToBrightnessCheckBoxButtonState(void);
+        void SetScreenBrightnessValue(void);
+        unsigned GetScreenBrightnessValue(void);
+        void SetScreenDurationRadioButtonSlectValue(void);
+        unsigned int GetScreenDurationRadioButtonSlectValue(void);
+        void SetTradionalBlueToothToggleButtonState(void);
+        bool GetTradionalBlueToothToggleButtonState(void);
+        void SetHeartRateOrBloodOxygenQuickAccessSwitch(void);
+        int GetHeartRateOrBloodOxygenQuickAccessSwitch(void);
+        /* -------------------------------------------------------------------------- */
     private:
         ConfigModel();                                        // 私有构造函数,确保无法在外部实例化
         ConfigModel(const ConfigModel &) = delete;            // 禁止拷贝构造
@@ -29,7 +42,13 @@ namespace OHOS
     private:
         const std::string filePath = "/user/res/ConfigModel/ConfigModel.json";
         cJSON *cjson_json{nullptr};
-        int RaiseToBrightnessCheckBoxButtonState;
+        /* ------------------------------- json中要读取的键 ------------------------------- */
+        bool RaiseToBrightnessCheckBoxButtonState{false};    // 抬腕按钮状态 ,默认补选中
+        unsigned char ScreenBrightnessValue{255};            // 亮度值 ,默认最大亮度
+        unsigned int ScreenDurationRadioButtonSlectValue{1}; // 亮屏时长 ,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏
+        bool TradionalBlueToothToggleButtonState{false};     // 用来记录蓝牙开关状态,默认关闭状态
+        int HeartRateOrBloodOxygenQuickAccessSwitch{0};      // 心率或血氧快速访问开关,默认快速访问血氧打开
+        /* -------------------------------------------------------------------------- */
     };
 
     /// @brief 通用的读取数据函数,根据字段名称从 JSON 对象中读取对应值
@@ -110,8 +129,10 @@ namespace OHOS
                 FILE *file = fopen(filePath.c_str(), "wb");
                 if (file)
                 {
-                    fputs(jsonString, file);
-                    //fwrite(jsonString, 1, strlen(jsonString), file); // 将 JSON 字符串写入文件
+                    if (fputs(jsonString, file) != EOF) // 将 JSON 字符串写入文件
+                    {
+                        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WriteJsonData success\n");
+                    }
                     fclose(file);
                 }
                 free(jsonString);
index 8d40ca8..7d4feec 100644 (file)
@@ -44,4 +44,88 @@ namespace OHOS
         }
         return false;
     }
+
+    void ConfigModel::Init(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init");
+        /* -------------------------------- 1.加载json文件 -------------------------------- */
+        LoadJsonData();
+
+        /* ---------------------------- 2.从加载的json文件读取数据初始化 --------------------------- */
+        SetRaiseToBrightnessCheckBoxButtonState();
+        SetScreenBrightnessValue();
+        SetScreenDurationRadioButtonSlectValue();
+        SetHeartRateOrBloodOxygenQuickAccessSwitch();
+        SetHeartRateOrBloodOxygenQuickAccessSwitch();
+        /* ------------------------------ 3.显示读取到的json数据 ------------------------------ */
+        ShowReadJsonData();
+    }
+
+    /// @brief 显示读取到的json数据
+    void ConfigModel::ShowReadJsonData(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------- JsonData: ------------------------------- */\n");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButtonState:%d", RaiseToBrightnessCheckBoxButtonState);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenBrightnessValue:%d", ScreenBrightnessValue);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationRadioButtonSlectValue:%d", ScreenDurationRadioButtonSlectValue);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TradionalBlueToothToggleButtonState:%d", TradionalBlueToothToggleButtonState);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartRateOrBloodOxygenQuickAccessSwitch:%d", HeartRateOrBloodOxygenQuickAccessSwitch);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------------------------------------------------- */\n");
+    }
+
+    /* -------------------------------- set与get方法 ------------------------------- */
+    void ConfigModel::SetRaiseToBrightnessCheckBoxButtonState()
+    {
+        RaiseToBrightnessCheckBoxButtonState = ReadJsonData<bool>(GetcJSON(), "RaiseToBrightnessCheckBoxButtonState");
+    }
+
+    /// @brief 获取抬腕按钮状态
+    bool ConfigModel::GetRaiseToBrightnessCheckBoxButtonState(void)
+    {
+        return RaiseToBrightnessCheckBoxButtonState;
+    }
+
+    void ConfigModel::SetScreenBrightnessValue()
+    {
+        ScreenBrightnessValue = static_cast<unsigned char>(ReadJsonData<int>(GetcJSON(), "ScreenBrightnessValue"));
+    }
+
+    /// @brief 获取亮度值
+    unsigned ConfigModel::GetScreenBrightnessValue(void)
+    {
+        return ScreenBrightnessValue;
+    }
+
+    void ConfigModel::SetScreenDurationRadioButtonSlectValue()
+    {
+        ScreenDurationRadioButtonSlectValue = static_cast<unsigned int>(ReadJsonData<int>(GetcJSON(), "ScreenDurationRadioButtonSlectValue"));
+    }
+
+    /// @brief 获取亮屏时长三个单选框选中状况,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏
+    unsigned int ConfigModel::GetScreenDurationRadioButtonSlectValue(void)
+    {
+        return ScreenDurationRadioButtonSlectValue;
+    }
+
+    void ConfigModel::SetTradionalBlueToothToggleButtonState(void)
+    {
+        TradionalBlueToothToggleButtonState = (ReadJsonData<bool>(GetcJSON(), "TradionalBlueToothToggleButtonState"));
+    }
+
+    /// @brief 获取蓝牙开关状态
+    bool ConfigModel::GetTradionalBlueToothToggleButtonState(void)
+    {
+        return TradionalBlueToothToggleButtonState;
+    }
+
+    void ConfigModel::SetHeartRateOrBloodOxygenQuickAccessSwitch(void)
+    {
+        HeartRateOrBloodOxygenQuickAccessSwitch = (ReadJsonData<int>(GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch"));
+    }
+
+    /// @brief 获取“心率或血氧”快速访问开关
+    int ConfigModel::GetHeartRateOrBloodOxygenQuickAccessSwitch(void)
+    {
+        return HeartRateOrBloodOxygenQuickAccessSwitch;
+    }
 }
\ No newline at end of file
index 505890e..b684cfd 100644 (file)
@@ -26,7 +26,7 @@ namespace OHOS
         bool RaiseToBrightnessCheckBoxButtonState{false};    // 抬腕按钮状态 ,默认补选中\r
         unsigned char ScreenBrightnessValue{255};            // 亮度值 ,默认最大亮度\r
         unsigned int ScreenDurationRadioButtonSlectValue{1}; // 亮屏时长 ,1对应10秒后熄屏\r
-        unsigned int ScreenDurationTime;\r
+        unsigned int ScreenDurationTime{10000};\r
     };\r
 }\r
 \r
index d0121fc..3b65448 100644 (file)
@@ -7,9 +7,9 @@ namespace OHOS
     DisplayBrightnessModel::DisplayBrightnessModel()
     {
         ConfigModel *p_ConfigModel = ConfigModel::GetInstance();
-        RaiseToBrightnessCheckBoxButtonState = p_ConfigModel->ReadJsonData<bool>(p_ConfigModel->GetcJSON(), "RaiseToBrightnessCheckBoxButtonState");
-        ScreenBrightnessValue = static_cast<unsigned char>(p_ConfigModel->ReadJsonData<int>(p_ConfigModel->GetcJSON(), "ScreenBrightnessValue"));
-        ScreenDurationRadioButtonSlectValue = static_cast<unsigned char>(p_ConfigModel->ReadJsonData<int>(p_ConfigModel->GetcJSON(), "ScreenDurationRadioButtonSlectValue"));
+        RaiseToBrightnessCheckBoxButtonState = p_ConfigModel->GetRaiseToBrightnessCheckBoxButtonState();
+        ScreenBrightnessValue = p_ConfigModel->GetScreenBrightnessValue();
+        ScreenDurationRadioButtonSlectValue =p_ConfigModel->GetScreenDurationRadioButtonSlectValue();
     }
 
     DisplayBrightnessModel::~DisplayBrightnessModel() {}
index 5c558be..b3aed18 100644 (file)
@@ -8,7 +8,7 @@ namespace OHOS
     SecondaryFunctionModel::SecondaryFunctionModel()
     {
         ConfigModel *p_ConfigModel = ConfigModel::GetInstance();
-        HeartRateOrBloodOxygenQuickAccessSwitch = (p_ConfigModel->ReadJsonData<bool>(p_ConfigModel->GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch"));
+        HeartRateOrBloodOxygenQuickAccessSwitch = p_ConfigModel->GetHeartRateOrBloodOxygenQuickAccessSwitch();
     }
     SecondaryFunctionModel::~SecondaryFunctionModel() {}