Hover!( Microchip MGC3130 ) library. Now, it is development version. http://www.hoverlabs.co/#hover https://www.switch-science.com/catalog/2124/

Dependents:   MjHover_Hello

Committer:
matsujirushi
Date:
Sat Apr 04 14:51:27 2015 +0000
Revision:
7:a3b72910732d
Parent:
6:8d68ac1bab97
Added MjHover2 class.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsujirushi 0:051e1e753af5 1 #ifndef MJ_HOVER_H
matsujirushi 0:051e1e753af5 2 #define MJ_HOVER_H
matsujirushi 0:051e1e753af5 3
matsujirushi 0:051e1e753af5 4 #include "mbed.h"
matsujirushi 0:051e1e753af5 5
matsujirushi 2:46cf70365584 6 using namespace std;
matsujirushi 2:46cf70365584 7
matsujirushi 0:051e1e753af5 8 namespace matsujirushi {
matsujirushi 0:051e1e753af5 9
matsujirushi 3:b03009537d66 10 class MjHoverBase
matsujirushi 3:b03009537d66 11 {
matsujirushi 3:b03009537d66 12 public:
matsujirushi 3:b03009537d66 13 MjHoverBase(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n);
matsujirushi 3:b03009537d66 14
matsujirushi 3:b03009537d66 15 void Reset();
matsujirushi 3:b03009537d66 16
matsujirushi 3:b03009537d66 17 bool DataAvailable() const
matsujirushi 3:b03009537d66 18 {
matsujirushi 3:b03009537d66 19 return this->ts_n->read() ? false : true;
matsujirushi 3:b03009537d66 20 }
matsujirushi 3:b03009537d66 21
matsujirushi 3:b03009537d66 22 bool WriteMessage(uint8_t id, const uint8_t* payload, uint8_t payloadSize);
matsujirushi 3:b03009537d66 23 bool ReadMessage(uint8_t* id, uint8_t* payload, uint8_t payloadSize, uint8_t* readPayloadSize);
matsujirushi 3:b03009537d66 24
matsujirushi 3:b03009537d66 25 private:
matsujirushi 3:b03009537d66 26 I2C *i2c;
matsujirushi 3:b03009537d66 27 uint8_t address;
matsujirushi 3:b03009537d66 28 DigitalInOut* ts_n; // I/O Transfer Status
matsujirushi 3:b03009537d66 29 DigitalInOut* reset_n; // O Master Clear#
matsujirushi 3:b03009537d66 30
matsujirushi 3:b03009537d66 31 void BeginRead()
matsujirushi 3:b03009537d66 32 {
matsujirushi 3:b03009537d66 33 this->ts_n->output();
matsujirushi 3:b03009537d66 34 this->ts_n->write(0);
matsujirushi 3:b03009537d66 35 }
matsujirushi 3:b03009537d66 36 void EndRead()
matsujirushi 3:b03009537d66 37 {
matsujirushi 3:b03009537d66 38 this->ts_n->input();
matsujirushi 5:bd26aba87b9b 39 wait_us(100);
matsujirushi 3:b03009537d66 40 }
matsujirushi 3:b03009537d66 41
matsujirushi 3:b03009537d66 42 };
matsujirushi 3:b03009537d66 43
matsujirushi 6:8d68ac1bab97 44 class MjHover : private MjHoverBase
matsujirushi 0:051e1e753af5 45 {
matsujirushi 0:051e1e753af5 46 public:
matsujirushi 5:bd26aba87b9b 47 MjHover(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n);
matsujirushi 1:8e9c00c59101 48 void begin();
matsujirushi 1:8e9c00c59101 49 void setRelease();
matsujirushi 1:8e9c00c59101 50 bool getStatus();
matsujirushi 1:8e9c00c59101 51 uint8_t getEvent();
matsujirushi 1:8e9c00c59101 52 static const char* getEventString(uint8_t eventByte);
matsujirushi 0:051e1e753af5 53
matsujirushi 0:051e1e753af5 54 };
matsujirushi 0:051e1e753af5 55
matsujirushi 7:a3b72910732d 56 class MjHover2 : private MjHoverBase
matsujirushi 7:a3b72910732d 57 {
matsujirushi 7:a3b72910732d 58 public:
matsujirushi 7:a3b72910732d 59 enum GestureInfoType
matsujirushi 7:a3b72910732d 60 {
matsujirushi 7:a3b72910732d 61 FLICK_WEST_TO_EAST ,
matsujirushi 7:a3b72910732d 62 FLICK_EAST_TO_WEST ,
matsujirushi 7:a3b72910732d 63 FLICK_SOUTH_TO_NORTH ,
matsujirushi 7:a3b72910732d 64 FLICK_NORTH_TO_SOUTH ,
matsujirushi 7:a3b72910732d 65 EDGE_FLICK_WEST_TO_EAST ,
matsujirushi 7:a3b72910732d 66 EDGE_FLICK_EAST_TO_WEST ,
matsujirushi 7:a3b72910732d 67 EDGE_FLICK_SOUTH_TO_NORTH,
matsujirushi 7:a3b72910732d 68 EDGE_FLICK_NORTH_TO_SOUTH,
matsujirushi 7:a3b72910732d 69 };
matsujirushi 7:a3b72910732d 70 enum TouchInfoType
matsujirushi 7:a3b72910732d 71 {
matsujirushi 7:a3b72910732d 72 TOUCH_SOUTH = 0x00000001,
matsujirushi 7:a3b72910732d 73 TOUCH_WEST = 0x00000002,
matsujirushi 7:a3b72910732d 74 TOUCH_NORTH = 0x00000004,
matsujirushi 7:a3b72910732d 75 TOUCH_EAST = 0x00000008,
matsujirushi 7:a3b72910732d 76 TOUCH_CENTER = 0x00000010,
matsujirushi 7:a3b72910732d 77 TAP_SOUTH = 0x00000020,
matsujirushi 7:a3b72910732d 78 TAP_WEST = 0x00000040,
matsujirushi 7:a3b72910732d 79 TAP_NORTH = 0x00000080,
matsujirushi 7:a3b72910732d 80 TAP_EAST = 0x00000100,
matsujirushi 7:a3b72910732d 81 TAP_CENTER = 0x00000200,
matsujirushi 7:a3b72910732d 82 DOUBLE_TAP_SOUTH = 0x00000400,
matsujirushi 7:a3b72910732d 83 DOUBLE_TAP_WEST = 0x00000800,
matsujirushi 7:a3b72910732d 84 DOUBLE_TAP_NORTH = 0x00001000,
matsujirushi 7:a3b72910732d 85 DOUBLE_TAP_EAST = 0x00002000,
matsujirushi 7:a3b72910732d 86 DOUBLE_TAP_CENTER = 0x00004000,
matsujirushi 7:a3b72910732d 87 };
matsujirushi 7:a3b72910732d 88 struct XyzPositionType
matsujirushi 7:a3b72910732d 89 {
matsujirushi 7:a3b72910732d 90 uint16_t X;
matsujirushi 7:a3b72910732d 91 uint16_t Y;
matsujirushi 7:a3b72910732d 92 uint16_t Z;
matsujirushi 7:a3b72910732d 93 };
matsujirushi 7:a3b72910732d 94 struct
matsujirushi 7:a3b72910732d 95 {
matsujirushi 7:a3b72910732d 96 bool GestureInfoValid;
matsujirushi 7:a3b72910732d 97 GestureInfoType GestureInfo;
matsujirushi 7:a3b72910732d 98
matsujirushi 7:a3b72910732d 99 bool TouchInfoValid;
matsujirushi 7:a3b72910732d 100 TouchInfoType TouchInfo;
matsujirushi 7:a3b72910732d 101
matsujirushi 7:a3b72910732d 102 bool XyzPositionValid;
matsujirushi 7:a3b72910732d 103 XyzPositionType XyzPosition;
matsujirushi 7:a3b72910732d 104 }
matsujirushi 7:a3b72910732d 105 SensorData;
matsujirushi 7:a3b72910732d 106
matsujirushi 7:a3b72910732d 107
matsujirushi 7:a3b72910732d 108 MjHover2(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n);
matsujirushi 7:a3b72910732d 109 void Reset();
matsujirushi 7:a3b72910732d 110 void Task();
matsujirushi 7:a3b72910732d 111 };
matsujirushi 7:a3b72910732d 112
matsujirushi 0:051e1e753af5 113 } // namespace matsujirushi
matsujirushi 0:051e1e753af5 114
matsujirushi 0:051e1e753af5 115 #endif
matsujirushi 2:46cf70365584 116
matsujirushi 3:b03009537d66 117
matsujirushi 3:b03009537d66 118
matsujirushi 5:bd26aba87b9b 119
matsujirushi 7:a3b72910732d 120