{
class ConfigModel
{
- public:
+ public:
enum ConfigDataType
{
DATATYPE_INT,
DATATYPE_VECTOR_DOUBLE,
DATATYPE_VECTOR_STRING,
DATATYPE_UNKNOWN,
- } ;
+ };
enum ConfigItem
{
- CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON, //关机前经典蓝牙服务状态,启动时仍然恢复其当时状态
- CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE, //屏幕亮度
- CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, //屏幕自动息屏时间 默认 5秒 5000ms
- CONFIGMODEL_ITEM_CAT1_SERVICE_ON, // 关机前Cat1 Service启动着,则重启仍然启动,反之亦然
- CONFIGMODEL_ITEM_CAT1_IMEI, //Cat1 imei
- CONFIGMODEL_ITEM_CAT1_MODEMVER, //Cat1 modem version
- CONFIGMODEL_ITEM_CAT1_PYVER, //Cat1 Python app version
- CONFIGMODEL_ITEM_LANGUAGE_ID, //语言ID int id
- CONFIGMODEL_ITEM_LANGUAGE_CODE, //语言Code string "zh","en"
- CONFIGMODEL_ITEM_SILENT_MODE, //静音模式模式
- CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关, 0 关, 1 弱, 2 中,3 强
+ CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON, // 关机前经典蓝牙服务状态,启动时仍然恢复其当时状态
+ CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE, // 屏幕亮度
+ CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, // 屏幕自动息屏时间 默认 5秒 5000ms
+ CONFIGMODEL_ITEM_CAT1_SERVICE_ON, // 关机前Cat1 Service启动着,则重启仍然启动,反之亦然
+ CONFIGMODEL_ITEM_CAT1_IMEI, // Cat1 imei
+ CONFIGMODEL_ITEM_CAT1_MODEMVER, // Cat1 modem version
+ CONFIGMODEL_ITEM_CAT1_PYVER, // Cat1 Python app version
+ CONFIGMODEL_ITEM_LANGUAGE_ID, // 语言ID int id
+ CONFIGMODEL_ITEM_LANGUAGE_CODE, // 语言Code string "zh","en"
+ CONFIGMODEL_ITEM_SILENT_MODE, // 静音模式模式
+ CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关, 0 关, 1 弱, 2 中,3 强
// CONFIGMODEL_ITEM_HRS_QUICKACCESS,
// CONFIGMODEL_ITEM_SPO2_QUICKACCESS,
- CONFIGMODEL_ITEM_RAISE_TO_WAKE, //抬腕亮屏开关
- CONFIGMODEL_ITEM_ACTIVITY_VALUES_STEPCOUNT, //活动数据步数
- CONFIGMODEL_ITEM_ACTIVITY_VALUES_CALORIES, //活动数据卡路里,
- CONFIGMODEL_ITEM_ACTIVITY_VALUES_STANDUP_TIMES, //活动数据站立次数
- CONFIGMODEL_ITEM_ACTIVITY_VALUES_DURATION, //活动数据运动时间
- CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, //活动数据运动距离
- CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, //活动数据更新时间戳
- CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT, //用户数据身高
- CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT, //用户数据体重
- CONFIGMODEL_ITEM_CUSTOM_DATA_SEX, //用户数据性别
- CONFIGMODEL_ITEM_CUSTOM_DATA_AGE, //用户数据年龄
- CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE, //用户数据佩戴方式
- CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, //运动目标步数
- CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, //运动目标卡路里
- CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, //运动目标站立次数
- CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, //运动目标时长
- CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离
- CONFIGMODEL_ITEM_DNOTDISTURB,//勿扰模式
- CONFIGMODEL_ITEM_TRANING_FREQ,//训练实时数据上传频率
+ CONFIGMODEL_ITEM_RAISE_TO_WAKE, // 抬腕亮屏开关
+ CONFIGMODEL_ITEM_ACTIVITY_VALUES_STEPCOUNT, // 活动数据步数
+ CONFIGMODEL_ITEM_ACTIVITY_VALUES_CALORIES, // 活动数据卡路里,
+ CONFIGMODEL_ITEM_ACTIVITY_VALUES_STANDUP_TIMES, // 活动数据站立次数
+ CONFIGMODEL_ITEM_ACTIVITY_VALUES_DURATION, // 活动数据运动时间
+ CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, // 活动数据运动距离
+ CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, // 活动数据更新时间戳
+ CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT, // 用户数据身高
+ CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT, // 用户数据体重
+ CONFIGMODEL_ITEM_CUSTOM_DATA_SEX, // 用户数据性别
+ CONFIGMODEL_ITEM_CUSTOM_DATA_AGE, // 用户数据年龄
+ CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE, // 用户数据佩戴方式
+ CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, // 运动目标步数
+ CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, // 运动目标卡路里
+ CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, // 运动目标站立次数
+ CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, // 运动目标时长
+ CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, // 运动目标距离
+ CONFIGMODEL_ITEM_DNOTDISTURB, // 勿扰模式
+ CONFIGMODEL_ITEM_TRANING_FREQ, // 训练实时数据上传频率
CONFIGMODEL_ITEM_MAX,
- } ;
+ };
- struct configmodel_item{
+ struct configmodel_item
+ {
ConfigDataType type;
- const char* itemname;
- char *defaultValue;
+ const char *itemname;
+ char *defaultValue;
};
-
- const char* get_config_name(ConfigItem item)
+ const char *get_config_name(ConfigItem item)
{
return configmodel_item_key_name[item].itemname;
}
}
static ConfigModel *GetInstance();
void Init(void);
- /* -------------- 通用 读值 赋值 函数 ----------------- */
+ /* -------------- 通用 读值 赋值 函数 ----------------- */
int get_configData_int(ConfigItem item);
double get_configData_double(ConfigItem item);
bool get_configData_bool(ConfigItem item);
void set_condigData_String(ConfigItem item, const char *data);
void set_condigData_VectorInt(ConfigItem item, const std::vector<int> &data);
void set_condigData_VectorDouble(ConfigItem item, const std::vector<double> &data);
- void set_condigData_VectorString(ConfigItem item, const std::vector<std::string> &data);
+ void set_condigData_VectorString(ConfigItem item, const std::vector<std::string> &data);
void reset_item_to_default(ConfigItem item);
int sync_all_to_disk(void);
-
-
+
/* --------------------------------自定义封装 set与get方法 ------------------------------- */
bool GetClassicBlueToothState(void);
-
+
void SetLanguage(int languageid);
int GetLanguage();
void SetLanguageCode(const char *languagecode);
std::string Getimei();
std::string GetpyVer();
std::string GetmoderVer();
-
+
void Setimei(char *str);
void SetpyVer(char *str);
void SetmoderVer(char *str);
-
+
void SetVibrationReminder(int state);
int GetVibrationReminder(void);
-
+
void SetSilentMode(bool state);
bool GetSilentMode(void);
/* ----------------------------- 屏幕与亮度相关set与get ----------------------------- */
void SetBrightness(int level);
- int GetBrightness(void);
+ int GetBrightness(void);
void SetScreenDuration(unsigned int value);
unsigned int GetScreenDuration(void);
void SetRaiseToWake(bool value);
bool GetRaiseToWake(void);
- // -------------------------------------------------------------------------- */
+ /* --------------------------------- 用户配置信息 --------------------------------- */
+ void SetUserAge(int age);
+ int GetUserAge();
+ /* -------------------------------------------------------------------------- */
private:
configmodel_item configmodel_item_key_name[CONFIGMODEL_ITEM_MAX] =
- {
- {ConfigDataType::DATATYPE_BOOL, "ClassicBT_Service_On", "true" },//CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON, //关机前经典蓝牙服务状态,启动时仍然恢复其当时状态
- {ConfigDataType::DATATYPE_INT, "ScreenBrightness", "255" },//CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,
- {ConfigDataType::DATATYPE_INT, "ScreenOffTimeoutValue", "5000" },//CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, 自动息屏时间,默认5秒 5000ms
- {ConfigDataType::DATATYPE_BOOL, "Cat1_Service_On", "false" },//CONFIGMODEL_ITEM_CAT1_SERVICE_ON, // 关机前Cat1 Service启动着,则重启仍然启动,反之亦然
- {ConfigDataType::DATATYPE_STRING, "Cat1_IMEI", "" },//CONFIGMODEL_ITEM_CAT1_IMEI,
- {ConfigDataType::DATATYPE_STRING, "Cat1_ModemVer", "" },//CONFIGMODEL_ITEM_CAT1_MODEMVER,
- {ConfigDataType::DATATYPE_STRING, "Cat1_PYVer", "" },//CONFIGMODEL_ITEM_CAT1_PYVER,
- {ConfigDataType::DATATYPE_INT, "LanguageID", "-1" },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
- {ConfigDataType::DATATYPE_STRING, "LanguageCode", "zh" },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
- {ConfigDataType::DATATYPE_BOOL, "SlientMode", "false" },//CONFIGMODEL_ITEM_SILENT_MODE,
- {ConfigDataType::DATATYPE_INT, "VibratorSwitch", "1" },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关, 0 关, 1 弱, 2 中,3 强
- // {ConfigDataType::DATATYPE_BOOL, "HRS_QuickAccess", "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
- // {ConfigDataType::DATATYPE_BOOL, "SPO2_QuickAccess", "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
- {ConfigDataType::DATATYPE_BOOL, "Rase2Wake", "true" },//CONFIGMODEL_ITEM_RAISE_TO_WAKE,
- {ConfigDataType::DATATYPE_INT, "StepCount", "0" },//CONFIGMODEL_ITEM_ACTIVITY_VALUES_STEPCOUNT, //活动数据步数
- {ConfigDataType::DATATYPE_INT, "Calories", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_CALORIES, //活动数据卡路里,
- {ConfigDataType::DATATYPE_INT, "StandupTimes", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_STANDUP_TIMES, //活动数据站立次数
- {ConfigDataType::DATATYPE_INT, "Duration", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DURATION, //活动数据运动时间
- {ConfigDataType::DATATYPE_DOUBLE, "Distance", "0.0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, //活动数据运动距离
- {ConfigDataType::DATATYPE_INT, "ActivityTimestamp", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, //活动数据更新时间戳
- {ConfigDataType::DATATYPE_INT, "height", "175" },// CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT, //用户数据身高 (cm)(身高)(default : 175)(30 - 300)
- {ConfigDataType::DATATYPE_DOUBLE, "weight", "70.0" },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT, //用户数据体重 (kg)(體重)(default : 70)(10 - 300)
- {ConfigDataType::DATATYPE_INT, "sex", "1" },// CONFIGMODEL_ITEM_CUSTOM_DATA_SEX, //用户数据性别 (default : 1 男性)(0 : 女性, 1 : 男性)
- {ConfigDataType::DATATYPE_INT, "age", "30" },// CONFIGMODEL_ITEM_CUSTOM_DATA_AGE, //用户数据年龄 (年紀)(default : 30)(1 - 99)
- {ConfigDataType::DATATYPE_INT, "WearingMode", "0" },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE, //用户数据佩戴方式 (default : 左手)(0 : 左手 1 : 右手)
- {ConfigDataType::DATATYPE_INT, "GoalStepCount", "10000" },// CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, //运动目标步数 10000
- {ConfigDataType::DATATYPE_INT, "GoalCalories", "300" },// CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, //运动目标卡路里 300(kcal)
- {ConfigDataType::DATATYPE_INT, "GoalStandupTimes", "10" },// CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, //运动目标站立次数 10
- {ConfigDataType::DATATYPE_INT, "GoalDuration", "30" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, //运动目标时长 30(分钟)
- {ConfigDataType::DATATYPE_DOUBLE, "GoalDistance", "8.0" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离 8.0(km)
- {ConfigDataType::DATATYPE_BOOL, "Dnotdisturb", "false" },// CONFIGMODEL_ITEM_DNOTDISTURB //勿扰模式默认关闭
- {ConfigDataType::DATATYPE_INT, "traningfreq", "10" },// CONFIGMODEL_ITEM_TRANING_FREQ //训练实时数据上传频率//单位秒
+ {
+ {ConfigDataType::DATATYPE_BOOL, "ClassicBT_Service_On", "true"}, // CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON, //关机前经典蓝牙服务状态,启动时仍然恢复其当时状态
+ {ConfigDataType::DATATYPE_INT, "ScreenBrightness", "255"}, // CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,
+ {ConfigDataType::DATATYPE_INT, "ScreenOffTimeoutValue", "5000"}, // CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, 自动息屏时间,默认5秒 5000ms
+ {ConfigDataType::DATATYPE_BOOL, "Cat1_Service_On", "false"}, // CONFIGMODEL_ITEM_CAT1_SERVICE_ON, // 关机前Cat1 Service启动着,则重启仍然启动,反之亦然
+ {ConfigDataType::DATATYPE_STRING, "Cat1_IMEI", ""}, // CONFIGMODEL_ITEM_CAT1_IMEI,
+ {ConfigDataType::DATATYPE_STRING, "Cat1_ModemVer", ""}, // CONFIGMODEL_ITEM_CAT1_MODEMVER,
+ {ConfigDataType::DATATYPE_STRING, "Cat1_PYVer", ""}, // CONFIGMODEL_ITEM_CAT1_PYVER,
+ {ConfigDataType::DATATYPE_INT, "LanguageID", "-1"}, // CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
+ {ConfigDataType::DATATYPE_STRING, "LanguageCode", "zh"}, // CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
+ {ConfigDataType::DATATYPE_BOOL, "SlientMode", "false"}, // CONFIGMODEL_ITEM_SILENT_MODE,
+ {ConfigDataType::DATATYPE_INT, "VibratorSwitch", "1"}, // CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关, 0 关, 1 弱, 2 中,3 强
+ // {ConfigDataType::DATATYPE_BOOL, "HRS_QuickAccess", "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
+ // {ConfigDataType::DATATYPE_BOOL, "SPO2_QuickAccess", "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
+ {ConfigDataType::DATATYPE_BOOL, "Rase2Wake", "true"}, // CONFIGMODEL_ITEM_RAISE_TO_WAKE,
+ {ConfigDataType::DATATYPE_INT, "StepCount", "0"}, // CONFIGMODEL_ITEM_ACTIVITY_VALUES_STEPCOUNT, //活动数据步数
+ {ConfigDataType::DATATYPE_INT, "Calories", "0"}, // CONFIGMODEL_ITEM_ACTIVITY_VALUES_CALORIES, //活动数据卡路里,
+ {ConfigDataType::DATATYPE_INT, "StandupTimes", "0"}, // CONFIGMODEL_ITEM_ACTIVITY_VALUES_STANDUP_TIMES, //活动数据站立次数
+ {ConfigDataType::DATATYPE_INT, "Duration", "0"}, // CONFIGMODEL_ITEM_ACTIVITY_VALUES_DURATION, //活动数据运动时间
+ {ConfigDataType::DATATYPE_DOUBLE, "Distance", "0.0"}, // CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, //活动数据运动距离
+ {ConfigDataType::DATATYPE_INT, "ActivityTimestamp", "0"}, // CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, //活动数据更新时间戳
+ {ConfigDataType::DATATYPE_INT, "height", "175"}, // CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT, //用户数据身高 (cm)(身高)(default : 175)(30 - 300)
+ {ConfigDataType::DATATYPE_DOUBLE, "weight", "70.0"}, // CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT, //用户数据体重 (kg)(體重)(default : 70)(10 - 300)
+ {ConfigDataType::DATATYPE_INT, "sex", "1"}, // CONFIGMODEL_ITEM_CUSTOM_DATA_SEX, //用户数据性别 (default : 1 男性)(0 : 女性, 1 : 男性)
+ {ConfigDataType::DATATYPE_INT, "age", "30"}, // CONFIGMODEL_ITEM_CUSTOM_DATA_AGE, //用户数据年龄 (年紀)(default : 30)(1 - 99)
+ {ConfigDataType::DATATYPE_INT, "WearingMode", "0"}, // CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE, //用户数据佩戴方式 (default : 左手)(0 : 左手 1 : 右手)
+ {ConfigDataType::DATATYPE_INT, "GoalStepCount", "10000"}, // CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, //运动目标步数 10000
+ {ConfigDataType::DATATYPE_INT, "GoalCalories", "300"}, // CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, //运动目标卡路里 300(kcal)
+ {ConfigDataType::DATATYPE_INT, "GoalStandupTimes", "10"}, // CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, //运动目标站立次数 10
+ {ConfigDataType::DATATYPE_INT, "GoalDuration", "30"}, // CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, //运动目标时长 30(分钟)
+ {ConfigDataType::DATATYPE_DOUBLE, "GoalDistance", "8.0"}, // CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离 8.0(km)
+ {ConfigDataType::DATATYPE_BOOL, "Dnotdisturb", "false"}, // CONFIGMODEL_ITEM_DNOTDISTURB //勿扰模式默认关闭
+ {ConfigDataType::DATATYPE_INT, "traningfreq", "10"}, // CONFIGMODEL_ITEM_TRANING_FREQ //训练实时数据上传频率//单位秒
};
ConfigModel(); // 私有构造函数,确保无法在外部实例化
ConfigModel(const ConfigModel &) = delete; // 禁止拷贝构造
ConfigModel::~ConfigModel()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " ConfigModel::~ConfigModel");
- //手表全生命周期存在,所以不考虑析构释放内存
+ // 手表全生命周期存在,所以不考虑析构释放内存
}
ConfigModel *ConfigModel::GetInstance()
cJSON *ConfigModel::get_item(ConfigItem item)
{
- return cJSON_GetObjectItem(GetcJSON(),get_config_name(item));
- }
+ return cJSON_GetObjectItem(GetcJSON(), get_config_name(item));
+ }
void ConfigModel::reset_item_to_default(ConfigItem item)
{
- switch(get_config_datatype(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)",
- 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)",
- 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),
- "");
- break;
+ 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)",
+ 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)",
+ 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),
+ "");
+ break;
}
}
// 解析JSON数据
cjson_json = cJSON_Parse(json_string.c_str());
- for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++)
+ for (int i = 0; i < ConfigItem::CONFIGMODEL_ITEM_MAX; i++)
{
ConfigItem item = (ConfigItem)i;
- cJSON *obj=get_item(item);
- if (obj == NULL) //没有变量则用默认值初始化
+ cJSON *obj = get_item(item);
+ if (obj == NULL) // 没有变量则用默认值初始化
{
reset_item_to_default(item);
}
cJSON *data_obj = cJSON_CreateNumber(static_cast<double>(data));
if (data_obj != nullptr)
{
- if (cJSON_GetObjectItem(json_obj,field_name)!=NULL){
+ if (cJSON_GetObjectItem(json_obj, field_name) != NULL)
+ {
cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
- }else{
- cJSON_AddItemToObject(json_obj,field_name,data_obj);
+ }
+ else
+ {
+ cJSON_AddItemToObject(json_obj, field_name, data_obj);
}
}
else
cJSON *data_obj = cJSON_CreateNumber(data);
if (data_obj != nullptr)
{
- if (cJSON_GetObjectItem(json_obj,field_name)!=NULL){
+ if (cJSON_GetObjectItem(json_obj, field_name) != NULL)
+ {
cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
- }else{
- cJSON_AddItemToObject(json_obj,field_name,data_obj);
+ }
+ else
+ {
+ cJSON_AddItemToObject(json_obj, field_name, data_obj);
}
}
else
cJSON *data_obj = cJSON_CreateBool(data);
if (data_obj != nullptr)
- {
- if (cJSON_GetObjectItem(json_obj,field_name)!=NULL){
+ {
+ if (cJSON_GetObjectItem(json_obj, field_name) != NULL)
+ {
cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
- }else{
- cJSON_AddItemToObject(json_obj,field_name,data_obj);
+ }
+ else
+ {
+ cJSON_AddItemToObject(json_obj, field_name, data_obj);
}
}
else
cJSON *data_obj = cJSON_CreateString(data);
if (data_obj != nullptr)
{
- if (cJSON_GetObjectItem(json_obj,field_name)!=NULL){
+ if (cJSON_GetObjectItem(json_obj, field_name) != NULL)
+ {
cJSON_ReplaceItemInObject(json_obj, field_name, data_obj);
- }else{
- cJSON_AddItemToObject(json_obj,field_name,data_obj);
+ }
+ else
+ {
+ cJSON_AddItemToObject(json_obj, field_name, data_obj);
}
}
else
cJSON_AddItemToArray(array_obj, cJSON_CreateString(item.c_str()));
}
cJSON_ReplaceItemInObject(json_obj, field_name, array_obj);
-
}
/*
if (model_initialled == true)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init already done");
- return ;
+ return;
}
/* -------------------------------- 1.加载json文件 -------------------------------- */
bool ret = LoadJsonData();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init %d",ret);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init %d", ret);
/* ------------------------------ 2.显示读取到的json数据 ------------------------------ */
DumpJsonData();
}
void ConfigModel::DumpJsonItem(ConfigItem item)
{
- switch(get_config_datatype(item))
- {
- case ConfigDataType::DATATYPE_BOOL:
- 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:
- 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 :
- 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:
- 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)",
- get_config_name(item),
- "");
- break;
- case ConfigDataType::DATATYPE_VECTOR_INT:
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_int):value(%d)",
- get_config_name(item),
- "");
- break;
- case ConfigDataType::DATATYPE_VECTOR_STRING:
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_string):value(%s)",
- get_config_name(item),
- "");
- break;
-
+ switch (get_config_datatype(item))
+ {
+ case ConfigDataType::DATATYPE_BOOL:
+ 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:
+ 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:
+ 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:
+ 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)",
+ get_config_name(item),
+ "");
+ break;
+ case ConfigDataType::DATATYPE_VECTOR_INT:
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_int):value(%d)",
+ get_config_name(item),
+ "");
+ break;
+ case ConfigDataType::DATATYPE_VECTOR_STRING:
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(vector_string):value(%s)",
+ get_config_name(item),
+ "");
+ break;
}
}
/// @brief 显示读取到的json数据
void ConfigModel::DumpJsonData(void)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------- JsonData: ------------------------------- */\n");
- for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++)
+ for (int i = 0; i < ConfigItem::CONFIGMODEL_ITEM_MAX; i++)
{
DumpJsonItem((ConfigItem)i);
}
}
/* -------------------------------- set与get方法 ------------------------------- */
-
+
/*
- * @brief 设置抬腕亮屏是否开启
- */
+ * @brief 设置抬腕亮屏是否开启
+ */
void ConfigModel::SetRaiseToWake(bool value)
{
- set_condigData_Bool(CONFIGMODEL_ITEM_RAISE_TO_WAKE,value);
+ set_condigData_Bool(CONFIGMODEL_ITEM_RAISE_TO_WAKE, value);
}
/*
- * @brief 获取抬腕亮屏是否开启
- */
+ * @brief 获取抬腕亮屏是否开启
+ */
bool ConfigModel::GetRaiseToWake(void)
{
return get_configData_bool(CONFIGMODEL_ITEM_RAISE_TO_WAKE);
}
- /*
+ /*
* @brief 设置亮屏时长单位ms
- */
+ */
void ConfigModel::SetScreenDuration(unsigned int value)
{
- set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,value);
+ set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, value);
}
/// @brief 获取亮屏时长单位ms
/* -------------------------------------------------------------------------- */
void ConfigModel::SetLanguage(int language)
{
- set_condigData_Int(CONFIGMODEL_ITEM_LANGUAGE_ID,language);
+ set_condigData_Int(CONFIGMODEL_ITEM_LANGUAGE_ID, language);
}
int ConfigModel::GetLanguage()
void ConfigModel::SetLanguageCode(const char *languagecode)
{
- set_condigData_String(CONFIGMODEL_ITEM_LANGUAGE_CODE,languagecode);
+ set_condigData_String(CONFIGMODEL_ITEM_LANGUAGE_CODE, languagecode);
}
std::string ConfigModel::GetLanguageCode(void)
void ConfigModel::Setimei(char *str)
{
- set_condigData_String(CONFIGMODEL_ITEM_CAT1_IMEI,str);
+ set_condigData_String(CONFIGMODEL_ITEM_CAT1_IMEI, str);
}
void ConfigModel::SetpyVer(char *str)
{
- set_condigData_String(CONFIGMODEL_ITEM_CAT1_PYVER,str);
+ set_condigData_String(CONFIGMODEL_ITEM_CAT1_PYVER, str);
}
void ConfigModel::SetmoderVer(char *str)
{
- set_condigData_String(CONFIGMODEL_ITEM_CAT1_MODEMVER,str);
+ set_condigData_String(CONFIGMODEL_ITEM_CAT1_MODEMVER, str);
}
/*
*/
void ConfigModel::SetVibrationReminder(int state)
{
- set_condigData_Bool(CONFIGMODEL_ITEM_VIBRATOR_SWITCH,state);
+ set_condigData_Bool(CONFIGMODEL_ITEM_VIBRATOR_SWITCH, state);
}
/*获取震动提醒是否开启*/
*/
void ConfigModel::SetSilentMode(bool state)
{
- set_condigData_Bool(CONFIGMODEL_ITEM_SILENT_MODE,state);
+ set_condigData_Bool(CONFIGMODEL_ITEM_SILENT_MODE, state);
}
/*获取静音模式是否开启*/
*/
void ConfigModel::SetCat1_4Gability(bool state)
{
- set_condigData_Bool(CONFIGMODEL_ITEM_CAT1_SERVICE_ON,state);
+ set_condigData_Bool(CONFIGMODEL_ITEM_CAT1_SERVICE_ON, state);
}
/*
/*设置勿扰模式是否开启*/
void ConfigModel::SetDnotdisturb(bool state)
{
- set_condigData_Bool(CONFIGMODEL_ITEM_DNOTDISTURB,state);
+ set_condigData_Bool(CONFIGMODEL_ITEM_DNOTDISTURB, state);
}
/*获取勿扰模式是否开启*/
// 设置亮度值
void ConfigModel::SetBrightness(int level)
{
- set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,level);
+ set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE, level);
}
// 获取亮度值
return get_configData_int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE);
}
-/* ---------------------------------------------------------------------------- */
+ /*设置用户年龄[后续使用结构体统一配置]*/
+ void ConfigModel::SetUserAge(int age)
+ {
+ set_condigData_Int(CONFIGMODEL_ITEM_CUSTOM_DATA_AGE,age);
+ }
+ /*获取用户年龄*/
+ int ConfigModel::GetUserAge()
+ {
+ return get_configData_int(CONFIGMODEL_ITEM_CUSTOM_DATA_AGE);
+ }
+ /* ---------------------------------------------------------------------------- */
int ConfigModel::get_configData_int(ConfigItem item)
{
- return ReadJsonData_Int(GetcJSON(),get_config_name(item));
-
+ return ReadJsonData_Int(GetcJSON(), get_config_name(item));
}
double ConfigModel::get_configData_double(ConfigItem item)
{
- return ReadJsonData_Double(GetcJSON(),get_config_name(item));
-
+ return ReadJsonData_Double(GetcJSON(), get_config_name(item));
}
bool ConfigModel::get_configData_bool(ConfigItem item)
{
- return ReadJsonData_Bool(GetcJSON(),get_config_name(item));
-
+ return ReadJsonData_Bool(GetcJSON(), get_config_name(item));
}
std::string ConfigModel::get_configData_string(ConfigItem item)
{
- return ReadJsonData_String(GetcJSON(),get_config_name(item));
+ return ReadJsonData_String(GetcJSON(), get_config_name(item));
}
-
+
void ConfigModel::set_condigData_Int(ConfigItem item, int data)
{
- WriteJsonData_Int(GetcJSON(),get_config_name(item),data);
+ WriteJsonData_Int(GetcJSON(), get_config_name(item), data);
}
void ConfigModel::set_condigData_Double(ConfigItem item, double data)
{
- WriteJsonData_Double(GetcJSON(),get_config_name(item),data);
-
+ WriteJsonData_Double(GetcJSON(), get_config_name(item), data);
}
void ConfigModel::set_condigData_Bool(ConfigItem item, bool data)
{
- WriteJsonData_Bool(GetcJSON(),get_config_name(item),data);
-
+ WriteJsonData_Bool(GetcJSON(), get_config_name(item), data);
}
void ConfigModel::set_condigData_String(ConfigItem item, const char *data)
{
- WriteJsonData_String(GetcJSON(),get_config_name(item),data);
+ WriteJsonData_String(GetcJSON(), get_config_name(item), data);
}
void ConfigModel::set_condigData_VectorInt(ConfigItem item, const std::vector<int> &data)
{
- WriteJsonData_VectorInt(GetcJSON(),get_config_name(item),data);
-
+ WriteJsonData_VectorInt(GetcJSON(), get_config_name(item), data);
}
void ConfigModel::set_condigData_VectorDouble(ConfigItem item, const std::vector<double> &data)
{
- WriteJsonData_VectorDouble(GetcJSON(),get_config_name(item),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);
-
- }
+ WriteJsonData_VectorString(GetcJSON(), get_config_name(item), data);
+ }
int ConfigModel::sync_all_to_disk(void)
{
char *jsonString = cJSON_Print(GetcJSON());
#ifdef __cplusplus
#if __cplusplus
-extern "C" {
+extern "C"
+{
#endif
#endif
-uint32_t ConfigModelInit(void)
-{
- OHOS::ConfigModel::GetInstance()->Init();
- return 0;
-}
-
-/***
- * 蓝牙服务是否开启
- */
-bool custom_ble_service_on_flag(void)
-{
- return OHOS::ConfigModel::GetInstance()->GetClassicBlueToothState();
-}
-/***
- * Cat1服务是否开启
- */
-bool poweron_cat1_on_bootup_flag(void)
-{
- return OHOS::ConfigModel::GetInstance()->GetCat1_4Gability();
-}
-void sync_all_config_to_disk(void)
-{
- OHOS::ConfigModel::GetInstance()->sync_all_to_disk();
-}
-
+ uint32_t ConfigModelInit(void)
+ {
+ OHOS::ConfigModel::GetInstance()->Init();
+ return 0;
+ }
-void initScreenBrightness(void)
-{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initScreenBrightness");
- int brightness = OHOS::ConfigModel::GetInstance()->GetBrightness();
- uapi_setScreenBrightness(brightness);
-}
+ /***
+ * 蓝牙服务是否开启
+ */
+ bool custom_ble_service_on_flag(void)
+ {
+ return OHOS::ConfigModel::GetInstance()->GetClassicBlueToothState();
+ }
+ /***
+ * Cat1服务是否开启
+ */
+ bool poweron_cat1_on_bootup_flag(void)
+ {
+ return OHOS::ConfigModel::GetInstance()->GetCat1_4Gability();
+ }
+ void sync_all_config_to_disk(void)
+ {
+ OHOS::ConfigModel::GetInstance()->sync_all_to_disk();
+ }
-void initializeScreenDuration(void)
-{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeScreenDuration");
- unsigned int time = OHOS::ConfigModel::GetInstance()->GetScreenDuration();
- uapi_setScreenDuration(time);
-}
+ void initScreenBrightness(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initScreenBrightness");
+ int brightness = OHOS::ConfigModel::GetInstance()->GetBrightness();
+ uapi_setScreenBrightness(brightness);
+ }
-void initializeRaiseToWake(void)
-{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeRaiseToWake");
- bool isOpen = OHOS::ConfigModel::GetInstance()->GetRaiseToWake();
- if(isOpen == true)
+ void initializeScreenDuration(void)
{
- uapi_take_to_wake(1);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeScreenDuration");
+ unsigned int time = OHOS::ConfigModel::GetInstance()->GetScreenDuration();
+ uapi_setScreenDuration(time);
}
- else
+
+ void initializeRaiseToWake(void)
{
- uapi_take_to_wake(2);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeRaiseToWake");
+ bool isOpen = OHOS::ConfigModel::GetInstance()->GetRaiseToWake();
+ if (isOpen == true)
+ {
+ uapi_take_to_wake(1);
+ }
+ else
+ {
+ uapi_take_to_wake(2);
+ }
}
-}
#ifdef __cplusplus
#if __cplusplus
}