xbee communication for UWB quadcopter project

Dependencies:   PwmIn

Revision:
0:26a151d2c6db
Child:
1:4f53de75bc96
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/com.h	Wed Jan 08 07:32:30 2014 +0000
@@ -0,0 +1,48 @@
+/******************************* com.h ***********************************/
+/* Version: 1.0                                                          */
+/* Last Updated: June 1, 2013                                            */
+/*                                                                       */
+/* The com class implements reliable data transfer between two nodes     */
+/*using a checksum and a sequence number for guaranteed message delivery */
+/*over an xbee modem connected to the passed in tx and rx pins. Messages */
+/*are received and placed in the rxBuffer to be read when convenient.    */
+/*Messages are encoded by sending a byte with the value of the command   */
+/*then and int of the command.                                           */
+/* Alternative Pins  RX = PTA1,  TX PTA2                                 */
+/*************************************************************************/
+
+#ifndef COM_H
+#define COM_H
+#define RSSI_THRES          0.8
+
+#include "mbed.h"
+#include "queue.h"
+#include "PwmIn.h"
+
+const int BAUDRATE      = 38400;
+const int BUFFERSIZE    = 10;
+
+class com
+{  
+    public:
+        com( PinName, PinName, PinName );   // Setup the com serial port. (tx, rx)
+        bool isData();              // Is there data to be read?
+        bool isSignalGood();
+        void write( short, short ); // Write to the port.
+        short * read();             // Read from the queue.
+        
+    private:   
+        void callback();            // Handle the interrupts.
+        void packetBuilder();       // Called by callback to place commandes into the queue.
+        
+        char buffer[BUFFERSIZE];    // Buffer for holding serial data.
+        int bLength;                // Location in the buffer to place next data.
+        int signalStrength;
+        
+        Serial xbeeRx;                // tx - DIN, rx - DOUT
+        Serial xbeeTx;                // tx - DIN, rx - DOUT
+        queue *rxBuffer;            // queue of commands ready to be read.
+        PwmIn rssi;
+};
+
+#endif
\ No newline at end of file