xbee communication for UWB quadcopter project

Dependencies:   PwmIn

Committer:
oprospero
Date:
Sun Apr 20 02:27:39 2014 +0000
Revision:
2:bd1621102cad
Parent:
1:4f53de75bc96
Child:
3:f8e953201251
clean ups

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 2:bd1621102cad 23 const int BUFFERSIZE = 18;
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 2:bd1621102cad 33 void setAPImode(bool mode);
oprospero 0:26a151d2c6db 34
oprospero 1:4f53de75bc96 35 private:
oprospero 1:4f53de75bc96 36 Serial xbeeTx; // tx - DIN, rx - DOUT
oprospero 1:4f53de75bc96 37 Serial xbeeRx; // tx - DIN, rx - DOUT
oprospero 1:4f53de75bc96 38 queue *rxBuffer; // queue of commands ready to be read.
oprospero 1:4f53de75bc96 39 PwmIn rssi;
oprospero 1:4f53de75bc96 40
oprospero 2:bd1621102cad 41 bool api_mode;
oprospero 2:bd1621102cad 42
oprospero 0:26a151d2c6db 43 void callback(); // Handle the interrupts.
oprospero 0:26a151d2c6db 44 void packetBuilder(); // Called by callback to place commandes into the queue.
oprospero 0:26a151d2c6db 45
oprospero 0:26a151d2c6db 46 char buffer[BUFFERSIZE]; // Buffer for holding serial data.
oprospero 0:26a151d2c6db 47 int bLength; // Location in the buffer to place next data.
oprospero 0:26a151d2c6db 48 int signalStrength;
oprospero 1:4f53de75bc96 49
oprospero 0:26a151d2c6db 50 };
oprospero 0:26a151d2c6db 51
oprospero 0:26a151d2c6db 52 #endif