解决睡眠模式时间戳获取BUG,睡眠模式输入心率数据 701/3 701/head
authorpenglei <1624952103@qq.com>
Thu, 15 Aug 2024 12:29:34 +0000 (20:29 +0800)
committerpenglei <1624952103@qq.com>
Thu, 15 Aug 2024 12:29:34 +0000 (20:29 +0800)
优化设置久坐间隔
优化开机设置运动识别,添加TOPIC接收消息

code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/service/broadcast/include/broadcast_feature.h
code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/drivers/peripheral/config/include/ConfigModelC.h
code/sdk/drivers/peripheral/config/src/ConfigModel.cpp
code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c

index 958b072..9b96853 100644 (file)
@@ -52,6 +52,7 @@ extern "C"
     static int wake_time_hour = 0;\r
     static int wake_time_min = 0;\r
     static int sedentary_switch = 0;\r
+    static int sedentary_interval = 1;\r
     static int sedentary_time = 0;\r
     static int sedentary_start_hour = 0;\r
     static int sedentary_start_min = 0;\r
@@ -103,6 +104,9 @@ extern "C"
     {\r
         sedentary_switch = get_sedentary_switch_from_config_model();\r
         sedentary_time = get_sedentary_time_from_config_model();\r
+        sedentary_interval = get_sedentary_interval_from_config_model();\r
+        do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SET_SEDENTARY_INTERVAL,&sedentary_interval);//设置久坐提醒间隔\r
+        \r
         // sedentary_start_hour = (sedentary_time & 0XFF000000) >> 24;\r
         // sedentary_start_min = (sedentary_time & 0X00FF0000) >> 16;\r
         // sedentary_stop_hour = (sedentary_time & 0X0000FF00) >> 8;\r
@@ -378,7 +382,7 @@ extern "C"
             {\r
                 // uapi_dev_runtime_set_sleep_status(0);\r
                 //  do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL);\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "起床啦!");\r
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "起床啦!");\r
                 if (curTime.tm_hour == wake_time_hour && curTime.tm_min == wake_time_min && curTime.tm_sec == 0)\r
                 {\r
                     OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::WAKE);\r
