Xbee s2b for lpc11u24

Dependencies:   DigiLogger

Dependents:  

Fork of XBeeLib by Digi International Inc.

Embed: (wiki syntax)

« Back to documentation index

XBee Class Reference

Parent Class for XBee modules, not to be directly used. More...

#include <XBee.h>

Inherited by XBee802, XBeeDM, and XBeeZB.

Public Types

enum  RadioMode {
  ModeUnknown = 0, ModeAPI1 = 1, ModeAPI2 = 2, ModeTransparent = 3,
  ModeBootloader = 4
}
 

RadioMode.

More...

Public Member Functions

 XBee (PinName tx, PinName rx, PinName reset=NC, PinName rts=NC, PinName cts=NC, int baud=9600)
 Class constructor.
virtual ~XBee ()
 Class destructor.
RadioStatus init ()
 init- initializes object This function must be called just after creating the object so it initializes internal data.
uint64_t get_addr64 () const
 get_addr64 - returns the 64bit address of the local device
RadioStatus hardware_reset ()
 hardware_reset - performs a hardware reset.
RadioStatus software_reset ()
 software_reset - performs a firmware reset
virtual RadioStatus device_reset ()
 device_reset - performs a hardware reset if there is a GPIO connected to the reset line of the device.
void set_tx_options (uint8_t options)
 set_tx_options - sets the transmit options byte, used with the transmit frames.
uint8_t get_tx_options () const
 get_tx_options - returns the tx options byte configured in the library.
RadioStatus write_config ()
 write_config - write settings to non volatile memory
RadioStatus config_io_sample_destination (const RemoteXBee &remote, const RemoteXBee &destination)
 config_io_sample_destination - configures to which node a remote module will send its IO Samples to.
RadioStatus set_io_sample_rate (const RemoteXBee &remote, float seconds)
 set_io_sample_rate - configures how often the IO Samples should be sent to the destination (see send_io_sample_to).
RadioStatus set_power_level (uint8_t level)
 set_power_level - sets the power level at which the radio will transmit
RadioStatus get_power_level (uint8_t *const level)
 get_power_level - reads the power level configured in the radio
uint16_t get_hw_version () const
 get_hw_version - gets the hardware version of the radio
uint16_t get_fw_version () const
 get_fw_version - gets the firmware version of the radio
RadioStatus set_node_identifier (const char *const node_id)
 set_node_identifier - configures the Node Identifier string
RadioStatus get_node_identifier (char *const node_id)
 get_node_identifier - reads the configured Node Identifier string
RadioStatus enable_network_encryption (bool enable)
 enable_network_encryption - Enable network encryption.
RadioStatus set_network_encryption_key (const uint8_t *const key, const uint16_t length)
 set_network_encryption_key - Sets the 128-bit AES key used for encryption and decryption.
RadioStatus start_node_discovery ()
 start_node_discovery - starts a node discovery operation.
bool is_node_discovery_in_progress ()
 is_node_discovery_in_progress - checks if node discovery is in progress.
RadioStatus config_node_discovery (uint16_t backoff_ms, uint8_t options=0)
 config_node_discovery - configures the node discovery operation
RadioStatus get_config_node_discovery (uint16_t *const backoff_ms, uint8_t *const options)
 get_config_node_discovery - reads the configuration of the node discovery settings
void set_timeout (uint16_t timeout_ms)
 set_timeout - sets the timeout in ms, used by sync methods
uint16_t get_timeout () const
 get_timeout - gets the timeout in ms configured in the library.
virtual TxStatus send_data (const RemoteXBee &remote, const uint8_t *const data, uint16_t len, bool syncr=true)=0
 send_data - sends data to a remote device
TxStatus send_data_broadcast (const uint8_t *const data, uint16_t len, bool syncr=true)
 send_data_broadcast - sends data to all devices in the network, using the broadcast address.
AtCmdFrame::AtCmdResp set_param (const char *const param, uint32_t data)
 set_param - sets a parameter in the local radio by sending an AT command and waiting for the response.
