From e5059c320cadf02e0e83545ad75202a7c448372a Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Tue, 20 Aug 2024 15:54:18 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E7=9D=A1=E7=9C=A0=E7=9B=91?= =?utf8?q?=E6=B5=8B=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=9D=A1=E7=9C=A0=E7=9B=91?= =?utf8?q?=E6=B5=8B=E6=A8=A1=E5=BC=8F=E7=8A=B6=E6=80=81=E4=BB=A5=E5=8F=8A?= =?utf8?q?=E6=AD=A3=E5=9C=A8=E7=9D=A1=E7=9C=A0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../src/AlarmClockTimerConfig.cpp | 28 ++++++++++--------- .../msg_center/src/msg_center_customer.cpp | 2 +- .../drivers/peripheral/cywee/src/main_dml.c | 11 ++++++++ .../drivers/peripheral/utils/custom_runtime.c | 24 ++++++++++++++-- .../drivers/peripheral/utils/custom_runtime.h | 4 +++ 5 files changed, 53 insertions(+), 16 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp index 5a9c34785..cf51e5392 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp @@ -172,8 +172,8 @@ extern "C" void clean_sleep_flag(void) { - uapi_dev_runtime_set_sleep_status(0); - uapi_dev_runtime_set_nap_status(0); + uapi_dev_runtime_set_sleep_monitoring_status(0); + uapi_dev_runtime_set_nap_monitoring_status(0); } void clean_sedentary_flag(void) @@ -377,8 +377,8 @@ extern "C" AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4); } } - // 退出睡眠模式 - if (WAKE_TIME_RANGE && (uapi_dev_runtime_get_nap_status() == 0)) + // 退出睡眠检测模式并进入小睡检测模式 + if (WAKE_TIME_RANGE && (uapi_dev_runtime_get_nap_monitoring_status() == 0)) { // uapi_dev_runtime_set_sleep_status(0); // do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL); @@ -395,21 +395,23 @@ extern "C" OHOS::SleepModel::GetInstance().ExitSleepModeAction(); + //判断是否还在睡眠 if (uapi_dev_runtime_get_sleep_status() == 0) { // 设置状态为小睡 - uapi_dev_runtime_set_nap_status(1); + uapi_dev_runtime_set_nap_monitoring_status(1); + uapi_dev_runtime_set_sleep_monitoring_status(0); OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据 SendMsgToUIService(UI_UPDATE_SLEEP_DATA, 0, nullptr, 0); - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL);//算法底层切换小睡监测模式 } } - // 进入睡眠模式 - else if ((!WAKE_TIME_RANGE) && (uapi_dev_runtime_get_sleep_status() == 0)) + // 进入睡眠检测模式并退出小睡检测模式 + else if ((!WAKE_TIME_RANGE) && (uapi_dev_runtime_get_sleep_monitoring_status() == 0)) { - uapi_dev_runtime_set_sleep_status(1); - uapi_dev_runtime_set_nap_status(0); - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL); + uapi_dev_runtime_set_sleep_monitoring_status(1); + uapi_dev_runtime_set_nap_monitoring_status(0); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL);//强制获取小睡数据,结束小睡 // 睡眠弹窗 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "要睡觉啦!"); // 设置状态为睡眠 @@ -423,8 +425,8 @@ extern "C" OHOS::SleepModel::GetInstance().EnterSleepModeAction(); - LOS_Msleep(1000); - do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE, NULL); + //LOS_Msleep(1000); + do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE, NULL);//算法底层切换睡眠监测模式 } } // 久坐提醒 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 9a4c9aa86..fef96c286 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 @@ -1290,7 +1290,7 @@ void MsgCenterNotifyInactivityAccumulateTimeProc(const Topic topic, Request* req #endif free(cywee_Inactivity_Accumulate_Time_Info); cywee_Inactivity_Accumulate_Time_Info = NULL; - uapi_dev_runtime_set_sleep_status(0); + //uapi_dev_runtime_set_sleep_status(0); } //APP运动相关 diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index 7687a6689..6059fc2d2 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -819,6 +819,12 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.hour = (int)sensorEVT->fData[5]; c_inactivity_result_t.minute = (int)sensorEVT->fData[6]; + //0进入睡眠 1潜睡 2深睡 3清醒 4结束睡眠 6入睡 7出睡最后一笔输出 8未出睡最后一笔输出 12快速动眼 13取消入睡 + if(c_inactivity_result_t.status == 6) + uapi_dev_runtime_set_sleep_status(1); + else if(c_inactivity_result_t.status == 4 || c_inactivity_result_t.status == 13) + uapi_dev_runtime_set_sleep_status(0); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); }else if((int)sensorEVT->fData[0] == 31){ @@ -845,6 +851,11 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { c_inactivity_result_t.hour = (int)sensorEVT->fData[5]; c_inactivity_result_t.minute = (int)sensorEVT->fData[6]; + if(c_inactivity_result_t.status == 0) + uapi_dev_runtime_set_sleep_status(1); + else if(c_inactivity_result_t.status == 14) + uapi_dev_runtime_set_sleep_status(0); + cywee_func(CYWEE_MSG_TYPE_INACTIVITY_UPDATE,&c_inactivity_result_t,sizeof(cywee_inactivity_result_t)); }else if((int)sensorEVT->fData[0] == 32){ diff --git a/code/sdk/drivers/peripheral/utils/custom_runtime.c b/code/sdk/drivers/peripheral/utils/custom_runtime.c index b0aa8b88b..141cd42ed 100644 --- a/code/sdk/drivers/peripheral/utils/custom_runtime.c +++ b/code/sdk/drivers/peripheral/utils/custom_runtime.c @@ -69,8 +69,10 @@ typedef struct cat1_runtime_status_t cat1_runtime; char current_dial_name[32]; uint8_t time_hour_show_model; - uint8_t sleep_status; - uint8_t nap_status; + uint8_t sleep_monitoring_status;//睡眠监测 + uint8_t sleep_status;//睡眠状态 + uint8_t nap_status;//小睡状态 + uint8_t nap_monitoring_status;//小睡监测 uint8_t sedentary_status; uint8_t drinkremind_status; uint8_t train_status;//训练状态 @@ -288,6 +290,15 @@ uint8_t uapi_dev_runtime_get_vibmod(void) return g_runtime.vibmod; } +void uapi_dev_runtime_set_sleep_monitoring_status(uint8_t status) +{ + g_runtime.sleep_monitoring_status=status; +} +uint8_t uapi_dev_runtime_get_sleep_monitoring_status(void) +{ + return g_runtime.sleep_monitoring_status; +} + void uapi_dev_runtime_set_sleep_status(uint8_t status) { g_runtime.sleep_status=status; @@ -306,6 +317,15 @@ uint8_t uapi_dev_runtime_get_nap_status(void) return g_runtime.nap_status; } +void uapi_dev_runtime_set_nap_monitoring_status(uint8_t status) +{ + g_runtime.nap_monitoring_status=status; +} +uint8_t uapi_dev_runtime_get_nap_monitoring_status(void) +{ + return g_runtime.nap_monitoring_status; +} + void uapi_dev_runtime_set_sedentary_status(uint8_t status) { g_runtime.sedentary_status=status; diff --git a/code/sdk/drivers/peripheral/utils/custom_runtime.h b/code/sdk/drivers/peripheral/utils/custom_runtime.h index 9684f8f6a..e325728a7 100644 --- a/code/sdk/drivers/peripheral/utils/custom_runtime.h +++ b/code/sdk/drivers/peripheral/utils/custom_runtime.h @@ -51,6 +51,10 @@ void uapi_dev_runtime_set_sleep_status(uint8_t status); uint8_t uapi_dev_runtime_get_sleep_status(void); void uapi_dev_runtime_set_nap_status(uint8_t status); uint8_t uapi_dev_runtime_get_nap_status(void); +void uapi_dev_runtime_set_sleep_monitoring_status(uint8_t status); +uint8_t uapi_dev_runtime_get_sleep_monitoring_status(void); +void uapi_dev_runtime_set_nap_monitoring_status(uint8_t status); +uint8_t uapi_dev_runtime_get_nap_monitoring_status(void); void uapi_dev_runtime_set_sedentary_status(uint8_t status); uint8_t uapi_dev_runtime_get_sedentary_status(void); void uapi_dev_runtime_set_drinkremind_status(uint8_t status); -- 2.17.1