static ConfigModel *GetInstance();
cJSON *GetcJSON(void);
bool LoadJsonData(void);
- template <class T>
- T ReadJsonData(const cJSON *json_obj, const char *field_name);
- template <class T>
- void WriteJsonData(cJSON *json_obj, const char *field_name, T data);
+ // template <class T>
+ // T ReadJsonData(const cJSON *json_obj, const char *field_name);
+ // template <class T>
+ // void WriteJsonData(cJSON *json_obj, const char *field_name, T data);
/* -------------------------------------------------------------------------- */
std::string ReadJsonData_String(const cJSON *json_obj, const char *field_name);
/// @tparam T
/// @param json_obj json 对象 field_name 字段名称
/// @return 读取到的对应值
- template <class T>
- T ConfigModel::ReadJsonData(const cJSON *json_obj, const char *field_name)
- {
- const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name);
- if (field_item != NULL)
- {
- if (cJSON_IsString(field_item))
- {
- return T(field_item->string);
- }
- else if (cJSON_IsNumber(field_item))
- {
- return T(field_item->valuedouble);
- }
- else if (cJSON_IsBool(field_item))
- {
- return T(field_item->valueint);
- }
- else if (cJSON_IsArray(field_item))
- {
- return T(cJSON_GetArraySize(field_item));
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unsupported data type");
- return T("Unsupported data type");
- }
- }
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found");
- return T("Field not found");
- }
+ // template <class T>
+ // T ConfigModel::ReadJsonData(const cJSON *json_obj, const char *field_name)
+ // {
+ // const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name);
+ // if (field_item != NULL)
+ // {
+ // if (cJSON_IsString(field_item))
+ // {
+ // return T(field_item->string);
+ // }
+ // else if (cJSON_IsNumber(field_item))
+ // {
+ // return T(field_item->valuedouble);
+ // }
+ // else if (cJSON_IsBool(field_item))
+ // {
+ // return T(field_item->valueint);
+ // }
+ // else if (cJSON_IsArray(field_item))
+ // {
+ // return T(cJSON_GetArraySize(field_item));
+ // }
+ // else
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unsupported data type");
+ // return T("Unsupported data type");
+ // }
+ // }
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found");
+ // return T("Field not found");
+ // }
/// @brief 通用的写JSON数据函数
/// @tparam T
/// @param json_obj json对象
/// @param field_name 字段名称
/// @param data 要写入的数据
- template <class T>
- void ConfigModel::WriteJsonData(cJSON *json_obj, const char *field_name, T data)
- {
- if (json_obj == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!");
- return;
- }
-
- cJSON *data_obj = cJSON_CreateNull();
- if constexpr (std::is_same<T, int>::value || std::is_same<T, unsigned char>::value || std::is_same<T, unsigned int>::value)
- {
- data_obj = cJSON_CreateNumber(static_cast<double>(data));
- }
- else if constexpr (std::is_same<T, double>::value || std::is_same<T, float>::value)
- {
- data_obj = cJSON_CreateNumber(data);
- }
- else if constexpr (std::is_same<T, bool>::value)
- {
- data_obj = cJSON_CreateBool(data);
- }
- else if constexpr (std::is_same<T, const char *>::value || std::is_same<T, std::string>::value)
- {
- data_obj = cJSON_CreateString(data);
- }
-
- if (data_obj != nullptr)
- {
- cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
-
- char *jsonString = cJSON_Print(json_obj);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString);
- if (jsonString != nullptr)
- {
- FILE *file = fopen(filePath.c_str(), "wb");
- if (file)
- {
- if (fputs(jsonString, file) != EOF) // 将 JSON 字符串写入文件
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WriteJsonData success\n");
- }
- fclose(file);
- }
- free(jsonString);
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jsonString is nullptr");
- return;
- }
- }
- }
+ // template <class T>
+ // void ConfigModel::WriteJsonData(cJSON *json_obj, const char *field_name, T data)
+ // {
+ // if (json_obj == nullptr)
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!");
+ // return;
+ // }
+
+ // cJSON *data_obj = cJSON_CreateNull();
+ // if constexpr (std::is_same<T, int>::value || std::is_same<T, unsigned char>::value || std::is_same<T, unsigned int>::value)
+ // {
+ // data_obj = cJSON_CreateNumber(static_cast<double>(data));
+ // }
+ // else if constexpr (std::is_same<T, double>::value || std::is_same<T, float>::value)
+ // {
+ // data_obj = cJSON_CreateNumber(data);
+ // }
+ // else if constexpr (std::is_same<T, bool>::value)
+ // {
+ // data_obj = cJSON_CreateBool(data);
+ // }
+ // else if constexpr (std::is_same<T, const char *>::value || std::is_same<T, std::string>::value)
+ // {
+ // data_obj = cJSON_CreateString(data);
+ // }
+
+ // if (data_obj != nullptr)
+ // {
+ // cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
+
+ // char *jsonString = cJSON_Print(json_obj);
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString);
+ // if (jsonString != nullptr)
+ // {
+ // FILE *file = fopen(filePath.c_str(), "wb");
+ // if (file)
+ // {
+ // if (fputs(jsonString, file) != EOF) // 将 JSON 字符串写入文件
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WriteJsonData success\n");
+ // }
+ // fclose(file);
+ // }
+ // free(jsonString);
+ // }
+ // else
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jsonString is nullptr");
+ // return;
+ // }
+ // }
+ // }
/* ------------------------------ ImageAnimator ----------------------------- */
/*
* 图片动画类
/* -------------------------------- set与get方法 ------------------------------- */
void ConfigModel::SetRaiseToBrightnessCheckBoxButtonState()
{
- RaiseToBrightnessCheckBoxButtonState = ReadJsonData<bool>(GetcJSON(), "RaiseToBrightnessCheckBoxButtonState");
+ RaiseToBrightnessCheckBoxButtonState = ReadJsonData_Bool(GetcJSON(), "RaiseToBrightnessCheckBoxButtonState");
}
/// @brief 获取抬腕按钮状态
void ConfigModel::SetScreenBrightnessValue()
{
- ScreenBrightnessValue = static_cast<unsigned char>(ReadJsonData<int>(GetcJSON(), "ScreenBrightnessValue"));
+ ScreenBrightnessValue = static_cast<unsigned char>(ReadJsonData_Int(GetcJSON(), "ScreenBrightnessValue"));
}
/// @brief 获取亮度值
void ConfigModel::SetScreenDurationRadioButtonSlectValue()
{
- ScreenDurationRadioButtonSlectValue = static_cast<unsigned int>(ReadJsonData<int>(GetcJSON(), "ScreenDurationRadioButtonSlectValue"));
+ ScreenDurationRadioButtonSlectValue = static_cast<unsigned int>(ReadJsonData_Int(GetcJSON(), "ScreenDurationRadioButtonSlectValue"));
}
/// @brief 获取亮屏时长三个单选框选中状况,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏
void ConfigModel::SetTradionalBlueToothToggleButtonState(void)
{
- TradionalBlueToothToggleButtonState = (ReadJsonData<bool>(GetcJSON(), "TradionalBlueToothToggleButtonState"));
+ TradionalBlueToothToggleButtonState = (ReadJsonData_Bool(GetcJSON(), "TradionalBlueToothToggleButtonState"));
}
/// @brief 获取蓝牙开关状态
void ConfigModel::SetHeartRateOrBloodOxygenQuickAccessSwitch(void)
{
- HeartRateOrBloodOxygenQuickAccessSwitch = (ReadJsonData<int>(GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch"));
+ HeartRateOrBloodOxygenQuickAccessSwitch = (ReadJsonData_Int(GetcJSON(), "HeartRateOrBloodOxygenQuickAccessSwitch"));
}
/// @brief 获取“心率或血氧”快速访问开关
dial_config *ConfigModel::GetDialId()
{
// 读取json数据
- dialid_ = (ReadJsonData<int>(GetcJSON(), "Dial_Id"));
+ dialid_ = (ReadJsonData_Int(GetcJSON(), "Dial_Id"));
dialname_ = ReadJsonData_String(GetcJSON(), "Dial_Name");
dial_config *dial = new dial_config();
dial->dialid = dialid_;
void ConfigModel::SetLanguage(int language)
{
languageid_ = language;
- WriteJsonData<int>(GetcJSON(), "Language_Id", languageid_);
+ WriteJsonData_Int(GetcJSON(), "Language_Id", languageid_);
}
int ConfigModel::GetLanguage()
{
- languageid_ = (ReadJsonData<int>(GetcJSON(), "Language_Id"));
+ languageid_ = (ReadJsonData_Int(GetcJSON(), "Language_Id"));
return languageid_;
}