增加心率检测 睡眠提醒 425/1 425/head
authorCaisking <3449750381@qq.com>
Mon, 1 Jul 2024 11:50:54 +0000 (19:50 +0800)
committerCaisking <3449750381@qq.com>
Mon, 1 Jul 2024 11:50:54 +0000 (19:50 +0800)
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include/AlarmClockTimerConfig.h
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/rtcservice/src/rtc_at_cmd.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/drivers/peripheral/config/include/ConfigModelC.h

index b799dcb..978755c 100644 (file)
@@ -67,6 +67,7 @@ int32_t SetZeroAlarm(void);
 int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute);\r
 int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo);\r
 void set_sleep_and_wake_time(void);\r
+void get_sleep_time_notify(void);\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
index 935aa7a..3779fb4 100644 (file)
@@ -1,3 +1,9 @@
+/***\r
+ * @Date: 2024-06-29 15:06:13\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-07-01 17:31:58\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp\r
+ */\r
 /*\r
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
  * Description: AlarmClockTimer\r
 #include "AlarmClockTimerConfig.h"\r
 #include "cywee_service.h"\r
 #include "ConfigModelC.h"\r
+#include "ConfigModel.h"\r
+#include "heartrate/include/HeartModel.h"\r
 \r
 #ifdef __cplusplus\r
-extern "C" {\r
+extern "C"\r
+{\r
 #endif\r
 \r
-static AlarmCtrl g_alarmCtrA;\r
-static AlarmCtrl g_alarmCtrB;\r
-static osTimerId_t g_AlarmHandle = nullptr;\r
+    static AlarmCtrl g_alarmCtrA;\r
+    static AlarmCtrl g_alarmCtrB;\r
+    static osTimerId_t g_AlarmHandle = nullptr;\r
 \r
-static int sleep_time = 0;\r
-static int wake_up_time = 0;\r
+#define SLEPPNOTIFY 20\r
 \r
-void set_sleep_and_wake_time(void)\r
-{\r
-    sleep_time = get_sleep_time_from_config_model();\r
-    wake_up_time = get_wake_up_time_from_config_model();\r
-}\r
+    static int sleep_time = 0;\r
+    static int wake_up_time = 0;\r
+    static int sleep_time_hour = 0;\r
+    static int sleep_time_min = 0;\r
 \r
-void AlarmTimerEventPublish(uint16 topic, AlarmClockEventData data)\r
-{\r
-    int32 ret;\r
-    uint32 size = sizeof(AlarmClockEventData);\r
-    Request *request = nullptr;\r
-    BroadcastApi *broadcastApi = nullptr;\r
-    IUnknown *api = nullptr;\r
-\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish topic=%u!!", topic);\r
-\r
-    /* alloc request */\r
-    request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);\r
-    if (request == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");\r
-        return;\r
-    }\r
-    request->msgId = topic;\r
-    ret = memcpy_s(request->data, size, (const void *)&data, size);\r
-    if (ret != EOK) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);\r
-        return;\r
-    }\r
-    request->len = size;\r
-    request->msgValue = 0;\r
-\r
-    /* public request */\r
-    api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
-    if (api == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
-        SAMGR_FreeRequestMsg(request);\r
-        return;\r
+    // 设置目标睡眠时间\r
+    void set_sleep_and_wake_time(void)\r
+    {\r
+        sleep_time = get_sleep_time_from_config_model();\r
+        wake_up_time = get_wake_up_time_from_config_model();\r
     }\r
-    ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
-    if (ret != 0 || broadcastApi == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
-        SAMGR_FreeRequestMsg(request);\r
-        return;\r
+    // 设置睡眠提醒时间\r
+    void get_sleep_time_notify(void)\r
+    {\r
+        int goal_hour = sleep_time >> 16;\r
+        int goal_min = (sleep_time & 0X00FF);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "goal_hour:%d goal_min:%d", goal_hour, goal_min);\r
+        if ((goal_min - SLEPPNOTIFY) >= 0)\r
+        {\r
+            sleep_time_hour = goal_hour;\r
+            sleep_time_min = goal_min - SLEPPNOTIFY;\r
+        }\r
+        else\r
+        {\r
+            sleep_time_hour = goal_hour - 1;\r
+            sleep_time_min = goal_min - SLEPPNOTIFY + 60;\r
+        }\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_time_hour:%d sleep_time_min:%d", sleep_time_hour, sleep_time_min);\r
     }\r
-    broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);\r
-    broadcastApi->Release((IUnknown *)broadcastApi);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish end!!");\r
-\r
-    return;\r
-}\r
-\r
-static void AlarmCallBackProcA(void)\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA");\r
-    AlarmClockEventData unuse;\r
-    GraphicService::GetInstance()->PostGraphicEvent(\r
-        std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ALARM_RING, unuse));\r
-}\r
+    void AlarmTimerEventPublish(uint16 topic, AlarmClockEventData data)\r
+    {\r
+        int32 ret;\r
+        uint32 size = sizeof(AlarmClockEventData);\r
+        Request *request = nullptr;\r
+        BroadcastApi *broadcastApi = nullptr;\r
+        IUnknown *api = nullptr;\r
 \r
-static void AlarmCallBackProcB(void)\r
-{\r
-    AlarmClockEventData unuse;\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB");\r
-    GraphicService::GetInstance()->PostGraphicEvent(\r
-        std::bind(AlarmTimerEventPublish, TOPIC_EVENT_NEXTDAY_UPDATE, unuse));\r
-    GraphicService::GetInstance()->PostGraphicEvent(SetZeroAlarm);\r
-}\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish topic=%u!!", topic);\r
 \r
-static void on_time_CallBackProc(void)\r
-{\r
-    AlarmClockEventData unuse;\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "on_time_CallBackProc");\r
-    GraphicService::GetInstance()->PostGraphicEvent(\r
-        std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ON_TIME, unuse));\r
-}\r
+        /* alloc request */\r
+        request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);\r
+        if (request == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");\r
+            return;\r
+        }\r
+        request->msgId = topic;\r
+        ret = memcpy_s(request->data, size, (const void *)&data, size);\r
+        if (ret != EOK)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);\r
+            return;\r
+        }\r
+        request->len = size;\r
+        request->msgValue = 0;\r
 \r