AtCmdFrame::AtCmdResp set_param (const char *const param, const uint8_t *data=NULL, uint16_t len=0)
 set_param - sets a parameter in the local radio by sending an AT command and waiting for the response.
AtCmdFrame::AtCmdResp get_param (const char *const param, uint32_t *const data)
 get_param - gets a parameter from the local radio by sending an AT command and waiting for the response.
AtCmdFrame::AtCmdResp get_param (const char *const param, uint8_t *const data, uint16_t *const len)
 get_param - gets a parameter from the local radio by sending an AT command and waiting for the response.
virtual AtCmdFrame::AtCmdResp set_param (const RemoteXBee &remote, const char *const param, uint32_t data)=0
 set_param - sets a parameter in a remote radio by sending an AT command and waiting for the response.
virtual AtCmdFrame::AtCmdResp set_param (const RemoteXBee &remote, const char *const param, const uint8_t *data=NULL, uint16_t len=0)=0
 set_param - sets a parameter in a remote radio by sending an AT command and waiting for the response.
virtual AtCmdFrame::AtCmdResp get_param (const RemoteXBee &remote, const char *const param, uint32_t *const data)=0
 get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response.
virtual AtCmdFrame::AtCmdResp get_param (const RemoteXBee &remote, const char *const param, uint8_t *const data, uint16_t *const len)=0
 get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response.
uint32_t process_rx_frames ()
 process_rx_frames - method that processes the frames queued in the reception buffer.
void register_modem_status_cb (modem_status_cb_t function)
 register_modem_status_cb - registers the callback function that will be called when a Modem Status packet is received
void unregister_modem_status_cb ()
 unregister_modem_status_cb - removes the Modem Status reception callback

Protected Member Functions

void send_byte_escaping_if (uint8_t data)
 send_byte_escaping_if - sends a byte, through the serial interface, to the radio, escaping the byte if the working mode of the radio is API2.
void uart_read_cb ()
 uart_read_cb - serial interface callback, called when data is received on the serial port.
ApiFrameget_this_api_frame (uint8_t id, ApiFrame::ApiFrameType type, ApiFrame::ApiFrameType type2=ApiFrame::Invalid)
 get_this_api_frame - searches in the FrameBuffer for an incoming frame with frameid equal to id and frame type equal to type or type2.
virtual void send_api_frame (ApiFrame *frame)
 send_api_frame - method to send, over the serial port, an API frame
virtual void radio_status_update (AtCmdFrame::ModemStatus modem_status)
 update_radio_status - method called when a modem status frame is received to update the internal status variables of the library.
TxStatus send_data (ApiFrame *frame)
 Method used internaly by the derived classes to transmit data to remote nodes, waiting for the answer from the device.
AtCmdFrame::AtCmdResp send_at_cmd (AtCmdFrame *frame, uint8_t *const buf, uint16_t *const len, RadioLocation radio_location=RadioLocal, bool reverse=true)
 send_at_cmd - sends an AT command to the radio and waits for the response.
AtCmdFrame::AtCmdResp send_at_cmd (AtCmdFrame *frame)
 Method that sends an AT command to the module and waits for the command response.
RadioStatus register_frame_handler (FrameHandler *const handler)
 register_frame_handler - registers an object to handle incoming frames from the radio.
RadioStatus unregister_frame_handler (FrameHandler *const handler)
 unregister_frame_handler - removes a previously registered frame handler
RadioProtocol get_radio_protocol (void) const
 get_radio_protocol - returns the RF protocol that the connected module uses based on its firmware and hardware versions
RadioStatus _get_iosample (const RemoteXBee &remote, uint8_t *const io_sample, uint16_t *const len)
 _get_iosample - forces an io_sample read (reads all digital and analog inputs)
bool check_radio_flow_control ()
 check_radio_flow_control - checks that the radio has the CTS "D7" and RTS "D6" pins configured according to the serial hardware flow control selected by the user
