From: penglei <1624952103@qq.com> Date: Thu, 30 Oct 2025 08:13:13 +0000 (+0800) Subject: 优化运动数据输入算法,优化燃脂时间计算 X-Git-Tag: V1.0.9_20251128_194606_LN~144 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=refs%2Fchanges%2F2644%2Fhead;p=mirrors%2FFD230.git 优化运动数据输入算法,优化燃脂时间计算 --- diff --git a/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c b/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c index 6a009f0f4..25a08c455 100644 --- a/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c +++ b/code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c @@ -34,6 +34,8 @@ #include "ppg_service.h" #endif +#include "cywee_service.h" + #define AP_ENABLE_DML_SDO_LISTEN #define GSENSON_MSG_COUNT 64 #define SLEEP_STATUS_LENGTH 50 @@ -71,6 +73,8 @@ static int history_fat_=0; //一小时前燃脂数据 static uint32_t last_fat_burn_timestamp = 0; // 上次燃脂状态更新的时间戳 static int last_mhr_zone = -1; // 上次的心率区间状态 +static uint8_t is_free_trainning_mode = 0; + /** * @brief 更新燃脂时间 * @param current_mhr_zone 当前心率区间 (2表示燃脂区间) @@ -233,6 +237,13 @@ static void cywee_hrs_update(void) } static void cywee_service_check_timer_callback(void) +{ + // cywee_hrs_update(); + // cywee_gnss_update(); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_DATA_UPDATE, NULL); +} + +void cywee_service_data_update(void) { cywee_hrs_update(); cywee_gnss_update(); @@ -1224,6 +1235,11 @@ void cywee_activity_mode_change(int mode) else cywee_sport_timer_stop_check(); + if(mode == SPORT_ACTIVE_MODE_FREE_TRAINING) + is_free_trainning_mode = 1; + else + is_free_trainning_mode = 0; + switch (mode) { @@ -1627,8 +1643,11 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_act_ext_result_t.MHR_zone = (int)sensorEVT->fData[13]; c_act_ext_result_t.distance_motion = (int)sensorEVT->fData[14]; + // CWM_OS_dbgPrintf("MHR_zone:%d\n",c_act_ext_result_t.MHR_zone); + // 燃脂时间计算:当MHR_zone = 2时表示燃脂状态 - update_fat_burn_time(c_act_ext_result_t.MHR_zone); + if(!is_free_trainning_mode) + update_fat_burn_time(c_act_ext_result_t.MHR_zone); // cywee_func(CYWEE_MSG_TYPE_ACTIVITY_EXTRA_INFO_UPDATE,&c_act_ext_result_t,sizeof(act_ext_result_t)); //CustomEventPublish(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, &c_act_ext_result_t, sizeof(act_ext_result_t)); @@ -1645,6 +1664,8 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_act_result_t.duration = (int)sensorEVT->fData[5]; c_act_result_t.MHR_zone = (int)sensorEVT->fData[6]; + // CWM_OS_dbgPrintf("MHR_zone:%d\n",c_act_result_t.MHR_zone); + // 燃脂时间计算:当MHR_zone = 2时表示燃脂状态 update_fat_burn_time(c_act_result_t.MHR_zone); diff --git a/code/sdk/zhihui/drivers/cywee/dml/cywee_hal.h b/code/sdk/zhihui/drivers/cywee/dml/cywee_hal.h index 6bb4ba687..fdca7a711 100644 --- a/code/sdk/zhihui/drivers/cywee/dml/cywee_hal.h +++ b/code/sdk/zhihui/drivers/cywee/dml/cywee_hal.h @@ -208,6 +208,8 @@ void cywee_get_sleep_time_data(uint32_t *fall_sleep_time,uint32_t *wake_up_time, void cywee_set_factory_log_switch(uint8_t cmd); +void cywee_service_data_update(void); + #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/zhihui/drivers/cywee/service/cywee_service.c b/code/sdk/zhihui/drivers/cywee/service/cywee_service.c index afa9532ed..94736da03 100644 --- a/code/sdk/zhihui/drivers/cywee/service/cywee_service.c +++ b/code/sdk/zhihui/drivers/cywee/service/cywee_service.c @@ -408,6 +408,11 @@ static void cywee_service_check_task(void const *arg) case CYWEE_SERVICE_CMD_CHECK_ACC: cywee_check_acc(); break; + + case CYWEE_SERVICE_CMD_DATA_UPDATE: + cywee_service_data_update(); + break; + default: PRINT("unkonw cmd \r\n"); break; diff --git a/code/sdk/zhihui/drivers/cywee/service/cywee_service.h b/code/sdk/zhihui/drivers/cywee/service/cywee_service.h index 663277294..4415fc192 100644 --- a/code/sdk/zhihui/drivers/cywee/service/cywee_service.h +++ b/code/sdk/zhihui/drivers/cywee/service/cywee_service.h @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-03-26 20:29:58 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2025-07-30 09:44:07 + * @LastEditTime: 2025-10-30 11:10:43 * @FilePath: /FD230/code/sdk/drivers/peripheral/cywee/Inc/cywee_service.h * @Description: * @@ -97,6 +97,8 @@ extern "C" { #define CYWEE_SERVICE_CMD_CHECK_ACC 0x36 +#define CYWEE_SERVICE_CMD_DATA_UPDATE 0X37 + errcode_t uapi_cywee_service_init(void); void uapi_cywee_service_deinit(void);