+        /* public request */\r
+        api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
+        if (api == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
+            SAMGR_FreeRequestMsg(request);\r
+            return;\r
+        }\r
+        ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
+        if (ret != 0 || broadcastApi == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
+            SAMGR_FreeRequestMsg(request);\r
+            return;\r
+        }\r
+        broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);\r
+        broadcastApi->Release((IUnknown *)broadcastApi);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish end!!");\r
 \r
-void AlarmScan(void *arg)\r
-{\r
-    struct tm curTime;\r
-    int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
-    if (ret != ERRCODE_SUCC) {\r
         return;\r
     }\r
 \r
-    if (g_alarmCtrA.state == ALARM_STATUS_RUNNING) {\r
-        if ((g_alarmCtrA.callback != nullptr) &&\r
-            (g_alarmCtrA.info.hour == curTime.tm_hour) &&\r
-            (g_alarmCtrA.info.minute == curTime.tm_min)) {\r
-            g_alarmCtrA.callback();\r
-            g_alarmCtrA.state = ALARM_STATUS_CREATED;\r
-        }\r
+    static void AlarmCallBackProcA(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA");\r
+        AlarmClockEventData unuse;\r
+        GraphicService::GetInstance()->PostGraphicEvent(\r
+            std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ALARM_RING, unuse));\r
     }\r
 \r
-    if (g_alarmCtrB.state == ALARM_STATUS_RUNNING) {\r
-        if ((g_alarmCtrB.callback != NULL) &&\r
-            //(g_alarmCtrB.info.week == curTime.tm_wday) &&\r
-            (g_alarmCtrB.info.hour == curTime.tm_hour) &&\r
-            (g_alarmCtrB.info.minute == curTime.tm_min) &&\r
-            (g_alarmCtrB.info.second == curTime.tm_sec)) {\r
-            g_alarmCtrB.callback();\r
-            g_alarmCtrB.state = ALARM_STATUS_CREATED;\r
-        }\r
-    }\r
-    if(curTime.tm_min==0 && curTime.tm_sec==0)\r
+    static void AlarmCallBackProcB(void)\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d : %d",curTime.tm_hour,curTime.tm_min);\r
-        on_time_CallBackProc();\r
+        AlarmClockEventData unuse;\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB");\r
+        GraphicService::GetInstance()->PostGraphicEvent(\r
+            std::bind(AlarmTimerEventPublish, TOPIC_EVENT_NEXTDAY_UPDATE, unuse));\r
+        GraphicService::GetInstance()->PostGraphicEvent(SetZeroAlarm);\r
     }\r
