1 #if !defined(_RADIOLIB_XBEE_H) && !defined(RADIOLIB_EXCLUDE_XBEE)
2 #define _RADIOLIB_XBEE_H
4 #include "../../ISerial.h"
5 #include "../../TypeDef.h"
8 #define XBEE_API_START 0x7E
9 #define XBEE_API_ESCAPE 0x7D
10 #define XBEE_API_XON 0x11
11 #define XBEE_API_XOFF 0x13
14 #define XBEE_API_FRAME_AT_COMMAND 0x08
15 #define XBEE_API_FRAME_AT_COMMAND_QUEUE 0x09
16 #define XBEE_API_FRAME_ZIGBEE_TRANSMIT_REQUEST 0x10
17 #define XBEE_API_FRAME_ZIGBEE_ADDRESS_EXPLICIT 0x11
18 #define XBEE_API_FRAME_REMOTE_COMMAND 0x17
19 #define XBEE_API_FRAME_CREATE_SOURCE_ROUTE 0x21
20 #define XBEE_API_FRAME_AT_COMMAND_RESPONSE 0x88
21 #define XBEE_API_FRAME_MODEM_STATUS 0x8A
22 #define XBEE_API_FRAME_ZIGBEE_TRANSMIT_STATUS 0x8B
23 #define XBEE_API_FRAME_ZIGBEE_RECEIVE_PACKET 0x90
24 #define XBEE_API_FRAME_ZIGBEE_EXPLICIT_RX 0x91
25 #define XBEE_API_FRAME_ZIGBEE_IO_DATA_SAMPLE_RX 0x92
26 #define XBEE_API_FRAME_SENSOR_READ 0x94
27 #define XBEE_API_FRAME_NODE_ID 0x95
28 #define XBEE_API_FRAME_REMOTE_COMMAND_RESPONSE 0x97
29 #define XBEE_API_FRAME_EXTENDED_MODEM_STATUS 0x98
30 #define XBEE_API_FRAME_OTA_FW_UPDATE_STATUS 0xA0
31 #define XBEE_API_FRAME_ROUTE_RECORD 0xA1
32 #define XBEE_API_FRAME_MANY_TO_ONE_ROUTE_REQUEST 0xA3
57 int16_t
begin(
long speed);
84 #if !defined(RADIOLIB_GODMODE)
114 int16_t
begin(
long speed);
130 int16_t
transmit(uint8_t* dest,
const char* payload, uint8_t radius = 1);
143 int16_t
transmit(uint8_t* dest, uint8_t* destNetwork,
const char* payload, uint8_t radius = 1);
175 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
180 #if !defined(RADIOLIB_GODMODE)
184 uint8_t _frameID = 0x01;
185 size_t _frameLength = 0;
186 bool _frameHeaderProcessed =
false;
188 #ifdef RADIOLIB_STATIC_ONLY
189 char _packetData[RADIOLIB_STATIC_ARRAY_SIZE];
191 char* _packetData =
new char[0];
193 uint8_t _packetSource[8] = {0, 0, 0, 0, 0, 0, 0, 0};
195 int16_t confirmChanges();
197 void sendApiFrame(uint8_t type, uint8_t
id,
const char* data);
198 void sendApiFrame(uint8_t type, uint8_t
id, uint8_t* data, uint16_t length);
199 int16_t readApiFrame(uint8_t frameID, uint8_t codePos, uint16_t timeout = 5000);
201 uint16_t getNumBytes(uint32_t timeout = 10000,
size_t minBytes = 10);