Merge #1126 into sdk602patch0626 from refs/changes/1126/head 1127/target/2
author彭磊 <1624952103@qq.com>
Wed, 9 Oct 2024 02:13:37 +0000 (02:13 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Wed, 9 Oct 2024 02:13:37 +0000 (02:13 +0000)
Code review from 彭磊

* refs/changes/1126/head: (13 commits squashed)

  - 修改小睡数据合并成一个文件

  - 修改小睡数据存入一个文件(默认关闭 待协议调通)

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - debug界面添加睡眠数据以及睡眠状态runtime,更新cywee算法库修复配速BUG,优化睡眠模式alarm逻辑

  - 修改gsensor FIFO笔数为15笔 并同步运动心率修改

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 回退alarm 睡眠闹钟修改

Signed-off-by: aliyun6865282430 <1624952103@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1126
code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
code/sdk/application/wearable/service/msg_center/include/notify/debug_output_notification/debug_output_notification.h
code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp
code/sdk/drivers/peripheral/cywee/Lib/CWM_LIB_clang_riscv_mac.a
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c

index 6036225..1588811 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com
  * @Date: 2024-06-26 19:36:48
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-10-05 16:14:11
+ * @LastEditTime: 2024-10-05 18:30:44
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
  * @Description:
  *
@@ -86,6 +86,8 @@ namespace OHOS
     bool read_nap_data(NAP_T *data);
     void clean_sleep_data(void);
     bool create_sleep_folder(void);
+    std::string get_sleep_asleep_time_str(void);
+    std::string get_sleep_wake_time_str(void);
     //void clean_sleep_file(void);
     // 睡眠状态
     enum class SLEEPSTATE
index cd12521..8aae038 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com
  * @Date: SLEPPNOTIFY24-06-26 19:36:48
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-10-05 16:10:03
+ * @LastEditTime: 2024-10-08 17:50:46
  * @FilePath:
  * /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
  * @Description:
@@ -499,6 +499,38 @@ namespace OHOS
     return S_ISREG(file_stat.st_mode); // 检查文件是否为普通文件
   }
 
+  std::string get_sleep_asleep_time_str(void)
+  {
+      std::string timestr;
+      char labelTime[20] = {0};
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_data.fall_asleep_timestamp : %d",sleep_data.fall_asleep_timestamp);
+      if (uapi_get_TIME_STR(sleep_data.fall_asleep_timestamp, labelTime, '.', ':', DATE_Y_M_D_H_M) != ERRCODE_SUCC || !sleep_data.fall_asleep_timestamp)  
+      {  
+          timestr = "--";  
+      }  
+      else  
+      {  
+          timestr = labelTime;  
+      } 
+      return timestr;
+  }
+
+  std::string get_sleep_wake_time_str(void)
+  {
+      std::string timestr;
+      char labelTime[20] = {0};
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sleep_data.wake_up_timestamp : %d",sleep_data.wake_up_timestamp);
+      if (uapi_get_TIME_STR(sleep_data.wake_up_timestamp, labelTime, '.', ':', DATE_Y_M_D_H_M) != ERRCODE_SUCC || !sleep_data.wake_up_timestamp)  
+      {  
+          timestr = "--";  
+      }  
+      else  
+      {  
+          timestr = labelTime;  
+      } 
+      return timestr;
+  }
+
   bool read_sleep_data(SLEEP_T *data)
   {
     // errcode_t ret;
index b7f828a..71d0de3 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-10-02 14:12:12
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-03 13:29:50
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2024-10-08 16:29:19
  * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/include/notify/debug_output_notification.h
  */
 #ifndef DEBUG_OUTPUT_NOTIFICATION_H
@@ -39,6 +39,7 @@ namespace OHOS
         std::string get_system_log(void);
         std::string get_battery_info(void);
         std::string get_shutdown_info(void);
+        std::string get_sleep_time(void);
 
       private:
         DebugOutputViewEventListener();
index 9a95f83..5d95b98 100644 (file)
@@ -45,6 +45,8 @@
 #include <deque>
 #include <cerrno>
 #include "bleService.h"
+#include "sleep/include/SleepModel.h"
+
 namespace OHOS
 {
 
@@ -84,6 +86,8 @@ namespace OHOS
         debugOutputItemInfo[index++] = {5, "battery_service"};
         //死机文件列表
         debugOutputItemInfo[index++] = {6, "shutdown_file_list"};
+        //睡眠数据
+        debugOutputItemInfo[index++] = {7, "sleep_time"};
         usedLen = index;
         /* -------------------------------- Add data -------------------------------- */
         for (uint8_t i = 0; i < usedLen; i++)
@@ -193,8 +197,11 @@ namespace OHOS
         result += "lock_flag_training:" + std::to_string(uapi_dev_runtime_get_train_storage_status()) + " ";
         result += "lock_flag_heartrate:" + std::to_string(uapi_dev_runtime_get_heartrate_storage_status()) + " ";
         result += "lock_flag_blood:" + std::to_string(uapi_dev_runtime_get_bloodoxygen_storage_status()) + " ";
-        result += "lock_flag_sleep:" + std::to_string(uapi_dev_runtime_get_sleep_storage_status());
-
+        result += "lock_flag_sleep:" + std::to_string(uapi_dev_runtime_get_sleep_storage_status()) + " ";;
+        result += "nap_monitoring_status:" + std::to_string(uapi_dev_runtime_get_nap_monitoring_status()) + " ";;
+        result += "nap_status:" + std::to_string(uapi_dev_runtime_get_nap_status()) + " ";;
+        result += "sleep_monitoring_status:" + std::to_string(uapi_dev_runtime_get_sleep_monitoring_status()) + " ";;
+        result += "sleep_status:" + std::to_string(uapi_dev_runtime_get_sleep_status()) + " ";;
         return result;
     }
 
@@ -316,6 +323,18 @@ namespace OHOS
         return oss.str(); // 返回以换行符分隔的文件名字符串  
     }
 
