66 lines
2.2 KiB
C++
66 lines
2.2 KiB
C++
#ifndef _KITELIB_XBEE_H
|
|
#define _KITELIB_XBEE_H
|
|
|
|
#include "ISerial.h"
|
|
#include "TypeDef.h"
|
|
|
|
//API reserved characters
|
|
#define XBEE_API_START 0x7E
|
|
#define XBEE_API_ESCAPE 0x7D
|
|
#define XBEE_API_XON 0x11
|
|
#define XBEE_API_XOFF 0x13
|
|
|
|
//API frame IDs
|
|
#define XBEE_API_FRAME_AT_COMMAND 0x08
|
|
#define XBEE_API_FRAME_AT_COMMAND_PARAMETER 0x09
|
|
#define XBEE_API_FRAME_ZIGBEE_TRANSMIT_REQUEST 0x10
|
|
#define XBEE_API_FRAME_ZIGBEE_ADDRESS_EXPLICIT 0x11
|
|
#define XBEE_API_FRAME_REMOTE_COMMAND 0x17
|
|
#define XBEE_API_FRAME_CREATE_SOURCE_ROUTE 0x21
|
|
#define XBEE_API_FRAME_AT_COMMAND_RESPONSE 0x88
|
|
#define XBEE_API_FRAME_MODEM_STATUS 0x8A
|
|
#define XBEE_API_FRAME_ZIGBEE_TRANSMIT_STATUS 0x8B
|
|
#define XBEE_API_FRAME_ZIGBEE_RECEIVE_PACKET 0x90
|
|
#define XBEE_API_FRAME_ZIGBEE_EXPLICIT_RX 0x91
|
|
#define XBEE_API_FRAME_ZIGBEE_IO_DATA_SAMPLE_RX 0x92
|
|
#define XBEE_API_FRAME_SENSOR_READ 0x94
|
|
#define XBEE_API_FRAME_NODE_ID 0x95
|
|
#define XBEE_API_FRAME_REMOTE_COMMAND_RESPONSE 0x97
|
|
#define XBEE_API_FRAME_EXTENDED_MODEM_STATUS 0x98
|
|
#define XBEE_API_FRAME_OTA_FW_UPDATE_STATUS 0xA0
|
|
#define XBEE_API_FRAME_ROUTE_RECORD 0xA1
|
|
#define XBEE_API_FRAME_MANY_TO_ONE_ROUTE_REQUEST 0xA3
|
|
|
|
#define XBEE_API_DEFAULT_FRAME_ID 0x01
|
|
|
|
class XBeeApiFrame {
|
|
public:
|
|
XBeeApiFrame(uint8_t apiId, uint8_t frameId);
|
|
|
|
uint8_t getApiId();
|
|
uint8_t getFrameId();
|
|
|
|
private:
|
|
uint16_t _length;
|
|
uint8_t _apiId;
|
|
uint8_t _frameId;
|
|
uint8_t* _data;
|
|
};
|
|
|
|
class XBee: public ISerial {
|
|
public:
|
|
XBee(Module* module);
|
|
|
|
uint8_t begin(long speed);
|
|
|
|
uint8_t setDestinationAddress(const char* destinationAddressHigh, const char* destinationAddressLow);
|
|
uint8_t setPanId(const char* panId);
|
|
|
|
private:
|
|
bool enterCmdMode();
|
|
//void sendApiFrame(uint8_t id, uint8_t* data, uint16_t length);
|
|
//uint8_t readApiFrame(uint16_t timeout);
|
|
//void write(uint8_t b);
|
|
};
|
|
|
|
#endif
|