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