ECE 4180 final project. Used to connected with both Adafruit Huzzah WiFi and Adafruit Bluetooth LE UART.
Dependents: WirelessInterface_Demo
BTFriend.cpp@0:ee4d2deea4be, 2016-04-24 (annotated)
- Committer:
- gboggs3
- Date:
- Sun Apr 24 18:20:01 2016 +0000
- Revision:
- 0:ee4d2deea4be
Initial Commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gboggs3 | 0:ee4d2deea4be | 1 | /*=================================================================== |
gboggs3 | 0:ee4d2deea4be | 2 | --------------------- BTFriend.cpp ---------------------- |
gboggs3 | 0:ee4d2deea4be | 3 | *Description |
gboggs3 | 0:ee4d2deea4be | 4 | |
gboggs3 | 0:ee4d2deea4be | 5 | Written for: |
gboggs3 | 0:ee4d2deea4be | 6 | Georgia Institute of Technology |
gboggs3 | 0:ee4d2deea4be | 7 | ECE 4180, Final Project |
gboggs3 | 0:ee4d2deea4be | 8 | Dr. James Hamblen |
gboggs3 | 0:ee4d2deea4be | 9 | |
gboggs3 | 0:ee4d2deea4be | 10 | Authors: |
gboggs3 | 0:ee4d2deea4be | 11 | Garren Boggs |
gboggs3 | 0:ee4d2deea4be | 12 | David Cox |
gboggs3 | 0:ee4d2deea4be | 13 | Anthony Jones |
gboggs3 | 0:ee4d2deea4be | 14 | Parth Patel |
gboggs3 | 0:ee4d2deea4be | 15 | ===================================================================*/ |
gboggs3 | 0:ee4d2deea4be | 16 | |
gboggs3 | 0:ee4d2deea4be | 17 | #include "mbed.h" |
gboggs3 | 0:ee4d2deea4be | 18 | #include "BTFriend.h" |
gboggs3 | 0:ee4d2deea4be | 19 | |
gboggs3 | 0:ee4d2deea4be | 20 | BTFriend :: BTFriend(PinName tx, PinName rx, PinName rst, RawSerial dev, int baudrate) : |
gboggs3 | 0:ee4d2deea4be | 21 | _cmd(tx, rx), _rst(rst), |
gboggs3 | 0:ee4d2deea4be | 22 | #if DEBUGMODE |
gboggs3 | 0:ee4d2deea4be | 23 | _dev(USBTX, USBRX) |
gboggs3 | 0:ee4d2deea4be | 24 | #else |
gboggs3 | 0:ee4d2deea4be | 25 | _dev(dev) |
gboggs3 | 0:ee4d2deea4be | 26 | #endif |
gboggs3 | 0:ee4d2deea4be | 27 | { |
gboggs3 | 0:ee4d2deea4be | 28 | _cmd.baud(baudrate); |
gboggs3 | 0:ee4d2deea4be | 29 | _dev.baud(baudrate); |
gboggs3 | 0:ee4d2deea4be | 30 | _cmd.attach(this, &BTFriend::send, Serial::RxIrq); |
gboggs3 | 0:ee4d2deea4be | 31 | _dev.attach(this, &BTFriend::recv, Serial::RxIrq); |
gboggs3 | 0:ee4d2deea4be | 32 | #if DEBUGMODE |
gboggs3 | 0:ee4d2deea4be | 33 | _dev.printf("Initialization of Bluetooth LE UART Friend complete!\n\r"); |
gboggs3 | 0:ee4d2deea4be | 34 | #endif |
gboggs3 | 0:ee4d2deea4be | 35 | } |
gboggs3 | 0:ee4d2deea4be | 36 | |
gboggs3 | 0:ee4d2deea4be | 37 | /** |
gboggs3 | 0:ee4d2deea4be | 38 | * |
gboggs3 | 0:ee4d2deea4be | 39 | * |
gboggs3 | 0:ee4d2deea4be | 40 | */ |
gboggs3 | 0:ee4d2deea4be | 41 | void BTFriend :: setLocalSerial(RawSerial cmd, int baud) |
gboggs3 | 0:ee4d2deea4be | 42 | { |
gboggs3 | 0:ee4d2deea4be | 43 | _cmd = cmd; |
gboggs3 | 0:ee4d2deea4be | 44 | _cmd.baud(baud); |
gboggs3 | 0:ee4d2deea4be | 45 | } |
gboggs3 | 0:ee4d2deea4be | 46 | |
gboggs3 | 0:ee4d2deea4be | 47 | /** |
gboggs3 | 0:ee4d2deea4be | 48 | * |
gboggs3 | 0:ee4d2deea4be | 49 | * |
gboggs3 | 0:ee4d2deea4be | 50 | */ |
gboggs3 | 0:ee4d2deea4be | 51 | void BTFriend :: setSerialDev(RawSerial dev, int baud) |
gboggs3 | 0:ee4d2deea4be | 52 | { |
gboggs3 | 0:ee4d2deea4be | 53 | _dev = dev; |
gboggs3 | 0:ee4d2deea4be | 54 | _dev.baud(baud); |
gboggs3 | 0:ee4d2deea4be | 55 | } |
gboggs3 | 0:ee4d2deea4be | 56 | |
gboggs3 | 0:ee4d2deea4be | 57 | /** |
gboggs3 | 0:ee4d2deea4be | 58 | * |
gboggs3 | 0:ee4d2deea4be | 59 | * |
gboggs3 | 0:ee4d2deea4be | 60 | */ |
gboggs3 | 0:ee4d2deea4be | 61 | RawSerial BTFriend :: getLocalSerial() |
gboggs3 | 0:ee4d2deea4be | 62 | { |
gboggs3 | 0:ee4d2deea4be | 63 | return _cmd; |
gboggs3 | 0:ee4d2deea4be | 64 | } |
gboggs3 | 0:ee4d2deea4be | 65 | |
gboggs3 | 0:ee4d2deea4be | 66 | /** |
gboggs3 | 0:ee4d2deea4be | 67 | * |
gboggs3 | 0:ee4d2deea4be | 68 | * |
gboggs3 | 0:ee4d2deea4be | 69 | */ |
gboggs3 | 0:ee4d2deea4be | 70 | RawSerial BTFriend :: getSerialDev() |
gboggs3 | 0:ee4d2deea4be | 71 | { |
gboggs3 | 0:ee4d2deea4be | 72 | return _dev; |
gboggs3 | 0:ee4d2deea4be | 73 | } |
gboggs3 | 0:ee4d2deea4be | 74 | |
gboggs3 | 0:ee4d2deea4be | 75 | |
gboggs3 | 0:ee4d2deea4be | 76 | /** |
gboggs3 | 0:ee4d2deea4be | 77 | * |
gboggs3 | 0:ee4d2deea4be | 78 | * |
gboggs3 | 0:ee4d2deea4be | 79 | */ |
gboggs3 | 0:ee4d2deea4be | 80 | void BTFriend :: reset() |
gboggs3 | 0:ee4d2deea4be | 81 | { |
gboggs3 | 0:ee4d2deea4be | 82 | _rst = 0; |
gboggs3 | 0:ee4d2deea4be | 83 | wait(0.5); |
gboggs3 | 0:ee4d2deea4be | 84 | _rst = 1; |
gboggs3 | 0:ee4d2deea4be | 85 | _dev.printf("\f\n\r-------------Bluetooth LE UART Friend Hardware Reset-------------\n\r"); |
gboggs3 | 0:ee4d2deea4be | 86 | } |
gboggs3 | 0:ee4d2deea4be | 87 | |
gboggs3 | 0:ee4d2deea4be | 88 | /** |
gboggs3 | 0:ee4d2deea4be | 89 | * |
gboggs3 | 0:ee4d2deea4be | 90 | * |
gboggs3 | 0:ee4d2deea4be | 91 | */ |
gboggs3 | 0:ee4d2deea4be | 92 | void BTFriend :: baudrate(int speed) |
gboggs3 | 0:ee4d2deea4be | 93 | { |
gboggs3 | 0:ee4d2deea4be | 94 | _cmd.baud(speed); |
gboggs3 | 0:ee4d2deea4be | 95 | } |
gboggs3 | 0:ee4d2deea4be | 96 | |
gboggs3 | 0:ee4d2deea4be | 97 | /** |
gboggs3 | 0:ee4d2deea4be | 98 | * |
gboggs3 | 0:ee4d2deea4be | 99 | * |
gboggs3 | 0:ee4d2deea4be | 100 | */ |
gboggs3 | 0:ee4d2deea4be | 101 | void BTFriend :: recv() |
gboggs3 | 0:ee4d2deea4be | 102 | { |
gboggs3 | 0:ee4d2deea4be | 103 | while(_dev.readable()) { |
gboggs3 | 0:ee4d2deea4be | 104 | _cmd.putc(_dev.getc()); |
gboggs3 | 0:ee4d2deea4be | 105 | } |
gboggs3 | 0:ee4d2deea4be | 106 | } |
gboggs3 | 0:ee4d2deea4be | 107 | |
gboggs3 | 0:ee4d2deea4be | 108 | |
gboggs3 | 0:ee4d2deea4be | 109 | /** |
gboggs3 | 0:ee4d2deea4be | 110 | * |
gboggs3 | 0:ee4d2deea4be | 111 | * |
gboggs3 | 0:ee4d2deea4be | 112 | */ |
gboggs3 | 0:ee4d2deea4be | 113 | void BTFriend :: send() |
gboggs3 | 0:ee4d2deea4be | 114 | { |
gboggs3 | 0:ee4d2deea4be | 115 | while(_cmd.readable()) { |
gboggs3 | 0:ee4d2deea4be | 116 | _dev.putc(_cmd.getc()); |
gboggs3 | 0:ee4d2deea4be | 117 | } |
gboggs3 | 0:ee4d2deea4be | 118 | } |
gboggs3 | 0:ee4d2deea4be | 119 | |
gboggs3 | 0:ee4d2deea4be | 120 | |
gboggs3 | 0:ee4d2deea4be | 121 | |
gboggs3 | 0:ee4d2deea4be | 122 |