mbed library to connect to rfduino
Diff: RFDuino.cpp
- Revision:
- 2:effa15a46f51
- Parent:
- 0:af5f495861b2
- Child:
- 3:aac9193b7fd3
--- a/RFDuino.cpp Mon Jan 06 15:58:07 2014 +0000 +++ b/RFDuino.cpp Tue Jan 07 23:21:04 2014 +0000 @@ -1,13 +1,18 @@ #include "RFDuino.h" +/** RFDuino is used for connecting an mbed to rfduino + * + */ + //Commands #define HANDSHAKE 0x11 #define CONNECTED 0x22 #define TRANSMIT 0x33 #define RECEIVE 0x44 - - +/** Initializes RFDuino. Configures Pins tx and rx for serial communication + * and creats associated ISR + */ RFDuino::RFDuino(PinName tx, PinName rx): rfd(tx,rx) { //init dataFlag=false; @@ -17,8 +22,12 @@ -//rfduino seems to take a few seconds to be ready -//for serial comm + /** handshake() + * + * @returns + * 1 on succesfull RFDuino serial reply to Handshake command + * 0 on unsuccesfull RFDuino serial reply to Handshake command + */ bool RFDuino::handshake() { unsigned char temp = 0; __disable_irq(); @@ -35,10 +44,22 @@ } + /** dataReady() + * + * @returns + * 1 if RFDuino has unread data + * 0 if RFDuino does not have unread data + */ bool RFDuino::dataReady() { return dataFlag; } + /** isConnected() + * + * @returns + * 1 if the RFDuino has made a successful Bluetooth Connection + * 0 if the RFDuino has not made a successful Bluetooth Connection + */ bool RFDuino::isConnected() { unsigned char temp; __disable_irq(); @@ -46,7 +67,6 @@ rfd.putc(CONNECTED); temp = rfd.getc(); - __enable_irq(); return temp; } @@ -54,7 +74,11 @@ -//needs to be less than 255 bytes + /** transmit(buff, len) + * + * @param buff pointer to a byte buffer + * @param len length of byte buffer to transmit + */ void RFDuino::transmit(unsigned char* buff, int len) { int i; __disable_irq(); @@ -69,15 +93,26 @@ __enable_irq(); } - + /** copyData(buff, size) + * + * @param buff pointer to a byte buffer + * @param size size of buffer to copy data into + * + * @return size of data in RFDuino buffer + */ int RFDuino::copyData(unsigned char* buff, int size) { + __disable_irq(); memcpy(buff, data.buff, size/*data.len*/); + __enable_irq(); dataFlag = false; return data.len; } + /** receiv_isr + *Serial ISR. Checks for Receive command, and reads data into buffer + */ void RFDuino::receive_isr() { if(rfd.getc() == RECEIVE) { @@ -85,8 +120,6 @@ for(int i=0;i<data.len;i++) { data.buff[i] = rfd.getc(); } - //handshake - //rfd.putc(HANDSHAKE); dataFlag=true; } else {