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)
}
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)
}
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;
{
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)
{
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);
}
/* -------------------------------------------------------------------------- */
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,
{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},
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},
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);
}
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},
{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},
#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 // 久坐和有效站立
#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)
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;
int max_pace;
int ar_alert_type;
int MHR_zone;
+ int hrs;
}cywee_activity_result_t;
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;
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;
- }
}
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;
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;
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));
//久坐和有效站立
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;
//久坐、有效站立和小睡
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;
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",
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",
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",
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",
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:
(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)
{
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)
{
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",
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");
hx3695_brust_read_reg(0x22, databuf, 3); \r
read_fifo_first_flg = 0;\r
} \r
- hx3695_brust_read_reg(0x22, fifo_data_buf, fifo_read_bytes); \r
-// for(ii=0; ii<fifo_read_bytes; ii++)\r
-// {\r
-// SEGGER_RTT_printf(0,"%d/%d, %d\r\n", ii+1,fifo_read_bytes,fifo_data_buf[ii]); \r
-// }\r
+ hx3695_brust_read_reg(0x22, fifo_data_buf, fifo_read_bytes);\r
+ PRINT("hx3695_brust_read_reg !!! \r\n"); \r
+ for(ii=0; ii<fifo_read_bytes; ii++)\r
+ {\r
+ PRINT("%d/%d, %d\r\n", ii+1,fifo_read_bytes,fifo_data_buf[ii]); \r
+ }\r
for(ii=0; ii<fifo_read_length; ii++)\r
{\r
if(sig==0)\r
\r
// PRINT("===> touch_cnt: %d, notouch_cnt: %d, wear status: %d, \r\n", touch_cnt, notouch_cnt, hx3695_wear_status);\r
\r
-// PRINT("hx3695_wear_ppg_Int_handle wearstatus = %d\r\n", hrsresult.wearstatus);\r
- \r
-// for(int i=0;i<*count;i++)\r
-// {\r
-// 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);\r
-// }\r
+ PRINT("hx3695_wear_ppg_Int_handle wearstatus = %d\r\n", hrsresult.wearstatus);\r
+ PRINT("count : %d \r\n",*count);\r
+ for(int i=0;i<*count;i++)\r
+ {\r
+ 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);\r
+ }\r
}\r
#endif\r
\r
// if (size && size <= 256)\r
// {\r
fifo_out_size = hx3695_read_fifo_data(s_buf,hrs_phase_num,2);\r
+ PRINT("fifo_out_size : %d\r\n",fifo_out_size);\r
s_dat->count = fifo_out_size;\r
for (i=0; i<fifo_out_size; i++)\r
{ \r
\r
hx3695_wear_msg_code_t check_touch_alg(int32_t ir_data)\r
{\r
+ PRINT("ir_data : %d \r\n",ir_data);\r
if(ir_data>check_mode_wear_thre)\r
{\r
notouch_cnt = 0;\r
* @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:
*
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;
}
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;
}