upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
API for the XBee modules. More...
This is a generic UART driver for use with Digi XBee modules. It was tested with the XBee S1 802.15.4 module and the XBee S6B WiFi module.
It provides basic UART support for sending and receiving data to and from the device. It is controlled by an AT or API command set.
It is connected at 9600 baud by default.
These devices are typically configured using Digi's X-CTU windows software, however it is possible of course to configure them manually using AT commands. See the examples.
XBee Sensor image provided by SparkFun* under CC BY 2.0.
Public Member Functions | |
XBee (int uart=XBEE_DEFAULT_UART) | |
~XBee () | |
bool | dataAvailable (unsigned int millis) |
int | readData (char *buffer, unsigned int len) |
std::string | readDataStr (int len) |
int | writeData (char *buffer, unsigned len) |
int | writeDataStr (std::string data) |
mraa::Result | setBaudRate (int baud=9600) |
bool | commandMode (std::string cmdChars="+++", int guardTimeMS=1000) |
std::string | stringCR2LF (std::string str) |
Protected Attributes | |
mraa::Uart | m_uart |
XBee | ( | int | uart = XBEE_DEFAULT_UART | ) |
XBee object constructor
uart | Default UART to use (0 or 1). Default is 0. |
bool dataAvailable | ( | unsigned int | millis | ) |
Checks to see if there is data available for reading
millis | Number of milliseconds to wait; 0 means no waiting |
int readData | ( | char * | buffer, |
unsigned int | len | ||
) |
Reads any available data into a user-supplied buffer. Note: the call blocks until data is available for reading. Use dataAvailable() to determine whether there is data available beforehand, to avoid blocking.
buffer | Buffer to hold the data read |
len | Length of the buffer |
std::string readDataStr | ( | int | len | ) |
Reads any available data and returns it in a std::string. Note: the call blocks until data is available for reading. Use dataAvailable() to determine whether there is data available beforehand, to avoid blocking.
len | Maximum length of the data to be returned |
int writeData | ( | char * | buffer, |
unsigned | len | ||
) |
Writes the data in the buffer to the device. If you are writing an AT command, be sure to terminate it with a carriage return ()
buffer | Buffer to hold the data to write |
len | Length of the buffer |
int writeDataStr | ( | std::string | data | ) |
Writes the std:string data to the device. If you are writing an AT command, be sure to terminate it with a carriage return ()
data | Buffer to write to the device |
mraa::Result setBaudRate | ( | int | baud = 9600 | ) |
Sets the baud rate for the device. The default is 9600.
baud | Desired baud rate |
bool commandMode | ( | std::string | cmdChars = "+++" , |
int | guardTimeMS = 1000 |
||
) |
Attempts to enter AT Command Mode. When Idle, data sent to the device (assuming it is not in API mode) is silently transmitted to the configured destination. Running this command attempts to place the device into command mode, allowing you to send AT commands. Note, after a configurable period of inactivity, the device will exit command mode automatically (default 10 seconds).
Both the cmdChars (+++) and the Guard Time can be configured on the device to different values using AT configuration commands.
cmdChars | The command mode characters, default "+++" |
guardTimeMS | The number of milliseconds to wait before and after sending the command characters. Default is 1000 (1 second). |
string stringCR2LF | ( | std::string | str | ) |
This is a convenience method that converts each CR () in a string to a LF (
) and returns it. This is useful for outputting the response to an AT command for instance, which is typically CR terminated.
str | The string to convert |