#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 DRINKREMIND_TIME_RANGE ((((curTime.tm_hour > drinkreminder_start_hour && curTime.tm_hour < 24) || (curTime.tm_hour == drinkreminder_start_hour && curTime.tm_min >= drinkreminder_start_min)) && \\r
- ((curTime.tm_hour < drinkreminder_end_hour && curTime.tm_hour >= 0) || (curTime.tm_hour == drinkreminder_end_hour && curTime.tm_min < drinkreminder_end_min))) || \\r
- ((curTime.tm_hour >= 0 && curTime.tm_hour < drinkreminder_end_hour) || (curTime.tm_hour == drinkreminder_end_hour && curTime.tm_min < drinkreminder_end_min)) && \\r
- ((curTime.tm_hour > drinkreminder_start_hour - 24 || (curTime.tm_hour == drinkreminder_start_hour - 24 && curTime.tm_min >= drinkreminder_start_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
}\r
}\r
\r
+ static bool is_drinkremind_time_range(struct tm &curTime)\r
+ {\r
+ int drinkreminder_start_time_min = drinkreminder_start_hour * 60 + drinkreminder_start_min; /* 开始时间的分钟数 */\r
+ int drinkreminder_end_time_min = drinkreminder_end_hour * 60 + drinkreminder_end_min; /* 结束时间的分钟数 */\r
+ int cur_time_min = curTime.tm_hour * 60 + curTime.tm_min; /* 当前时间的分钟数 */\r
+\r
+ // 处理非跨天的情况\r
+ if (drinkreminder_end_time_min > drinkreminder_start_time_min)\r
+ {\r
+ if (cur_time_min >= drinkreminder_start_time_min && cur_time_min <= drinkreminder_end_time_min)\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+ else // 处理跨天的情况\r
+ {\r
+ if (cur_time_min >= drinkreminder_start_time_min || cur_time_min <= drinkreminder_end_time_min)\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ return false;\r
+ }\r
+\r
void clean_sleep_flag(void)\r
{\r
uapi_dev_runtime_set_sleep_status(0);\r
else if (drinkreminder_switch == 2)\r
{\r
// 判断当前时间是否在提醒时间段内\r
- if (DRINKREMIND_TIME_RANGE)\r
+ if (is_drinkremind_time_range(curTime))\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " curTime.tm_sec = %d", curTime.tm_sec);\r
double interval_time = (drinkreminder_freq == 0) ? 0.5 : drinkreminder_freq; // 频率设置\r
}\r
}\r
}\r
- else if (!DRINKREMIND_TIME_RANGE && uapi_dev_runtime_get_drinkremind_status() == 1)\r
+ else if (!is_drinkremind_time_range(curTime) && uapi_dev_runtime_get_drinkremind_status() == 1)\r
{\r
uapi_dev_runtime_set_drinkremind_status(0);\r
}\r