From 23d7089ec2ad7dce135a1490fcfb444b2af5749b Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Tue, 5 Nov 2024 21:06:59 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E8=BF=90=E5=8A=A8=E5=BF=83?= =?utf8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../drivers/peripheral/cywee/src/main_dml.c | 60 +++++++++---------- .../drivers/peripheral/ppg/hx3695/hx3695.c | 9 +-- 2 files changed, 32 insertions(+), 37 deletions(-) diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index 8fd754adb..4f65f7060 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -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 diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c index a15c054ae..c635fa6a6 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c @@ -43,7 +43,7 @@ int16_t gsen_fifo_x[64]={0}; int16_t gsen_fifo_y[64]={0}; int16_t gsen_fifo_z[64]={0}; -gsenson_t gsensordata[8]; +gsenson_t gsensordata[9]; static uint8_t msg_count = 0; @@ -2830,9 +2830,9 @@ void hx3695_hrs_ppg_Int_handle(void) { return; } - memset(gsensordata,0.0f,sizeof(gsenson_t) * 8); + memset(gsensordata,0.0f,sizeof(gsenson_t) * *count); - gsensor_get_n_data(8,gsensordata); + gsensor_get_n_data(*count,gsensordata); for(ii=0; ii<*count; ii++) { @@ -2850,7 +2850,8 @@ void hx3695_hrs_ppg_Int_handle(void) // timeout = 0; // acc_restart_flag = 0; // } - if(ii == 8) + + if(gsensordata[ii].x == 0 && gsensordata[ii].y == 0 && gsensordata[ii].z == 0) { gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1]; gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1]; -- 2.17.1