index 79371f8..fcadf34 100644 (file)
@@ -38,7 +38,6 @@ typedef enum {
     TOPIC_EVENT_NEXTDAY_UPDATE,
     TOPIC_EVENT_WEARSTATE_UPDATE,
     TOPIC_EVENT_STEPDATA_UPDATE,
-    TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,
     TOPIC_EVENT_SHUTDOWN,
     TOPIC_EVENT_HEARTRATE_UPDATA,
     TOPIC_EVENT_STATIC_HEARTRATE_UPDATA,
@@ -51,6 +50,7 @@ typedef enum {
 #ifdef CYWEE_SPORT
     TOPIC_EVENT_ACTIVITY_UPDATE,
     TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE,
+    TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,
     TOPIC_EVENT_INACTIVITY_UPDATE,
     TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE,
     TOPIC_EVENT_BLE_TRAINING,
index 0e1b011..bb18975 100644 (file)
@@ -25,13 +25,13 @@ static const TopicToCore topicToCoreArray[] = {
     {TOPIC_EVENT_NEXTDAY_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_WEARSTATE_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_STEPDATA_UPDATE, A_CORE_MASK, 1},
-    {TOPIC_EVENT_AR_ALERT_TYPE_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_SHUTDOWN, A_CORE_MASK, 1},
     {TOPIC_EVENT_HEARTRATE_UPDATA, A_CORE_MASK, 1},
     {TOPIC_EVENT_STATIC_HEARTRATE_UPDATA, A_CORE_MASK, 1},
 #ifdef CYWEE_SPORT    
     {TOPIC_EVENT_ACTIVITY_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE, A_CORE_MASK, 1},
+    {TOPIC_EVENT_AR_ALERT_TYPE_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_INACTIVITY_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE, A_CORE_MASK, 1},
     {TOPIC_EVENT_BLE_TRAINING,A_CORE_MASK,1},
index 1967f25..8dd5329 100644 (file)
@@ -78,6 +78,7 @@ const PriorityMapper PRI_MAPPER[] = {
     {TOPIC_EVENT_NEXTDAY_UPDATE, PRIORITY_TWO},
     {TOPIC_EVENT_ACTIVITY_UPDATE,PRIORITY_TWO},
     {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE,PRIORITY_TWO},
+    {TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,PRIORITY_TWO},
     {TOPIC_EVENT_STEPDATA_UPDATE,PRIORITY_TWO},
     {TOPIC_EVENT_INACTIVITY_UPDATE,PRIORITY_TWO},
     {TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE,PRIORITY_TWO},
@@ -155,6 +156,7 @@ void MsgCenterSubscribe()
 #ifdef CYWEE_SPORT
     MsgCenterSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE);
     MsgCenterSubscribeTopic(TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE);
+    MsgCenterSubscribeTopic(TOPIC_EVENT_AR_ALERT_TYPE_UPDATE);
     MsgCenterSubscribeTopic(TOPIC_EVENT_INACTIVITY_UPDATE);
     MsgCenterSubscribeTopic(TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE);
     MsgCenterSubscribeTopic(TOPIC_EVENT_BLE_TRAINING);
@@ -1109,6 +1111,12 @@ void MsgCenterNotifyActivityExtraInfoProc(const Topic topic, Request* req)
     unused(topic);
 }
 
+void MsgCenterNotifyArAlertProc(const Topic topic, Request* req)
+{
+    unused(topic);
+    NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
+}
+
 void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
 {
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyInactivityProc !");
@@ -1169,7 +1177,7 @@ void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
 #ifdef FD230
             if(state_num < 20)
             {
-                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].timestamp = day_timestamp + 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 ++;
@@ -1327,6 +1335,7 @@ static MsgCenterNotifyTable g_msgCenterNotifyTable[] = {
  #ifdef CYWEE_SPORT   
     {TOPIC_EVENT_ACTIVITY_UPDATE,       MsgCenterNotifyActivityProc},
     {TOPIC_EVENT_ACTIVITY_EXTRA_INFO_UPDATE,       MsgCenterNotifyActivityExtraInfoProc},
+    {TOPIC_EVENT_AR_ALERT_TYPE_UPDATE,       MsgCenterNotifyArAlertProc},
     {TOPIC_EVENT_INACTIVITY_UPDATE,       MsgCenterNotifyInactivityProc},
     {TOPIC_EVENT_INACTIVITY_ACCUMULATE_TIME_UPDATE,       MsgCenterNotifyInactivityAccumulateTimeProc},
     {TOPIC_EVENT_BLE_TRAINING,       MsgCenterNotifybleAPPtraining},
index 1eeff59..6ab78b7 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-17 09:32:03
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-07-04 20:08:17
+ * @LastEditTime: 2024-08-15 18:23:37
  * @FilePath: /FD230/code/sdk/drivers/peripheral/config/include/ConfigModelC.h
  */
 #ifndef _CONFIG_MODEL_C_H_
@@ -106,6 +106,8 @@ void mmi_sleep_mode_flag_set(bool value);
 
 int get_sedentary_switch_from_config_model(void);
 int get_sedentary_time_from_config_model(void);
+int get_sedentary_interval_from_config_model(void);
+bool get_motion_recognition_from_config_model(void);
 //设置睡眠频率
 void set_config_heart(int heartRateDetectionFreq);
 
index 181bb61..87bc889 100644 (file)
@@ -1534,6 +1534,23 @@ int get_sedentary_time_from_config_model(void)
     return sedentary_time;
 }
 
+//获取久坐提醒间隔
+int get_sedentary_interval_from_config_model(void)
+{
+    int sedentary_interval = 0;
+    sedentary_interval = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL);
+    return sedentary_interval;
+}
+
+//获取运动识别开关
+bool get_motion_recognition_from_config_model(void)
+{
+    bool flag = false;
+    flag = OHOS::ConfigModel::GetInstance()->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_MOTIONRECOGNITION);
+    printf("get_motion_recognition_from_config_model flag : %d \n",flag);
+    return flag;
+}
+
 // get flip wrist switch for c file
 bool mmi_flip_wrist_switch_get(void)
 {
index 2e05d19..959d558 100644 (file)
@@ -556,7 +556,7 @@ void set_fat_time_data(void);
 int get_fat_time_data(void);
 
 void cywee_get_chipinfo(char *databuf,uint8_t len);
-void cywee_set_sedentary_interval(int time);
+void cywee_set_sedentary_interval(int interval);
 void cywee_set_sedentary_switch(int cmd);
 void cywee_get_acc_switch(int cmd);
 void cywee_stop(void);
index f2b7bd3..c1e1766 100644 (file)
@@ -108,9 +108,9 @@ void cywee_set_sedentary_switch(int cmd)
     CWM_SettingControl(SCL_SEDENTARY, &scl);
 }
 
-void cywee_set_sedentary_interval(int time)
+void cywee_set_sedentary_interval(int interval)
 {
-    sedentary_interval = time;
+    sedentary_interval = interval;
 }
 
 void cywee_get_chipinfo(char *databuf,uint8_t len)
@@ -458,7 +458,7 @@ void cywee_inactivity_mode_change(int mode)
             //设置睡眠
             memset(&scl, 0, sizeof(scl));
             scl.iData[0] = 1;
-            scl.iData[2] = 0; // 0.不使用心率 1.使用心率 (暂时关闭,不使用心率数据输入算法)
+            scl.iData[2] = 1; // 0.不使用心率 1.使用心率 (暂时关闭,不使用心率数据输入算法)
             CWM_SettingControl(SCL_SLEEP_CONFIG, &scl);
 
             memset(&scl, 0, sizeof(scl));
@@ -688,11 +688,12 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) {
             if((int)sensorEVT->fData[1] == CUSTOM_OFFBODY_DETECT)
             {
                 CWM_OS_dbgPrintf("CUSTOM_OFFBODY_DETECT !!! \r\n");
+#if 0
                 if((int)sensorEVT->fData[2] == 1)
                     send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_WEAR_MODE_TEST); 
                 else
                     send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_WEAR_MODE_TEST); 
