From: Caisking <3449750381@qq.com> Date: Wed, 17 Apr 2024 10:20:26 +0000 (+0800) Subject: 运动心率增加打印以及有效过滤 X-Git-Tag: release_V1.2.70_20241020_135402~1174^2~6 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=refs%2Fchanges%2F35%2Fhead;p=mirrors%2FFD230.git 运动心率增加打印以及有效过滤 --- 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 b7bfcd065..78a8467f1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -388,9 +388,12 @@ namespace OHOS // 通用数据 sportdata->calories = cyweeInfo->calories; sportdata->heart = cyweeInfo->hrs; - sportdata->avgheart = CalculateAverageHeartRate(cyweeInfo->hrs); // 处理平均心率 + if (sportdata->heart > 50) + { + sportdata->avgheart = CalculateAverageHeartRate(cyweeInfo->hrs); // 处理平均心率 + } // sportdata->duration = cyweeInfo->duration; - PRINT("normal sportdata->calories[%d],sportdata->duration[%d] \r\n", sportdata->calories, sportdata->duration); + PRINT("normal sportdata->calories[%d],sportdata->duration[%d],sportdata->heart[%d] \r\n", sportdata->calories, sportdata->duration, sportdata->heart); switch (type) { case ExerciseClass::OUTDOOR: @@ -427,8 +430,8 @@ namespace OHOS ExerciseState currentState = GetSportState(); // 获取当前运动状态 if (currentState == ExerciseState::Start) { + sportdata->Reset();//重置结构体 sportdata->starttime = time; - char *start_date = (char *)malloc(9 * sizeof(char)); // 分配内存给start_date if (uapi_get_YYMMDD_Time(start_date, '/') != ERRCODE_SUCC) { diff --git a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c index 6eac7150a..32eb71cee 100644 --- a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c +++ b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c @@ -37,15 +37,14 @@ #include "ppg_service.h" - -typedef struct +typedef struct { uint8_t cmd; uint8_t data[2]; } cywee_cmd_t; /*** * 其他cmd在Header里定义,对外开放 -*/ + */ #define CYWEE_CHECK_MS 20 @@ -56,7 +55,7 @@ static bool g_bat_timer_is_running = false; static unsigned long g_cywee_queue; static bool cywee_service_running_stat = false; -static void cywee_service_check_timer_callback(void* data); +static void cywee_service_check_timer_callback(void *data); void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen) { @@ -64,151 +63,155 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen cywee_activity_result_t c_activity_result_t; cywee_inactivity_result_t c_inactivity_result_t; - if(msg_type == CYWEE_MSG_TYPE_ACTIVITY_UPDATE) + if (msg_type == CYWEE_MSG_TYPE_ACTIVITY_UPDATE) { memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); switch (c_activity_result_t.activity_mode) { - case SPORT_ACTIVE_MODE_NORMAL: - PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.steps,c_activity_result_t.distance,c_activity_result_t.calories,c_activity_result_t.step_frequency, - c_activity_result_t.step_length,c_activity_result_t.pace,c_activity_result_t.BMR_calories,c_activity_result_t.is_pause,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - case SPORT_ACTIVE_MODE_TREADMILL: - PRINT("CYWEE_MSG_TYPE_TREADMILL_UPDATE\r\n"); - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.steps,c_activity_result_t.distance,c_activity_result_t.calories,c_activity_result_t.step_frequency, - c_activity_result_t.step_length,c_activity_result_t.pace,c_activity_result_t.BMR_calories,c_activity_result_t.is_pause,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - case SPORT_ACTIVE_MODE_OUTDOOR_RUNNING: - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.steps,c_activity_result_t.distance,c_activity_result_t.calories,c_activity_result_t.step_frequency, - c_activity_result_t.step_length,c_activity_result_t.pace,c_activity_result_t.BMR_calories,c_activity_result_t.is_pause,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - case SPORT_ACTIVE_MODE_INDOOR_RUNNING: - PRINT("CYWEE_MSG_TYPE_INDOOR_RUNNING_UPDATE\r\n"); - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.steps,c_activity_result_t.distance,c_activity_result_t.calories,c_activity_result_t.step_frequency, - c_activity_result_t.step_length,c_activity_result_t.pace,c_activity_result_t.BMR_calories,c_activity_result_t.is_pause,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - case SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR: - PRINT("CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE\r\n"); - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.steps,c_activity_result_t.distance,c_activity_result_t.calories,c_activity_result_t.step_frequency, - c_activity_result_t.step_length,c_activity_result_t.pace,c_activity_result_t.BMR_calories,c_activity_result_t.is_pause,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - case SPORT_ACTIVE_MODE_FREE_TRAINING: - PRINT("CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE\r\n"); - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], calories[%d], duration[%d], MHR_zone[%d],len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.calories,c_activity_result_t.duration,c_activity_result_t.MHR_zone,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //长时间动作侦测 - case SPORT_ACTIVE_MODE_AR_ALERT: - PRINT("CYWEE_MSG_TYPE_AR_ALERT_UPDATE\r\n"); - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], ar alert type[%d], len[%d]\n", - c_activity_result_t.activity_mode,c_activity_result_t.ar_alert_type,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //额外信息 - case SPORT_ACTIVE_MODE_EXTRA_INFO: - PRINT("CYWEE_MSG_TYPE_EXTRA_INFO_UPDATE\r\n"); - memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("average step frequency[%d], average step length[%d], average pace[%d], max step frequency[%d], max pace[%d], len[%d]\n", - c_activity_result_t.avg_step_freq,c_activity_result_t.avg_step_len,c_activity_result_t.avg_pace,c_activity_result_t.max_step_freq,c_activity_result_t.max_pace,sizeof(cywee_activity_result_t)); - CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - default: - break; + case SPORT_ACTIVE_MODE_NORMAL: + PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d], hrs[%d], len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, c_activity_result_t.step_frequency, + c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause, c_activity_result_t.hrs, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + case SPORT_ACTIVE_MODE_TREADMILL: + PRINT("CYWEE_MSG_TYPE_TREADMILL_UPDATE\r\n"); + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, c_activity_result_t.step_frequency, + c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + case SPORT_ACTIVE_MODE_OUTDOOR_RUNNING: + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d], hrs[%d], len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, c_activity_result_t.step_frequency, + c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause,c_activity_result_t.hrs, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + case SPORT_ACTIVE_MODE_INDOOR_RUNNING: + PRINT("CYWEE_MSG_TYPE_INDOOR_RUNNING_UPDATE\r\n"); + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, c_activity_result_t.step_frequency, + c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + case SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR: + PRINT("CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE\r\n"); + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d],len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.steps, c_activity_result_t.distance, c_activity_result_t.calories, c_activity_result_t.step_frequency, + c_activity_result_t.step_length, c_activity_result_t.pace, c_activity_result_t.BMR_calories, c_activity_result_t.is_pause, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + case SPORT_ACTIVE_MODE_FREE_TRAINING: + PRINT("CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE\r\n"); + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("activit_mode[%d], calories[%d], duration[%d], MHR_zone[%d],len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.calories, c_activity_result_t.duration, c_activity_result_t.MHR_zone, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + + // 长时间动作侦测 + case SPORT_ACTIVE_MODE_AR_ALERT: + PRINT("CYWEE_MSG_TYPE_AR_ALERT_UPDATE\r\n"); + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("activit_mode[%d], ar alert type[%d], len[%d]\n", + c_activity_result_t.activity_mode, c_activity_result_t.ar_alert_type, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + + // 额外信息 + case SPORT_ACTIVE_MODE_EXTRA_INFO: + PRINT("CYWEE_MSG_TYPE_EXTRA_INFO_UPDATE\r\n"); + memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); + PRINT("average step frequency[%d], average step length[%d], average pace[%d], max step frequency[%d], max pace[%d], len[%d]\n", + c_activity_result_t.avg_step_freq, c_activity_result_t.avg_step_len, c_activity_result_t.avg_pace, c_activity_result_t.max_step_freq, c_activity_result_t.max_pace, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + default: + break; } - }else if(msg_type == CYWEE_MSG_TYPE_INACTIVITY_UPDATE){ + } + else if (msg_type == CYWEE_MSG_TYPE_INACTIVITY_UPDATE) + { + memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); + switch (c_inactivity_result_t.inactivity_mode) + { + // 久坐 + case INACTIVITY_MODE_SEDENTARY_OUTPUT: + memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); + PRINT("inactivity_mode_number[%d], sedentary status[%d], stand freq[%d], len[%d]\n", + c_inactivity_result_t.inactivity_mode, c_inactivity_result_t.sedentary_status, + c_inactivity_result_t.stand_freq, sizeof(cywee_inactivity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + + // 睡眠 + case INACTIVITY_MODE_SLEEPING_OUTPUT: + memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); + PRINT("inactivity_mode_number[%d], sleep status[%d], month[%d], day[%d], hour[%d], min[%d], len[%d]\n", + c_inactivity_result_t.inactivity_mode, c_inactivity_result_t.sleep_status, + c_inactivity_result_t.month, c_inactivity_result_t.day, + c_inactivity_result_t.hour, c_inactivity_result_t.minute, + sizeof(cywee_inactivity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + + // 睡眠累计 + case INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT: memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); - switch (c_inactivity_result_t.inactivity_mode) - { - //久坐 - case INACTIVITY_MODE_SEDENTARY_OUTPUT: - memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); - PRINT("inactivity_mode_number[%d], sedentary status[%d], stand freq[%d], len[%d]\n", - c_inactivity_result_t.inactivity_mode,c_inactivity_result_t.sedentary_status, - c_inactivity_result_t.stand_freq,sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //睡眠 - case INACTIVITY_MODE_SLEEPING_OUTPUT: - memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); - PRINT("inactivity_mode_number[%d], sleep status[%d], month[%d], day[%d], hour[%d], min[%d], len[%d]\n", - c_inactivity_result_t.inactivity_mode,c_inactivity_result_t.sleep_status, - c_inactivity_result_t.month,c_inactivity_result_t.day, - c_inactivity_result_t.hour,c_inactivity_result_t.minute, - sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //睡眠累计 - case INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT: - memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); - PRINT("inactivity_mode_number[%d], total sleep time[%d], total nap time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d], len[%d]\n", - c_inactivity_result_t.inactivity_mode,c_inactivity_result_t.total_sleep_time,c_inactivity_result_t.total_mild_sleep_time, - c_inactivity_result_t.total_deep_sleep_time,c_inactivity_result_t.total_wake_time,c_inactivity_result_t.total_rem_sleep_time, - c_inactivity_result_t.stand_freq,sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //小睡 - case INACTIVITY_MODE_NAP_OUTPUT: - memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); - PRINT("inactivity_mode_number[%d], nap status[%d], month[%d], day[%d], hour[%d], min[%d], len[%d]\n", - c_inactivity_result_t.inactivity_mode,c_inactivity_result_t.nap_status,c_inactivity_result_t.month, - c_inactivity_result_t.day,c_inactivity_result_t.hour,c_inactivity_result_t.minute,sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //小睡累计 - case INACTIVITY_MODE_NAP_ACCUMULATE_TIME_OUTPUT: - memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); - PRINT("inactivity_mode_number[%d], total nap time[%d], total mild time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d], len[%d]\n", - c_inactivity_result_t.inactivity_mode,c_inactivity_result_t.total_nap_time,c_inactivity_result_t.total_mild_sleep_time, - c_inactivity_result_t.total_deep_sleep_time,c_inactivity_result_t.total_wake_time,c_inactivity_result_t.total_rem_sleep_time, - c_inactivity_result_t.stand_freq,sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - } + PRINT("inactivity_mode_number[%d], total sleep time[%d], total nap time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d], len[%d]\n", + c_inactivity_result_t.inactivity_mode, c_inactivity_result_t.total_sleep_time, c_inactivity_result_t.total_mild_sleep_time, + c_inactivity_result_t.total_deep_sleep_time, c_inactivity_result_t.total_wake_time, c_inactivity_result_t.total_rem_sleep_time, + c_inactivity_result_t.stand_freq, sizeof(cywee_inactivity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + + // 小睡 + case INACTIVITY_MODE_NAP_OUTPUT: + memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); + PRINT("inactivity_mode_number[%d], nap status[%d], month[%d], day[%d], hour[%d], min[%d], len[%d]\n", + c_inactivity_result_t.inactivity_mode, c_inactivity_result_t.nap_status, c_inactivity_result_t.month, + c_inactivity_result_t.day, c_inactivity_result_t.hour, c_inactivity_result_t.minute, sizeof(cywee_inactivity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; + + // 小睡累计 + case INACTIVITY_MODE_NAP_ACCUMULATE_TIME_OUTPUT: + memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); + PRINT("inactivity_mode_number[%d], total nap time[%d], total mild time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d], len[%d]\n", + c_inactivity_result_t.inactivity_mode, c_inactivity_result_t.total_nap_time, c_inactivity_result_t.total_mild_sleep_time, + c_inactivity_result_t.total_deep_sleep_time, c_inactivity_result_t.total_wake_time, c_inactivity_result_t.total_rem_sleep_time, + c_inactivity_result_t.stand_freq, sizeof(cywee_inactivity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + break; } - else - PRINT("Unknown sensor message type"); + } + else + PRINT("Unknown sensor message type"); } - static void cywee_service_timer_start_check(uint32_t rtc_ms) { - - if (g_cywee_service_timer == NULL) return ; - if (g_bat_timer_is_running ) osTimerStop(g_cywee_service_timer); - if (cywee_service_running_stat == true) osTimerStart(g_cywee_service_timer, rtc_ms); + + if (g_cywee_service_timer == NULL) + return; + if (g_bat_timer_is_running) + osTimerStop(g_cywee_service_timer); + if (cywee_service_running_stat == true) + osTimerStart(g_cywee_service_timer, rtc_ms); g_bat_timer_is_running = true; - } -static void cywee_service_check_timer_callback(void * data) +static void cywee_service_check_timer_callback(void *data) { unused(data); g_bat_timer_is_running = false; - if(cywee_service_running_stat == true){ - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIMER_CHECK,NULL); + if (cywee_service_running_stat == true) + { + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIMER_CHECK, NULL); // cywee_service_timer_start_check(CYWEE_CHECK_MS); } } @@ -216,18 +219,16 @@ void uapi_cywee_service_deinit(void) { /* Stop the time and clear the pin map */ - if (g_cywee_service_timer == NULL) return ; + if (g_cywee_service_timer == NULL) + return; osTimerStop(g_cywee_service_timer); osTimerDelete(g_cywee_service_timer); g_cywee_service_timer = NULL; g_bat_timer_is_running = false; - } - - -void do_cywee_service_check_msg(int cmd,int data[]) +void do_cywee_service_check_msg(int cmd, int data[]) { int ret; @@ -236,10 +237,10 @@ void do_cywee_service_check_msg(int cmd,int data[]) mail.data[0] = data[0]; mail.data[1] = data[1]; ret = osal_msg_queue_write_copy(g_cywee_queue, (void *)&mail, sizeof(cywee_cmd_t), 0); - if (ret != OSAL_SUCCESS) { - PRINT("Error cywee Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret); + if (ret != OSAL_SUCCESS) + { + PRINT("Error cywee Check MSG 0x%02X send failed! err=0x%x! \r\n", cmd, ret); } - } static void cywee_service_check_task(void const *arg) @@ -249,78 +250,109 @@ static void cywee_service_check_task(void const *arg) cywee_cmd_t mail; uint32_t msgsize = (uint32_t)sizeof(cywee_cmd_t); - while (1) { + while (1) + { ret = osal_msg_queue_read_copy(g_cywee_queue, (void *)&mail, &msgsize, OSAL_MSGQ_WAIT_FOREVER); - if (ret != OSAL_SUCCESS) { + if (ret != OSAL_SUCCESS) + { continue; } - if (mail.cmd == CYWEE_SERVICE_CMD_TIMER_CHECK) { + if (mail.cmd == CYWEE_SERVICE_CMD_TIMER_CHECK) + { cywee_int_handler(); // lis2doc_read_data(); - // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n"); - }else if (mail.cmd == CYWEE_SERVICE_CMD_TEST){ + // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n"); + } + else if (mail.cmd == CYWEE_SERVICE_CMD_TEST) + { test_api(); - }else if (mail.cmd == CYWEE_SERVICE_CMD_START_CHECK){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_START_CHECK) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_NORMAL); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if (mail.cmd == CYWEE_SERVICE_CMD_STOP_CHECK){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_STOP_CHECK) + { cywee_service_running_stat = false; - if (g_cywee_service_timer != NULL) osTimerStop(g_cywee_service_timer); + if (g_cywee_service_timer != NULL) + osTimerStop(g_cywee_service_timer); } - else if (mail.cmd == CYWEE_SERVICE_CMD_NORMAL_MODE){ + else if (mail.cmd == CYWEE_SERVICE_CMD_NORMAL_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_NORMAL); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_TREADMILL_MODE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_TREADMILL_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_TREADMILL); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_INDOOR_RUNNING); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_FREE_TRAINING_MODE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_FREE_TRAINING_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_FREE_TRAINING); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_AR_ALERT_MODE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_AR_ALERT_MODE) + { cywee_service_running_stat = true; cywee_main_dml(SPORT_ACTIVE_MODE_AR_ALERT); cywee_service_timer_start_check(CYWEE_CHECK_MS); - }else if(mail.cmd == CYWEE_SERVICE_CMD_PAUSE){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_PAUSE) + { activity_mode_setstatus(1); - }else if(mail.cmd == CYWEE_SERVICE_CMD_RESUME){ + } + else if (mail.cmd == CYWEE_SERVICE_CMD_RESUME) + { activity_mode_setstatus(0); - }else if(mail.cmd == CYWEE_SERVICE_CMD_ONCHARGING_CHANGE) + } + else if (mail.cmd == CYWEE_SERVICE_CMD_ONCHARGING_CHANGE) { cywee_oncharging_update(mail.data[0]); - }else if(mail.cmd == CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE) + } + else if (mail.cmd == CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE) { cywee_wearstatus_update(mail.data[0]); - }else if(mail.cmd == CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE) + } + else if (mail.cmd == CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE) { - cywee_hrs_wearstatus_update(mail.data[0],mail.data[1]); + cywee_hrs_wearstatus_update(mail.data[0], mail.data[1]); } } } #define CYWEE_APP_BOARD_MSG_COUNT 50 #define CYWEE_APP_BOARD_TASK_SIZE 0x1100 -#define CYWEE_BOARD_TASK_PRIO 7 +#define CYWEE_BOARD_TASK_PRIO 7 void create_cywee_queue(void) { if (osal_msg_queue_create("cywee_service_queue", CYWEE_APP_BOARD_MSG_COUNT, &g_cywee_queue, - 0, sizeof(cywee_cmd_t)) != ERRCODE_SUCC) { + 0, sizeof(cywee_cmd_t)) != ERRCODE_SUCC) + { printf("[cywee][service] app create mail fail\n"); } } @@ -328,26 +360,26 @@ errcode_t uapi_cywee_service_init(void) { PRINT("uapi_cywee_service_init !\r\n"); - app_task_definition_t taskcfg={0}; + app_task_definition_t taskcfg = {0}; taskcfg.create_queue_handle = create_cywee_queue; - taskcfg.attr.name="cywee_service"; + taskcfg.attr.name = "cywee_service"; taskcfg.attr.priority = osPriorityNormal; taskcfg.attr.stack_size = CYWEE_APP_BOARD_TASK_SIZE; taskcfg.func = cywee_service_check_task; taskcfg.use_mem = USE_DTCM_MEM; - - errcode_t ret=uapi_create_osThread_custom(&taskcfg); - if(ret != ERRCODE_SUCC) + + errcode_t ret = uapi_create_osThread_custom(&taskcfg); + if (ret != ERRCODE_SUCC) { - PRINT("create cywee_service failed %d!\r\n",ret); + PRINT("create cywee_service failed %d!\r\n", ret); return ERRCODE_FAIL; } g_cywee_service_timer = osTimerNew((osTimerFunc_t)cywee_service_check_timer_callback, osTimerPeriodic, NULL, NULL); - + cywee_register_msg_callback(cywee_msg_callback); - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_START_CHECK,NULL); - + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_START_CHECK, NULL); + return ERRCODE_SUCC; }