From: Caisking <3449750381@qq.com> Date: Fri, 19 Apr 2024 13:13:05 +0000 (+0800) Subject: 搭建训练强度接口 X-Git-Tag: release_V1.2.70_20241020_135402~1164 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=refs%2Fchanges%2F56%2F3;p=mirrors%2FFD230.git 搭建训练强度接口 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h index abb090ed7..2a5069650 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h @@ -19,7 +19,7 @@ namespace OHOS { class ConfigModel { - public: + public: enum ConfigDataType { DATATYPE_INT, @@ -30,52 +30,52 @@ namespace OHOS 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; } @@ -86,7 +86,7 @@ namespace OHOS } static ConfigModel *GetInstance(); void Init(void); - /* -------------- 通用 读值 赋值 函数 ----------------- */ + /* -------------- 通用 读值 赋值 函数 ----------------- */ int get_configData_int(ConfigItem item); double get_configData_double(ConfigItem item); bool get_configData_bool(ConfigItem item); @@ -98,16 +98,15 @@ namespace OHOS void set_condigData_String(ConfigItem item, const char *data); void set_condigData_VectorInt(ConfigItem item, const std::vector &data); void set_condigData_VectorDouble(ConfigItem item, const std::vector &data); - void set_condigData_VectorString(ConfigItem item, const std::vector &data); + void set_condigData_VectorString(ConfigItem item, const std::vector &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); @@ -116,14 +115,14 @@ namespace OHOS 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); @@ -135,49 +134,52 @@ namespace OHOS /* ----------------------------- 屏幕与亮度相关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; // 禁止拷贝构造 diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp index 5b6dd0460..7e556522c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp @@ -11,7 +11,7 @@ namespace OHOS ConfigModel::~ConfigModel() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " ConfigModel::~ConfigModel"); - //手表全生命周期存在,所以不考虑析构释放内存 + // 手表全生命周期存在,所以不考虑析构释放内存 } ConfigModel *ConfigModel::GetInstance() @@ -28,76 +28,76 @@ namespace OHOS 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; } } @@ -114,11 +114,11 @@ namespace OHOS // 解析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); } @@ -236,10 +236,13 @@ namespace OHOS cJSON *data_obj = cJSON_CreateNumber(static_cast(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 @@ -265,10 +268,13 @@ namespace OHOS 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 @@ -293,11 +299,14 @@ namespace OHOS 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 @@ -323,10 +332,13 @@ namespace OHOS 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 @@ -381,7 +393,6 @@ namespace OHOS cJSON_AddItemToArray(array_obj, cJSON_CreateString(item.c_str())); } cJSON_ReplaceItemInObject(json_obj, field_name, array_obj); - } /* @@ -423,11 +434,11 @@ namespace OHOS 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(); @@ -435,51 +446,50 @@ namespace OHOS } 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); } @@ -487,29 +497,29 @@ namespace OHOS } /* -------------------------------- 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 @@ -527,7 +537,7 @@ namespace OHOS /* -------------------------------------------------------------------------- */ void ConfigModel::SetLanguage(int language) { - set_condigData_Int(CONFIGMODEL_ITEM_LANGUAGE_ID,language); + set_condigData_Int(CONFIGMODEL_ITEM_LANGUAGE_ID, language); } int ConfigModel::GetLanguage() @@ -537,7 +547,7 @@ namespace OHOS 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) @@ -561,17 +571,17 @@ namespace OHOS 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); } /* @@ -580,7 +590,7 @@ namespace OHOS */ void ConfigModel::SetVibrationReminder(int state) { - set_condigData_Bool(CONFIGMODEL_ITEM_VIBRATOR_SWITCH,state); + set_condigData_Bool(CONFIGMODEL_ITEM_VIBRATOR_SWITCH, state); } /*获取震动提醒是否开启*/ @@ -596,7 +606,7 @@ namespace OHOS */ void ConfigModel::SetSilentMode(bool state) { - set_condigData_Bool(CONFIGMODEL_ITEM_SILENT_MODE,state); + set_condigData_Bool(CONFIGMODEL_ITEM_SILENT_MODE, state); } /*获取静音模式是否开启*/ @@ -611,7 +621,7 @@ namespace OHOS */ void ConfigModel::SetCat1_4Gability(bool state) { - set_condigData_Bool(CONFIGMODEL_ITEM_CAT1_SERVICE_ON,state); + set_condigData_Bool(CONFIGMODEL_ITEM_CAT1_SERVICE_ON, state); } /* @@ -626,7 +636,7 @@ namespace OHOS /*设置勿扰模式是否开启*/ void ConfigModel::SetDnotdisturb(bool state) { - set_condigData_Bool(CONFIGMODEL_ITEM_DNOTDISTURB,state); + set_condigData_Bool(CONFIGMODEL_ITEM_DNOTDISTURB, state); } /*获取勿扰模式是否开启*/ @@ -638,7 +648,7 @@ namespace OHOS // 设置亮度值 void ConfigModel::SetBrightness(int level) { - set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE,level); + set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE, level); } // 获取亮度值 @@ -647,60 +657,62 @@ namespace OHOS 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 &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 &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 &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()); @@ -713,63 +725,63 @@ namespace OHOS #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 } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index ba321b740..d2559c12d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -153,6 +153,14 @@ namespace OHOS STEP, UNKNOW, }; + + enum Exercise + { + LOW_INTENSITY = 0, + MEDIUM_INTENSITY, + HIGH_INTENSITY, + VERY_HIGH_INTENSITY + }; struct SportData { uint64 starttime; // 开始时间时间戳 @@ -252,6 +260,9 @@ namespace OHOS int GetSportTag(); /*获取项目目标类型*/ ExerciseTag GetSportTagtype(); + /*设置训练强度*/ + void SetIntensity(int heart); + std::string GetStartTiemStr(); std::string GetEndTiemStr(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index 054a47cc7..af80add9c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -22,6 +22,7 @@ #include "broadcast_feature.h" #include "broadcast_service.h" #include "bletest.h" +#include "config/include/ConfigModel.h" #include "samgr_lite.h" #include #include @@ -476,6 +477,7 @@ namespace OHOS // 通用数据 sportdata->calories = cyweeInfo->calories; sportdata->heart = cyweeInfo->hrs; + SetIntensity(sportdata->heart); // 设置训练强度 if (sportdata->heart > 50) { sportdata->avgheart = CalculateAverageHeartRate(cyweeInfo->hrs); // 处理平均心率 @@ -628,6 +630,46 @@ namespace OHOS sportTag_ = tagtpye; tag_ = tag; } + + /* 设置训练强度 */ + void TraingModel::SetIntensity(int heart) + { + /* + 训练强度 + 220-年龄=最高心率 + + 分为四个强度区间 + 较低强度=最高心率*59%以下 + 中等强度=最高心率*60%~69% + 高等强度=最高心率*70%~79% + 超高强度=最高心率*80%以上 + */ + int age = ConfigModel::GetInstance()->GetUserAge(); + int maxHeartRate = 220 - age; + + double intensityPercentage = (heart / (double)maxHeartRate) * 100; + + if (intensityPercentage < 59) + { + // 较低强度 + sportdata->intensity = LOW_INTENSITY; + } + else if (intensityPercentage >= 60 && intensityPercentage <= 69) + { + // 中等强度 + sportdata->intensity = MEDIUM_INTENSITY; + } + else if (intensityPercentage >= 70 && intensityPercentage <= 79) + { + // 高等强度 + sportdata->intensity = HIGH_INTENSITY; + } + else + { + // 超高强度 + sportdata->intensity = VERY_HIGH_INTENSITY; + } + } /* -------------------------------------------------------------------------- */ #if TIMER /* 时间显示 */