xbee communication for UWB quadcopter project Originally by Greg Abdo Forking to reduce impact of interrupt by moving packetbuilder out of the interrupt and letting be handled in the main loop

Fork of com by Prosper Van

Revision:
5:7cdf299ea7a4
Parent:
4:f8e953201251
Child:
6:4d96c8776442
--- a/com.cpp	Tue Apr 22 05:43:33 2014 +0000
+++ b/com.cpp	Tue Apr 22 06:28:49 2014 +0000
@@ -31,6 +31,7 @@
     xbeeTx.baud(BAUDRATE);                    // Setup the serial baud rate.
     xbeeRx.baud(BAUDRATE);                    // Setup the serial baud rate.
     rxBuffer = new queue();                 // Point to the rxQueue.
+    txBuffer = new queue();
     signalStrength = 0;
     xbeeRx.attach( this, &com::callback );    // Set callback as the interrupt handler. 
     #ifdef DEBUG
@@ -95,20 +96,25 @@
     }
 }
 
-/*************************** char read()  ********************************/
+/*************************** char ackCheck()  ********************************/
 /*                                                                       */
 /*************************************************************************/
 
 void com::ackCheck()
 {
-    if( !txBuffer->isEmpty())
+    if( !txBuffer->isEmpty() && xbeeTx.writeable())
     {
-        short * pkt = rxBuffer->pop();
-        write(pkt[0],pkt[1]);
+        short * pkt = txBuffer->pop();
+        write(pkt[0],pkt[1]); //may need to disable interrupt
+        delete[] pkt;
     }
         
 }
 
+bool com::rdy2ack()
+{
+    return !txBuffer->isEmpty();
+}
 
 /*************************** char read()  ********************************/
 /*                                                                       */