for(i=0; i < AXES; ++i) {
min_xyz[i] = 700;
max_xyz[i] = -700;
+ previous[i] = 0;
}
}
return -1;
}
-
return 0;
}
double sf[AXES] = {1,1,1};
BaseProcessor::process_input_events(events);
- if( mValues[0] > 550 && mValues[0] < 850) {
- return;
- }
for(i=0; i < AXES; ++i) {
+ // remove internal kernel driver selftest results !
+ if (fabs(previous[i]-mValues[i]) > 150 ) {
+ previous[i] = mValues[i];
+ return;
+ }
+ previous[i] = mValues[i];
if (min_xyz[i] > mValues[i] && mValues[i] != 0) {
min_xyz[i] = mValues[i];
}
if (max_xyz[i] < mValues[i] && mValues[i] != 0) {
max_xyz[i] = mValues[i];
}
+ temp[i] = max_xyz[i] - min_xyz[i];
}
- for(i=0; i < AXES; ++i) {
- temp[i] = max_xyz[i] - min_xyz[i];
- }
+
sf[0] = (temp[1]/temp[0]) > 1 ? (temp[1]/temp[0]) : 1;
sf[1] = (temp[0]/temp[1]) > 1 ? (temp[0]/temp[1]) : 1;
sf[2] = (temp[0]/temp[2]) > 1 ? (temp[0]/temp[2]) : 1;
for(i=0; i < AXES; ++i) {
offset[i] =((temp[i])/2-max_xyz[i])*sf[i];
- }
-
- for(i=0; i < AXES; ++i) {
mgval[i] = (mValues[i]+offset[i]) * sf[i];
}