XBee_Robot.h

Committer:
sleighton
Date:
2016-01-05
Revision:
3:cf539cfd3d59
Parent:
2:5040ec01dba1
Child:
4:af08c7749f9d

File content as of revision 3:cf539cfd3d59:

#include "mbed.h"
#include <vector>
#include <list>
#include <algorithm>

class XBee_Robot {
private:

    std::list< std::vector<uint8_t> > addr_list;

    PinName _tx, _rx; // May need to be changed to public
    
    Serial dataLink; //declare global serial
    
public:
    
    XBee_Robot(PinName _txIn, PinName _rxIn);
    //constructor for XBee
    
    void setRxInterrupt();
    //enables interrupt for receive pin
    
    void Rx_interrupt();
    //ISR for receive pin
    
    void transmitRequest(uint8_t *BitAddress64, uint8_t *BitAddress16, uint8_t broadcastRadius, uint8_t options, uint8_t *data,size_t dataLength);
    //assembles and sends transmission requests
    
    uint8_t calculateChecksum(std::vector<uint8_t> & packet);
    //calculates checksum for assembled packets
    
    void RxPacketControl(std::vector<uint8_t> & packet);
    //seperates packets depending on API command
    
    void checkSourceAddr(std::vector<uint8_t> & addr);
    //checks source address of received packet against list of known addresses and adds new addresses
};