xbee communication for UWB quadcopter project
Diff: com.h
- Revision:
- 0:26a151d2c6db
- Child:
- 1:4f53de75bc96
diff -r 000000000000 -r 26a151d2c6db com.h --- /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