优化运动心率 1347/2 1347/head 1348/target/2
authorpenglei <1624952103@qq.com>
Tue, 5 Nov 2024 13:06:59 +0000 (21:06 +0800)
committerpenglei <1624952103@qq.com>
Tue, 5 Nov 2024 13:06:59 +0000 (21:06 +0800)
code/sdk/drivers/peripheral/cywee/src/main_dml.c
code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c

index 8fd754a..4f65f70 100644 (file)
@@ -21,7 +21,7 @@
 
 #define AP_ENABLE_DML_SDO_LISTEN
 
-#define GSENSON_MSG_COUNT   16
+#define GSENSON_MSG_COUNT   64
 
 #define SLEEP_TIME_PATH "/user/userdata/sleep/%s/sleep_time.bin"
 #define SLEEP_STATUS_PATH "/user/userdata/sleep/%s/sleep_status.bin"
@@ -72,8 +72,6 @@ int history_fat_=0; //一小时前燃脂数据
 
 static char chipInfo[64] = {0};
 
-static int get_acc_swtich = 1;
-
 static int sedentary_interval = 1;
 
 static int sedentary_interval_count = 0;
@@ -447,7 +445,6 @@ void cywee_stop(void)
 
 void cywee_get_acc_switch(int cmd)
 {
-    get_acc_swtich = cmd;
 }
 
 void cywee_set_sedentary_switch(int cmd)
@@ -1047,8 +1044,6 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) {
         //                                            sensorEVT->fData[2]
         //                                             );
 
-        if(get_acc_swtich)
-        {
             if(num_falg==GSENSON_MSG_COUNT)
             {
                 left_falg++;
@@ -1072,7 +1067,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) {
                 //CWM_OS_dbgPrintf("write: x=%d, y=%d, z=%d\n", gxyz_t_queue[right_falg].x ,gxyz_t_queue[right_falg].y ,gxyz_t_queue[right_falg].z);
             
             }
-        }  
+        
             break;
 
         case IDX_GYRO:
@@ -1462,32 +1457,31 @@ void CWM_AP_dmlSensorDataOutput_listen(const dml_sensorData_t * pSdo)
             gxyz_t.y = pSdo->acc_data[1];
             gxyz_t.z = pSdo->acc_data[2];
 
-            if(get_acc_swtich)
+  
+            if(num_falg==GSENSON_MSG_COUNT)
             {
-                if(num_falg==GSENSON_MSG_COUNT)
-                {
-                    left_falg++;
-                    right_falg++;
-                    right_falg=right_falg%GSENSON_MSG_COUNT;
-                    left_falg=left_falg%GSENSON_MSG_COUNT;
-                    gxyz_t_queue[right_falg].x= pSdo->acc_data[0];
-                    gxyz_t_queue[right_falg].y= pSdo->acc_data[1];
-                    gxyz_t_queue[right_falg].z= pSdo->acc_data[2];
-                }    
-                else 
-                {
-                    //left_falg++;
-                    right_falg++;
-                    right_falg=right_falg%GSENSON_MSG_COUNT;
-                    //left_falg=left_falg%16;
-                    num_falg++;
-                    gxyz_t_queue[right_falg].x= pSdo->acc_data[0];
-                    gxyz_t_queue[right_falg].y= pSdo->acc_data[1];
-                    gxyz_t_queue[right_falg].z= pSdo->acc_data[2];
-                    //CWM_OS_dbgPrintf("write: x=%d, y=%d, z=%d\n", gxyz_t_queue[right_falg].x ,gxyz_t_queue[right_falg].y ,gxyz_t_queue[right_falg].z);
-                
-                }
-            } 
+                left_falg++;
+                right_falg++;
+                right_falg=right_falg%GSENSON_MSG_COUNT;
+                left_falg=left_falg%GSENSON_MSG_COUNT;
+                gxyz_t_queue[right_falg].x= pSdo->acc_data[0];
+                gxyz_t_queue[right_falg].y= pSdo->acc_data[1];
+                gxyz_t_queue[right_falg].z= pSdo->acc_data[2];
+            }    
+            else 
+            {
+                //left_falg++;
+                right_falg++;
+                right_falg=right_falg%GSENSON_MSG_COUNT;
+                //left_falg=left_falg%16;
+                num_falg++;
+                gxyz_t_queue[right_falg].x= pSdo->acc_data[0];
+                gxyz_t_queue[right_falg].y= pSdo->acc_data[1];
+                gxyz_t_queue[right_falg].z= pSdo->acc_data[2];
+                //CWM_OS_dbgPrintf("write: x=%d, y=%d, z=%d\n", gxyz_t_queue[right_falg].x ,gxyz_t_queue[right_falg].y ,gxyz_t_queue[right_falg].z);
+            
+            }
+            
 
             AccdataCount++;
         }     
@@ -1687,7 +1681,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] = 16; //fifocount 先設定5    [1~25]
     scl.iData[8] = 26; // for st sensor(52Hz)
 
     scl.iData[11] = 4; // G_INT_1
index a15c054..c635fa6 100644 (file)
@@ -43,7 +43,7 @@ int16_t gsen_fifo_x[64]={0};
 int16_t gsen_fifo_y[64]={0};\r
 int16_t gsen_fifo_z[64]={0};\r
 \r
-gsenson_t gsensordata[8];\r
+gsenson_t gsensordata[9];\r
 \r
 static uint8_t msg_count = 0;\r
 \r
@@ -2830,9 +2830,9 @@ void hx3695_hrs_ppg_Int_handle(void)
     {\r
         return;\r
     }\r
-    memset(gsensordata,0.0f,sizeof(gsenson_t) * 8);\r
+    memset(gsensordata,0.0f,sizeof(gsenson_t) * *count);\r
 \r
-    gsensor_get_n_data(8,gsensordata);  \r
+    gsensor_get_n_data(*count,gsensordata);  \r
 \r
     for(ii=0; ii<*count; ii++)\r
     {\r
@@ -2850,7 +2850,8 @@ void hx3695_hrs_ppg_Int_handle(void)
       //     timeout = 0;\r
       //     acc_restart_flag = 0;\r
       // }\r
-      if(ii == 8)\r
+\r
+      if(gsensordata[ii].x == 0 && gsensordata[ii].y == 0 && gsensordata[ii].z == 0)\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