-
+#endif
             }
             if((int)sensorEVT->fData[1] == CUSTOM_ON_CHARGING)
             {
@@ -1120,10 +1121,7 @@ int cywee_main_dml(void)
     CWM_SettingControl(SCL_INACTIVITY_CONFIG, &scl);
 
     //设置运动识别
-    memset(&scl, 0, sizeof(scl));
-    scl.iData[0] = 1;
-    scl.iData[1] = 1;// 0 关闭运动识别  1 打开运动识别
-    CWM_SettingControl(SCL_AR_ALERT_CONFIG, &scl);
+    cywee_ar_alert_switch(get_motion_recognition_from_config_model());
 
 #if 0
     memset(&scl, 0, sizeof(scl));
index 641c741..a826903 100644 (file)
@@ -2716,9 +2716,8 @@ static void get_avg_hrs(int32_t hrs)
               func(HX3695_MSG_TYPE_STATIC_HRS_UPDATE,&hrsresult,sizeof(FT_CUSTOM_RESULTS_t));\r
           }\r
         }\r
-        \r
-        // if(hrs_mode_state || uapi_dev_runtime_get_sleep_status() == 1)\r
-        if(hrs_mode_state)\r
+        //if(hrs_mode_state)\r
+        if(hrs_mode_state || uapi_dev_runtime_get_sleep_status() == 1)\r
         {\r
             cywee_data = hrsresult.lastesthrs;\r
             do_cywee_service_check_msg(CYWEE_SERVICE_CMD_HRS_CHANGE,&cywee_data);\r