The MGC3130 is the world’s first electrical-field (E-field) based three-dimensional (3D) tracking and gesture controller

Dependencies:   BufferedArray

Dependents:   NucleoMGC3130 i2c_master

Committer:
yangcq88517
Date:
Wed Oct 07 20:43:39 2015 +0000
Revision:
1:621c4e9238ef
Child:
2:c7d984193741
add new functions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangcq88517 1:621c4e9238ef 1 #ifndef UK_AC_HERTS_SMARTLAB_MGC3130_GestuerInfo
yangcq88517 1:621c4e9238ef 2 #define UK_AC_HERTS_SMARTLAB_MGC3130_GestuerInfo
yangcq88517 1:621c4e9238ef 3
yangcq88517 1:621c4e9238ef 4 class GestureInfo
yangcq88517 1:621c4e9238ef 5 {
yangcq88517 1:621c4e9238ef 6 private:
yangcq88517 1:621c4e9238ef 7 char * data;
yangcq88517 1:621c4e9238ef 8 public:
yangcq88517 1:621c4e9238ef 9
yangcq88517 1:621c4e9238ef 10 void set(char * value) {
yangcq88517 1:621c4e9238ef 11 data = value;
yangcq88517 1:621c4e9238ef 12 }
yangcq88517 1:621c4e9238ef 13
yangcq88517 1:621c4e9238ef 14 /*
yangcq88517 1:621c4e9238ef 15 NoGesture = 0,
yangcq88517 1:621c4e9238ef 16 GarbageModel = 1,
yangcq88517 1:621c4e9238ef 17 FlickWestToEast = 2,
yangcq88517 1:621c4e9238ef 18 FlickEastToWest = 3,
yangcq88517 1:621c4e9238ef 19 FlickSouthToNorth = 4,
yangcq88517 1:621c4e9238ef 20 FlickNorthToSouth = 5,
yangcq88517 1:621c4e9238ef 21 CircleClockwise = 6, //only active if AirWheel disabled
yangcq88517 1:621c4e9238ef 22 CircleCounterclockwise = 7, //only active if AirWheel disabled
yangcq88517 1:621c4e9238ef 23 WaveX = 8,
yangcq88517 1:621c4e9238ef 24 WaveY = 9,
yangcq88517 1:621c4e9238ef 25 Hold= 64,
yangcq88517 1:621c4e9238ef 26 Presence = 73,
yangcq88517 1:621c4e9238ef 27 EdgeFlickWestToEast = 65,
yangcq88517 1:621c4e9238ef 28 EdgeFlickEastToWest = 66,
yangcq88517 1:621c4e9238ef 29 EdgeFlickSouthToNorth = 67,
yangcq88517 1:621c4e9238ef 30 EdgeFlickNorthToSouth = 68,
yangcq88517 1:621c4e9238ef 31 DoubleFlickWestToEast = 69,
yangcq88517 1:621c4e9238ef 32 DoubleFlickEastToWest = 70,
yangcq88517 1:621c4e9238ef 33 DoubleFlickSouthToNorth = 71,
yangcq88517 1:621c4e9238ef 34 DoubleFlickNorthToSouth = 72,
yangcq88517 1:621c4e9238ef 35 */
yangcq88517 1:621c4e9238ef 36 int getRecognizedGesture() {
yangcq88517 1:621c4e9238ef 37 return data[0];
yangcq88517 1:621c4e9238ef 38 }
yangcq88517 1:621c4e9238ef 39
yangcq88517 1:621c4e9238ef 40 /*
yangcq88517 1:621c4e9238ef 41 GarbageModel = 0,
yangcq88517 1:621c4e9238ef 42 FlickGesture = 1,
yangcq88517 1:621c4e9238ef 43 CirculaGesture = 2,
yangcq88517 1:621c4e9238ef 44 */
yangcq88517 1:621c4e9238ef 45 int getGestureClass() {
yangcq88517 1:621c4e9238ef 46 return (data[1] & 0xF0) >> 4;
yangcq88517 1:621c4e9238ef 47 }
yangcq88517 1:621c4e9238ef 48
yangcq88517 1:621c4e9238ef 49 //Edge flick – is ‘1’ if flick gesture is classified as edge flick
yangcq88517 1:621c4e9238ef 50 bool isEdgeFlick() {
yangcq88517 1:621c4e9238ef 51 return (data[2] & 0x01) == 0x01? true: false;
yangcq88517 1:621c4e9238ef 52 }
yangcq88517 1:621c4e9238ef 53
yangcq88517 1:621c4e9238ef 54 bool isHandPresence() {
yangcq88517 1:621c4e9238ef 55 return (data[3] & 0x08) == 0x08? true: false;
yangcq88517 1:621c4e9238ef 56 }
yangcq88517 1:621c4e9238ef 57
yangcq88517 1:621c4e9238ef 58 bool isHandHold() {
yangcq88517 1:621c4e9238ef 59 return (data[3] & 0x10) == 0x10? true: false;
yangcq88517 1:621c4e9238ef 60 }
yangcq88517 1:621c4e9238ef 61
yangcq88517 1:621c4e9238ef 62 bool isHandInside() {
yangcq88517 1:621c4e9238ef 63 return (data[3] & 0x20) == 0x20? true: false;
yangcq88517 1:621c4e9238ef 64 }
yangcq88517 1:621c4e9238ef 65
yangcq88517 1:621c4e9238ef 66 bool isRecognitionInProcess() {
yangcq88517 1:621c4e9238ef 67 return (data[3] & 0x80) == 0x80? true: false;
yangcq88517 1:621c4e9238ef 68 }
yangcq88517 1:621c4e9238ef 69 };
yangcq88517 1:621c4e9238ef 70
yangcq88517 1:621c4e9238ef 71 #endif