int get_AI (void)
 get_AI - reads the AI parameter.
virtual RadioStatus get_node_discovery_timeout (uint16_t *const timeout_ms)=0
 get_node_discovery_timeout - gets the node discovery timeout

Protected Attributes

SerialBase::Flow _serial_flow_type
 serial hardware flow control selected by the user (RTSCTS, RTS,CTS)
RadioMode _mode
 Operating mode of the module (API1, API2,...)
uint16_t _hw_version
 Hardware version value of the radio.
uint16_t _fw_version
 Firmware version value of the radio.
uint16_t _timeout_ms
 Timeout in ms for sync operations (when we wait for a response)
uint64_t _dev_addr64
 Device 64 bit address (SH, SL)
RawSerial * _uart
 Serial Interface, use RawSerial as we dont use the streams.
DigitalOut * _reset
 IO connected to the radio reset line.
uint8_t _tx_options
 Transmit options byte.
FrameHandler_fhandlers [MAX_FRAME_HANDLERS]
 Array of frame handler pointers.
volatile uint16_t _hw_reset_cnt
 Hardware reset counter, automatically updated by the library.
volatile uint16_t _wd_reset_cnt
 Watchdog reset counter, automatically updated by the library.
FH_ModemStatus * _modem_status_handler
 Frame handler used for the Modem Status packets.
AtCmdFrame::ModemStatus _modem_status
 Latest modem status received.
bool _initializing
 Library is initializing.
Timer _nd_timer
 Timer used for node discovery.
int _nd_timeout
 node discovery timeout
uint8_t _node_by_ni_frame_id
 If a _get_remote_node_by_id() is in progress, this keeps the expected frame id.

Static Protected Attributes

static FrameBuffer _framebuf_app
 buffer to store the received frames

Detailed Description

Parent Class for XBee modules, not to be directly used.

Definition at line 109 of file XBee.h.


Member Enumeration Documentation

enum RadioMode

RadioMode.

Enumerator:
ModeUnknown 

Unknown.

ModeAPI1 

API1.

ModeAPI2 

API2.

ModeTransparent 

Transparent.

ModeBootloader 

Bootloader.

Definition at line 131 of file XBee.h.


Constructor & Destructor Documentation

XBee ( PinName  tx,
PinName  rx,
PinName  reset = NC,
PinName  rts = NC,
PinName  cts = NC,
int  baud = 9600 
)

Class constructor.

Parameters:
txthe TX pin of the UART that will interface the XBee module
rxthe RX pin of the UART that will interface the XBee module
resetthe pin to which the XBee's reset line is attached to, use NC if not available
rtsthe RTS pin for the UART that will interface the XBee module, use NC if not available
ctsthe CTS pin for the UART that will interface the XBee module, use NC if not available
baudthe baudrate for the UART that will interface the XBee module. Note that the module has to be already configured to this baud rate (ATBD parameter). By default it is configured to 9600 bps

Definition at line 76 of file XBee.cpp.

~XBee (  ) [virtual]

Class destructor.

Definition at line 110 of file XBee.cpp.


Member Function Documentation

RadioStatus _get_iosample ( const RemoteXBee remote,
uint8_t *const   io_sample,
uint16_t *const   len 
) [protected]

_get_iosample - forces an io_sample read (reads all digital and analog inputs)

Parameters:
remoteremote device
io_samplebuffer where the io_sample response is copied
lenpointer where the length of the io_sample response is stored
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 298 of file RadioConfig.cpp.

bool check_radio_flow_control (  ) [protected]

check_radio_flow_control - checks that the radio has the CTS "D7" and RTS "D6" pins configured according to the serial hardware flow control selected by the user

Returns:
true if check success.

Definition at line 44 of file XBee.cpp.

RadioStatus config_io_sample_destination ( const RemoteXBee remote,
const RemoteXBee destination 
)

config_io_sample_destination - configures to which node a remote module will send its IO Samples to.

