xbee communication for UWB quadcopter project
com.h@0:26a151d2c6db, 2014-01-08 (annotated)
- 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?
User | Revision | Line number | New 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 |