Code to receive input from foot and hand module and sends data to computer as a key press
Dependencies: USBDevice XBee mbed
main.cpp@0:bd28c60507b2, 2017-04-24 (annotated)
- Committer:
- jgensel3
- Date:
- Mon Apr 24 04:15:13 2017 +0000
- Revision:
- 0:bd28c60507b2
recieves from foot and hand module
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jgensel3 | 0:bd28c60507b2 | 1 | #include "mbed.h" |
jgensel3 | 0:bd28c60507b2 | 2 | #include "XBee.h" |
jgensel3 | 0:bd28c60507b2 | 3 | #include "Wireless.h" |
jgensel3 | 0:bd28c60507b2 | 4 | #include "USBKeyboard.h" |
jgensel3 | 0:bd28c60507b2 | 5 | |
jgensel3 | 0:bd28c60507b2 | 6 | Serial pc(USBTX, USBRX); |
jgensel3 | 0:bd28c60507b2 | 7 | WirelessHost host(p28, p27); |
jgensel3 | 0:bd28c60507b2 | 8 | USBKeyboard keyboard; |
jgensel3 | 0:bd28c60507b2 | 9 | DigitalOut led1(LED1); |
jgensel3 | 0:bd28c60507b2 | 10 | |
jgensel3 | 0:bd28c60507b2 | 11 | WMessage_t message; |
jgensel3 | 0:bd28c60507b2 | 12 | |
jgensel3 | 0:bd28c60507b2 | 13 | int main() { |
jgensel3 | 0:bd28c60507b2 | 14 | int res; |
jgensel3 | 0:bd28c60507b2 | 15 | |
jgensel3 | 0:bd28c60507b2 | 16 | pc.printf("Xbee should be ready\r\n"); |
jgensel3 | 0:bd28c60507b2 | 17 | led1 = 1; |
jgensel3 | 0:bd28c60507b2 | 18 | while(1) { |
jgensel3 | 0:bd28c60507b2 | 19 | res = host.waitForMessage(&message); |
jgensel3 | 0:bd28c60507b2 | 20 | |
jgensel3 | 0:bd28c60507b2 | 21 | if (res >= 0) { |
jgensel3 | 0:bd28c60507b2 | 22 | switch (message.type) { |
jgensel3 | 0:bd28c60507b2 | 23 | case FOOT_STEP: |
jgensel3 | 0:bd28c60507b2 | 24 | printf("Foot: "); |
jgensel3 | 0:bd28c60507b2 | 25 | break; |
jgensel3 | 0:bd28c60507b2 | 26 | case HAND_GESTURE: |
jgensel3 | 0:bd28c60507b2 | 27 | printf("Hand: "); |
jgensel3 | 0:bd28c60507b2 | 28 | break; |
jgensel3 | 0:bd28c60507b2 | 29 | default: |
jgensel3 | 0:bd28c60507b2 | 30 | printf("[Unknown Type: %d]: ", message.type); |
jgensel3 | 0:bd28c60507b2 | 31 | } |
jgensel3 | 0:bd28c60507b2 | 32 | |
jgensel3 | 0:bd28c60507b2 | 33 | switch (message.direction) { |
jgensel3 | 0:bd28c60507b2 | 34 | case DIR_UP: |
jgensel3 | 0:bd28c60507b2 | 35 | //printf("UP"); |
jgensel3 | 0:bd28c60507b2 | 36 | keyboard.pressKey(UP_ARROW); |
jgensel3 | 0:bd28c60507b2 | 37 | break; |
jgensel3 | 0:bd28c60507b2 | 38 | case DIR_DOWN: |
jgensel3 | 0:bd28c60507b2 | 39 | //printf("DOWN"); |
jgensel3 | 0:bd28c60507b2 | 40 | keyboard.pressKey(DOWN_ARROW); |
jgensel3 | 0:bd28c60507b2 | 41 | break; |
jgensel3 | 0:bd28c60507b2 | 42 | case DIR_LEFT: |
jgensel3 | 0:bd28c60507b2 | 43 | //printf("LEFT"); |
jgensel3 | 0:bd28c60507b2 | 44 | keyboard.pressKey(LEFT_ARROW); |
jgensel3 | 0:bd28c60507b2 | 45 | break; |
jgensel3 | 0:bd28c60507b2 | 46 | case DIR_RIGHT: |
jgensel3 | 0:bd28c60507b2 | 47 | //printf("RIGHT"); |
jgensel3 | 0:bd28c60507b2 | 48 | keyboard.pressKey(RIGHT_ARROW); |
jgensel3 | 0:bd28c60507b2 | 49 | break; |
jgensel3 | 0:bd28c60507b2 | 50 | case DIR_NONE: |
jgensel3 | 0:bd28c60507b2 | 51 | //printf("NONE"); |
jgensel3 | 0:bd28c60507b2 | 52 | keyboard.releaseAllKeys(); |
jgensel3 | 0:bd28c60507b2 | 53 | break; |
jgensel3 | 0:bd28c60507b2 | 54 | case A_BUTTON: |
jgensel3 | 0:bd28c60507b2 | 55 | keyboard.pressKey('a'); |
jgensel3 | 0:bd28c60507b2 | 56 | wait(0.2); |
jgensel3 | 0:bd28c60507b2 | 57 | keyboard.releaseAllKeys(); |
jgensel3 | 0:bd28c60507b2 | 58 | break; |
jgensel3 | 0:bd28c60507b2 | 59 | case B_BUTTON: |
jgensel3 | 0:bd28c60507b2 | 60 | keyboard.pressKey('b'); |
jgensel3 | 0:bd28c60507b2 | 61 | wait(0.2); |
jgensel3 | 0:bd28c60507b2 | 62 | keyboard.releaseAllKeys(); |
jgensel3 | 0:bd28c60507b2 | 63 | break; |
jgensel3 | 0:bd28c60507b2 | 64 | default: |
jgensel3 | 0:bd28c60507b2 | 65 | printf("[Unknown Direction: %d]", message.direction); |
jgensel3 | 0:bd28c60507b2 | 66 | } |
jgensel3 | 0:bd28c60507b2 | 67 | printf("\r\n"); |
jgensel3 | 0:bd28c60507b2 | 68 | } else if (res == -99) { |
jgensel3 | 0:bd28c60507b2 | 69 | printf("Error: Error response from XBee\r\n"); |
jgensel3 | 0:bd28c60507b2 | 70 | } else if (res == -5) { |
jgensel3 | 0:bd28c60507b2 | 71 | printf("Received unexpected packet type from XBee, ignoring\r\n"); |
jgensel3 | 0:bd28c60507b2 | 72 | } else if (res == -10) { |
jgensel3 | 0:bd28c60507b2 | 73 | printf("Error: Received unknown packet format\r\n"); |
jgensel3 | 0:bd28c60507b2 | 74 | } else if (res != -1) { |
jgensel3 | 0:bd28c60507b2 | 75 | printf("Unknown error receiving message\r\n"); |
jgensel3 | 0:bd28c60507b2 | 76 | } |
jgensel3 | 0:bd28c60507b2 | 77 | } |
jgensel3 | 0:bd28c60507b2 | 78 | } |