From: penglei <1624952103@qq.com> Date: Sat, 13 Apr 2024 02:51:18 +0000 (+0800) Subject: “精简运动模式消息发送函数以及topic数量” X-Git-Tag: release_V1.2.70_20241020_135402~1189^2~8^2^2 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=7dcbd061834299b5a0530b09cece19b5f640dcc6;p=mirrors%2FFD230.git “精简运动模式消息发送函数以及topic数量” --- 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 8890dc464..6ef746921 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -88,7 +88,7 @@ extern "C" PRINT("request %d\r\n", request->msgId); switch (request->msgId) { - case TOPIC_EVENT_TREADMILL_UPDATE: + case TOPIC_EVENT_ACTIVITY_UPDATE: cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存 rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len); if (rets != EOK) @@ -100,7 +100,7 @@ extern "C" } TraingModel::GetInstance()->AnalysisData(cyweeInfo); break; - case TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE: + case TOPIC_EVENT_INACTIVITY_UPDATE: cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存 rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len); if (rets != EOK) @@ -112,42 +112,6 @@ extern "C" } TraingModel::GetInstance()->AnalysisData(cyweeInfo); break; - case TOPIC_EVENT_INDOOR_RUNNING_UPDATE: - cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存 - rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len); - if (rets != EOK) - { - delete cyweeInfo; // 处理内存分配失败的情况 - cyweeInfo = NULL; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_activity_result_t fail! ret = %d", rets); - return; - } - TraingModel::GetInstance()->AnalysisData(cyweeInfo); - break; - case TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE: - cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存 - rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len); - if (rets != EOK) - { - delete cyweeInfo; // 处理内存分配失败的情况 - cyweeInfo = NULL; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_activity_result_t fail! ret = %d", rets); - return; - } - TraingModel::GetInstance()->AnalysisData(cyweeInfo); - break; - case TOPIC_EVENT_FREE_TRAINING_UPDATE: - cyweeInfo = new cywee_activity_result_t(); // 在case块内分配内存 - rets = memcpy_s(cyweeInfo, sizeof(cywee_activity_result_t), (cywee_activity_result_t *)request->data, request->len); - if (rets != EOK) - { - delete cyweeInfo; // 处理内存分配失败的情况 - cyweeInfo = NULL; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_result_t fail! ret = %d", rets); - return; - } - TraingModel::GetInstance()->AnalysisData(cyweeInfo); - break; default: // 处理未知msgId的情况 break; @@ -192,11 +156,7 @@ namespace OHOS { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::~TraingModel()"); // 取消订阅 - TraingUnsubscribeTopic(TOPIC_EVENT_TREADMILL_UPDATE); - TraingUnsubscribeTopic(TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE); - TraingUnsubscribeTopic(TOPIC_EVENT_INDOOR_RUNNING_UPDATE); - TraingUnsubscribeTopic(TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE); - TraingUnsubscribeTopic(TOPIC_EVENT_FREE_TRAINING_UPDATE); + TraingUnsubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); } TraingModel *TraingModel::GetInstance(void) { @@ -207,11 +167,7 @@ namespace OHOS void TraingModel ::Init() { // 进行消息订阅 - TraingSubscribeTopic(TOPIC_EVENT_TREADMILL_UPDATE); - TraingSubscribeTopic(TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE); - TraingSubscribeTopic(TOPIC_EVENT_INDOOR_RUNNING_UPDATE); - TraingSubscribeTopic(TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE); - TraingSubscribeTopic(TOPIC_EVENT_FREE_TRAINING_UPDATE); + TraingSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); } /* -------------------------------------------------------------------------- */ diff --git a/code/sdk/application/wearable/service/broadcast/include/broadcast_feature.h b/code/sdk/application/wearable/service/broadcast/include/broadcast_feature.h index 127c21f92..141ccf71f 100755 --- a/code/sdk/application/wearable/service/broadcast/include/broadcast_feature.h +++ b/code/sdk/application/wearable/service/broadcast/include/broadcast_feature.h @@ -46,15 +46,9 @@ typedef enum { TOPIC_EVENT_HFP_PHONE_TO_WATCH, TOPIC_EVENT_HFP_WATCH_TO_PHONE, #ifdef CYWEE_SPORT - TOPIC_EVENT_NORMAL_UPDATE, - TOPIC_EVENT_TREADMILL_UPDATE, - TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE, - TOPIC_EVENT_INDOOR_RUNNING_UPDATE, - TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE, - TOPIC_EVENT_FREE_TRAINING_UPDATE, + TOPIC_EVENT_ACTIVITY_UPDATE, + TOPIC_EVENT_INACTIVITY_UPDATE, #endif - TOPIC_EVENT_AR_ALERT_UPDATE, - TOPIC_EVENT_EXTRA_INFO_UPDATE, #ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION TOPIC_EVENT_CHARGE_PLUG, TOPIC_EVENT_CHARGE_UNPLUG, diff --git a/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c b/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c index 2dc6498c6..eec2193aa 100755 --- a/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c +++ b/code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c @@ -26,14 +26,8 @@ static const TopicToCore topicToCoreArray[] = { {TOPIC_EVENT_STEPDATA_UPDATE, A_CORE_MASK, 1}, {TOPIC_EVENT_SHUTDOWN, A_CORE_MASK, 1}, {TOPIC_EVENT_HEARTRATE_UPDATA, A_CORE_MASK, 1}, - {TOPIC_EVENT_NORMAL_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_TREADMILL_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_INDOOR_RUNNING_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_FREE_TRAINING_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_AR_ALERT_UPDATE, A_CORE_MASK, 1}, - {TOPIC_EVENT_EXTRA_INFO_UPDATE, A_CORE_MASK, 1}, + {TOPIC_EVENT_ACTIVITY_UPDATE, A_CORE_MASK, 1}, + {TOPIC_EVENT_INACTIVITY_UPDATE, A_CORE_MASK, 1}, #ifdef SUPPORT_SPO2_NOTIFICATION {TOPIC_EVENT_SPO2_UPDATE, A_CORE_MASK, 1}, {TOPIC_EVENT_START_HRS_MONITORING, A_CORE_MASK, 1}, diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp index 53c69a28c..a3ce3fd90 100755 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp @@ -51,14 +51,8 @@ extern "C" { const PriorityMapper g_pri_mapper[] = { {TOPIC_EVENT_ALARM_RING, PRIORITY_TWO}, {TOPIC_EVENT_NEXTDAY_UPDATE, PRIORITY_TWO}, - {TOPIC_EVENT_NORMAL_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_TREADMILL_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_INDOOR_RUNNING_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_FREE_TRAINING_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_AR_ALERT_UPDATE,PRIORITY_TWO}, - {TOPIC_EVENT_EXTRA_INFO_UPDATE,PRIORITY_TWO}, + {TOPIC_EVENT_ACTIVITY_UPDATE,PRIORITY_TWO}, + {TOPIC_EVENT_INACTIVITY_UPDATE,PRIORITY_TWO}, #ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION {TOPIC_EVENT_CHARGE_PLUG, PRIORITY_TWO}, {TOPIC_EVENT_CHARGE_UNPLUG, PRIORITY_TWO}, @@ -126,14 +120,8 @@ void MsgCenterSubscribe() MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_FINISHED); MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_PHONE_TO_WATCH); MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_WATCH_TO_PHONE); - MsgCenterSubscribeTopic(TOPIC_EVENT_NORMAL_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_TREADMILL_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_INDOOR_RUNNING_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_FREE_TRAINING_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_AR_ALERT_UPDATE); - MsgCenterSubscribeTopic(TOPIC_EVENT_EXTRA_INFO_UPDATE); + MsgCenterSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); + MsgCenterSubscribeTopic(TOPIC_EVENT_INACTIVITY_UPDATE); #ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION MsgCenterSubscribeTopic(TOPIC_EVENT_CHARGE_PLUG); MsgCenterSubscribeTopic(TOPIC_EVENT_CHARGE_UNPLUG); @@ -820,6 +808,16 @@ void MsgCenterNotifyCanCelFindWatchProc(const Topic topic, Request* req) } FindWatchViewEventListener::GetInstance().SetFindWatchNotifyFlag(false); } +void MsgCenterNotifyActivityProc(const Topic topic, Request* req) +{ + unused(topic); + unused(req); +} +void MsgCenterNotifyInactivityProc(const Topic topic, Request* req) +{ + unused(topic); + unused(req); +} /* 订阅事件通知逻辑可定制 */ static msg_center_notify_table_t g_msg_center_notify_table[] = { {TOPIC_EVENT_ALARM_RING, MsgCenterNotifyAlarmProc}, @@ -832,14 +830,8 @@ static msg_center_notify_table_t g_msg_center_notify_table[] = { {TOPIC_EVENT_HFP_PHONE_TO_WATCH, MsgCenterNotifyHfpWatchProc}, {TOPIC_EVENT_FIND_WATCH,MsgCenterNotifyFindWatchProc}, {TOPIC_EVENT_CANCEL_FIND_WATCH,MsgCenterNotifyCanCelFindWatchProc}, - {TOPIC_EVENT_NORMAL_UPDATE, MsgCenterNotifyNormalProc}, - {TOPIC_EVENT_TREADMILL_UPDATE, MsgCenterNotifyTreadmillProc}, - {TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE, MsgCenterNotifyOutdoorRunningProc}, - {TOPIC_EVENT_INDOOR_RUNNING_UPDATE, MsgCenterNotifyIndoorRunningProc}, - {TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE, MsgCenterNotifyFitnessPedometerProc}, - {TOPIC_EVENT_FREE_TRAINING_UPDATE, MsgCenterNotifyFreeTrainingProc}, - {TOPIC_EVENT_AR_ALERT_UPDATE, MsgCenterNotifyArAlertProc}, - {TOPIC_EVENT_EXTRA_INFO_UPDATE, MsgCenterNotifyExtraInfoProc}, + {TOPIC_EVENT_ACTIVITY_UPDATE, MsgCenterNotifyActivityProc}, + {TOPIC_EVENT_INACTIVITY_UPDATE, MsgCenterNotifyInactivityProc}, #ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION {TOPIC_EVENT_CHARGE_PLUG, MsgCenterNotifyChargePlugProc}, {TOPIC_EVENT_CHARGE_UNPLUG, MsgCenterNotifyChargeUnPlugProc}, diff --git a/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h b/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h index 8ed5e9e4d..3caaf8223 100644 --- a/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h +++ b/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h @@ -41,7 +41,9 @@ extern void CWM_OS_restoreData(uint8_t* data, uint32_t len); #define SPORT_ACTIVE_MODE_INDOOR_RUNNING 1006 // 室內跑步 indoor running 1006 #define SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR 1008 // 防誤觸計步 fitness_pedometer 1008 #define SPORT_ACTIVE_MODE_FREE_TRAINING 5001 // 自由運動 FreeTraining 5001 -#define SPORT_ACTIVE_MODE_AR_ALERT 1001 // 長時間動作偵測 AR alert 1001 +//#define SPORT_ACTIVE_MODE_AR_ALERT 1001 // 長時間動作偵測 AR alert 1001 +#define SPORT_ACTIVE_MODE_AR_ALERT 102 // 長時間動作偵測 AR alert 1001 +#define SPORT_ACTIVE_MODE_EXTRA_INFO 100 // 额外信息 AR alert 1001 #define INACTIVITY_MODE_NOTHING 0 // 无作用 #define INACTIVITY_MODE_SEDENTARY 1 // 久坐和有效站立 @@ -49,6 +51,11 @@ extern void CWM_OS_restoreData(uint8_t* data, uint32_t len); #define INACTIVITY_MODE_SEDENTARY_AND_NAP 3 // 久坐、有效站立和小睡 #define INACTIVITY_MODE_NAP 4 // 小睡 +#define INACTIVITY_MODE_SEDENTARY_OUTPUT 20 // 久坐和有效站立 +#define INACTIVITY_MODE_SLEEPING_OUTPUT 21 // 睡眠 +#define INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT 31 // 久坐、有效站立和小睡 +#define INACTIVITY_MODE_NAP_OUTPUT 22 // 小睡 +#define INACTIVITY_MODE_NAP_ACCUMULATE_TIME_OUTPUT 32 #pragma pack(1) @@ -438,10 +445,10 @@ typedef struct typedef struct { int activity_mode; - int calories; - int duration; int steps; int distance; + int calories; + int duration; int step_frequency; int step_length; int pace; @@ -454,6 +461,7 @@ typedef struct int max_pace; int ar_alert_type; int MHR_zone; + int hrs; }cywee_activity_result_t; typedef struct @@ -479,19 +487,10 @@ typedef struct #pragma pack() typedef enum{ - CYWEE_MSG_TYPE_NORMAL_UPDATE, - CYWEE_MSG_TYPE_TREADMILL_UPDATE, - CYWEE_MSG_TYPE_OUTDOOR_RUNNING_UPDATE, - CYWEE_MSG_TYPE_INDOOR_RUNNING_UPDATE, - CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE, - CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE, - CYWEE_MSG_TYPE_AR_ALERT_UPDATE, - CYWEE_MSG_TYPE_EXTRA_INFO_UPDATE, - CYWEE_MSG_TYPE_SEDENTARY_UPDATE, - CYWEE_MSG_TYPE_SLEEPING_UPDATE, - CYWEE_MSG_TYPE_SLEEPING_ACCUMULATE_TIME_UPDATE, - CYWEE_MSG_TYPE_NAP_UPDATE, - CYWEE_MSG_TYPE_NAP_ACCUMULATE_TIME_UPDATE + CYWEE_MSG_TYPE_ACTIVITY_UPDATE, + CYWEE_MSG_TYPE_ACTIVITY_EXTRA_INFO_UPDATE, + CYWEE_MSG_TYPE_INACTIVITY_UPDATE, + CYWEE_MSG_TYPE_INACTIVITY_EXTRA_INFO_UPDATE, } cywee_msg_type_t; diff --git a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c index d0c4b0e42..9f4abd43b 100644 --- a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c +++ b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c @@ -62,144 +62,133 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen PRINT("cywee_msg_callback\r\n"); cywee_activity_result_t c_activity_result_t; cywee_inactivity_result_t c_inactivity_result_t; - switch(msg_type) + + if(msg_type == CYWEE_MSG_TYPE_ACTIVITY_UPDATE) { - //一般模式 - case CYWEE_MSG_TYPE_NORMAL_UPDATE: - PRINT("CYWEE_MSG_TYPE_NORMAL_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_NORMAL_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //跑步机模式 - case CYWEE_MSG_TYPE_TREADMILL_UPDATE: - 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_TREADMILL_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //户外跑步模式 - case CYWEE_MSG_TYPE_OUTDOOR_RUNNING_UPDATE: - PRINT("CYWEE_MSG_TYPE_OUTDOOR_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_OUTDOOR_RUNNING_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //室内跑步模式 - case CYWEE_MSG_TYPE_INDOOR_RUNNING_UPDATE: - 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_INDOOR_RUNNING_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //防误触计步模式 - case CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE: - 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_FITNESS_PEDOMETERR_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //自由运动模式 - case CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE: - 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_FREE_TRAINING_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //长时间动作侦测模式 - case CYWEE_MSG_TYPE_AR_ALERT_UPDATE: - 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_AR_ALERT_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //额外信息 - case CYWEE_MSG_TYPE_EXTRA_INFO_UPDATE: - 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_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //久坐 - case CYWEE_MSG_TYPE_SEDENTARY_UPDATE: - PRINT("CYWEE_MSG_TYPE_SEDENTARY_UPDATE\r\n"); - 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_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //睡眠 - case CYWEE_MSG_TYPE_SLEEPING_UPDATE: - PRINT("CYWEE_MSG_TYPE_SLEEPING_UPDATE\r\n"); - 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_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //睡眠累计 - case CYWEE_MSG_TYPE_SLEEPING_ACCUMULATE_TIME_UPDATE: - PRINT("CYWEE_MSG_TYPE_SLEEPING_ACCUMULATE_TIME_UPDATE\r\n"); - 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_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - //小睡 - case CYWEE_MSG_TYPE_NAP_UPDATE: - PRINT("CYWEE_MSG_TYPE_NAP_UPDATE\r\n"); + 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; + } + }else if(msg_type == CYWEE_MSG_TYPE_INACTIVITY_UPDATE){ 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_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; + 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 CYWEE_MSG_TYPE_NAP_ACCUMULATE_TIME_UPDATE: - PRINT("CYWEE_MSG_TYPE_NAP_ACCUMULATE_TIME_UPDATE\r\n"); - 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_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - default: - + //小睡累计 + 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"); - break; - } } diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index 70bfb785b..3134adc71 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -47,6 +47,21 @@ static osTimerId_t g_cywee_oncharging_timer; CustomSensorData csd; +static uint8_t hrs = 0; +static uint8_t wearstatus = 0; + +void set_user_info(int age,int gender,double weight,int height,int wearing_method) +{ + memset(&scl, 0, sizeof(scl)); + scl.iData[0] = 1; + scl.iData[1] = age; + scl.iData[2] = weight; + scl.iData[3] = (int)weight; + scl.iData[4] = weight; + scl.iData[5] = wearing_method; + CWM_SettingControl(SCL_USER_INFO, &scl); +} + void time_sync(void) { time_t rawtime; @@ -59,8 +74,8 @@ void time_sync(void) memset(&scl, 0, sizeof(scl)); scl.iData[0] = 1; - scl.iData[1] = timeinfo->tm_year; - scl.iData[2] = timeinfo->tm_mon; + scl.iData[1] = timeinfo->tm_year + 1900; + scl.iData[2] = timeinfo->tm_mon + 1; scl.iData[3] = timeinfo->tm_mday; scl.iData[4] = timeinfo->tm_hour; scl.iData[5] = timeinfo->tm_min; @@ -70,7 +85,6 @@ void time_sync(void) void cywee_hrs_check_timer_callback(void) { - uint8_t hrs,wearstatus; get_hrs_wearstatus(&hrs,&wearstatus); CWM_OS_dbgPrintf("hrs : %d,wearstatus : %d \r\n",hrs,wearstatus); memset(&csd, 0, sizeof(CUSTOM_HEARTRATE)); @@ -194,6 +208,14 @@ void cyw_inactivity_mode_change(int mode) //久坐和有效站立 case INACTIVITY_MODE_SEDENTARY: + PRINT("INACTIVITY_MODE_SEDENTARY\r\n"); + //training_mode_init(); + //配置久坐相关参数 + memset(&scl, 0, sizeof(scl)); + scl.iData[0] = 1; + scl.iData[2] = 1; + scl.iData[3] = 1; + CWM_SettingControl(SCL_SEDENTARY, &scl); memset(&scl, 0, sizeof(scl)); scl.iData[0] = 1; scl.iData[1] = 1; @@ -210,6 +232,17 @@ void cyw_inactivity_mode_change(int mode) //久坐、有效站立和小睡 case INACTIVITY_MODE_SEDENTARY_AND_NAP: + /* + SCL_REQ_SLEEPING_DATA + int[0] = 1 + int[1] = terminate_sleep + (0: 立刻輸出狀態,但不中止此段睡眠偵測, + 1: 立刻輸出狀態,並中止此段睡眠偵測) + */ + memset(&scl, 0, sizeof(scl)); + scl.iData[0] = 1; + scl.iData[1] = 1; + CWM_SettingControl(SCL_REQ_SLEEPING_DATA, &scl); memset(&scl, 0, sizeof(scl)); scl.iData[0] = 1; scl.iData[1] = 3; @@ -438,7 +471,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.inactivity_mode = (int)sensorEVT->fData[15]; c_inactivity_result_t.sedentary_status = (int)sensorEVT->fData[2]; c_inactivity_result_t.stand_freq = (int)sensorEVT->fData[3]; - cywee_func(CYWEE_MSG_TYPE_SEDENTARY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); }else if((int)sensorEVT->fData[0] == 21){ CWM_OS_dbgPrintf("inactivity_mode_number[%d], sleep status[%d], month[%d], day[%d], hour[%d], min[%d]\n", @@ -455,7 +488,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.day = (int)sensorEVT->fData[4]; c_inactivity_result_t.hour = (int)sensorEVT->fData[5]; c_inactivity_result_t.minute = (int)sensorEVT->fData[6]; - cywee_func(CYWEE_MSG_TYPE_SLEEPING_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); }else if((int)sensorEVT->fData[0] == 31){ CWM_OS_dbgPrintf("inactivity_mode_number[%d], total sleep time[%d], total mild time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d]\n", @@ -472,7 +505,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.total_deep_sleep_time = (int)sensorEVT->fData[3]; c_inactivity_result_t.total_wake_time = (int)sensorEVT->fData[4]; c_inactivity_result_t.total_rem_sleep_time = (int)sensorEVT->fData[5]; - cywee_func(CYWEE_MSG_TYPE_SLEEPING_ACCUMULATE_TIME_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); }else if((int)sensorEVT->fData[0] == 22){ CWM_OS_dbgPrintf("inactivity_mode_number[%d], nap status[%d], month[%d], day[%d], hour[%d], min[%d]\n", @@ -489,7 +522,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.day = (int)sensorEVT->fData[4]; c_inactivity_result_t.hour = (int)sensorEVT->fData[5]; c_inactivity_result_t.minute = (int)sensorEVT->fData[6]; - cywee_func(CYWEE_MSG_TYPE_NAP_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); }else if((int)sensorEVT->fData[0] == 32){ CWM_OS_dbgPrintf("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]\n", @@ -506,7 +539,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.total_deep_sleep_time = (int)sensorEVT->fData[3]; c_inactivity_result_t.total_wake_time = (int)sensorEVT->fData[4]; c_inactivity_result_t.total_rem_sleep_time = (int)sensorEVT->fData[5]; - cywee_func(CYWEE_MSG_TYPE_NAP_ACCUMULATE_TIME_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); } break; case IDX_ALGO_ACTIVITY_OUTPUT: @@ -521,12 +554,14 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { (int)sensorEVT->fData[5]); memset(&c_activity_result_t,0,sizeof(cywee_activity_result_t)); + c_activity_result_t.activity_mode = (int)sensorEVT->fData[0]; c_activity_result_t.avg_step_freq = (int)sensorEVT->fData[1]; c_activity_result_t.avg_step_len = (int)sensorEVT->fData[2]; c_activity_result_t.avg_pace = (int)sensorEVT->fData[3]; c_activity_result_t.max_step_freq = (int)sensorEVT->fData[4]; c_activity_result_t.max_pace = (int)sensorEVT->fData[5]; - cywee_func(CYWEE_MSG_TYPE_EXTRA_INFO_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); + c_activity_result_t.hrs = hrs; + cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); }else if((int)sensorEVT->fData[0] == 5001) { @@ -540,7 +575,8 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_activity_result_t.calories = (int)sensorEVT->fData[1]; c_activity_result_t.duration = (int)sensorEVT->fData[5]; c_activity_result_t.MHR_zone = (int)sensorEVT->fData[6]; - cywee_func(CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); + c_activity_result_t.hrs = hrs; + cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); }else if((int)sensorEVT->fData[0] == 102) { @@ -549,7 +585,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { memset(&c_activity_result_t,0,sizeof(cywee_activity_result_t)); c_activity_result_t.activity_mode = (int)sensorEVT->fData[0]; c_activity_result_t.ar_alert_type = (int)sensorEVT->fData[1]; - cywee_func(CYWEE_MSG_TYPE_AR_ALERT_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); + cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); }else{ CWM_OS_dbgPrintf("activity_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d], BMR calories[%d], is_pause[%d]\n", @@ -573,36 +609,13 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_activity_result_t.pace = (int)sensorEVT->fData[7]; c_activity_result_t.BMR_calories = (int)sensorEVT->fData[8]; c_activity_result_t.is_pause = (int)sensorEVT->fData[14]; - - switch ((int)sensorEVT->fData[0]) - { - case SPORT_ACTIVE_MODE_NORMAL: - cywee_func(CYWEE_MSG_TYPE_NORMAL_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - case SPORT_ACTIVE_MODE_TREADMILL: - cywee_func(CYWEE_MSG_TYPE_TREADMILL_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - case SPORT_ACTIVE_MODE_OUTDOOR_RUNNING: - cywee_func(CYWEE_MSG_TYPE_OUTDOOR_RUNNING_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - case SPORT_ACTIVE_MODE_INDOOR_RUNNING: - cywee_func(CYWEE_MSG_TYPE_INDOOR_RUNNING_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - case SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR: - cywee_func(CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); - break; - - default: - break; - } + c_activity_result_t.hrs = hrs; + cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t)); CustomEventPublish(TOPIC_EVENT_STEPDATA_UPDATE,&stepcount,sizeof(int)); } break; + case IDX_ALGO_ANY_MOTION: CWM_OS_dbgPrintf("IDX_ALGO_ANY_MOTION\n"); diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c index 819e1c14e..2a48240a0 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c @@ -427,11 +427,12 @@ uint16_t hx3695_read_fifo_data(int32_t *buf, uint8_t phase_num, uint8_t sig) hx3695_brust_read_reg(0x22, databuf, 3); read_fifo_first_flg = 0; } - hx3695_brust_read_reg(0x22, fifo_data_buf, fifo_read_bytes); -// for(ii=0; ii touch_cnt: %d, notouch_cnt: %d, wear status: %d, \r\n", touch_cnt, notouch_cnt, hx3695_wear_status); -// PRINT("hx3695_wear_ppg_Int_handle wearstatus = %d\r\n", hrsresult.wearstatus); - -// for(int i=0;i<*count;i++) -// { -// DEBUG_PRINTF("%d,%d,%d,%d,%d,%d\r\n",1+i,*count,ir_buf[i],ppg_s_data.s_buf[i*2],ppg_s_data.s_buf[i*2+1],hx3695_wear_status); -// } + PRINT("hx3695_wear_ppg_Int_handle wearstatus = %d\r\n", hrsresult.wearstatus); + PRINT("count : %d \r\n",*count); + for(int i=0;i<*count;i++) + { + PRINT("%d,%d,%d,%d,%d,%d\r\n",1+i,*count,ir_buf[i],ppg_s_data.s_buf[i*2],ppg_s_data.s_buf[i*2+1],hx3695_wear_status); + } } #endif diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_check_touch.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_check_touch.c index ea1817a75..c4b2e4d50 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_check_touch.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_check_touch.c @@ -148,6 +148,7 @@ uint8_t hx3695_check_touch_read(ppg_sensor_data_t *s_dat) // if (size && size <= 256) // { fifo_out_size = hx3695_read_fifo_data(s_buf,hrs_phase_num,2); + PRINT("fifo_out_size : %d\r\n",fifo_out_size); s_dat->count = fifo_out_size; for (i=0; icheck_mode_wear_thre) { notouch_cnt = 0; diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c index 749efac90..944aa79a7 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c @@ -2,7 +2,7 @@ * @Author: penglei 1624952103@qq.com * @Date: 2024-03-13 15:08:38 * @LastEditors: penglei 1624952103@qq.com - * @LastEditTime: 2024-03-29 10:51:50 + * @LastEditTime: 2024-04-12 20:23:58 * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c * @Description: * @@ -56,6 +56,8 @@ void ppg_send_cmd_to_driver(char* mode, uint8_t enable) md = FT_GRAY_CARD_MODE; } else if (strcmp(mode, "ledoff") == 0) { md = FT_LED_OFF_MODE; + } else if (strcmp(mode, "wear") == 0) { + md = WEAR_MODE; } diff --git a/code/sdk/drivers/peripheral/ppg/service/ppg_service.cpp b/code/sdk/drivers/peripheral/ppg/service/ppg_service.cpp index bd72fc928..1e3acd46b 100644 --- a/code/sdk/drivers/peripheral/ppg/service/ppg_service.cpp +++ b/code/sdk/drivers/peripheral/ppg/service/ppg_service.cpp @@ -305,14 +305,12 @@ static void ppg_service_check_task(void *arg) cmd = "leaklight"; enable = 1; }else if (mail == PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST){ - cmd = "graycard"; + cmd = "wear"; enable = 1; }else if (mail == PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST){ - cmd = "hrs"; enable = 0; }else if (mail == PPG_SERVICE_CMD_TYPE_STOP_SPO2_TEST){ - cmd = "spo2"; enable = 0; }