: this will modify 'remote' DH and DL parameters, if the remote node is configured in transparent mode this could lead to unwanted behavior. Consult the module's reference manual for more information.

Parameters:
remoteremote device that will be sending the IO Samples
destinationremote device that will be receiving the IO Samples sent by 'remote'
Returns:
the result of the data transfer Success if the operation was successful, Failure otherwise

Definition at line 312 of file RadioConfig.cpp.

RadioStatus config_node_discovery ( uint16_t  backoff_ms,
uint8_t  options = 0 
)

config_node_discovery - configures the node discovery operation

Parameters:
backoff_msmax allowed time for devices in the network to answer to the Node Discovery request
optionsnode discovery options (flags) XBEE802_ND_OPTION_SELF_RESPONSE - to allow the module self responding (802.15.4 only) XBEEZB_ND_OPTION_SELF_RESPONSE - to allow the module self responding (ZigBee only) XBEEZB_ND_OPTION_APPEND_DD - to append the DD value to the response (ZigBee only) XBEEDM_ND_OPTION_INCLUDE_RSSI - to include RSSI information in response (DigiMesh only) XBEEDM_ND_OPTION_SELF_RESPONSE - to allow the module self responding (DigiMesh only) XBEEDM_ND_OPTION_APPEND_DD - to append the DD value to the response (DigiMesh only)
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 258 of file RadioConfig.cpp.

RadioStatus device_reset (  ) [virtual]

device_reset - performs a hardware reset if there is a GPIO connected to the reset line of the device.

Otherwise, performs a firmware reset.

Returns:
Success if the operation was successful, Failure otherwise

Definition at line 215 of file XBee.cpp.

RadioStatus enable_network_encryption ( bool  enable )

enable_network_encryption - Enable network encryption.

Parameters:
enablewhether to enable this feature or not
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 114 of file RadioConfig.cpp.

uint64_t get_addr64 (  ) const

get_addr64 - returns the 64bit address of the local device

Returns:
the 64bit address of the local device

Definition at line 196 of file XBee.cpp.

int get_AI ( void   ) [protected]

get_AI - reads the AI parameter.

Returns:
-1 if an error occurred when reading AI. 0-0xFF the AI value.

Definition at line 870 of file XBee.cpp.

RadioStatus get_config_node_discovery ( uint16_t *const   backoff_ms,
uint8_t *const   options 
)

get_config_node_discovery - reads the configuration of the node discovery settings

Parameters:
backoff_mspointer where the configured node discovery back-off time value will be stored
optionspointer whre the node discovery options (flags) will be saved
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 279 of file RadioConfig.cpp.

uint16_t get_fw_version (  ) const

get_fw_version - gets the firmware version of the radio

Returns:
the firmware version of the radio

Definition at line 138 of file RadioConfig.cpp.

uint16_t get_hw_version (  ) const

get_hw_version - gets the hardware version of the radio

Returns:
the hardware version of the radio

Definition at line 133 of file RadioConfig.cpp.

virtual RadioStatus get_node_discovery_timeout ( uint16_t *const   timeout_ms ) [protected, pure virtual]

get_node_discovery_timeout - gets the node discovery timeout

Parameters:
timeout_mspointer where the node discovery timeout value will be stored
wait_for_complete_timeoutpointer where the function will store if the operator has to wait for the complete nd timeout after issuing a directed nd request
Returns:
Success if the operation was successful, Failure otherwise

Implemented in XBee802, XBeeDM, and XBeeZB.

RadioStatus get_node_identifier ( char *const   node_id )

get_node_identifier - reads the configured Node Identifier string

Parameters:
node_idPointer to where to store the read Node Identifier, it must point to a buffer with at least 21-bytes length.
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 97 of file RadioConfig.cpp.

virtual AtCmdFrame::AtCmdResp get_param ( const RemoteXBee remote,
const char *const   param,
uint32_t *const   data 
) [pure virtual]

get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response.

Parameters:
remoteremote device
paramparameter to be get.
datapointer where the param value (4 bytes) will be stored.
Returns:
the command response status.

