xbee communication for UWB quadcopter project

Dependencies:   PwmIn

Committer:
oprospero
Date:
Wed Jan 08 07:32:30 2014 +0000
Revision:
0:26a151d2c6db
Child:
1:4f53de75bc96
Create two serial instance for Rx and Tx

Who changed what in which revision?

UserRevisionLine numberNew contents of line
oprospero 0:26a151d2c6db 1 /******************************* com.h ***********************************/
oprospero 0:26a151d2c6db 2 /* Version: 1.0 */
oprospero 0:26a151d2c6db 3 /* Last Updated: June 1, 2013 */
oprospero 0:26a151d2c6db 4 /* */
oprospero 0:26a151d2c6db 5 /* The com class implements reliable data transfer between two nodes */
oprospero 0:26a151d2c6db 6 /*using a checksum and a sequence number for guaranteed message delivery */
oprospero 0:26a151d2c6db 7 /*over an xbee modem connected to the passed in tx and rx pins. Messages */
oprospero 0:26a151d2c6db 8 /*are received and placed in the rxBuffer to be read when convenient. */
oprospero 0:26a151d2c6db 9 /*Messages are encoded by sending a byte with the value of the command */
oprospero 0:26a151d2c6db 10 /*then and int of the command. */
oprospero 0:26a151d2c6db 11 /* Alternative Pins RX = PTA1, TX PTA2 */
oprospero 0:26a151d2c6db 12 /*************************************************************************/
oprospero 0:26a151d2c6db 13
oprospero 0:26a151d2c6db 14 #ifndef COM_H
oprospero 0:26a151d2c6db 15 #define COM_H
oprospero 0:26a151d2c6db 16 #define RSSI_THRES 0.8
oprospero 0:26a151d2c6db 17
oprospero 0:26a151d2c6db 18 #include "mbed.h"
oprospero 0:26a151d2c6db 19 #include "queue.h"
oprospero 0:26a151d2c6db 20 #include "PwmIn.h"
oprospero 0:26a151d2c6db 21
oprospero 0:26a151d2c6db 22 const int BAUDRATE = 38400;
oprospero 0:26a151d2c6db 23 const int BUFFERSIZE = 10;
oprospero 0:26a151d2c6db 24
oprospero 0:26a151d2c6db 25 class com
oprospero 0:26a151d2c6db 26 {
oprospero 0:26a151d2c6db 27 public:
oprospero 0:26a151d2c6db 28 com( PinName, PinName, PinName ); // Setup the com serial port. (tx, rx)
oprospero 0:26a151d2c6db 29 bool isData(); // Is there data to be read?
oprospero 0:26a151d2c6db 30 bool isSignalGood();
oprospero 0:26a151d2c6db 31 void write( short, short ); // Write to the port.
oprospero 0:26a151d2c6db 32 short * read(); // Read from the queue.
oprospero 0:26a151d2c6db 33
oprospero 0:26a151d2c6db 34 private:
oprospero 0:26a151d2c6db 35 void callback(); // Handle the interrupts.
oprospero 0:26a151d2c6db 36 void packetBuilder(); // Called by callback to place commandes into the queue.
oprospero 0:26a151d2c6db 37
oprospero 0:26a151d2c6db 38 char buffer[BUFFERSIZE]; // Buffer for holding serial data.
oprospero 0:26a151d2c6db 39 int bLength; // Location in the buffer to place next data.
oprospero 0:26a151d2c6db 40 int signalStrength;
oprospero 0:26a151d2c6db 41
oprospero 0:26a151d2c6db 42 Serial xbeeRx; // tx - DIN, rx - DOUT
oprospero 0:26a151d2c6db 43 Serial xbeeTx; // tx - DIN, rx - DOUT
oprospero 0:26a151d2c6db 44 queue *rxBuffer; // queue of commands ready to be read.
oprospero 0:26a151d2c6db 45 PwmIn rssi;
oprospero 0:26a151d2c6db 46 };
oprospero 0:26a151d2c6db 47
oprospero 0:26a151d2c6db 48 #endif