/*获取运动类型*/
ExerciseClass GetSportType();
/*解析传输过来的数据*/
- void AnalysisData(cywee_result_t *cyweeInfo);
+ void AnalysisData(cywee_activity_result_t *cyweeInfo);
/*获取训练数据*/
SportData *GetSportdata();
{
return sportstate_;
}
- void TraingModel::AnalysisData(cywee_result_t *cyweeInfo)
+ void TraingModel::AnalysisData(cywee_activity_result_t *cyweeInfo)
{
// 不同的运动类型解析不同的数据
ExerciseClass type = GetSportType();
{
return;
}
- cywee_result_t *cyweeInfo = nullptr; // 在switch语句外部定义变量
+ cywee_activity_result_t *cyweeInfo = nullptr; // 在switch语句外部定义变量
int rets;
switch (request->msgId)
{
case TOPIC_EVENT_TREADMILL_UPDATE:
- cyweeInfo = new cywee_result_t(); // 在case块内分配内存
- rets = memcpy_s(cyweeInfo, sizeof(cywee_result_t), (cywee_result_t *)request->data, request->len);
+ 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);
+ 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_OUTDOOR_RUNNING_UPDATE:
- cyweeInfo = new cywee_result_t(); // 在case块内分配内存
- rets = memcpy_s(cyweeInfo, sizeof(cywee_result_t), (cywee_result_t *)request->data, request->len);
+ 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);
+ 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_INDOOR_RUNNING_UPDATE:
- cyweeInfo = new cywee_result_t(); // 在case块内分配内存
- rets = memcpy_s(cyweeInfo, sizeof(cywee_result_t), (cywee_result_t *)request->data, request->len);
+ 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);
+ 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_result_t(); // 在case块内分配内存
- rets = memcpy_s(cyweeInfo, sizeof(cywee_result_t), (cywee_result_t *)request->data, request->len);
+ 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);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_activity_result_t fail! ret = %d", rets);
return;
}
TraingModel::GetInstance()->AnalysisData(cyweeInfo);
int max_pace;
int ar_alert_type;
int MHR_zone;
-}cywee_result_t;
+}cywee_activity_result_t;
+
+typedef struct
+{
+ int inactivity_mode;
+ int sedentary_status;
+ int sleep_status;
+ int nap_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;
+
+
+
#pragma pack()
typedef enum{
CYWEE_MSG_TYPE_NORMAL_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_t;
void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen)
{
PRINT("cywee_msg_callback\r\n");
- cywee_result_t c_result_t;
- memcpy(&c_result_t, msg_data, sizeof(cywee_result_t));
+ cywee_activity_result_t c_activity_result_t;
+ cywee_inactivity_result_t c_inactivity_result_t;
switch(msg_type)
{
//一般模式
case CYWEE_MSG_TYPE_NORMAL_UPDATE:
- PRINT("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_result_t.activity_mode,c_result_t.steps,c_result_t.distance,c_result_t.calories,c_result_t.step_frequency,
- c_result_t.step_length,c_result_t.pace,c_result_t.BMR_calories,c_result_t.is_pause,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_NORMAL_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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");
+ 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_result_t.activity_mode,c_result_t.steps,c_result_t.distance,c_result_t.calories,c_result_t.step_frequency,
- c_result_t.step_length,c_result_t.pace,c_result_t.BMR_calories,c_result_t.is_pause,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_TREADMILL_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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");
+ 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_result_t.activity_mode,c_result_t.steps,c_result_t.distance,c_result_t.calories,c_result_t.step_frequency,
- c_result_t.step_length,c_result_t.pace,c_result_t.BMR_calories,c_result_t.is_pause,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_OUTDOOR_RUNNING_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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");
+ 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_result_t.activity_mode,c_result_t.steps,c_result_t.distance,c_result_t.calories,c_result_t.step_frequency,
- c_result_t.step_length,c_result_t.pace,c_result_t.BMR_calories,c_result_t.is_pause,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_INDOOR_RUNNING_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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");
+ 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_result_t.activity_mode,c_result_t.steps,c_result_t.distance,c_result_t.calories,c_result_t.step_frequency,
- c_result_t.step_length,c_result_t.pace,c_result_t.BMR_calories,c_result_t.is_pause,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_FITNESS_PEDOMETERR_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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");
+ 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_result_t.activity_mode,c_result_t.calories,c_result_t.duration,c_result_t.MHR_zone,sizeof(c_result_t));
- CustomEventPublish(TOPIC_EVENT_FREE_TRAINING_UPDATE,&c_result_t,sizeof(c_result_t));
+ 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");
+ 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_result_t.activity_mode,c_result_t.ar_alert_type,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_AR_ALERT_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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");
- PRINT("average step frequency[%d], average step length[%d], average pace[%d], max step frequency[%d], max pace[%d]\n",
- c_result_t.avg_step_freq,c_result_t.avg_step_len,c_result_t.avg_pace,c_result_t.max_step_freq,c_result_t.max_pace,sizeof(cywee_result_t));
- CustomEventPublish(TOPIC_EVENT_EXTRA_INFO_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ 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_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;
+
+ //小睡累计
+ 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:
+
PRINT("Unknown sensor message type");
break;
}
#include "osal_mutex.h"
#include "ppg_service.h"
#include "custom_utils.h"
+#include "sys/time.h"
+#include "time.h"
#define AP_ENABLE_DML_SDO_LISTEN
SettingControl_t scl;
-cywee_result_t c_result_t;
-
+cywee_activity_result_t c_activity_result_t;
+cywee_inactivity_result_t c_inactivity_result_t;
static int cywee_installized = 0 ;
static int free_training_installized = 0 ;
CustomSensorData csd;
-// void time_sync(void)
-// {
-// char databuf[64] = {0};
-// int year,month,day,hour,min,sec;
-// uapi_get_yyyymmddhhmmss_Date(databuf);
-// PRINT("databuf : %s \r\n",databuf);
-// sscanf(databuf, "%4d%2d%2d%2d%2d%2d", &year, &month, &day, &hour, &min, &sec);
-// memset(&scl, 0, sizeof(scl));
-// scl.iData[0] = 1;
-// scl.iData[1] = year;
-// scl.iData[2] = month;
-// scl.iData[3] = day;
-// scl.iData[4] = hour;
-// scl.iData[5] = min;
-// scl.iData[6] = sec;
-// CWM_SettingControl(SCL_DATE_TIME, &scl);
-// }
+void time_sync(void)
+{
+ time_t rawtime;
+ struct tm* timeinfo;
+ time(&rawtime);
+ timeinfo = localtime(&rawtime);
+ PRINT("year[%d], mon[%d], day[%d], hour[%d], min[%d], msc[%d] \r\n",
+ timeinfo->tm_year,timeinfo->tm_mon,timeinfo->tm_mday,
+ timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
+
+ memset(&scl, 0, sizeof(scl));
+ scl.iData[0] = 1;
+ scl.iData[1] = timeinfo->tm_year;
+ scl.iData[2] = timeinfo->tm_mon;
+ scl.iData[3] = timeinfo->tm_mday;
+ scl.iData[4] = timeinfo->tm_hour;
+ scl.iData[5] = timeinfo->tm_min;
+ scl.iData[6] = timeinfo->tm_sec;
+ CWM_SettingControl(SCL_DATE_TIME, &scl);
+}
void cywee_hrs_check_timer_callback(void)
{
switch (mode)
{
+ //無作用
case INACTIVITY_MODE_NOTHING:
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_SET_INACTIVITY_MODE, &scl);
break;
+ //久坐和有效站立
case INACTIVITY_MODE_SEDENTARY:
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_SET_INACTIVITY_MODE, &scl);
break;
+ //睡眠
case INACTIVITY_MODE_SLEEPING:
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_SET_INACTIVITY_MODE, &scl);
break;
+ //久坐、有效站立和小睡
case INACTIVITY_MODE_SEDENTARY_AND_NAP:
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_SettingControl(SCL_SET_INACTIVITY_MODE, &scl);
break;
+ //小睡
case INACTIVITY_MODE_NAP:
memset(&scl, 0, sizeof(scl));
scl.iData[0] = 1;
CWM_OS_dbgPrintf("IDX_ALGO_SHAKE\n");
break;
case IDX_ALGO_INACTIVITY_OUTPUT:
+ cywee_func = cywee_get_send_msg_callback_func();
CWM_OS_dbgPrintf("IDX_ALGO_INACTIVITY_OUTPUT\n");
- if((int)sensorEVT->fData[0] == 21)
+ if((int)sensorEVT->fData[0] == 20)
{
- CWM_OS_dbgPrintf("sleep status[%d], month[%d], day[%d], hour[%d], min[%d], mintue[%d], inactivity_mode_number[%d]\n",
+ CWM_OS_dbgPrintf("inactivity_mode_number[%d], sedentary status[%d], stand freq[%d]\n",
+ (int)sensorEVT->fData[15],
+ (int)sensorEVT->fData[2],
+ (int)sensorEVT->fData[3]);
+ memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
+ 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));
+
+ }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],
- (int)sensorEVT->fData[8],
- (int)sensorEVT->fData[9],
- (int)sensorEVT->fData[10],
- (int)sensorEVT->fData[15]);
- }
+ (int)sensorEVT->fData[6]);
+ memset(&c_inactivity_result_t,0,sizeof(cywee_inactivity_result_t));
+ c_inactivity_result_t.inactivity_mode = (int)sensorEVT->fData[15];
+ c_inactivity_result_t.sleep_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_SLEEPING_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.inactivity_mode = (int)sensorEVT->fData[15];
+ 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_SLEEPING_ACCUMULATE_TIME_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",
+ (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.inactivity_mode = (int)sensorEVT->fData[15];
+ c_inactivity_result_t.nap_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_NAP_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.inactivity_mode = (int)sensorEVT->fData[15];
+ 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_NAP_ACCUMULATE_TIME_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_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[4],
(int)sensorEVT->fData[5]);
- memset(&c_result_t,0,sizeof(cywee_result_t));
- c_result_t.avg_step_freq = (int)sensorEVT->fData[1];
- c_result_t.avg_step_len = (int)sensorEVT->fData[2];
- c_result_t.avg_pace = (int)sensorEVT->fData[3];
- c_result_t.max_step_freq = (int)sensorEVT->fData[4];
- c_result_t.max_pace = (int)sensorEVT->fData[5];
- cywee_func = cywee_get_send_msg_callback_func();
- cywee_func(CYWEE_MSG_TYPE_EXTRA_INFO_UPDATE,&c_result_t,sizeof(cywee_result_t));
+ memset(&c_activity_result_t,0,sizeof(cywee_activity_result_t));
+ 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));
}else if((int)sensorEVT->fData[0] == 5001)
{
(int)sensorEVT->fData[5],
(int)sensorEVT->fData[6]);
- memset(&c_result_t,0,sizeof(cywee_result_t));
- c_result_t.activity_mode = (int)sensorEVT->fData[0];
- c_result_t.calories = (int)sensorEVT->fData[1];
- c_result_t.duration = (int)sensorEVT->fData[5];
- c_result_t.MHR_zone = (int)sensorEVT->fData[6];
- cywee_func = cywee_get_send_msg_callback_func();
- cywee_func(CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE,&c_result_t,sizeof(cywee_result_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.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));
}else if((int)sensorEVT->fData[0] == 102)
{
CWM_OS_dbgPrintf("ar alert type : %d\n",(int)sensorEVT->fData[1]);
- memset(&c_result_t,0,sizeof(cywee_result_t));
- c_result_t.activity_mode = (int)sensorEVT->fData[0];
- c_result_t.ar_alert_type = (int)sensorEVT->fData[1];
- cywee_func = cywee_get_send_msg_callback_func();
- cywee_func(CYWEE_MSG_TYPE_AR_ALERT_UPDATE,&c_result_t,sizeof(cywee_result_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.ar_alert_type = (int)sensorEVT->fData[1];
+ cywee_func(CYWEE_MSG_TYPE_AR_ALERT_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",
(int)sensorEVT->fData[8],
(int)sensorEVT->fData[14]);
int stepcount = (int)sensorEVT->fData[1];
- memset(&c_result_t,0,sizeof(cywee_result_t));
- c_result_t.activity_mode = (int)sensorEVT->fData[0];
- c_result_t.steps = (int)sensorEVT->fData[1];
- c_result_t.distance = (int)sensorEVT->fData[2];
- c_result_t.calories = (int)sensorEVT->fData[3];
- c_result_t.step_frequency = (int)sensorEVT->fData[5];
- c_result_t.step_length = (int)sensorEVT->fData[6];
- c_result_t.pace = (int)sensorEVT->fData[7];
- c_result_t.BMR_calories = (int)sensorEVT->fData[8];
- c_result_t.is_pause = (int)sensorEVT->fData[14];
- cywee_func = cywee_get_send_msg_callback_func();
+ 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.steps = (int)sensorEVT->fData[1];
+ c_activity_result_t.distance = (int)sensorEVT->fData[2];
+ c_activity_result_t.calories = (int)sensorEVT->fData[3];
+ c_activity_result_t.step_frequency = (int)sensorEVT->fData[5];
+ c_activity_result_t.step_length = (int)sensorEVT->fData[6];
+ 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_result_t,sizeof(cywee_result_t));
+ 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_result_t,sizeof(cywee_result_t));
+ 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_result_t,sizeof(cywee_result_t));
+ 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_result_t,sizeof(cywee_result_t));
+ 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_result_t,sizeof(cywee_result_t));
+ cywee_func(CYWEE_MSG_TYPE_FITNESS_PEDOMETERR_UPDATE,&c_activity_result_t,sizeof(cywee_activity_result_t));
break;
default:
int cywee_main_dml(void)
{
- if (cywee_installized==0)
+ if (cywee_installized == 1)
{
CWM_OS_dbgPrintf("cywee_installized skip install\n");
return 0;