File Information
Library: IoT/XBee
Package: XBee
Header: IoT/XBee/XBeeFrame.h
Description
This class encapsulates a Digi XBee API frame.
Member Summary
Member Functions: checksum, data, dataSize, escape, frame, frameSize, init, operator =, read, swap, type, unescape
Enumerations
Anonymous
XBEE_MAX_FRAME_LENGTH = 1024
XBEE_MAX_DATA_LENGTH = XBEE_MAX_FRAME_LENGTH - 5
XBEE_FRAME_START_DELIM = 0x7E
FrameType
XBEE_FRAME_TRANSMIT_REQUEST_64BIT_ADDRESS = 0x00
XBEE_FRAME_TRANSMIT_REQUEST_16BIT_ADDRESS = 0x01
XBEE_FRAME_AT_COMMAND = 0x08
XBEE_FRAME_AT_COMMAND_QUEUE_PARAMETER_VALUE = 0x09
XBEE_FRAME_ZIGBEE_TRANSMIT_REQUEST = 0x10
XBEE_FRAME_EXPL_ADDR_ZIGBEE_COMMAND_FRAME = 0x11
XBEE_FRAME_REMOTE_AT_COMMAND_REQUEST = 0x17
XBEE_FRAME_CREATE_SOURCE_ROUTE = 0x21
XBEE_FRAME_RECEIVE_PACKET_64BIT_ADDRESS = 0x80
XBEE_FRAME_RECEIVE_PACKET_16BIT_ADDRESS = 0x81
XBEE_FRAME_RECEIVE_PACKET_64BIT_ADDRESS_IO = 0x82
XBEE_FRAME_RECEIVE_PACKET_16BIT_ADDRESS_IO = 0x83
XBEE_FRAME_AT_COMMAND_RESPONSE = 0x88
XBEE_FRAME_MODEM_STATUS = 0x8A
XBEE_FRAME_ZIGBEE_TRANSMIT_STATUS = 0x8B
XBEE_FRAME_TRANSMIT_STATUS = 0x89
XBEE_FRAME_ZIGBEE_RECEIVE_PACKET = 0x90
XBEE_FRAME_ZIGBEE_EXPLICIT_RX_INDICATOR = 0x91
XBEE_FRAME_ZIGBEE_IO_DATA_SAMPLE_RX_INDICATOR = 0x92
XBEE_FRAME_XBEE_SENSOR_READ_INDICATOR = 0x94
XBEE_FRAME_NODE_IDENTIFICATION_INDICATOR = 0x95
XBEE_FRAME_REMOTE_AT_COMMAND_RESPONSE = 0x97
XBEE_FRAME_OTA_FIRMWARE_UPDATE_STATUS = 0xA0
XBEE_FRAME_ROUTE_RECORD_INDICATOR = 0xA1
XBEE_FRAME_MANY_TO_ONE_ROUTE_REQUEST_INDICATOR = 0xA3
XBEE_FRAME_INVALID = 0xFF
ReadStatus
Constructors
XBeeFrame
XBeeFrame();
Creates an empty XBeeFrame.
XBeeFrame
XBeeFrame(
const XBeeFrame & other
);
Creates a XBeeFrame by copying another one.
XBeeFrame
XBeeFrame(
FrameType frameType,
const std::string & data
);
Creates a XBeeFrame of the given type, with the given frame data.
XBeeFrame
XBeeFrame(
FrameType frameType,
const char * data,
std::size_t length
);
Creates a XBeeFrame of the given type, with the given frame data.
Destructor
~XBeeFrame
~XBeeFrame();
Destroys the XBeeFrame.
Member Functions
data
const char * data() const;
Returns a pointer to the frame data.
dataSize
std::size_t dataSize() const;
Returns the frame data size.
escape
void escape();
Escapes the frame, as required for AP=2 API mode.
When sending or receiving a UART data frame, specific data values must be escaped (flagged) so they do not interfere with the UART or UART data frame operation. To escape an interfering data byte, insert 0x7D and follow it with the byte to be escaped XOR’d with 0x20.
Data bytes that need to be escaped:
- 0x7E – Frame Delimiter
- 0x7D – Escape
- 0x11 – XON
- 0x13 – XOFF
frame
const char * frame() const;
Returns a pointer to the raw API frame.
frameSize
std::size_t frameSize() const;
Returns the raw frame size.
operator =
XBeeFrame & operator = (
const XBeeFrame & other
);
Assignment operator.
read
static ReadStatus read(
XBeeFrame & frame,
const char * buffer,
std::size_t size
);
Attempts to read a frame from the given buffer.
Returns:
- XBEE_FRAME_OK if a valid frame was found.
- XBEE_FRAME_NOT_ENOUGH_DATA if the buffer does not contain enough data to read the entire frame. Retry again with a buffer containing more data.
- XBEE_FRAME_NOT_FOUND if no valid frame was found.
swap
void swap(
XBeeFrame & other
);
Swaps the contents of the frame with another one.
type
FrameType type() const;
Returns the frame type.
unescape
void unescape();
Unescapes the frame, if AP=2 API mode is used.
See escape() for more information.
checksum
unsigned char checksum() const;
init
void init(
FrameType frameType,
const char * data,
std::size_t length
);