RadioLibSmol/src/modules/XBee.h
Jan Gromeš de42395dda Sync with LoRaLib v3.0.0
Packet class was removed
2018-07-12 20:13:03 +02:00

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