xbee.h File Reference

High-level driver for the XBee S1 802.15.4 modem. More...

Detailed Description

#include <stdint.h>
#include "mutex.h"
#include "xtimer.h"
#include "periph/uart.h"
#include "periph/gpio.h"
#include "net/netdev.h"
#include "net/ieee802154.h"
#include "net/gnrc/nettype.h"
+ Include dependency graph for xbee.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  xbee_params_t
 Configuration parameters for XBee devices. More...
 
struct  xbee_t
 XBee device descriptor. More...
 
struct  xbee_l2hdr_t
 Data structure for extraction L2 information of received packets. More...
 

Macros

#define XBEE_MAX_PAYLOAD_LENGTH   (100U)
 Maximum payload length that can be send.
 
#define XBEE_MAX_PKT_LENGTH   (115U)
 Maximum packet length, including XBee API frame overhead.
 
#define XBEE_MAX_RESP_LENGTH   (16U)
 Maximum length of a command response.
 
#define XBEE_MAX_TXHDR_LENGTH   (14U)
 Maximal possible size of a TX header.
 
#define XBEE_DEFAULT_PROTOCOL   (GNRC_NETTYPE_SIXLOWPAN)
 Default protocol for data that is coming in.
 
#define XBEE_DEFAULT_PANID   (IEEE802154_DEFAULT_PANID)
 Default PAN ID used after initialization.
 
#define XBEE_DEFAULT_CHANNEL   (IEEE802154_DEFAULT_CHANNEL)
 Default channel used after initialization.
 
Address flags
#define XBEE_ADDR_FLAGS_LONG   (0x80)
 Use long addresses if not otherwise defined when set, use short addresses when unset.
 

Enumerations

enum  xbee_rx_state_t {
  XBEE_INT_STATE_IDLE, XBEE_INT_STATE_SIZE1, XBEE_INT_STATE_SIZE2, XBEE_INT_STATE_TYPE,
  XBEE_INT_STATE_RESP, XBEE_INT_STATE_RX
}
 States of the internal FSM for handling incoming UART frames. More...
 

Functions

void xbee_setup (xbee_t *dev, const xbee_params_t *params)
 Prepare the given Xbee device. More...
 
int xbee_build_hdr (xbee_t *dev, uint8_t *xhdr, size_t payload_len, void *dst_addr, size_t addr_len)
 Put together the internal proprietary XBee header. More...
 
int xbee_parse_hdr (xbee_t *dev, const uint8_t *xhdr, xbee_l2hdr_t *l2hdr)
 Extract IEEE802.15.4 L2 header information from the XBee header. More...
 

Variables

const netdev_driver_t xbee_driver
 Reference to the XBee driver interface.