TOPIC_EVENT_HFP_WATCH_TO_PHONE,
#ifdef CYWEE_SPORT
TOPIC_EVENT_ACTIVITY_UPDATE,
+ TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE,
TOPIC_EVENT_INACTIVITY_UPDATE,
+ TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE,
TOPIC_EVENT_BLE_TRAINING,
TOPIC_EVENT_BLE_TRANSMIT,
#endif
{TOPIC_EVENT_HEARTRATE_UPDATA, A_CORE_MASK, 1},
#ifdef CYWEE_SPORT
{TOPIC_EVENT_ACTIVITY_UPDATE, A_CORE_MASK, 1},
+ {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, A_CORE_MASK, 1},
{TOPIC_EVENT_INACTIVITY_UPDATE, A_CORE_MASK, 1},
+ {TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE, A_CORE_MASK, 1},
{TOPIC_EVENT_BLE_TRAINING,A_CORE_MASK,1},
{TOPIC_EVENT_BLE_TRANSMIT,A_CORE_MASK,1},
{TOPIC_EVENT_ON_TIME,PRIORITY_TWO},
{TOPIC_EVENT_NEXTDAY_UPDATE, PRIORITY_TWO},
{TOPIC_EVENT_ACTIVITY_UPDATE,PRIORITY_TWO},
+ {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE,PRIORITY_TWO},
{TOPIC_EVENT_STEPDATA_UPDATE,PRIORITY_TWO},
{TOPIC_EVENT_INACTIVITY_UPDATE,PRIORITY_TWO},
+ {TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE,PRIORITY_TWO},
{TOPIC_EVENT_BLE_TRAINING,PRIORITY_TWO},
{TOPIC_EVENT_BLE_TRANSMIT,PRIORITY_TWO},
#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_WATCH_TO_PHONE);
#ifdef CYWEE_SPORT
MsgCenterSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE);
+ MsgCenterSubscribeTopic(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE);
MsgCenterSubscribeTopic(TOPIC_EVENT_INACTIVITY_UPDATE);
+ MsgCenterSubscribeTopic(TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE);
MsgCenterSubscribeTopic(TOPIC_EVENT_BLE_TRAINING);
MsgCenterSubscribeTopic(TOPIC_EVENT_BLE_TRANSMIT);
if(c_activity_result_t->distance!=0)
set_distance_data(c_activity_result_t->distance);
- if(c_activity_result_t->MHR>=2)
+ if(c_activity_result_t->MHR_zone>=2)
set_fat_time_data();
+}
-
+void MsgCenterNotifyActivityExtraInfoProc(const Topic topic, Request* req)
+{
+ unused(topic);
}
+
void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
{
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyInactivityProc !");
return;
}
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "cywee_Inactivity_Info->sedentary_status = %d, stand_freq = %d", cywee_Inactivity_Info->sedentary_status, cywee_Inactivity_Info->stand_freq);
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "cywee_Inactivity_Info->sedentary_status = %d, stand_freq = %d", cywee_Inactivity_Info->status, cywee_Inactivity_Info->stand_freq);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "cywee_Inactivity_Info->output_number = %d", cywee_Inactivity_Info->output_number);
- if(cywee_Inactivity_Info->sedentary_status==9)
+ if(cywee_Inactivity_Info->status==9)
{
set_stand_falg();
}
switch (cywee_Inactivity_Info->output_number)
{
case INACTIVITY_MODE_SEDENTARY_OUTPUT:
- if(cywee_Inactivity_Info->sedentary_status == 1)
+ if(cywee_Inactivity_Info->status == 1)
{
//NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
//根据久坐间隔时间和是否在设置的提醒时间段内判断是否弹出久坐视图
free(cywee_Inactivity_Info);
cywee_Inactivity_Info = NULL;
}
+
+void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req)
+{
+ unused(topic);
+}
+
//APP运动相关
void MsgCenterNotifybleAPPtraining(const Topic topic, Request* req)
{
{TOPIC_EVENT_HFP_PHONE_TO_WATCH, MsgCenterNotifyHfpWatchProc},
#ifdef CYWEE_SPORT
{TOPIC_EVENT_ACTIVITY_UPDATE, MsgCenterNotifyActivityProc},
+ {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, MsgCenterNotifyActivityExtraInfoProc},
{TOPIC_EVENT_INACTIVITY_UPDATE, MsgCenterNotifyInactivityProc},
+ {TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE, MsgCenterNotifyInactivityAccumulateTimeProc},
{TOPIC_EVENT_BLE_TRAINING, MsgCenterNotifybleAPPtraining},
{TOPIC_EVENT_BLE_TRANSMIT, MsgCenterNotifybleTransmit},
#pragma pack(1)
typedef struct
{
- int activity_mode;
- int steps;
- int distance;
- int calories;
- int step_frequency;
- int step_length;
- int pace;
- int avg_step_freq;
- int avg_step_len;
- int avg_pace;
- int max_step_freq;
- int max_pace;
- int hrs;
- int duration;
- int MHR;
+ int activity_mode;//模式
+ int steps;//步数
+ int distance;//距离
+ int calories;//卡路里
+ int step_frequency;//步频
+ int step_length;//步幅
+ int pace;//配速
+ int BMR_calories;//基础卡路里
+ int hrs;//心率
+ int duration;//持续时间
+ int MHR_zone;//心率区间
}cywee_activity_result_t;
+typedef struct
+{
+ int avg_step_freq;//平均步频
+ int avg_step_len;//平均步长
+ int avg_pace;//平均配速
+ int max_step_freq;//最大步频
+ int max_pace;//最大配速
+ int activity_zone;//活动程度区间 0低度 1中度 2高度
+ int ativity_zone_moderate_duration;//中度活动时间
+ int ativity_zone_high_duration;//高度活动时间
+ int MHR_zone;//心率区间
+ int distance_motion;//体感距离
+}cywee_activity_result_extre_info_t;
+
typedef struct
{
int output_number;
- int sedentary_status;
- int sleep_status;
- int nap_status;
- int stand_freq;
+ int status;//状态
+ int stand_freq;//站立次数
int month;
int day;
int hour;
int minute;
- int total_sleep_time;
- int total_nap_time;
- int total_mild_sleep_time;
- int total_deep_sleep_time;
- int total_wake_time;
- int total_rem_sleep_time;
}cywee_inactivity_result_t;
-
+typedef struct
+{
+ int total_time;//总共睡眠时间
+ int total_mild_sleep_time;//总共浅睡时间
+ int total_deep_sleep_time;//总共深睡时间
+ int total_wake_time;//总共清醒时间
+ int total_rem_sleep_time;//动眼
+}cywee_inactivity_accumulate_time_t;
#pragma pack()
typedef enum{
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_INACTIVITY_ACCUMULATE_TIME_UPDATE,
} cywee_msg_type_t;
extern void get_gsonsen_xyz(gsenson_t *t);
PRINT("cywee_msg_callback\r\n");
cywee_activity_result_t c_activity_result_t;
cywee_inactivity_result_t c_inactivity_result_t;
+ cywee_activity_result_extre_info_t c_activity_result_extre_info_t;
+ cywee_inactivity_accumulate_time_t c_inactivity_accumulate_time_t;
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],hrs[%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.hrs);
- 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],hrs[%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.hrs);
- CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t));
- break;
- case SPORT_ACTIVE_MODE_OUTDOOR_RUNNING:
- 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],hrs[%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.hrs);
- 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],hrs[%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.hrs);
- 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],hrs[%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.hrs);
- 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],hrs[%d]\n",
- c_activity_result_t.activity_mode, c_activity_result_t.calories, c_activity_result_t.hrs);
- CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t));
- break;
+ case SPORT_ACTIVE_MODE_NORMAL:
+ PRINT("normal mode activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d],hrs[%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.hrs);
+ 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],hrs[%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.hrs);
+ CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t));
+ break;
+ case SPORT_ACTIVE_MODE_OUTDOOR_RUNNING:
+ PRINT("CYWEE_MSG_TYPE_OUTDOOR_RUNNING_UPDATE\r\n");
+ memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t));
+ PRINT("outdoor running activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d],hrs[%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.hrs);
+ 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("indoor running activit_mode[%d], steps[%d], distance[%d], calories[%d], step frequency[%d], step length[%d], pace[%d],hrs[%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.hrs);
+ 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],hrs[%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.hrs);
+ 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]\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);
- CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t));
- break;
- default:
- 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("free training activit_mode[%d], calories[%d],MHR_zone[%d],hrs[%d]\n",
+ c_activity_result_t.activity_mode, c_activity_result_t.calories, c_activity_result_t.MHR_zone,c_activity_result_t.hrs);
+ CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t));
+ break;
+ default:
+ break;
}
- }
+ }
+ else if (msg_type == CYWEE_MSG_TYPE_ACTIVITY_EXTRA_INFO_UPDATE)
+ {
+ PRINT("CYWEE_MSG_TYPE_ACTIVITY_EXTRA_INFO_UPDATE\r\n");
+ memcpy(&c_activity_result_extre_info_t, msg_data, sizeof(cywee_activity_result_extre_info_t));
+ PRINT("avg_step_freq[%d],avg_step_len[%d],avg_pace[%d],max_step_freq[%d],max_pace[%d],activity_zone[%d],ativity_zone_moderate_duration[%d],ativity_zone_high_duration[%d],MHR_zone[%d],distance_motion[%d]\n",
+ c_activity_result_extre_info_t.avg_step_freq, c_activity_result_extre_info_t.avg_step_len,
+ c_activity_result_extre_info_t.avg_pace,c_activity_result_extre_info_t.max_step_freq,
+ c_activity_result_extre_info_t.max_pace,c_activity_result_extre_info_t.activity_zone,
+ c_activity_result_extre_info_t.ativity_zone_moderate_duration,
+ c_activity_result_extre_info_t.ativity_zone_high_duration,
+ c_activity_result_extre_info_t.MHR_zone,
+ c_activity_result_extre_info_t.distance_motion);
+ CustomEventPublish(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, &c_activity_result_extre_info_t, sizeof(cywee_activity_result_extre_info_t));
+
+ }
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.output_number)
{
- // 久坐
- case INACTIVITY_MODE_SEDENTARY_OUTPUT:
- memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
- PRINT("sedentary status[%d], stand freq[%d]\n",
- c_inactivity_result_t.sedentary_status,c_inactivity_result_t.stand_freq);
- CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
- break;
+ // 久坐
+ case INACTIVITY_MODE_SEDENTARY_OUTPUT:
+ memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
+ PRINT("sedentary status[%d], stand freq[%d], day[%d], hour[%d], min[%d]\n",
+ c_inactivity_result_t.status,c_inactivity_result_t.stand_freq,c_inactivity_result_t.day,c_inactivity_result_t.hour,c_inactivity_result_t.minute);
+ CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
+ break;
- // 睡眠
- case INACTIVITY_MODE_SLEEPING_OUTPUT:
- memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
- PRINT("sleep status[%d], month[%d], day[%d], hour[%d], min[%d]\n",
- 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_inactivity_result_t, sizeof(cywee_inactivity_result_t));
- break;
+ // 睡眠
+ case INACTIVITY_MODE_SLEEPING_OUTPUT:
+ memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
+ PRINT("sleep status[%d], month[%d], day[%d], hour[%d], min[%d]\n",
+ c_inactivity_result_t.status,c_inactivity_result_t.month, c_inactivity_result_t.day,
+ c_inactivity_result_t.hour, c_inactivity_result_t.minute);
+ CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
+ break;
+ // 小睡
+ case INACTIVITY_MODE_NAP_OUTPUT:
+ memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
+ PRINT("nap status[%d], month[%d], day[%d], hour[%d], min[%d]\n",
+ c_inactivity_result_t.status, c_inactivity_result_t.month,
+ c_inactivity_result_t.day, c_inactivity_result_t.hour, c_inactivity_result_t.minute);
+ CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
+ break;
+ }
+ }
+ else if (msg_type == CYWEE_MSG_TYPE_INACTIVITY_ACCUMULATE_TIME_UPDATE)
+ {
// 睡眠累计
- case INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT:
- memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
- PRINT("total sleep time[%d], total nap time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d]\n",
- 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);
- CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
- break;
-
- // 小睡
- case INACTIVITY_MODE_NAP_OUTPUT:
- memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
- PRINT("nap status[%d], month[%d], day[%d], hour[%d], min[%d]\n",
- 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);
- CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
- break;
+ memcpy(&c_inactivity_accumulate_time_t, msg_data, sizeof(cywee_inactivity_accumulate_time_t));
+ PRINT("total sleep time[%d], total mild sleep time[%d], total deep sleep time[%d], total wake time[%d], total rem sleep time[%d]\n",
+ c_inactivity_accumulate_time_t.total_time, c_inactivity_accumulate_time_t.total_mild_sleep_time,
+ c_inactivity_accumulate_time_t.total_deep_sleep_time, c_inactivity_accumulate_time_t.total_wake_time,
+ c_inactivity_accumulate_time_t.total_rem_sleep_time);
+ CustomEventPublish(TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE, &c_inactivity_accumulate_time_t, sizeof(cywee_inactivity_accumulate_time_t));
- // 小睡累计
- case INACTIVITY_MODE_NAP_ACCUMULATE_TIME_OUTPUT:
- memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t));
- PRINT("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_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);
- CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t));
- break;
- }
}
+
else
PRINT("Unknown sensor message type");
}
SettingControl_t scl;
-cywee_activity_result_t c_activity_result_t;
-cywee_inactivity_result_t c_inactivity_result_t;
static uint8_t cywee_installized = 0 ;
CustomSensorData csd;
//static int flag=32;
void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) {
cywee_msg_callback_t cywee_func;
+ cywee_activity_result_t c_activity_result_t;
+ cywee_inactivity_result_t c_inactivity_result_t;
+ cywee_inactivity_accumulate_time_t c_inactivity_accumulate_time_t;
+ cywee_activity_result_extre_info_t c_activity_result_extre_info_t;
+
switch (sensorEVT->sensorType) {
case IDX_ACCEL:
gxyz_t.x = sensorEVT->fData[0];
CWM_OS_dbgPrintf("IDX_ALGO_INACTIVITY_OUTPUT\n");
if((int)sensorEVT->fData[0] == 20)
{
- CWM_OS_dbgPrintf("inactivity_mode_number[%d], sedentary status[%d], stand freq[%d], day[%d], hour[%d], min[%d]\n",
- (int)sensorEVT->fData[15],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[8],
- (int)sensorEVT->fData[9],
- (int)sensorEVT->fData[10]);
+
memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
+
c_inactivity_result_t.output_number = (int)sensorEVT->fData[0];
- c_inactivity_result_t.output_number = (int)sensorEVT->fData[0];
- c_inactivity_result_t.sedentary_status = (int)sensorEVT->fData[2];
+
+ c_inactivity_result_t.status = (int)sensorEVT->fData[2];
c_inactivity_result_t.stand_freq = (int)sensorEVT->fData[3];
+ c_inactivity_result_t.day = (int)sensorEVT->fData[8];
+ c_inactivity_result_t.hour = (int)sensorEVT->fData[9];
+ c_inactivity_result_t.minute = (int)sensorEVT->fData[10];
- if(c_inactivity_result_t.sedentary_status == 1)
+ if(c_inactivity_result_t.status == 1)
{
sedentary_interval_count++;
if(sedentary_interval_count == sedentary_interval)
cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t));
}
}
- else if(c_inactivity_result_t.sedentary_status != 3)
+ else if(c_inactivity_result_t.status != 3)
{
sedentary_interval_count = 0;
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",
- (int)sensorEVT->fData[15],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[4],
- (int)sensorEVT->fData[5],
- (int)sensorEVT->fData[6]);
+
memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
+
c_inactivity_result_t.output_number = (int)sensorEVT->fData[0];
- c_inactivity_result_t.sleep_status = (int)sensorEVT->fData[2];
+ c_inactivity_result_t.status = (int)sensorEVT->fData[2];
c_inactivity_result_t.month = (int)sensorEVT->fData[3];
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_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",
- (int)sensorEVT->fData[15],
- (int)sensorEVT->fData[1],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[4],
- (int)sensorEVT->fData[5]);
- memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
- c_inactivity_result_t.output_number = (int)sensorEVT->fData[0];
- c_inactivity_result_t.total_sleep_time = (int)sensorEVT->fData[1];
- c_inactivity_result_t.total_mild_sleep_time = (int)sensorEVT->fData[2];
- 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_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t));
+
+ memset(&c_inactivity_accumulate_time_t,0,sizeof(cywee_inactivity_accumulate_time_t));
+
+ c_inactivity_accumulate_time_t.total_time = (int)sensorEVT->fData[1];
+ c_inactivity_accumulate_time_t.total_mild_sleep_time = (int)sensorEVT->fData[2];
+ c_inactivity_accumulate_time_t.total_deep_sleep_time = (int)sensorEVT->fData[3];
+ c_inactivity_accumulate_time_t.total_wake_time = (int)sensorEVT->fData[4];
+ c_inactivity_accumulate_time_t.total_rem_sleep_time = (int)sensorEVT->fData[5];
+
+ cywee_func(CYWEE_MSG_TYPE_INACTIVITY_ACCUMULATE_TIME_UPDATE,&c_inactivity_accumulate_time_t,sizeof(cywee_inactivity_accumulate_time_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",
- (int)sensorEVT->fData[15],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[4],
- (int)sensorEVT->fData[5],
- (int)sensorEVT->fData[6]);
+
memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
+
c_inactivity_result_t.output_number = (int)sensorEVT->fData[0];
- c_inactivity_result_t.nap_status = (int)sensorEVT->fData[2];
+ c_inactivity_result_t.status = (int)sensorEVT->fData[2];
c_inactivity_result_t.month = (int)sensorEVT->fData[3];
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_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",
- (int)sensorEVT->fData[15],
- (int)sensorEVT->fData[1],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[4],
- (int)sensorEVT->fData[5]);
- memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
- c_inactivity_result_t.output_number = (int)sensorEVT->fData[0];
- c_inactivity_result_t.total_nap_time = (int)sensorEVT->fData[1];
- c_inactivity_result_t.total_mild_sleep_time = (int)sensorEVT->fData[2];
- 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_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t));
+
+ memset(&c_inactivity_accumulate_time_t,0,sizeof(cywee_inactivity_accumulate_time_t));
+
+ c_inactivity_accumulate_time_t.total_time = (int)sensorEVT->fData[1];
+ c_inactivity_accumulate_time_t.total_mild_sleep_time = (int)sensorEVT->fData[2];
+ c_inactivity_accumulate_time_t.total_deep_sleep_time = (int)sensorEVT->fData[3];
+ c_inactivity_accumulate_time_t.total_wake_time = (int)sensorEVT->fData[4];
+ c_inactivity_accumulate_time_t.total_rem_sleep_time = (int)sensorEVT->fData[5];
+
+ cywee_func(CYWEE_MSG_TYPE_INACTIVITY_ACCUMULATE_TIME_UPDATE,&c_inactivity_accumulate_time_t,sizeof(cywee_inactivity_accumulate_time_t));
}
break;
case IDX_ALGO_ACTIVITY_OUTPUT:
cywee_func = cywee_get_send_msg_callback_func();
if((int)sensorEVT->fData[0] == 100)
{
- CWM_OS_dbgPrintf("average step frequency[%d], average step length[%d], average pace[%d], max step frequency[%d], max pace[%d]\n",
- (int)sensorEVT->fData[1],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[4],
- (int)sensorEVT->fData[5]);
+ memset(&c_activity_result_extre_info_t,0,sizeof(cywee_activity_result_extre_info_t));
- 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];
- c_activity_result_t.hrs = hrs;
- cywee_func(CYWEE_MSG_TYPE_ACTIVITY_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t));
+ c_activity_result_extre_info_t.avg_step_freq = (int)sensorEVT->fData[1];
+ c_activity_result_extre_info_t.avg_step_len = (int)sensorEVT->fData[2];
+ c_activity_result_extre_info_t.avg_pace = (int)sensorEVT->fData[3];
+ c_activity_result_extre_info_t.max_step_freq = (int)sensorEVT->fData[4];
+ c_activity_result_extre_info_t.max_pace = (int)sensorEVT->fData[5];
+ c_activity_result_extre_info_t.activity_zone = (int)sensorEVT->fData[10];
+ c_activity_result_extre_info_t.ativity_zone_moderate_duration = (int)sensorEVT->fData[11];
+ c_activity_result_extre_info_t.ativity_zone_high_duration = (int)sensorEVT->fData[12];
+ c_activity_result_extre_info_t.MHR_zone = (int)sensorEVT->fData[13];
+ c_activity_result_extre_info_t.distance_motion = (int)sensorEVT->fData[14];
+
+ cywee_func(CYWEE_MSG_TYPE_ACTIVITY_EXTRA_INFO_UPDATE,&c_activity_result_extre_info_t,sizeof(cywee_activity_result_extre_info_t));
}else if((int)sensorEVT->fData[0] == 5001)
{
- CWM_OS_dbgPrintf("Free_Training : calories[%d], duration[%d], MHR_zone[%d]\n",
- (int)sensorEVT->fData[1],
- (int)sensorEVT->fData[5],
- (int)sensorEVT->fData[6]);
-
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.calories = (int)sensorEVT->fData[1];
c_activity_result_t.duration = (int)sensorEVT->fData[5];
- c_activity_result_t.MHR = (int)sensorEVT->fData[6];
+ c_activity_result_t.MHR_zone = (int)sensorEVT->fData[6];
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)
CustomEventPublish(TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,&ar_alert_type,sizeof(int));
}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",
- (int)sensorEVT->fData[0],
- (int)sensorEVT->fData[1],
- (int)sensorEVT->fData[2],
- (int)sensorEVT->fData[3],
- (int)sensorEVT->fData[5],
- (int)sensorEVT->fData[6],
- (int)sensorEVT->fData[7],
- (int)sensorEVT->fData[8],
- (int)sensorEVT->fData[14]);
stepcount = (int)sensorEVT->fData[1] + history_step;
memset(&c_activity_result_t,0,sizeof(cywee_activity_result_t));
c_activity_result_t.activity_mode = (int)sensorEVT->fData[0];
{
#if 1
restore_time();
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIME_SYNC,NULL);
return ERRCODE_SUCC;
#else
calendar_t date;