mbed library to connect to rfduino

Dependents:   RFDuino_example

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  {