From 0230b9e57729fdfc1f5d1f448eff574bda3889bb Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Fri, 12 Jul 2024 18:57:10 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E5=85=A5=E7=9D=A1=E6=97=B6?= =?utf8?q?=E9=97=B4=E6=88=B3=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../msg_center/src/msg_center_customer.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp index 0e39d77af..9d5dbf9af 100644 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp @@ -432,6 +432,7 @@ static SLEEP_T sleep_data = {0}; static NAP_T nap_data = {0}; static int state_num = 0; static uint32_t day_timestamp = 0; +static uint8_t fall_asleep_state_num = 0; #endif /*NextDay*/ @@ -1033,7 +1034,7 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req) time(&rawtime); timeinfo = localtime(&rawtime); uapi_get_timestampe_ss(×tamp); - day_timestamp = timestamp - (timeinfo->tm_mday * 24 * 60 * 60 + timeinfo->tm_hour * 60 * 60 + timeinfo->tm_min * 60 + timeinfo->tm_sec); + day_timestamp = timestamp - (timeinfo->tm_hour * 60 * 60 + timeinfo->tm_min * 60 + timeinfo->tm_sec); } #endif OHOS::SLEEP_STATE_T state_data = {0}; @@ -1082,15 +1083,16 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req) { sleep_data.sleep_status[state_num].timestamp = day_timestamp + cywee_Inactivity_Info->day * 24 * 60 * 60 + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; sleep_data.sleep_status[state_num].stat = cywee_Inactivity_Info->status; + fall_asleep_state_num = state_num; state_num ++; } if(cywee_Inactivity_Info->status == 0) //0进入睡眠 1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡 { - sleep_data.fall_asleep_timestamp = day_timestamp + cywee_Inactivity_Info->day * 24 * 60 * 60 + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; + sleep_data.fall_asleep_timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; } else if(cywee_Inactivity_Info->status == 4) { - sleep_data.wake_up_timestamp = day_timestamp + cywee_Inactivity_Info->day * 24 * 60 * 60 + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; + sleep_data.wake_up_timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; } #endif break; @@ -1100,13 +1102,13 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req) if(cywee_Inactivity_Info->status == 0) //0进入睡眠 1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡 { #ifdef FD230 - nap_data.fall_asleep_timestamp = day_timestamp + cywee_Inactivity_Info->day * 24 * 60 * 60 + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; + nap_data.fall_asleep_timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; #endif } else if(cywee_Inactivity_Info->status == 14) { #ifdef FD230 - nap_data.wake_up_timestamp = day_timestamp + cywee_Inactivity_Info->day * 24 * 60 * 60 + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; + nap_data.wake_up_timestamp = day_timestamp + cywee_Inactivity_Info->hour * 60 * 60 + cywee_Inactivity_Info->minute * 60; #endif } break; @@ -1147,6 +1149,12 @@ void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req } else if(cywee_Inactivity_Accumulate_Time_Info->output_number == INACTIVITY_MODE_SLEEPING_ACCUMULATE_TIME_OUTPUT) { + if(sleep_data.fall_asleep_timestamp > sleep_data.wake_up_timestamp) + { + sleep_data.fall_asleep_timestamp -= 24 * 60 * 60; + sleep_data.sleep_status[fall_asleep_state_num].timestamp = sleep_data.fall_asleep_timestamp; + } + sleep_data.total_time = cywee_Inactivity_Accumulate_Time_Info->total_time; sleep_data.total_deep_sleep_time = cywee_Inactivity_Accumulate_Time_Info->total_deep_sleep_time; sleep_data.total_mild_sleep_time = cywee_Inactivity_Accumulate_Time_Info->total_mild_sleep_time; @@ -1157,6 +1165,7 @@ void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req set_sleep_data(&sleep_data); memset(&sleep_data,0,sizeof(SLEEP_T)); state_num = 0; + fall_asleep_state_num = 0; } #endif free(cywee_Inactivity_Accumulate_Time_Info); -- 2.17.1