Digi XBee(R) ANSI C Host Library
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
#include "xbee/atcmd.h"
#include "xbee/wpan.h"
#include "xbee/discovery.h"
#include "xbee/io.h"
#include "xbee/reg_descr.h"

Go to the source code of this file.

Data Structures

struct  sxa_cached_group_t
 Cached register group value. More...
 
struct  sxa_node_t
 This structure and the attendant functions provide a useful layer for Rabbit applications who wish to use a simplified interface to the XBee API. More...
 

Macros

#define _SXA_CACHED_PREFIX_SIZE   (sizeof(sxa_cache_flags_t))
 
#define _SXA_CACHED_STRING(name, len)   XBEE_PACKED(, { sxa_cache_flags_t flags; uint8_t value[len+1]; }) name
 Cached string register value. More...
 
#define _SXA_CACHED_BIN(name, len)   XBEE_PACKED(, { sxa_cache_flags_t flags; uint8_t value[len]; }) name
 Cached binary register value. More...
 
#define ZB_CAP_ADV_ADDR   0x00000001
 
#define ZB_CAP_ZDO   0x00000002
 
#define ZB_CAP_REMOTE_DDO   0x00000004
 
#define ZB_CAP_GW_FW   0x00000008
 
#define ZB_CAP_REMOTE_FW   0x00000010
 
#define ZB_CAP_ZIGBEE   0x00000020
 
#define ZB_CAP_ZBPRO   0x00000040
 
#define ZB_CAP_DIGIMESH   0x00000080
 
#define ZB_CAP_CHILDREN   0x00000100
 
#define ZB_CAP_SE   0x00000200
 
#define _SXA_MAX_QUEUED   100
 Cached register value handling: maximum number of queued updates.
 
#define XBEE_ATAO_NOT_SUPPORTED   0xFF
 
#define MS_MOD_UNSPEC   0x00000000
 
#define MS_MOD_SERIES1   0x00010000
 
#define MS_MOD_ZNET25   0x00020000
 
#define MS_MOD_ZB   0x00030000
 
#define MS_MOD_XBEE900   0x00040000
 
#define MS_MOD_XBEE24   0x00050000
 
#define MS_MOD_XBEE868   0x00060000
 
#define MS_MOD_XBEE900DP   0x00070000
 
#define MS_MOD_ZB_S2C   0x000a0000
 
#define MS_MOD_MIN   MS_MOD_SERIES1
 
#define MS_MOD_MAX   MS_MOD_ZB_S2C
 
#define sxa_list_head()   sxa_table
 
#define sxa_list_count()   sxa_table_count
 
#define sxa_xbee(s)   ((s)->xbee)
 
#define sxa_wpan_address(s)   ((s)->addr_ptr)
 
#define XBEE_FRAME_HANDLE_ND_RESPONSE
 Macro for registering a handler to receive node announcements via both ATND responses and 0x95 frames received. More...
 
#define XBEE_DISC_CLIENT_CLUST_ENTRY
 
#define XBEE_FRAME_HANDLE_IS_RESPONSE
 Macro for registering a handler to receive I/O samples via both ATIS responses and 0x92 frames received. More...
 
#define XBEE_IO_CLIENT_CLUST_ENTRY
 

Typedefs

typedef uint8_t sxa_cache_flags_t
 
struct {
   sxa_cache_flags_t   flags
 
sxa_cached_t
 Cached generic register value (no data) More...
 
struct {
   sxa_cache_flags_t   flags
 
   uint8_t   value
 
sxa_cached_uint8_t
 Cached uint8_t register value. More...
 
struct {
   sxa_cache_flags_t   flags
 
   uint16_t   value
 
sxa_cached_uint16_t
 Cached uint16_t register value. More...
 
struct {
   sxa_cache_flags_t   flags
 
   uint32_t   value
 
sxa_cached_uint32_t
 Cached uint32_t register value. More...
 
struct {
   sxa_cache_flags_t   flags
 