-    else if(curTime.tm_hour == ( ( sleep_time & 0XFF00) >> 16 ) && curTime.tm_min == ( sleep_time & 0X00FF ))\r
+\r
+    static void on_time_CallBackProc(void)\r
     {\r
-        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE,NULL);\r
+        AlarmClockEventData unuse;\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "on_time_CallBackProc");\r
+        GraphicService::GetInstance()->PostGraphicEvent(\r
+            std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ON_TIME, unuse));\r
     }\r
-    else if(curTime.tm_hour == ( ( wake_up_time & 0XFF00) >> 16 ) && curTime.tm_min == ( wake_up_time & 0X00FF ))\r
+\r
+    void AlarmScan(void *arg)\r
     {\r
-        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE,NULL);\r
-    }\r
-}\r
+        struct tm curTime;\r
+        int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
+        if (ret != ERRCODE_SUCC)\r
+        {\r
+            return;\r
+        }\r
 \r
-static int32_t AlarmCreate(AlarmCtrl *alarmCtrl, AlarmCallBack callback)\r
-{\r
-    if (alarmCtrl == nullptr) {\r
-        return ERRCODE_FAIL;\r
-    }\r
-    if (alarmCtrl->state == ALARM_STATUS_UNUSED) {\r
-        alarmCtrl->state = ALARM_STATUS_CREATED;\r
-        alarmCtrl->callback = callback;\r
-    }\r
-    return ERRCODE_SUCC;\r
-}\r
+        if (g_alarmCtrA.state == ALARM_STATUS_RUNNING)\r
+        {\r
+            if ((g_alarmCtrA.callback != nullptr) &&\r
+                (g_alarmCtrA.info.hour == curTime.tm_hour) &&\r
+                (g_alarmCtrA.info.minute == curTime.tm_min))\r
+            {\r
+                g_alarmCtrA.callback();\r
+                g_alarmCtrA.state = ALARM_STATUS_CREATED;\r
+            }\r
+        }\r
 \r
-int32_t AlarmTimerInit(void)\r
-{\r
-    int32_t timerStatus;\r
-    int32_t ret;\r
-\r
-    g_alarmCtrA.state = ALARM_STATUS_UNUSED;\r
-    g_alarmCtrB.state = ALARM_STATUS_UNUSED;\r
-    g_AlarmHandle = osTimerNew(AlarmScan, osTimerPeriodic, nullptr, nullptr);\r
-    if (g_AlarmHandle == nullptr) {\r
-        return ERRCODE_FAIL;\r
-    }\r
-    timerStatus = osTimerStart(g_AlarmHandle, ALARM_INTERVAL_MS);\r
-    if (timerStatus != osOK) {\r
-        return ERRCODE_FAIL;\r
+        if (g_alarmCtrB.state == ALARM_STATUS_RUNNING)\r
+        {\r
+            if ((g_alarmCtrB.callback != NULL) &&\r
+                //(g_alarmCtrB.info.week == curTime.tm_wday) &&\r
+                (g_alarmCtrB.info.hour == curTime.tm_hour) &&\r
+                (g_alarmCtrB.info.minute == curTime.tm_min) &&\r
+                (g_alarmCtrB.info.second == curTime.tm_sec))\r
+            {\r
+                g_alarmCtrB.callback();\r
+                g_alarmCtrB.state = ALARM_STATUS_CREATED;\r
+            }\r
+        }\r
+        // 整点回调\r
+        if (curTime.tm_min == 0 && curTime.tm_sec == 0)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time: %d : %d", curTime.tm_hour, curTime.tm_min);\r
+            on_time_CallBackProc();\r
+        }\r
+        // 进入睡眠模式\r
+        if (curTime.tm_hour == ((sleep_time >> 16) && curTime.tm_min == (sleep_time & 0X00FF)))\r
+        {\r
+            do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE, NULL);\r
+        }\r
+        // 退出睡眠模式\r
+        if (curTime.tm_hour == ((wake_up_time >> 16) && curTime.tm_min == (wake_up_time & 0X00FF)))\r
+        {\r
+            do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL);\r
+        }\r
+        // 睡眠提醒[前提开启睡眠提醒]\r
+        if (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND))\r
+        {\r
+            // 提醒一次\r
+            if (curTime.tm_hour == sleep_time_hour && curTime.tm_min == sleep_time_min && curTime.tm_sec == 0)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "It's bedtime in 20 minutes");\r
+                printf("20分钟后要睡觉啦!\r\n");\r
+            }\r
+        }\r
+        // 早安提醒[前提开启睡眠提醒]\r
+\r
+        // 心率周期检测 [0 1 5 10]\r
+        if (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED))\r
+        {\r
+            if (curTime.tm_min % (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED)) == 0 && curTime.tm_sec == 0)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Automatic heart rate detection starts");\r
+                // 开启心率检测 如果有其他心率检测在进行,则不会进行检测[低优先级]\r
+                OHOS::HeartModel::GetInstance()->Heart_Control(OHOS::HeartState::Start, OHOS::HeartCheck::PASSIVITY);\r
+            }\r
+        }\r
     }\r
