#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"
static char chipInfo[64] = {0};
-static int get_acc_swtich = 1;
-
static int sedentary_interval = 1;
static int sedentary_interval_count = 0;
void cywee_get_acc_switch(int cmd)
{
- get_acc_swtich = cmd;
}
void cywee_set_sedentary_switch(int cmd)
// sensorEVT->fData[2]
// );
- if(get_acc_swtich)
- {
if(num_falg==GSENSON_MSG_COUNT)
{
left_falg++;
//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:
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++;
}
#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
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
{\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
// 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