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*/
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};
{
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;
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;
}
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;
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);