Implemented in XBee802, XBeeDM, and XBeeZB.

virtual AtCmdFrame::AtCmdResp get_param ( const RemoteXBee remote,
const char *const   param,
uint8_t *const   data,
uint16_t *const   len 
) [pure virtual]

get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response.

Parameters:
remoteremote device
paramparameter to be get.
datapointer where the param value (n bytes) will be stored.
lenpointer where the number of bytes of the param value will be stored.
Returns:
the command response status.

Implemented in XBee802, XBeeDM, and XBeeZB.

AtCmdFrame::AtCmdResp get_param ( const char *const   param,
uint32_t *const   data 
)

get_param - gets a parameter from the local radio by sending an AT command and waiting for the response.

Parameters:
paramparameter to be get.
datapointer where the param value (4 bytes) will be stored.
Returns:
the command response status.

Definition at line 113 of file AtCommands.cpp.

AtCmdFrame::AtCmdResp get_param ( const char *const   param,
uint8_t *const   data,
uint16_t *const   len 
)

get_param - gets a parameter from the local radio by sending an AT command and waiting for the response.

Parameters:
paramparameter to be get.
datapointer where the param value (n bytes) will be stored.
lenpointer where the number of bytes of the param value will be stored.
Returns:
the command response status.

Definition at line 140 of file AtCommands.cpp.

RadioStatus get_power_level ( uint8_t *const   level )

get_power_level - reads the power level configured in the radio

Parameters:
levelpointer where the read power level will be stored
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 45 of file RadioConfig.cpp.

XBee::RadioProtocol get_radio_protocol ( void   ) const [protected]

get_radio_protocol - returns the RF protocol that the connected module uses based on its firmware and hardware versions

Returns:
a RadioProtocol enum.

Definition at line 627 of file XBee.cpp.

ApiFrame * get_this_api_frame ( uint8_t  id,
ApiFrame::ApiFrameType  type,
ApiFrame::ApiFrameType  type2 = ApiFrame::Invalid 
) [protected]

get_this_api_frame - searches in the FrameBuffer for an incoming frame with frameid equal to id and frame type equal to type or type2.

If after timeout the frame hast not been found, returns.

Parameters:
idid of the frame we are looking for.
typetye type we expect the frame to be.
type2alternative valid type, if provided.
Returns:
a pointer to the frame found in the FrameBuffer or a null pointer if the frame has not been found and the timeout expired.

Definition at line 496 of file XBee.cpp.

uint16_t get_timeout ( void   ) const

get_timeout - gets the timeout in ms configured in the library.

This value is used in sync commands

Returns:
the configured timeout value in ms

Definition at line 491 of file XBee.cpp.

uint8_t get_tx_options (  ) const

get_tx_options - returns the tx options byte configured in the library.

Returns:
the tx options byte configured in the library.

Definition at line 148 of file RadioConfig.cpp.

RadioStatus hardware_reset (  )

hardware_reset - performs a hardware reset.

The reset GPIO must have been provided to the constructor

Returns:
Success if the operation was successful, Failure otherwise

Definition at line 201 of file XBee.cpp.

RadioStatus init ( void   )

init- initializes object This function must be called just after creating the object so it initializes internal data.

Returns:
Success if the module has been properly initialized and is ready to process data. Failure otherwise.

Reimplemented in XBee802, XBeeDM, and XBeeZB.

Definition at line 124 of file XBee.cpp.

bool is_node_discovery_in_progress (  )

is_node_discovery_in_progress - checks if node discovery is in progress.

Returns:
true if node discovery is in progress, false otherwise

Definition at line 173 of file RadioConfig.cpp.

uint32_t process_rx_frames (  )

process_rx_frames - method that processes the frames queued in the reception buffer.

Calls the process_frame_data method of the frame handlers registered

Returns:
Number of dropped frames since latest call to this method.

Definition at line 819 of file XBee.cpp.

void radio_status_update ( AtCmdFrame::ModemStatus  modem_status ) [protected, virtual]

