add xbee_wrapper that uses the 'packet' interface
This commit is contained in:
parent
33f343caf6
commit
120a1e56bf
|
@ -0,0 +1,30 @@
|
||||||
|
#include "xbee_wrapper.h"
|
||||||
|
|
||||||
|
|
||||||
|
XBeeWrapper::XBeeWrapper(){ xbee = XBee(); };
|
||||||
|
|
||||||
|
|
||||||
|
void XBeeWrapper::begin(unsigned long baud){
|
||||||
|
xbee.setSerial(Serial1);
|
||||||
|
Serial1.begin(baud);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t XBeeWrapper::receive(Packet& pkt){
|
||||||
|
xbee.readPacket();
|
||||||
|
|
||||||
|
if( !xbee.getResponse().isAvailable() )
|
||||||
|
return XBWRCV_NONE;
|
||||||
|
|
||||||
|
if( xbee.getResponse().getApiId() != ZB_RX_RESPONSE )
|
||||||
|
return XBWRCV_NONE;
|
||||||
|
|
||||||
|
Rx64Response res;
|
||||||
|
xbee.getResponse().getZBRxResponse(res);
|
||||||
|
|
||||||
|
// extract data and propagate error
|
||||||
|
if( !pkt.read(res.getData(), res.getDataLength()) )
|
||||||
|
return XBWRCV_ERROR;
|
||||||
|
|
||||||
|
return XBWRCV_OK;
|
||||||
|
};
|
|
@ -0,0 +1,31 @@
|
||||||
|
#ifndef _WBEE_WRAPPER_H_
|
||||||
|
#define _WBEE_WRAPPER_H_
|
||||||
|
|
||||||
|
#include <Wire.h>
|
||||||
|
#include <XBee.h>
|
||||||
|
#include "protocol.h"
|
||||||
|
#include "packet.h"
|
||||||
|
|
||||||
|
#define XBWRCV_OK 0
|
||||||
|
#define XBWRCV_NONE 1
|
||||||
|
#define XBWRCV_ERROR 2
|
||||||
|
|
||||||
|
|
||||||
|
class XBeeWrapper{
|
||||||
|
private:
|
||||||
|
XBee xbee;
|
||||||
|
|
||||||
|
public:
|
||||||
|
XBeeWrapper();
|
||||||
|
|
||||||
|
// initialises the XBee interface
|
||||||
|
void begin(unsigned long baud);
|
||||||
|
|
||||||
|
// tries to extract a received packet
|
||||||
|
uint8_t receive(Packet& pkt);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue