Code to receive input from foot and hand module and sends data to computer as a key press

Dependencies:   USBDevice XBee mbed

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?

UserRevisionLine numberNew 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 }