update_radio_status - method called when a modem status frame is received to update the internal status variables of the library.

Note:
This is not a pure virtual function because it can be called while the object is being constructed and we need the implementation of the base class.
Parameters:
statusbyte with the status received in the modem status frame

Reimplemented in XBee802, XBeeDM, and XBeeZB.

Definition at line 481 of file XBee.cpp.

RadioStatus register_frame_handler ( FrameHandler *const   handler ) [protected]

register_frame_handler - registers an object to handle incoming frames from the radio.

Note:
For any type of frame more than one handler can be registered and all of them are called, sequentially, when a frame of that type arrives.
Parameters:
handlerpointer to the frame handler object
Returns:
the result of the registration Success if the operation was successful, Failure otherwise

Definition at line 583 of file XBee.cpp.

void register_modem_status_cb ( modem_status_cb_t  function )

register_modem_status_cb - registers the callback function that will be called when a Modem Status packet is received

Parameters:
functionfunction pointer with the callback function

Definition at line 851 of file XBee.cpp.

void send_api_frame ( ApiFrame frame ) [protected, virtual]

send_api_frame - method to send, over the serial port, an API frame

Parameters:
framepointer to the frame that will be sent.

Definition at line 550 of file XBee.cpp.

AtCmdFrame::AtCmdResp send_at_cmd ( AtCmdFrame frame,
uint8_t *const   buf,
uint16_t *const   len,
RadioLocation  radio_location = RadioLocal,
bool  reverse = true 
) [protected]

send_at_cmd - sends an AT command to the radio and waits for the response.

Method that sends an AT command to the module and waits for the command response.

Parameters:
frameapi frame with the command and command params.
bufpointer where the param response (n bytes) will be stored.
lenpointer where the number of bytes of the param response will be stored.
radio_locationradio location, either RadioLocal or RadioRemote.
reversereverse the byte ordering of the response saved in buf.
Returns:
the command response status.
the AT command response

Definition at line 28 of file AtCommands.cpp.

AtCmdFrame::AtCmdResp send_at_cmd ( AtCmdFrame frame ) [protected]

Method that sends an AT command to the module and waits for the command response.

Returns:
the AT command response

Definition at line 72 of file AtCommands.cpp.

void send_byte_escaping_if ( uint8_t  data ) [protected]

send_byte_escaping_if - sends a byte, through the serial interface, to the radio, escaping the byte if the working mode of the radio is API2.

Parameters:
linePWM line being set
datathe byte that will be send to radio

Definition at line 531 of file XBee.cpp.

TxStatus send_data ( ApiFrame frame ) [protected]

Method used internaly by the derived classes to transmit data to remote nodes, waiting for the answer from the device.

