From 7f5dac0cbed716b2fba7a103f5032268878b1717 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=A2=81=E6=B8=85=E6=A2=A6?= <3449750381@qq.com> Date: Wed, 28 Jan 2026 02:32:31 +0000 Subject: [PATCH] Merge #3144 into fd272 from refs/changes/3144/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 袁清梦 * refs/changes/3144/head: (5 commits squashed) - 减低未佩戴检测的灵敏度 - 优化运动配速检测 - Merge branch 'fd272' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into fd272 - 修复无法跳转连接手机APP的bug - 优化蓝牙通话的文案 Signed-off-by: Caisking <3449750381@qq.com> Merged-by: 薛文强 CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/3144 --- .../findphone/src/FindPhonePresenter.cpp | 3 +- .../nativeui/heartrate/src/HeartModel.cpp | 2 +- .../nativeui/phone/src/DialingMethodView.cpp | 4 +- .../nativeui/traing/src/TraingModel.cpp | 78 ++++++++++++++----- 4 files changed, 61 insertions(+), 26 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/findphone/src/FindPhonePresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/findphone/src/FindPhonePresenter.cpp index a58206e1e..d6e544b4d 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/findphone/src/FindPhonePresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/findphone/src/FindPhonePresenter.cpp @@ -25,8 +25,7 @@ namespace OHOS { - // REGIST_MENU_PRO(VIEW_FIND_PHONE, FindPhoneView, FindPhonePresenter, PNG_APPLIST_FINDPHONE_IMAGE_BIG, - // PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, "查找手机", STR_FIND_PHONE); + REGIST_SLICE(VIEW_FIND_PHONE, FindPhoneView, FindPhonePresenter); // 当前Presenter属性实例化的内存指针 static FindPhonePresenter *g_pFindPhonePresenter = nullptr; diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/heartrate/src/HeartModel.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/heartrate/src/HeartModel.cpp index bb65cf7ba..5c0a9f199 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/heartrate/src/HeartModel.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/heartrate/src/HeartModel.cpp @@ -64,7 +64,7 @@ extern "C" { #endif -#define MAX_UNWEAR_COUNT 2 +#define MAX_UNWEAR_COUNT 10 #define MAX_VALID_HRS_COUNT 10 //最大有效数 #define MAX_DISVALID_HRS_COUNT 15 //最大无效数 #define MIN_DISPLAY_HEART 50 //最新心率 diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/DialingMethodView.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/DialingMethodView.cpp index 49aa675be..bef3196c8 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/DialingMethodView.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/DialingMethodView.cpp @@ -206,11 +206,11 @@ namespace OHOS .height = 105, .fontSize = 30, .lineHeigh = 35, - .text = "请插入手表SIM卡或连接手机并确认开启蓝牙通话后再进行拨号", + .text = "请连接手机并确认开启蓝牙通话后再进行拨号", .lineBreakMode = UILabel::LINE_BREAK_WRAP, }; No_HFP_Label = TelephonyInitInterface::LabelViewInit(labelParam); - No_HFP_Label->SetTextId(STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE); + // No_HFP_Label->SetTextId(STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE); if (No_HFP_Label == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::DialingMethodTitleLabel new fail!"); diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp index 2992e166f..aafcf1cdd 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp @@ -512,16 +512,34 @@ // sportdata->cdc = cyweeInfo->step_frequency; // sportdata->std = cyweeInfo->step_length; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " pace %d", sportdata->pc); - - sportdata->pc = cyweeInfo->pace; - - // 更新最慢配速 - if (sportdata->spc < sportdata->pc && sportdata->pc != 0) { - sportdata->spc = sportdata->pc; - } - - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "spc %d", sportdata->spc); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " pace %d", sportdata->pc); + + // 通过距离和时间自己计算配速,而不是使用CYWEE提供的配速 + // 配速单位:秒/公里 + // 计算公式:配速 = 时间(秒) * 1000 / 距离(米) + int calculatedPace = 0; + if (sportdata->distance > 0 && sportdata->duration > 0) { + // 距离单位是米,需要转换为公里:距离(公里) = 距离(米) / 1000 + // 配速(秒/公里) = 时间(秒) / 距离(公里) = 时间(秒) * 1000 / 距离(米) + calculatedPace = (sportdata->duration * 1000) / sportdata->distance; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + "CalculatePace: distance=%d米, duration=%d秒, calculatedPace=%d秒/公里", + sportdata->distance, sportdata->duration, calculatedPace); + } else { + // 如果距离或时间为0,使用CYWEE提供的配速作为后备 + calculatedPace = cyweeInfo->pace; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + "CalculatePace: 距离或时间为0,使用CYWEE配速=%d", calculatedPace); + } + + sportdata->pc = calculatedPace; + + // 更新最慢配速 + if (sportdata->spc < sportdata->pc && sportdata->pc != 0) { + sportdata->spc = sportdata->pc; + } + + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "spc %d", sportdata->spc); #if 0 @@ -570,17 +588,35 @@ return; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[apc:%d fpc:%d cdc:%d std:%d]", - cyweeInfo->avg_pace, cyweeInfo->max_pace, - cyweeInfo->avg_step_freq, cyweeInfo->avg_step_len); - //平均配速 - if (cyweeInfo->avg_pace != 0) { - sportdata->apc = cyweeInfo->avg_pace; - } - //最快配速 - if (cyweeInfo->max_pace != 0) { - sportdata->fpc = cyweeInfo->max_pace; - } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[apc:%d fpc:%d cdc:%d std:%d]", + cyweeInfo->avg_pace, cyweeInfo->max_pace, + cyweeInfo->avg_step_freq, cyweeInfo->avg_step_len); + + // 通过距离和时间自己计算平均配速和最快配速 + // 平均配速 = 总时间(秒) * 1000 / 总距离(米) + if (sportdata->distance > 0 && sportdata->duration > 0) { + int calculatedAvgPace = (sportdata->duration * 1000) / sportdata->distance; + sportdata->apc = calculatedAvgPace; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + "CalculateAvgPace: distance=%d米, duration=%d秒, avgPace=%d秒/公里", + sportdata->distance, sportdata->duration, calculatedAvgPace); + } else if (cyweeInfo->avg_pace != 0) { + // 如果距离或时间为0,使用CYWEE提供的平均配速作为后备 + sportdata->apc = cyweeInfo->avg_pace; + } + + // 最快配速:配速越小表示速度越快,所以最快配速应该是最小的配速值 + // 如果当前配速不为0且小于之前的最快配速(或最快配速为0),则更新最快配速 + if (sportdata->pc > 0) { + if (sportdata->fpc == 0 || sportdata->pc < sportdata->fpc) { + sportdata->fpc = sportdata->pc; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + "UpdateFastestPace: fpc=%d秒/公里", sportdata->fpc); + } + } else if (cyweeInfo->max_pace != 0) { + // 如果当前配速为0,使用CYWEE提供的最快配速作为后备 + sportdata->fpc = cyweeInfo->max_pace; + } //平均步频 if (cyweeInfo->avg_step_freq != 0) { sportdata->cdc = cyweeInfo->avg_step_freq; -- 2.17.1