-    ret = AlarmCreate(&g_alarmCtrA, AlarmCallBackProcA);\r
-    if (ret != ERRCODE_SUCC) {\r
-        return ERRCODE_FAIL;\r
+\r
+    static int32_t AlarmCreate(AlarmCtrl *alarmCtrl, AlarmCallBack callback)\r
+    {\r
+        if (alarmCtrl == nullptr)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        if (alarmCtrl->state == ALARM_STATUS_UNUSED)\r
+        {\r
+            alarmCtrl->state = ALARM_STATUS_CREATED;\r
+            alarmCtrl->callback = callback;\r
+        }\r
+        return ERRCODE_SUCC;\r
     }\r
-    ret = AlarmCreate(&g_alarmCtrB, AlarmCallBackProcB);\r
-    if (ret != ERRCODE_SUCC) {\r
-        return ERRCODE_FAIL;\r
+\r
+    int32_t AlarmTimerInit(void)\r
+    {\r
+        int32_t timerStatus;\r
+        int32_t ret;\r
+\r
+        g_alarmCtrA.state = ALARM_STATUS_UNUSED;\r
+        g_alarmCtrB.state = ALARM_STATUS_UNUSED;\r
+        g_AlarmHandle = osTimerNew(AlarmScan, osTimerPeriodic, nullptr, nullptr);\r
+        if (g_AlarmHandle == nullptr)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        timerStatus = osTimerStart(g_AlarmHandle, ALARM_INTERVAL_MS);\r
+        if (timerStatus != osOK)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        ret = AlarmCreate(&g_alarmCtrA, AlarmCallBackProcA);\r
+        if (ret != ERRCODE_SUCC)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        ret = AlarmCreate(&g_alarmCtrB, AlarmCallBackProcB);\r
+        if (ret != ERRCODE_SUCC)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        set_sleep_and_wake_time();\r
+        get_sleep_time_notify();\r
+        return ERRCODE_SUCC;\r
     }\r
-    set_sleep_and_wake_time();\r
-    return ERRCODE_SUCC;\r
-}\r
 \r
-int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute)\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetAlarm %d %d %d %d", type, week, hour, minute);\r
-    if (type == ALARM_A) {\r
-        g_alarmCtrA.state = ALARM_STATUS_RUNNING;\r
-        g_alarmCtrA.info.hour = hour;\r
-        g_alarmCtrA.info.minute = minute;\r
-    } else if (type == ALARM_B) {\r
-        g_alarmCtrB.state = ALARM_STATUS_RUNNING;\r
-        g_alarmCtrB.info.week = week;\r
-        g_alarmCtrB.info.hour = hour;\r
-        g_alarmCtrB.info.minute = minute;\r
-        g_alarmCtrB.info.second = 1;\r
-    } else {\r
-        return ERRCODE_FAIL;\r
+    int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetAlarm %d %d %d %d", type, week, hour, minute);\r
+        if (type == ALARM_A)\r
+        {\r
+            g_alarmCtrA.state = ALARM_STATUS_RUNNING;\r
+            g_alarmCtrA.info.hour = hour;\r
+            g_alarmCtrA.info.minute = minute;\r
+        }\r
+        else if (type == ALARM_B)\r
+        {\r
+            g_alarmCtrB.state = ALARM_STATUS_RUNNING;\r
+            g_alarmCtrB.info.week = week;\r
+            g_alarmCtrB.info.hour = hour;\r
+            g_alarmCtrB.info.minute = minute;\r
+            g_alarmCtrB.info.second = 1;\r
+        }\r
+        else\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        return ERRCODE_SUCC;\r
     }\r
