static int sleep_notify_time_min = 0;\r
static int sleep_notify_time_hour = 0;\r
\r
- #define SEDENTARY_TIME_RANGE (((curTime.tm_hour > sedentary_start_hour) || (curTime.tm_hour == sedentary_start_hour && curTime.tm_min >= sedentary_start_min)) && \\r
- ((curTime.tm_hour < sedentary_stop_hour) || (curTime.tm_hour == sedentary_stop_hour && curTime.tm_min < sedentary_stop_min)))\r
- \r
- #define WAKE_TIME_RANGE (((wake_time_hour < sleep_time_hour) && \\r
- ((curTime.tm_hour > wake_time_hour) || \\r
- (curTime.tm_hour == wake_time_hour && curTime.tm_min >= wake_time_min)) && \\r
- ((curTime.tm_hour < sleep_time_hour) || \\r
- (curTime.tm_hour == sleep_time_hour && curTime.tm_min < sleep_time_min))) || \\r
- ((wake_time_hour >= sleep_time_hour) && \\r
- (((curTime.tm_hour > wake_time_hour) || \\r
- (curTime.tm_hour == wake_time_hour && curTime.tm_min >= wake_time_min)) || \\r
- ((curTime.tm_hour < sleep_time_hour) || \\r
- (curTime.tm_hour == sleep_time_hour && curTime.tm_min < sleep_time_min))) || \\r
- ((curTime.tm_hour > wake_time_hour) && (curTime.tm_hour < sleep_time_hour))))\r
+#define SEDENTARY_TIME_RANGE (((curTime.tm_hour > sedentary_start_hour) || (curTime.tm_hour == sedentary_start_hour && curTime.tm_min >= sedentary_start_min)) && \\r
+ ((curTime.tm_hour < sedentary_stop_hour) || (curTime.tm_hour == sedentary_stop_hour && curTime.tm_min < sedentary_stop_min)))\r
+\r
+#define WAKE_TIME_RANGE (((wake_time_hour < sleep_time_hour) && \\r
+ ((curTime.tm_hour > wake_time_hour) || \\r
+ (curTime.tm_hour == wake_time_hour && curTime.tm_min >= wake_time_min)) && \\r
+ ((curTime.tm_hour < sleep_time_hour) || \\r
+ (curTime.tm_hour == sleep_time_hour && curTime.tm_min < sleep_time_min))) || \\r
+ ((wake_time_hour >= sleep_time_hour) && \\r
+ (((curTime.tm_hour > wake_time_hour) || \\r
+ (curTime.tm_hour == wake_time_hour && curTime.tm_min >= wake_time_min)) || \\r
+ ((curTime.tm_hour < sleep_time_hour) || \\r
+ (curTime.tm_hour == sleep_time_hour && curTime.tm_min < sleep_time_min))) || \\r
+ ((curTime.tm_hour > wake_time_hour) && (curTime.tm_hour < sleep_time_hour))))\r
\r
// 设置目标睡眠时间\r
void set_sleep_and_wake_time(void)\r
sleep_notify_time_min = (goal_min >= SLEPPNOTIFY) ? goal_min - SLEPPNOTIFY : ((goal_min + 60) - SLEPPNOTIFY); // 避免分钟数为负\r
sleep_notify_time_hour = goal_hour;\r
if (goal_min < SLEPPNOTIFY)\r
- { // 如果需要借位\r
+ { // 如果需要借位\r
sleep_notify_time_hour -= 1; // 小时减1\r
}\r
// 确保小时数正确\r
// 提醒一次\r
if ((curTime.tm_hour == sleep_notify_time_hour) && (curTime.tm_min == sleep_notify_time_min) && (curTime.tm_sec == 0))\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "It's bedtime in 20 minutes");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "It's bedtime in 20 minutes");\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "20分钟后要睡觉啦!");\r
AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4);\r
// 设置状态为睡眠提醒\r
uapi_dev_runtime_set_nap_status(1);\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "起床啦!");\r
- if(curTime.tm_hour == wake_time_hour && curTime.tm_min == wake_time_min && curTime.tm_sec == 0)\r
+ if (curTime.tm_hour == wake_time_hour && curTime.tm_min == wake_time_min && curTime.tm_sec == 0)\r
{\r
// 早安提醒\r
AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4);\r
+ // 设置状态为小睡\r
+ OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::WAKE);\r
}\r
- if(OHOS::ConfigModel::GetInstance()->GetDnotdisturb())\r
+ if (OHOS::ConfigModel::GetInstance()->GetDnotdisturb())\r
{\r
- OHOS::ConfigModel::GetInstance()->SetDnotdisturb(false);//关闭勿扰\r
+ OHOS::ConfigModel::GetInstance()->SetDnotdisturb(false); // 关闭勿扰\r
}\r
- // 设置状态为小睡\r
- OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::WAKE);\r
LOS_Msleep(1000);\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL);\r
}\r
- //进入睡眠模式\r
+ // 进入睡眠模式\r
else if ((!WAKE_TIME_RANGE) && (uapi_dev_runtime_get_sleep_status() == 0))\r
{\r
uapi_dev_runtime_set_sleep_status(1);\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL);\r
// 睡眠弹窗\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "要睡觉啦!");\r
- AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4);\r
- // 设置状态为睡眠\r
- OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::SLEPP);\r
- OHOS::SleepModel::GetInstance().DeleteSleepData(); // 清空前一天睡眠数据\r
+ if (curTime.tm_hour == sleep_time_hour && curTime.tm_min == sleep_time_min && curTime.tm_sec == 0)\r
+ {\r
+ AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4);\r
+ // 设置状态为睡眠\r
+ OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::SLEPP);\r
+ OHOS::SleepModel::GetInstance().DeleteSleepData(); // 清空前一天睡眠数据\r
+ }\r
+ if (!OHOS::ConfigModel::GetInstance()->GetDnotdisturb())\r
+ {\r
+ OHOS::ConfigModel::GetInstance()->SetDnotdisturb(true); // 开启勿扰\r
+ }\r
LOS_Msleep(1000);\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE, NULL);\r
}\r