Parameters:
frameframe that will be sent to the radio (have to be a proper transmit frame
Returns:
the result of the data transfer TxStatusSuccess if the operation was successful, the error code otherwise

Definition at line 788 of file XBee.cpp.

virtual TxStatus send_data ( const RemoteXBee remote,
const uint8_t *const   data,
uint16_t  len,
bool  syncr = true 
) [pure virtual]

send_data - sends data to a remote device

Parameters:
remoteremote device
datapointer to the data that will be sent
lennumber of bytes that will be transmitted
syncrif true, method waits for the packet answer with the result of the operation
Returns:
the result of the data transfer TxStatusSuccess if the operation was successful, the error code otherwise

Implemented in XBee802, XBeeDM, and XBeeZB.

TxStatus send_data_broadcast ( const uint8_t *const   data,
uint16_t  len,
bool  syncr = true 
)

send_data_broadcast - sends data to all devices in the network, using the broadcast address.

Parameters:
datapointer to the data that will be sent
lennumber of bytes that will be transmitted
syncrif true, method waits for the packet answer with the result of the operation
Returns:
the result of the data transfer TxStatusSuccess if the operation was successful, the error code otherwise

Definition at line 813 of file XBee.cpp.

RadioStatus set_io_sample_rate ( const RemoteXBee remote,
float  seconds 
)

set_io_sample_rate - configures how often the IO Samples should be sent to the destination (see send_io_sample_to).

Parameters:
remoteremote device that will be sending the IO Samples
secondsthe IO Sample sending rate in seconds (granularity is of 1 millisecond). Maximum is 65.535 seconds.
Returns:
the result of the data transfer Success if the operation was successful, Failure otherwise

Definition at line 347 of file RadioConfig.cpp.

RadioStatus set_network_encryption_key ( const uint8_t *const   key,
const uint16_t  length 
)

set_network_encryption_key - Sets the 128-bit AES key used for encryption and decryption.

Setting it to 0 will cause the coordinator to transmit the network key in the clear to joining devices, and will cause joining devices to acquire the network key in the clear when joining. It is not recommended to set the key programmatically, because it could be read through the raw serial port bits.

Parameters:
keypointer to the 128-bit AES key
lengthsize of the buffer pointed by 'key'
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 122 of file RadioConfig.cpp.

RadioStatus set_node_identifier ( const char *const   node_id )

set_node_identifier - configures the Node Identifier string

Parameters:
node_idNULL-terminated string with the Node Identifier that will be set on the module. Up to 20 characters length (21 with NULL-terminator).
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 77 of file RadioConfig.cpp.

AtCmdFrame::AtCmdResp set_param ( const char *const   param,
const uint8_t *  data = NULL,
uint16_t  len = 0 
)

set_param - sets a parameter in the local radio by sending an AT command and waiting for the response.

Parameters:
paramparameter to be set.
datathe parameter value byte array (len bytes) to be set.
lennumber of bytes of the parameter value.
Returns:
the command response status.

Definition at line 134 of file AtCommands.cpp.

virtual AtCmdFrame::AtCmdResp set_param ( const RemoteXBee remote,
const char *const   param,
uint32_t  data 
) [pure virtual]

set_param - sets a parameter in a remote radio by sending an AT command and waiting for the response.

Parameters:
remoteremote device
paramparameter to be set.
datathe parameter value (4 bytes) to be set.
Returns:
the command response status.

Implemented in XBee802, XBeeDM, and XBeeZB.

virtual AtCmdFrame::AtCmdResp set_param ( const RemoteXBee remote,
const char *const   param,
const uint8_t *  data = NULL,
uint16_t  len = 0 
) [pure virtual]

set_param - sets a parameter in a remote radio by sending an AT command and waiting for the response.

Parameters:
remoteremote device
paramparameter to be set.
datathe parameter value byte array (len bytes) to be set.
lennumber of bytes of the parameter value.
Returns:
the command response status.

Implemented in XBee802, XBeeDM, and XBeeZB.

AtCmdFrame::AtCmdResp set_param ( const char *const   param,
uint32_t  data 
)

set_param - sets a parameter in the local radio by sending an AT command and waiting for the response.

Parameters:
paramparameter to be set.
datathe parameter value (4 bytes) to be set.
Returns:
the command response status.

Definition at line 128 of file AtCommands.cpp.

RadioStatus set_power_level ( uint8_t  level )

set_power_level - sets the power level at which the radio will transmit

Parameters:
levelpower level at which the radio will transmit
Returns:
Success if the operation was successful, Failure otherwise

Definition at line 29 of file RadioConfig.cpp.

void set_timeout ( uint16_t  timeout_ms )

set_timeout - sets the timeout in ms, used by sync methods

Parameters:
timeout_msnew timeout in ms

Definition at line 486 of file XBee.cpp.

void set_tx_options ( uint8_t  options )

set_tx_options - sets the transmit options byte, used with the transmit frames.

Valid flags are:

  • DISABLE_RETRIES_AND_ROUTE_REPAIR
  • ENABLE_APS_ENCRYPTION
  • USE_EXTENDED_TX_TIMEOUT
Parameters:
optionsvariable with the option flags

Definition at line 143 of file RadioConfig.cpp.

RadioStatus software_reset ( void   )

software_reset - performs a firmware reset

Returns:
Success if the operation was successful, Failure otherwise

Definition at line 61 of file RadioConfig.cpp.

RadioStatus start_node_discovery (  )

start_node_discovery - starts a node discovery operation.

The responses have to be processes on the callback function that have to be registered for that purpose.

Returns:
Success if the operation was successful, Failure otherwise

Definition at line 153 of file RadioConfig.cpp.

void uart_read_cb ( void   ) [protected]

uart_read_cb - serial interface callback, called when data is received on the serial port.

Callback function called when data is received on the serial port.

The function parses the incoming data and, when a good frame is detected, saves it in the frame list

Definition at line 241 of file XBee.cpp.

RadioStatus unregister_frame_handler ( FrameHandler *const   handler ) [protected]

unregister_frame_handler - removes a previously registered frame handler

Parameters:
handlerpointer to the frame handler object
Returns:
the result of the unregister operation Success if the operation was successful, Failure otherwise

Definition at line 600 of file XBee.cpp.

void unregister_modem_status_cb ( void   )

unregister_modem_status_cb - removes the Modem Status reception callback

Definition at line 860 of file XBee.cpp.

RadioStatus write_config ( void   )

write_config - write settings to non volatile memory

Returns:
Success if the operation was successful, Failure otherwise

Definition at line 18 of file RadioConfig.cpp.


Field Documentation

uint64_t _dev_addr64 [protected]

Device 64 bit address (SH, SL)

Definition at line 667 of file XBee.h.

FrameHandler* _fhandlers[MAX_FRAME_HANDLERS] [protected]

Array of frame handler pointers.

We use an array instead of a vector or other data structure to save memory and avoid dynamic memory allocation, to avoid memory fragmentation

Definition at line 681 of file XBee.h.

FrameBuffer _framebuf_app [static, protected]

buffer to store the received frames

Definition at line 123 of file XBee.h.

uint16_t _fw_version [protected]

Firmware version value of the radio.

Definition at line 661 of file XBee.h.

volatile uint16_t _hw_reset_cnt [protected]

Hardware reset counter, automatically updated by the library.

Definition at line 684 of file XBee.h.

uint16_t _hw_version [protected]

Hardware version value of the radio.

Definition at line 658 of file XBee.h.

bool _initializing [protected]

Library is initializing.

Definition at line 697 of file XBee.h.

RadioMode _mode [protected]

Operating mode of the module (API1, API2,...)

Definition at line 655 of file XBee.h.

Latest modem status received.

Definition at line 694 of file XBee.h.

FH_ModemStatus* _modem_status_handler [protected]

Frame handler used for the Modem Status packets.

Automatically registered when a callback function is registered

Definition at line 691 of file XBee.h.

int _nd_timeout [protected]

node discovery timeout

Definition at line 703 of file XBee.h.

Timer _nd_timer [protected]

Timer used for node discovery.

Definition at line 700 of file XBee.h.

uint8_t _node_by_ni_frame_id [protected]

If a _get_remote_node_by_id() is in progress, this keeps the expected frame id.

Definition at line 706 of file XBee.h.

DigitalOut* _reset [protected]

IO connected to the radio reset line.

Definition at line 673 of file XBee.h.

SerialBase::Flow _serial_flow_type [protected]

serial hardware flow control selected by the user (RTSCTS, RTS,CTS)

Definition at line 652 of file XBee.h.

uint16_t _timeout_ms [protected]

Timeout in ms for sync operations (when we wait for a response)

Definition at line 664 of file XBee.h.

uint8_t _tx_options [protected]

Transmit options byte.

Definition at line 676 of file XBee.h.

RawSerial* _uart [protected]

Serial Interface, use RawSerial as we dont use the streams.

Definition at line 670 of file XBee.h.

volatile uint16_t _wd_reset_cnt [protected]

Watchdog reset counter, automatically updated by the library.

Definition at line 687 of file XBee.h.