-    return ERRCODE_SUCC;\r
-}\r
 \r
-int32_t SetZeroAlarm(void)\r
-{\r
-    struct tm curTime;\r
-    int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
-    if (ret != ERRCODE_SUCC) {\r
-        return ERRCODE_FAIL;\r
+    int32_t SetZeroAlarm(void)\r
+    {\r
+        struct tm curTime;\r
+        int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
+        if (ret != ERRCODE_SUCC)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        int32_t weekday = (++curTime.tm_wday) % 7;\r
+        return SetAlarm(ALARM_B, weekday, 0, 0);\r
     }\r
-    int32_t weekday = (++curTime.tm_wday) % 7;\r
-    return SetAlarm(ALARM_B, weekday, 0, 0);\r
-}\r
 \r
-int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo)\r
-{\r
-    if (timeInfo == nullptr) {\r
-        return ERRCODE_FAIL;\r
+    int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo)\r
+    {\r
+        if (timeInfo == nullptr)\r
+        {\r
+            return ERRCODE_FAIL;\r
+        }\r
+        time_t sec = time(nullptr);\r
+        localtime_r(&sec, timeInfo);\r
+        return ERRCODE_SUCC;\r
     }\r
-    time_t sec = time(nullptr);\r
-    localtime_r(&sec, timeInfo);\r
-    return ERRCODE_SUCC;\r
-}\r
 \r
 #ifdef __cplusplus\r
 }\r
index 1ae2202..c38fb8d 100644 (file)
@@ -97,22 +97,10 @@ extern "C"
         }
         return ERRCODE_SUCC;
     }
-    static uint32_t rtc_restore_factory_settings(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
-    {
-        UNUSED(para);
-        UNUSED(paraLen);
-        UNUSED(strCommonCmd);
-
-        // 执行恢复出厂设置的操作
-        uapi_restore_factory_setting();
 
-        PRINT("Restoring Factory Settings...\n");
-        return ERRCODE_SUCC;
-    }
 
     static const at_cmd_table_t g_rtc_cmd[] = {
         {(char *)"AT^RTCTEST", rtc_do_test, (char *)"enable"},
-        {(char *)"AT^RESTORE", rtc_restore_factory_settings, NULL},
     };
 
     at_cmd_table_t *get_rtc_cmd_table(uint32_t *cmd_count)
index ac646ef..1055a74 100644 (file)
@@ -32,6 +32,7 @@
 #endif
 
 #include "AlmmgrAlarmClockManage.h"
+#include "AlarmClockTimerConfig.h"
 #include "AlarmClockManage.h"
 
 #include "SetDialModel.h"
@@ -393,7 +394,9 @@ void ble_set_sleep_remind(msg_get_sleep_param_info_t data)
         p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND,data.bedtime_alarm);
 
         //更新睡眠配置
-        OHOS:: SleepModel::GetInstance().set_sleep_goal();
+        OHOS::SleepModel::GetInstance().set_sleep_goal();
+        set_sleep_and_wake_time();
+        get_sleep_time_notify();
     }  
     return;
 }
index ad22bc2..dbcd212 100644 (file)
@@ -98,6 +98,9 @@ void get_user_info_from_config_model(int user_info[5]);
 int get_sleep_time_from_config_model(void);
 int get_wake_up_time_from_config_model(void);
 
+//设置睡眠频率
+void set_config_heart(int heartRateDetectionFreq);
+
 #ifdef __cplusplus
 #if __cplusplus
 }