+    //获取睡眠时间戳
+    std::string DebugOutputViewEventListener::get_sleep_time(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DebugOutputViewEventListener::get_sleep_time");
+        do_custom_fileoperate_service_check_msg(
+        CUSTOM_FILEOPERATE_MSG_TYPE_SLEEPDATA_READ, nullptr, 0);
+        LOS_Msleep(100);
+        std::string result = "asleep_time:" + get_sleep_asleep_time_str() + " ";
+        result += "wake_time:" + get_sleep_wake_time_str() + " ";
+        return result;
+    }
+
     bool DebugOutputViewEventListener::OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event)
     {
         std::string viewId = view.GetViewId();
@@ -371,6 +390,9 @@ namespace OHOS
         case 6:
             str = get_shutdown_info();
             break;
+        case 7:
+            str = get_sleep_time();
+            break;
         default:
             str = "--";
             break;
index 5f22c2e..c520b34 100644 (file)
Binary files a/code/sdk/drivers/peripheral/cywee/Lib/CWM_LIB_clang_riscv_mac.a and b/code/sdk/drivers/peripheral/cywee/Lib/CWM_LIB_clang_riscv_mac.a differ
index 95023c3..5833a69 100644 (file)
 
 #define AP_ENABLE_DML_SDO_LISTEN
 
-#define GSENSON_MSG_COUNT   25
+#define GSENSON_MSG_COUNT   15
 
 static gsenson_t gxyz_t;
 static uint8_t gsenson_falg=0;
 
 static uint16 num_falg=0;
-static gsenson_t gxyz_t_queue[25]={0};
+static gsenson_t gxyz_t_queue[GSENSON_MSG_COUNT]={0};
 static int16 left_falg=0;
 static int16 right_falg=-1;
 
@@ -692,7 +692,7 @@ void gsensor_get_n_data(uint8_t cnt,gsenson_t t[])
         if(num_falg)
         {
             left_falg++;
-            left_falg=left_falg%25;
+            left_falg=left_falg%GSENSON_MSG_COUNT;
             num_falg--;
 
         }   
@@ -1087,7 +1087,7 @@ static int AccdataCount = 0;                              //fifo长度
 
 void CWM_AP_dmlSensorDataOutput_listen(const dml_sensorData_t * pSdo) 
 {
-    if(AccdataCount < 25)
+    if(AccdataCount < GSENSON_MSG_COUNT)
     {
         if (pSdo->validData & DML_SENSOR_DATA_VALID_DT)
         {
@@ -1329,7 +1329,7 @@ int cywee_main_dml(void)
 #else
     scl.iData[3] = 2;
     scl.iData[4] = 1; //1 anytime 2 fifo
-    scl.iData[6] = GSENSON_MSG_COUNT; //fifocount 先設定5    [1~25]
+    scl.iData[6] = 25; //fifocount 先設定5    [1~25]
     scl.iData[8] = 26; // for st sensor(52Hz)
 
     scl.iData[11] = 4; // G_INT_1
index 76d2ee1..2b0e56f 100644 (file)
@@ -2809,8 +2809,36 @@ void hx3695_hrs_ppg_Int_handle(void)
     }\r
     memset(gsensordata,0.0f,sizeof(gsenson_t) * 8);\r
 \r
-    gsensor_get_n_data(8,gsensordata);  \r
+    // gsensor_get_n_data(8,gsensordata);  \r
 \r
+    // for(ii=0; ii<*count; ii++)\r
+    // {\r
+    //   if(gsensordata[ii].x == 0.0f && gsensordata[ii].y == 0.0f && gsensordata[ii].z == 0.0f)\r
+    //   {\r
+    //       timeout++;\r
+    //       if(timeout > 20)\r
+    //       {\r
+    //           do_cywee_service_check_msg(CYWEE_SERVICE_CMD_RESTART_ACC,NULL);\r
+    //       }\r
+    //   }\r
+    //   else\r
+    //   {\r
+    //       timeout = 0;\r
+    //   }\r
+    //   if(ii == 8)\r
+    //   {\r
+    //       gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1];\r
+    //       gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1];\r
+    //       gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1];\r
+    //   }\r
+    //   else\r
+    //   {\r
+    //       gsen_fifo_x_send[ii] = gsensordata[ii].x * 4096 / 10;\r
+    //       gsen_fifo_y_send[ii] = gsensordata[ii].y * 4096 / 10;\r
+    //       gsen_fifo_z_send[ii] = gsensordata[ii].z * 4096 / 10;\r
+    //   }\r
+\r
+    gsensor_get_n_data(5,gsensordata);  \r
     for(ii=0; ii<*count; ii++)\r
     {\r
       if(gsensordata[ii].x == 0.0f && gsensordata[ii].y == 0.0f && gsensordata[ii].z == 0.0f)\r
@@ -2825,18 +2853,23 @@ void hx3695_hrs_ppg_Int_handle(void)
       {\r
           timeout = 0;\r
       }\r
-      if(ii == 8)\r
-      {\r
-          gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1];\r
-          gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1];\r
-          gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1];\r
-      }\r
-      else\r
+      // if(ii == 8)\r
+      // {\r
+      //     gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1];\r
+      //     gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1];\r
+      //     gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1];\r
+      // }\r
+      // else\r
+      // {\r
+      if(ii < 9)\r
       {\r
-          gsen_fifo_x_send[ii] = gsensordata[ii].x * 4096 / 10;\r
-          gsen_fifo_y_send[ii] = gsensordata[ii].y * 4096 / 10;\r
-          gsen_fifo_z_send[ii] = gsensordata[ii].z * 4096 / 10;\r
+          gsen_fifo_x_send[ii] = gsensordata[ii/2].x * 4096 / 10;\r
+          gsen_fifo_y_send[ii] = gsensordata[ii/2].y * 4096 / 10;\r
+          gsen_fifo_z_send[ii] = gsensordata[ii/2].z * 4096 / 10;\r
       }\r
+\r
+      // }\r
+\r
       //PRINT("hxdata:%d/%d %d %d %.3f %.3f %.3f %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii],ppg_s_data.green_cur);\r
       //PRINT("hxdata:%d/%d %d %d %d %d %d %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii],ppg_s_data.green_cur);\r
       //PRINT("hxdata:%d/%d %d %d %.3f %.3f %.3f %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsensordata[ii].x,gsensordata[ii].y,gsensordata[ii].z,ppg_s_data.green_cur);\r