getGesture method
Returns the actual detected gesture.
Implementation
Gesture getGesture() {
var gesture = Gesture.nothing;
switch (i2c.readByteReg(paj7620Id, 0x43)) {
case gesRightFlag:
sleep(Duration(milliseconds: gestureReactionTime));
var data = i2c.readByteReg(paj7620Id, 0x43);
if (data == gesLeftFlag) {
gesture = Gesture.rightLeft;
} else if (data == gesForwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.forward;
} else if (data == gesBackwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.backward;
} else {
gesture = Gesture.right;
}
return gesture;
case gesLeftFlag:
sleep(Duration(milliseconds: gestureReactionTime));
var data = i2c.readByteReg(paj7620Id, 0x43);
if (data == gesRightFlag) {
gesture = Gesture.leftRight;
} else if (data == gesForwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.forward;
} else if (data == gesBackwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.backward;
} else {
gesture = Gesture.left;
}
return gesture;
case gesUpFLag:
sleep(Duration(milliseconds: gestureReactionTime));
var data = i2c.readByteReg(paj7620Id, 0x43);
if (data == gesDownFlag) {
gesture = Gesture.upDown;
} else if (data == gesForwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.forward;
} else if (data == gesBackwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.backward;
} else {
gesture = Gesture.up;
}
return gesture;
case gesDownFlag:
sleep(Duration(milliseconds: gestureReactionTime));
var data = i2c.readByteReg(paj7620Id, 0x43);
if (data == gesUpFLag) {
gesture = Gesture.downUp;
} else if (data == gesForwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.forward;
} else if (data == gesBackwardFlag) {
sleep(Duration(milliseconds: gestureQuitTime));
gesture = Gesture.backward;
} else {
gesture = Gesture.down;
}
return gesture;
case gesForwardFlag:
sleep(Duration(milliseconds: gestureReactionTime));
var data = i2c.readByteReg(paj7620Id, 0x43);
if (data == gesBackwardFlag) {
gesture = Gesture.forwardBackward;
} else {
gesture = Gesture.forward;
}
sleep(Duration(milliseconds: gestureQuitTime));
return gesture;
case gesBackwardFlag:
sleep(Duration(milliseconds: gestureReactionTime));
var data = i2c.readByteReg(paj7620Id, 0x43);
if (data == gesForwardFlag) {
gesture = Gesture.backwardForward;
} else {
gesture = Gesture.backward;
}
sleep(Duration(milliseconds: gestureQuitTime));
return gesture;
case gesClockwiseFlag:
return Gesture.clockwise;
case gesCountClockwiseFlag:
return Gesture.antiClockwise;
default:
var data = i2c.readByteReg(paj7620Id, 0x44);
if (data == gesWaveFlag) {
Gesture.wave;
} else {
return Gesture.nothing;
}
break;
}
return Gesture.nothing;
}