ECE 4180 final project. Used to connected with both Adafruit Huzzah WiFi and Adafruit Bluetooth LE UART.

Dependents:   WirelessInterface_Demo

Committer:
gboggs3
Date:
Sun Apr 24 18:20:01 2016 +0000
Revision:
0:ee4d2deea4be
Initial Commit

Who changed what in which revision?

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