http://wiki.seeed.cc/Grove-Gesture_v1.0/

Committer:
matsujirushi
Date:
Mon Dec 18 13:48:31 2017 +0900
Revision:
0:ea8f1bb16afc
1st commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsujirushi 0:ea8f1bb16afc 1 #pragma once
matsujirushi 0:ea8f1bb16afc 2
matsujirushi 0:ea8f1bb16afc 3 class PAJ7620U2 {
matsujirushi 0:ea8f1bb16afc 4
matsujirushi 0:ea8f1bb16afc 5 private:
matsujirushi 0:ea8f1bb16afc 6 I2C* _I2c;
matsujirushi 0:ea8f1bb16afc 7 uint8_t _SlaveAddress;
matsujirushi 0:ea8f1bb16afc 8 bool _Initialized;
matsujirushi 0:ea8f1bb16afc 9
matsujirushi 0:ea8f1bb16afc 10 struct RegisterAddressValue {
matsujirushi 0:ea8f1bb16afc 11 uint8_t Address;
matsujirushi 0:ea8f1bb16afc 12 uint8_t Value;
matsujirushi 0:ea8f1bb16afc 13 };
matsujirushi 0:ea8f1bb16afc 14 static const RegisterAddressValue _InitRegisterArray[];
matsujirushi 0:ea8f1bb16afc 15
matsujirushi 0:ea8f1bb16afc 16 private:
matsujirushi 0:ea8f1bb16afc 17 bool RegisterWrite(uint8_t address, uint8_t value);
matsujirushi 0:ea8f1bb16afc 18 bool RegisterWrite(uint8_t address, const uint8_t* data, int dataSize);
matsujirushi 0:ea8f1bb16afc 19 bool RegisterRead(uint8_t address, uint8_t* value);
matsujirushi 0:ea8f1bb16afc 20 bool RegisterRead(uint8_t address, uint8_t* data, int dataSize);
matsujirushi 0:ea8f1bb16afc 21
matsujirushi 0:ea8f1bb16afc 22 public:
matsujirushi 0:ea8f1bb16afc 23 // enum GestureFlag : uint16_t { // [Warning] scoped enums only available with -std=c++11 or -std=gnu++11
matsujirushi 0:ea8f1bb16afc 24 enum GestureFlag {
matsujirushi 0:ea8f1bb16afc 25 GESTURE_NONE = 0x0000,
matsujirushi 0:ea8f1bb16afc 26 GESTURE_RIGHT = 0x0001,
matsujirushi 0:ea8f1bb16afc 27 GESTURE_LEFT = 0x0002,
matsujirushi 0:ea8f1bb16afc 28 GESTURE_UP = 0x0004,
matsujirushi 0:ea8f1bb16afc 29 GESTURE_DOWN = 0x0008,
matsujirushi 0:ea8f1bb16afc 30 GESTURE_FORWARD = 0x0010,
matsujirushi 0:ea8f1bb16afc 31 GESTURE_BACKWARD = 0x0020,
matsujirushi 0:ea8f1bb16afc 32 GESTURE_CLOCKWISE = 0x0040,
matsujirushi 0:ea8f1bb16afc 33 GESTURE_COUNTER_CLOCKWISE = 0x0080,
matsujirushi 0:ea8f1bb16afc 34 GESTURE_WAVE = 0x0100,
matsujirushi 0:ea8f1bb16afc 35 };
matsujirushi 0:ea8f1bb16afc 36
matsujirushi 0:ea8f1bb16afc 37 public:
matsujirushi 0:ea8f1bb16afc 38 PAJ7620U2(I2C* i2c, uint8_t address);
matsujirushi 0:ea8f1bb16afc 39 bool Init();
matsujirushi 0:ea8f1bb16afc 40 bool GetGesture(GestureFlag* flag);
matsujirushi 0:ea8f1bb16afc 41
matsujirushi 0:ea8f1bb16afc 42 };