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:
Fri Apr 03 12:51:03 2015 +0000
Revision:
5:bd26aba87b9b
Parent:
4:11a94d34ab58
Child:
6:8d68ac1bab97
MjHover derived MjHoverBase.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsujirushi 0:051e1e753af5 1 #include "MjHover.h"
matsujirushi 0:051e1e753af5 2
matsujirushi 0:051e1e753af5 3 namespace matsujirushi {
matsujirushi 0:051e1e753af5 4
matsujirushi 5:bd26aba87b9b 5 MjHover::MjHover(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n) : MjHoverBase(i2c, address, ts_n, reset_n)
matsujirushi 0:051e1e753af5 6 {
matsujirushi 1:8e9c00c59101 7 }
matsujirushi 1:8e9c00c59101 8
matsujirushi 1:8e9c00c59101 9 void MjHover::begin()
matsujirushi 1:8e9c00c59101 10 {
matsujirushi 5:bd26aba87b9b 11 this->Reset();
matsujirushi 1:8e9c00c59101 12 }
matsujirushi 1:8e9c00c59101 13
matsujirushi 1:8e9c00c59101 14 void MjHover::setRelease()
matsujirushi 1:8e9c00c59101 15 {
matsujirushi 1:8e9c00c59101 16 }
matsujirushi 1:8e9c00c59101 17
matsujirushi 1:8e9c00c59101 18 bool MjHover::getStatus()
matsujirushi 1:8e9c00c59101 19 {
matsujirushi 5:bd26aba87b9b 20 if (this->DataAvailable())
matsujirushi 1:8e9c00c59101 21 {
matsujirushi 1:8e9c00c59101 22 return false;
matsujirushi 1:8e9c00c59101 23 }
matsujirushi 1:8e9c00c59101 24 return true;
matsujirushi 1:8e9c00c59101 25 }
matsujirushi 1:8e9c00c59101 26
matsujirushi 1:8e9c00c59101 27 uint8_t MjHover::getEvent()
matsujirushi 1:8e9c00c59101 28 {
matsujirushi 5:bd26aba87b9b 29 uint8_t id;
matsujirushi 5:bd26aba87b9b 30 uint8_t payload[255 - 4];
matsujirushi 5:bd26aba87b9b 31 uint8_t readPayloadSize;
matsujirushi 5:bd26aba87b9b 32 if (!ReadMessage(&id, payload, sizeof (payload), &readPayloadSize))
matsujirushi 2:46cf70365584 33 {
matsujirushi 5:bd26aba87b9b 34 return 0x00;
matsujirushi 2:46cf70365584 35 }
matsujirushi 2:46cf70365584 36
matsujirushi 1:8e9c00c59101 37 uint8_t data;
matsujirushi 1:8e9c00c59101 38 uint8_t event;
matsujirushi 5:bd26aba87b9b 39 for (int c = 4; c < 18; c++)
matsujirushi 1:8e9c00c59101 40 {
matsujirushi 5:bd26aba87b9b 41 data = payload[c - 4];
matsujirushi 2:46cf70365584 42
matsujirushi 1:8e9c00c59101 43 if (c == 10 && data > 1)
matsujirushi 1:8e9c00c59101 44 {
matsujirushi 1:8e9c00c59101 45 event = (0x01 << (data - 1)) | 0x20;
matsujirushi 1:8e9c00c59101 46 return event;
matsujirushi 1:8e9c00c59101 47 }
matsujirushi 1:8e9c00c59101 48 if (c == 14 && data > 0x1f)
matsujirushi 1:8e9c00c59101 49 {
matsujirushi 1:8e9c00c59101 50 event = ((data & 0xe0) >> 5) | 0x40;
matsujirushi 1:8e9c00c59101 51 return event;
matsujirushi 1:8e9c00c59101 52 }
matsujirushi 1:8e9c00c59101 53 if (c == 15 && data > 0)
matsujirushi 1:8e9c00c59101 54 {
matsujirushi 1:8e9c00c59101 55 event = ((data & 0x03) << 3) | 0x40;
matsujirushi 1:8e9c00c59101 56 return event;
matsujirushi 1:8e9c00c59101 57 }
matsujirushi 1:8e9c00c59101 58 }
matsujirushi 1:8e9c00c59101 59
matsujirushi 1:8e9c00c59101 60 return 0x00;
matsujirushi 1:8e9c00c59101 61 }
matsujirushi 1:8e9c00c59101 62
matsujirushi 1:8e9c00c59101 63 const char* MjHover::getEventString(uint8_t eventByte)
matsujirushi 1:8e9c00c59101 64 {
matsujirushi 1:8e9c00c59101 65 switch (eventByte)
matsujirushi 1:8e9c00c59101 66 {
matsujirushi 1:8e9c00c59101 67 case 0x22:
matsujirushi 1:8e9c00c59101 68 return "Right Swipe";
matsujirushi 1:8e9c00c59101 69 case 0x24:
matsujirushi 1:8e9c00c59101 70 return "Left Swipe";
matsujirushi 1:8e9c00c59101 71 case 0x28:
matsujirushi 1:8e9c00c59101 72 return "Up Swipe";
matsujirushi 1:8e9c00c59101 73 case 0x30:
matsujirushi 1:8e9c00c59101 74 return "Down Swipe";
matsujirushi 1:8e9c00c59101 75 case 0x41:
matsujirushi 1:8e9c00c59101 76 return "Tap South";
matsujirushi 1:8e9c00c59101 77 case 0x42:
matsujirushi 1:8e9c00c59101 78 return "Tap West";
matsujirushi 1:8e9c00c59101 79 case 0x50:
matsujirushi 1:8e9c00c59101 80 return "Tap Center";
matsujirushi 1:8e9c00c59101 81 case 0x48:
matsujirushi 1:8e9c00c59101 82 return "Tap East";
matsujirushi 1:8e9c00c59101 83 case 0x44:
matsujirushi 1:8e9c00c59101 84 return "Tap North";
matsujirushi 1:8e9c00c59101 85 default:
matsujirushi 1:8e9c00c59101 86 return "";
matsujirushi 1:8e9c00c59101 87 }
matsujirushi 0:051e1e753af5 88 }
matsujirushi 0:051e1e753af5 89
matsujirushi 0:051e1e753af5 90 } // namespace matsujirushi
matsujirushi 0:051e1e753af5 91
matsujirushi 0:051e1e753af5 92
matsujirushi 2:46cf70365584 93
matsujirushi 3:b03009537d66 94