Merge #1162 into sdk602patch0911 from refs/changes/1162/head
author彭磊 <1624952103@qq.com>
Fri, 11 Oct 2024 11:19:25 +0000 (11:19 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Fri, 11 Oct 2024 11:19:25 +0000 (11:19 +0000)
Code review from 彭磊

* refs/changes/1162/head: (2 commits squashed)

  - 更新gsensor dml库,修复FATAL ERROR bug与运动数据bug

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

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/1162
code/sdk/drivers/peripheral/cywee/Lib/CWM_LIB_DML_clang_riscv.a
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c

index c3e85e1..c7ba3a8 100644 (file)
Binary files a/code/sdk/drivers/peripheral/cywee/Lib/CWM_LIB_DML_clang_riscv.a and b/code/sdk/drivers/peripheral/cywee/Lib/CWM_LIB_DML_clang_riscv.a differ
index 5833a69..7146f7b 100644 (file)
@@ -21,7 +21,7 @@
 
 #define AP_ENABLE_DML_SDO_LISTEN
 
-#define GSENSON_MSG_COUNT   15
+#define GSENSON_MSG_COUNT   16
 
 static gsenson_t gxyz_t;
 static uint8_t gsenson_falg=0;
@@ -1082,12 +1082,12 @@ struct AccelerationData {
     float acc_y;
     float acc_z;
 };
-static struct AccelerationData rawdata[GSENSON_MSG_COUNT];  //自定义buffer,用来缓存sensor数据
+static struct AccelerationData rawdata[25];  //自定义buffer,用来缓存sensor数据
 static int AccdataCount = 0;                           //fifo长度
 
 void CWM_AP_dmlSensorDataOutput_listen(const dml_sensorData_t * pSdo) 
 {
-    if(AccdataCount < GSENSON_MSG_COUNT)
+    if(AccdataCount < 25)
     {
         if (pSdo->validData & DML_SENSOR_DATA_VALID_DT)
         {
@@ -1311,7 +1311,7 @@ int cywee_main_dml(void)
     scl.iData[0] = 1;
 #ifdef AP_ENABLE_DML_SDO_LISTEN
        scl.iData[2] = 2+16;    //分离式DML
-    CWM_CustomSensorInput_Fifo_Init(GSENSON_MSG_COUNT);
+    CWM_CustomSensorInput_Fifo_Init(25);
 #else
     scl.iData[1] = 18; //00000000000000000000000000010010  高位在前
 #endif
@@ -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] = 25; //fifocount 先設定5    [1~25]
+    scl.iData[6] = GSENSON_MSG_COUNT; //fifocount 先設定5    [1~25]
     scl.iData[8] = 26; // for st sensor(52Hz)
 
     scl.iData[11] = 4; // G_INT_1
index 86223bd..f6ffc42 100644 (file)
@@ -2831,8 +2831,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(8,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
@@ -2847,51 +2875,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
     //   }\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
-      {\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
-      if(ii < 9)\r
-      {\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
+    // }\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
       //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