User Data Relay - 0x2D
Description
Allows for data to be sent to an interface with a designation of a target interface for the data to be output on. The frame can be sent or received from any of the following interfaces: MicroPython (internal interface), UART, and BLE. This frame is used in conjunction with User Data Relay Output - 0xAD.
You can send and receive User Data Relay Frames from MicroPython. See Send and receive User Data Relay frames in the MicroPython Programming Guide.
Format
The following table provides the contents of the frame. For details on frame structure, see API frame format.
Field name | Field value | Data type | Description |
---|---|---|---|
Frame type |
0x2D |
Byte |
|
Frame ID |
|
|
Reference identifier used to match TX Status frames (type 0x89) sent for errors. A value of 0 disables the TX Status frame. |
Destination interface |
|
Byte |
0 = Serial port (SPI, or UART when in API mode) 1 = BLE 2 = MicroPython |
Data | Variable |
Error cases
The Frame ID is used to report error conditions in a method consistent with existing transmit frames. The error codes are mapped to statuses. The following conditions result in an error that is reported in a TX Status frame, referencing the frame ID from the 0x2d request.
- Invalid interface (0x7c) : The user specified a destination interface that does not exist.
- Interface not accepting frames (0x7d): The destination interface is a valid interface, but is not in a state that can accept data. For example UART not in API mode, BLE does not have a GATT client connected, or buffer queues are full.
Example use cases
These examples show you can use this frame.
- You can use the frame to send data to an external processor through the XBee UART/SPI via the BLE connection. Use a cellphone to send the frame with UART interface as a target. Data contained within the frame is sent out the UART contained within an Output Frame. The external processor then receives and acts on the frame.
- Use an external processor to output the frame over the UART with the BLE interface as a target. This outputs the data contained in the frame as the Output Frame over the active BLE connection via indication.
- An external processor outputs the Frame over the UART with the Micropython interface as a target. Micropython operates over the data and publishes the data to mqtt topic.