   addr64   value
 
sxa_cached_addr64
 Cached extended address register value. More...
 
typedef void(* sxa_cache_upd_fn) (struct sxa_node_t FAR *sxa, const struct sxa_cached_group_t FAR *cgroup)
 Function registered for cache group update post-processing. More...
 

Enumerations

enum  {
  _SXA_CACHED_UNKNOWN = 0x00, _SXA_CACHED_OK = 0x01, _SXA_CACHED_ERROR = 0x02, _SXA_CACHED_BUSY = 0x04,
  _SXA_CACHED_PENDING = 0x08, _SXA_CACHED_BAD_GROUP = 0x10
}
 
enum  {
  SXA_CACHED_NONE, SXA_CACHED_NODE_ID, SXA_CACHED_IO_CONFIG, SXA_CACHED_DEVICE_INFO,
  SXA_CACHED_DHDL, SXA_CACHED_MISC = 255
}
 This enum gives numeric identification to all cache groups. More...
 

Functions

const sxa_cached_group_t FAR_sxa_cache_group_by_id (uint16_t id)
 
void _sxa_update_io_config_group (sxa_node_t FAR *sxa, const sxa_cached_group_t FAR *cgroup)
 
void _sxa_process_version_info (const xbee_cmd_response_t FAR *response, const struct xbee_atcmd_reg_t FAR *reg, void FAR *base)
 
sxa_node_t FARsxa_node_by_addr (const addr64 FAR *ieee_be)
 
sxa_node_t FARsxa_local_node (const xbee_dev_t *xbee)
 
sxa_node_t FARsxa_node_by_name (const char FAR *name)
 
sxa_node_t FARsxa_node_by_index (int index)
 
sxa_node_t FARsxa_node_add (xbee_dev_t *xbee, const xbee_node_id_t FAR *node_id)
 
void sxa_node_table_dump (void)
 
xbee_dev_t *() sxa_xbee (sxa_node_t FAR *sxa)
 
wpan_address_t FAR *() sxa_wpan_address (sxa_node_t FAR *sxa)
 
int sxa_get_digital_input (const sxa_node_t FAR *sxa, uint_fast8_t index)
 
int sxa_get_digital_output (const sxa_node_t FAR *sxa, uint_fast8_t index)
 
int16_t sxa_get_analog_input (const sxa_node_t FAR *sxa, uint_fast8_t index)
 
int sxa_set_digital_output (sxa_node_t FAR *sxa, uint_fast8_t index, enum xbee_io_digital_output_state state)
 
int sxa_io_configure (sxa_node_t FAR *sxa, uint_fast8_t index, enum xbee_io_type type)
 
int sxa_io_set_options (sxa_node_t FAR *sxa, uint16_t sample_rate, uint16_t change_mask)
 
void sxa_io_dump (sxa_node_t FAR *sxa)
 
int sxa_io_query (sxa_node_t FAR *sxa)
 
int sxa_io_query_status (sxa_node_t FAR *sxa)
 
sxa_node_t FARsxa_init_or_exit (xbee_dev_t *xbee, const wpan_endpoint_table_entry_t *ep_table, int verbose)
 
void _sxa_launch_update (sxa_node_t FAR *sxa, const struct _xbee_reg_descr_t FAR *xrd, uint16_t cache_group)
 
void sxa_tick (void)
 
int sxa_is_digi (const sxa_node_t FAR *sxa)
 
int _sxa_disc_process_node_data (xbee_dev_t *xbee, const void FAR *raw, int length)
 Function shared by multiple functions that process Node Identification Messages (0x95 frames and ATND responses). More...
 
int _sxa_disc_atnd_response (xbee_dev_t *xbee, const void FAR *raw, uint16_t length, void FAR *context)
 Frame handler for processing AT Command Response frames. More...
 
int _sxa_disc_handle_frame_0x95 (xbee_dev_t *xbee, const void FAR *raw, uint16_t length, void FAR *context)
 Frame handler for processing Node Identification Indicator (0x95) frames. More...
 
int _sxa_disc_cluster_handler (const wpan_envelope_t FAR *envelope, void FAR *context)
 Cluster handler for "Digi Node Identification" cluster. More...
 
int _sxa_io_process_response (const addr64 FAR *ieee_be, const void FAR *raw, int length)
 Function shared by multiple functions that process I/O sample messages (0x92 frames and ATIS responses). More...
 
int _sxa_io_response_handler (xbee_dev_t *xbee, const void FAR *raw, uint16_t length, void FAR *context)
 
int _sxa_io_cluster_handler (const wpan_envelope_t FAR *envelope, void FAR *context)
 
int _sxa_remote_is_cmd_response_handler (xbee_dev_t *xbee, const void FAR *raw, uint16_t length, void FAR *context)
 
int _sxa_local_is_cmd_response_handler (xbee_dev_t *xbee, const void FAR *raw, uint16_t length, void FAR *context)
 
sxa_cache_flags_t sxa_cache_status (sxa_node_t FAR *sxa, const _xbee_reg_descr_t FAR *zb, uint16_t cache_group)
 
void _sxa_set_cache_status (sxa_node_t FAR *sxa, const _xbee_reg_descr_t FAR *zb, uint16_t cache_group, sxa_cache_flags_t flags)
 
void FARsxa_cached_value_ptr (sxa_node_t FAR *sxa, const _xbee_reg_descr_t FAR *zb)
 
uint16_t sxa_cached_value_len (sxa_node_t FAR *sxa, const _xbee_reg_descr_t FAR *zb)
 
int sxa_find_pending_cache (sxa_node_t FAR *sxa, const _xbee_reg_descr_t FAR *zb)
 
int sxa_schedule_update_cache (sxa_node_t FAR *sxa, const _xbee_reg_descr_t FAR *zb)
 

Variables

const FAR sxa_cached_group_t _sxa_default_cache_groups []
 
sxa_node_t FARsxa_table
 
int sxa_table_count
 
sxa_node_t FARsxa_local_table