From: @CHENG <2393524978@qq.com> Date: Thu, 9 Jan 2025 11:58:42 +0000 (+0800) Subject: k18 micro checkup measure once X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=fab067e1ee80f8ef340c96490a1a6bc95bcdb348;p=mirrors%2FASR3603_Z5.git k18 micro checkup measure once --- diff --git a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c index 6ff46fa5..58a184b0 100644 --- a/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c +++ b/2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c @@ -1267,7 +1267,7 @@ int *fr8012haq_blood_data_get(int *len) // for micro health checkup feather void mmi_hengai_micro_health_checkup_data_len_reset(int reset_len) { - if(s_FR8012HAQ_blood_data_len < reset_len) + if(s_FR8012HAQ_blood_data_len <= reset_len) s_FR8012HAQ_blood_data_len = 0; else s_FR8012HAQ_blood_data_len -= reset_len; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c index 71d59c97..6b512983 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/custom_function/heng_ai_blood_pressure.c @@ -2772,12 +2772,12 @@ void mmi_heng_ai_blood_pressure_create_event_cb(lv_obj_t * btn, lv_event_t e) #if defined(__MMI_CUSTOM_HENGAI_MICRO_HEALTH_CHECKUP__) -//#define MICRO_CHECKUP_COUNT_INTERVAL (2) // 3s -//#define MICRO_PPG_DATA_SINGLE_SEND_COUNT (MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE * MICRO_CHECKUP_COUNT_INTERVAL) +#define MICRO_CHECKUP_COUNT_INTERVAL (MMI_HENGAI_BP_RAW_DATA_LEN / MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE) #define MICRO_PPG_DATA_BUFFER_LEN (MMI_HENGAI_BP_RAW_DATA_LEN * sizeof(int)) // ((MICRO_PPG_DATA_SINGLE_SEND_COUNT + 10) * sizeof(int)) static int * s_hengai_ppg_data_ptr = NULL; static int s_hengai_ppg_data_len = 0; +static unsigned int s_hengai_micro_checkup_count = 0; static void mmi_hengai_micro_health_checkup_data_send(void) { @@ -2839,12 +2839,12 @@ static void mmi_hengai_micro_health_checkup_data_get(void) if(NULL != temp_ptr) { _lv_memcpy(s_hengai_ppg_data_ptr, temp_ptr, MICRO_PPG_DATA_BUFFER_LEN); + mmi_hengai_micro_health_checkup_data_len_reset(s_hengai_ppg_data_len); } } void mmi_hengai_micro_health_checkup_process(void) { -/* s_hengai_micro_checkup_count++; if(MICRO_CHECKUP_COUNT_INTERVAL <= s_hengai_micro_checkup_count) { @@ -2852,7 +2852,6 @@ void mmi_hengai_micro_health_checkup_process(void) mmi_hengai_micro_health_checkup_data_get(); mmi_hengai_micro_health_checkup_data_send(); } -*/ } void mmi_hengai_micro_health_checkup_stop(void) @@ -2868,6 +2867,7 @@ void mmi_hengai_micro_health_checkup_stop(void) s_hengai_ppg_data_ptr = NULL; } s_hengai_ppg_data_len = 0; + s_hengai_micro_checkup_count = 0; } void mmi_hengai_micro_health_checkup_start(void) @@ -2880,10 +2880,21 @@ void mmi_hengai_micro_health_checkup_start(void) s_hengai_ppg_data_ptr = NULL; } s_hengai_ppg_data_len = 0; + s_hengai_micro_checkup_count = 0; } void mmi_hengai_micro_health_checkup_set(uint8_t state_value) { + if(0 == state_value) + { + mmi_health_measure_server_stop_micro_checkup(); + } + else + { + mmi_health_measure_server_start_micro_checkup(); + } + +#if 0 if(0 == state_value) { //mmi_health_measure_interrupt(); @@ -2894,6 +2905,7 @@ void mmi_hengai_micro_health_checkup_set(uint8_t state_value) //mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_MICRO_CHECKUP, 1); mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_MICRO_CHECKUP, 3600); } +#endif } #endif diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c b/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c index 2560970d..0e3ac62c 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.c @@ -528,6 +528,36 @@ bool mmi_health_measure_micro_checkup_timed_action(bool direct_trigger, uint32_t return false; } + +void mmi_health_measure_server_stop_micro_checkup(void) +{ + if(MMI_HEALTH_MEASURE_STATE_APP != s_health_measure_run_data.measure_state) + { + HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: not app measure\n", __FUNCTION__, __LINE__); + return; + } + + if(MMI_HEALTH_MEASURE_MICRO_CHECKUP != s_health_measure_run_data.measure_type) + { + HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: not measure micro checkup\n", __FUNCTION__, __LINE__); + return; + } + + mmi_health_measure_process_finish(); +} + +void mmi_health_measure_server_start_micro_checkup(void) +{ + if((MMI_HEALTH_MEASURE_STATE_APP == s_health_measure_run_data.measure_state) + && (MMI_HEALTH_MEASURE_MICRO_CHECKUP == s_health_measure_run_data.measure_type) + ) + { + HEALTH_MEASURE_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: measure micro checkup running\n", __FUNCTION__, __LINE__); + return; + } + + mmi_health_measure_server_set_action(MMI_HEALTH_MEASURE_MICRO_CHECKUP, 1); +} #endif bool mmi_health_measure_timed_mission_action(uint32_t cur_time_stamp) @@ -1007,7 +1037,7 @@ static void mmi_health_measure_start(MMI_HEALTH_MEASURE_TYPE_E measure_type, uin #if defined(__MMI_CUSTOM_HENGAI_MICRO_HEALTH_CHECKUP__) case MMI_HEALTH_MEASURE_MICRO_CHECKUP: - s_measure_time_total = 40 / MMI_HEALTH_MEASURE_CYCLE_DURATION; // 0xffff; + s_measure_time_total = 0xffff; // 40 / MMI_HEALTH_MEASURE_CYCLE_DURATION; // mmi_hsensor_blood_open(); mmi_hengai_micro_health_checkup_start(); break; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.h b/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.h index 078f46a2..e576786c 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/health_measure/health_measure.h @@ -126,6 +126,10 @@ void mmi_health_measure_timed_list_clear(void); bool mmi_health_measure_timed_mission_action(uint32_t cur_time_stamp); bool mmi_health_measure_first_mission_action(uint32_t cur_time_stamp); +#if defined(__MMI_CUSTOM_HENGAI_MICRO_HEALTH_CHECKUP__) +void mmi_health_measure_server_stop_micro_checkup(void); +void mmi_health_measure_server_start_micro_checkup(void); +#endif typedef enum