Hover!( Microchip MGC3130 ) library. Now, it is development version. http://www.hoverlabs.co/#hover https://www.switch-science.com/catalog/2124/
MjHover.cpp@6:8d68ac1bab97, 2015-04-03 (annotated)
- Committer:
- matsujirushi
- Date:
- Fri Apr 03 13:56:44 2015 +0000
- Revision:
- 6:8d68ac1bab97
- Parent:
- 5:bd26aba87b9b
- Child:
- 7:a3b72910732d
Little modify.
Who changed what in which revision?
User | Revision | Line number | New 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 | 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 | 5:bd26aba87b9b | 21 | if (this->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 | 5:bd26aba87b9b | 33 | if (!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 | |
matsujirushi | 0:051e1e753af5 | 93 | |
matsujirushi | 2:46cf70365584 | 94 | |
matsujirushi | 3:b03009537d66 | 95 | |
matsujirushi | 6:8d68ac1bab97 | 96 |