Digi XBeeLib fixed for NonCopyable issue
Dependents: XBeeZB_Receive_Data
Fork of XBeeLib by
XBeeDM Class Reference
Class for XBee ZigBee modules, derived from XBee. More...
#include <XBeeDM.h>
Inherits XBeeLib::XBee.
Public Types | |
enum | IoLine { DIO0_AD0 = 0, DIO1_AD1 = 1, DIO2_AD2 = 2, DIO3_AD3 = 3, DIO4 = 4, DIO5 = 5, DIO6 = 6, DIO7 = 7, DIO8 = 8, DIO9 = 9, DIO10_PWM0 = 10, DIO11_PWM1 = 11, DIO12 = 12 } |
IoLine for XBeeDM Modules. More... | |
enum | RadioMode { ModeUnknown = 0, ModeAPI1 = 1, ModeAPI2 = 2, ModeTransparent = 3, ModeBootloader = 4 } |
RadioMode. More... | |
Public Member Functions | |
XBeeDM (PinName tx, PinName rx, PinName reset=NC, PinName rts=NC, PinName cts=NC, int baud=9600) | |
Class constructor. | |
virtual | ~XBeeDM () |
Class destructor. | |
RadioStatus | init () |
init- initializes object This function must be called just after creating the object so it initializes internal data. | |
RadioStatus | set_channel (uint8_t channel) |
set_channel - sets the channel number | |
RadioStatus | get_channel (uint8_t *const channel) |
get_channel - gets the channel number | |
RadioStatus | set_network_id (uint16_t network_id) |
set_network_id - sets the Network ID. | |
RadioStatus | get_network_id (uint16_t *const network_id) |
get_network_id - gets the Network ID, as it was set by set_network_id(). | |
void | register_node_discovery_cb (node_discovery_dm_cb_t function) |
register_node_discovery_cb - registers the callback function that will be called when the responses to the node discovery command arrive | |
void | unregister_node_discovery_cb () |
unregister_node_discovery_cb - removes the node discovery callback | |
void | register_receive_cb (receive_dm_cb_t function) |
register_receive_cb - registers the callback function that will be called when a data packet is received | |
void | unregister_receive_cb () |
unregister_receive_cb - removes the rx packet callback | |
void | register_io_sample_cb (io_data_cb_dm_t function) |
register_io_sample_cb - registers the callback function that will be called when a IO Sample Data packet is received | |
void | unregister_io_sample_cb () |
unregister_io_sample_cb - removes the IO Sample Data reception callback | |
virtual TxStatus | send_data (const RemoteXBee &remote, const uint8_t *const data, uint16_t len, bool syncr=true) |
send_data - sends data to a remote device | |
TxStatus | send_data (const RemoteXBee &remote, uint8_t source_ep, uint8_t dest_ep, uint16_t cluster_id, uint16_t profile_id, const uint8_t *const data, uint16_t len, bool syncr=true) |
send_data - sends data to a remote device. | |
TxStatus | send_data_to_coordinator (const uint8_t *const data, uint16_t len, bool syncr=true) |
send_data_to_coordinator - sends data to the ZigBee coordinator | |
RemoteXBeeDM | get_remote_node_by_id (const char *const node_id) |
get_remote_node_by_id - searches for a device in the network with the specified Node Identifier. | |
virtual AtCmdFrame::AtCmdResp | set_param (const RemoteXBee &remote, const char *const param, uint32_t data) |
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) |
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) |
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) |
get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response. | |
RadioStatus | set_pin_config (const RemoteXBee &remote, IoLine line, IoMode mode) |
set_pin_config - configures a radio IO line | |
RadioStatus | get_pin_config (const RemoteXBee &remote, IoLine line, IoMode *const mode) |
get_pin_config - gets the configuration of a radio IO line | |
RadioStatus | set_dio (const RemoteXBee &remote, IoLine line, DioVal val) |
set_dio - sets to low/high a DIO line | |
RadioStatus | get_dio (const RemoteXBee &remote, IoLine line, DioVal *const val) |
get_dio - read the value of a DIO configured as digital input | |
RadioStatus | get_adc (const RemoteXBee &remote, IoLine line, uint16_t *const val) |
get_adc - read the value of the espcified ADC line | |
IOSampleDM | get_iosample (const RemoteXBee &remote) |
get_iosample - retrieves an IOSampleDM from a remote node. | |
RadioStatus | set_pwm (const RemoteXBee &remote, IoLine line, float duty_cycle) |
set_pwm - sets the duty cycle of a PWM line | |
RadioStatus | set_pin_pull_up (const RemoteXBee &remote, IoLine line, bool enable) |
set_pin_pull_up - enables or disables the internal pull-up resistor of a line | |
RadioStatus | enable_dio_change_detection (const RemoteXBee &remote, IoLine line, bool enable) |
enable_dio_change_detection - enables or disables the notification when a change is detected in a digital input line. | |
RadioStatus | config_poll_destination (const RemoteXBee &destination) |
config_poll_destination - configures to which node poll messages will be sent once module awakes if configured as an Indirect Msg Poller (CE==0x4). | |
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. | |
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. | |
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 | |
virtual void | radio_status_update (AtCmdFrame::ModemStatus modem_status) |
Method called directly by the library when a modem status frame is received to update the internal status variables. | |
virtual RadioStatus | get_node_discovery_timeout (uint16_t *const timeout_ms) |
get_node_discovery_timeout - gets the node discovery timeout | |
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. | |
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. | |
ApiFrame * | get_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 | |
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. | |
Protected Attributes | |
FH_NodeDiscoveryDM * | _nd_handler |
Frame handler used for the node discovery. | |
FH_RxPacketDM * | _rx_pkt_handler |
Frame handler used for the rx packets. | |
FH_IoDataSampeDM * | _io_data_handler |
Frame handler used for the IO Data Sample packets. | |
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
Class for XBee ZigBee modules, derived from XBee.
Definition at line 25 of file XBeeDM.h.
Member Enumeration Documentation
enum IoLine |
IoLine for XBeeDM Modules.
enum RadioMode [inherited] |
Constructor & Destructor Documentation
XBeeDM | ( | PinName | tx, |
PinName | rx, | ||
PinName | reset = NC , |
||
PinName | rts = NC , |
||
PinName | cts = NC , |
||
int | baud = 9600 |
||
) |
Class constructor.
- Parameters:
-
tx the TX pin of the UART that will interface the XBee module rx the RX pin of the UART that will interface the XBee module reset the pin to which the XBee's reset line is attached to, use NC if not available rts the RTS pin for the UART that will interface the XBee module, use NC if not available cts the CTS pin for the UART that will interface the XBee module, use NC if not available baud the 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 22 of file XBeeDM.cpp.
~XBeeDM | ( | ) | [virtual] |
Class destructor.
Definition at line 42 of file XBeeDM.cpp.
Member Function Documentation
RadioStatus _get_iosample | ( | const RemoteXBee & | remote, |
uint8_t *const | io_sample, | ||
uint16_t *const | len | ||
) | [protected, inherited] |
_get_iosample - forces an io_sample read (reads all digital and analog inputs)
- Parameters:
-
remote remote device io_sample buffer where the io_sample response is copied len pointer where the length of the io_sample response is stored
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 302 of file RadioConfig.cpp.
bool check_radio_flow_control | ( | ) | [protected, inherited] |
RadioStatus config_io_sample_destination | ( | const RemoteXBee & | remote, |
const RemoteXBee & | destination | ||
) | [inherited] |
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:
-
remote remote device that will be sending the IO Samples destination remote 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 316 of file RadioConfig.cpp.
RadioStatus config_node_discovery | ( | uint16_t | backoff_ms, |
uint8_t | options = 0 |
||
) | [inherited] |
config_node_discovery - configures the node discovery operation
- Parameters:
-
backoff_ms max allowed time for devices in the network to answer to the Node Discovery request options node 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 262 of file RadioConfig.cpp.
RadioStatus config_poll_destination | ( | const RemoteXBee & | destination ) |
config_poll_destination - configures to which node poll messages will be sent once module awakes if configured as an Indirect Msg Poller (CE==0x4).
Consult the module's reference manual for more information.
- Parameters:
-
destination remote device where the poll messages will be sent
- Returns:
- the result of the data transfer Success if the operation was successful, Failure otherwise
Definition at line 528 of file XBeeDM.cpp.
RadioStatus device_reset | ( | ) | [virtual, inherited] |
RadioStatus enable_dio_change_detection | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
bool | enable | ||
) |
enable_dio_change_detection - enables or disables the notification when a change is detected in a digital input line.
In other words, it will force an IO Sample transmission when the DIO state changes. Only for DIO0 to DIO11.
- Parameters:
-
remote remote device line line being configured for pull-up enable whether to enable the internal pull-up resistor.
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 491 of file XBeeDM.cpp.
RadioStatus enable_network_encryption | ( | bool | enable ) | [inherited] |
enable_network_encryption - Enable network encryption.
- Parameters:
-
enable whether to enable this feature or not
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 114 of file RadioConfig.cpp.
RadioStatus get_adc | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
uint16_t *const | val | ||
) |
get_adc - read the value of the espcified ADC line
- Parameters:
-
remote remote device line ADC line being read val pointer where the value read from hte ADC will be stored
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 380 of file XBeeDM.cpp.
uint64_t get_addr64 | ( | ) | const [inherited] |
int get_AI | ( | void | ) | [protected, inherited] |
RadioStatus get_channel | ( | uint8_t *const | channel ) |
get_channel - gets the channel number
- Parameters:
-
channel pointer where the channel value will be stored.
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 62 of file XBeeDM.cpp.
RadioStatus get_config_node_discovery | ( | uint16_t *const | backoff_ms, |
uint8_t *const | options | ||
) | [inherited] |
get_config_node_discovery - reads the configuration of the node discovery settings
- Parameters:
-
backoff_ms pointer where the configured node discovery back-off time value will be stored options pointer whre the node discovery options (flags) will be saved
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 283 of file RadioConfig.cpp.
RadioStatus get_dio | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
DioVal *const | val | ||
) |
get_dio - read the value of a DIO configured as digital input
- Parameters:
-
remote remote device line DIO line being read val pointer where the DIO value read will be stored
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 375 of file XBeeDM.cpp.
uint16_t get_fw_version | ( | ) | const [inherited] |
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 [inherited] |
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.
IOSampleDM get_iosample | ( | const RemoteXBee & | remote ) |
get_iosample - retrieves an IOSampleDM from a remote node.
This object can be used to get the remote node's ADC and DIO values.
- Parameters:
-
remote remote device
- Returns:
- IOSampleDM object with the remote node's DIO and ADC values.
Definition at line 403 of file XBeeDM.cpp.
RadioStatus get_network_id | ( | uint16_t *const | network_id ) |
get_network_id - gets the Network ID, as it was set by set_network_id().
- Parameters:
-
network_id pointer where the Network ID will be stored
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 89 of file XBeeDM.cpp.
RadioStatus get_node_discovery_timeout | ( | uint16_t *const | timeout_ms ) | [protected, virtual] |
get_node_discovery_timeout - gets the node discovery timeout
- Parameters:
-
timeout_ms pointer where the node discovery timeout value will be stored wait_for_complete_timeout pointer 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
Implements XBee.
Definition at line 105 of file XBeeDM.cpp.
RadioStatus get_node_identifier | ( | char *const | node_id ) | [inherited] |
get_node_identifier - reads the configured Node Identifier string
- Parameters:
-
node_id Pointer 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.
AtCmdFrame::AtCmdResp get_param | ( | const RemoteXBee & | remote, |
const char *const | param, | ||
uint32_t *const | data | ||
) | [virtual] |
get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response.
- Parameters:
-
remote remote device param parameter to be get. data pointer where the param value (4 bytes) will be stored.
- Returns:
- the command response status.
Implements XBee.
Definition at line 264 of file XBeeDM.cpp.
AtCmdFrame::AtCmdResp get_param | ( | const RemoteXBee & | remote, |
const char *const | param, | ||
uint8_t *const | data, | ||
uint16_t *const | len | ||
) | [virtual] |
get_param - gets a parameter from a remote radio by sending an AT command and waiting for the response.
- Parameters:
-
remote remote device param parameter to be get. data pointer where the param value (n bytes) will be stored. len pointer where the number of bytes of the param value will be stored.
- Returns:
- the command response status.
Implements XBee.
Definition at line 311 of file XBeeDM.cpp.
AtCmdFrame::AtCmdResp get_param | ( | const char *const | param, |
uint32_t *const | data | ||
) | [inherited] |
get_param - gets a parameter from the local radio by sending an AT command and waiting for the response.
- Parameters:
-
param parameter to be get. data pointer 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 | ||
) | [inherited] |
get_param - gets a parameter from the local radio by sending an AT command and waiting for the response.
- Parameters:
-
param parameter to be get. data pointer where the param value (n bytes) will be stored. len pointer 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_pin_config | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
IoMode *const | mode | ||
) |
get_pin_config - gets the configuration of a radio IO line
- Parameters:
-
remote remote device line IO line being read to get its configuration mode pointer where the configuration will be stored
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 353 of file XBeeDM.cpp.
RadioStatus get_power_level | ( | uint8_t *const | level ) | [inherited] |
get_power_level - reads the power level configured in the radio
- Parameters:
-
level pointer 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, inherited] |
RemoteXBeeDM get_remote_node_by_id | ( | const char *const | node_id ) |
get_remote_node_by_id - searches for a device in the network with the specified Node Identifier.
- Parameters:
-
node_id node id of the device we are looking for
- Returns:
- a RemoteXBeeDM with the 16-bit and 64-bit address of the remote device whose node id matches with the parameter. If node is not found, the returned object will have invalid addresses (RemoteXBeeDM::is_valid() will return false).
Definition at line 199 of file XBeeDM.cpp.
ApiFrame * get_this_api_frame | ( | uint8_t | id, |
ApiFrame::ApiFrameType | type, | ||
ApiFrame::ApiFrameType | type2 = ApiFrame::Invalid |
||
) | [protected, inherited] |
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:
-
id id of the frame we are looking for. type tye type we expect the frame to be. type2 alternative 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.
uint16_t get_timeout | ( | void | ) | const [inherited] |
uint8_t get_tx_options | ( | ) | const [inherited] |
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 | ( | ) | [inherited] |
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 from XBee.
Definition at line 27 of file XBeeDM.cpp.
bool is_node_discovery_in_progress | ( | ) | [inherited] |
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 | ( | ) | [inherited] |
void radio_status_update | ( | AtCmdFrame::ModemStatus | modem_status ) | [protected, virtual] |
Method called directly by the library when a modem status frame is received to update the internal status variables.
Reimplemented from XBee.
Definition at line 128 of file XBeeDM.cpp.
RadioStatus register_frame_handler | ( | FrameHandler *const | handler ) | [protected, inherited] |
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:
-
handler pointer to the frame handler object
- Returns:
- the result of the registration Success if the operation was successful, Failure otherwise
void register_io_sample_cb | ( | io_data_cb_dm_t | function ) |
register_io_sample_cb - registers the callback function that will be called when a IO Sample Data packet is received
- Parameters:
-
function function pointer with the callback function
Definition at line 245 of file XBeeDM.cpp.
void register_modem_status_cb | ( | modem_status_cb_t | function ) | [inherited] |
void register_node_discovery_cb | ( | node_discovery_dm_cb_t | function ) |
register_node_discovery_cb - registers the callback function that will be called when the responses to the node discovery command arrive
- Parameters:
-
function function pointer with the callback function
Definition at line 207 of file XBeeDM.cpp.
void register_receive_cb | ( | receive_dm_cb_t | function ) |
register_receive_cb - registers the callback function that will be called when a data packet is received
- Parameters:
-
function function pointer with the callback function
Definition at line 226 of file XBeeDM.cpp.
void send_api_frame | ( | ApiFrame * | frame ) | [protected, virtual, inherited] |
AtCmdFrame::AtCmdResp send_at_cmd | ( | AtCmdFrame * | frame ) | [protected, inherited] |
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.
AtCmdFrame::AtCmdResp send_at_cmd | ( | AtCmdFrame * | frame, |
uint8_t *const | buf, | ||
uint16_t *const | len, | ||
RadioLocation | radio_location = RadioLocal , |
||
bool | reverse = true |
||
) | [protected, inherited] |
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:
-
frame api frame with the command and command params. buf pointer where the param response (n bytes) will be stored. len pointer where the number of bytes of the param response will be stored. radio_location radio location, either RadioLocal or RadioRemote. reverse reverse 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.
void send_byte_escaping_if | ( | uint8_t | data ) | [protected, inherited] |
TxStatus send_data | ( | const RemoteXBee & | remote, |
const uint8_t *const | data, | ||
uint16_t | len, | ||
bool | syncr = true |
||
) | [virtual] |
send_data - sends data to a remote device
- Parameters:
-
remote remote device data pointer to the data that will be sent len number of bytes that will be transmitted syncr if 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
Implements XBee.
Definition at line 142 of file XBeeDM.cpp.
TxStatus send_data | ( | const RemoteXBee & | remote, |
uint8_t | source_ep, | ||
uint8_t | dest_ep, | ||
uint16_t | cluster_id, | ||
uint16_t | profile_id, | ||
const uint8_t *const | data, | ||
uint16_t | len, | ||
bool | syncr = true |
||
) |
send_data - sends data to a remote device.
This method uses the explicit addressing frame, allowing to use source and destination end points and cluster and profile IDs
- Parameters:
-
remote remote device source_ep source end point dest_ep destination end point cluster_id cluster ID profile_id profile ID data pointer to the data that will be sent len number of bytes that will be transmitted syncr if 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 162 of file XBeeDM.cpp.
Method used internaly by the derived classes to transmit data to remote nodes, waiting for the answer from the device.
- Parameters:
-
frame frame 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
TxStatus send_data_broadcast | ( | const uint8_t *const | data, |
uint16_t | len, | ||
bool | syncr = true |
||
) | [inherited] |
send_data_broadcast - sends data to all devices in the network, using the broadcast address.
- Parameters:
-
data pointer to the data that will be sent len number of bytes that will be transmitted syncr if 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
TxStatus send_data_to_coordinator | ( | const uint8_t *const | data, |
uint16_t | len, | ||
bool | syncr = true |
||
) |
send_data_to_coordinator - sends data to the ZigBee coordinator
- Parameters:
-
data pointer to the data that will be sent len number of bytes that will be transmitted syncr if 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 185 of file XBeeDM.cpp.
RadioStatus set_channel | ( | uint8_t | channel ) |
set_channel - sets the channel number
- Parameters:
-
channel the channel in which the radio operates. Range is 0x0B - 0x1A for XBee and 0x0C - 0x17 for XBee-PRO. The Center Frequency = 2.405 + (CH - 11) * 5 MHz
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 49 of file XBeeDM.cpp.
RadioStatus set_dio | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
DioVal | val | ||
) |
set_dio - sets to low/high a DIO line
- Parameters:
-
remote remote device line DIO line being set val value that will be set in the DIO line
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 370 of file XBeeDM.cpp.
RadioStatus set_io_sample_rate | ( | const RemoteXBee & | remote, |
float | seconds | ||
) | [inherited] |
set_io_sample_rate - configures how often the IO Samples should be sent to the destination (see send_io_sample_to).
- Parameters:
-
remote remote device that will be sending the IO Samples seconds the 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 351 of file RadioConfig.cpp.
RadioStatus set_network_encryption_key | ( | const uint8_t *const | key, |
const uint16_t | length | ||
) | [inherited] |
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:
-
key pointer to the 128-bit AES key length size 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_network_id | ( | uint16_t | network_id ) |
set_network_id - sets the Network ID.
- Parameters:
-
network_id the Network ID value that will be set on the radio
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 78 of file XBeeDM.cpp.
RadioStatus set_node_identifier | ( | const char *const | node_id ) | [inherited] |
set_node_identifier - configures the Node Identifier string
- Parameters:
-
node_id NULL-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 |
||
) | [inherited] |
set_param - sets a parameter in the local radio by sending an AT command and waiting for the response.
- Parameters:
-
param parameter to be set. data the parameter value byte array (len bytes) to be set. len number of bytes of the parameter value.
- Returns:
- the command response status.
Definition at line 134 of file AtCommands.cpp.
AtCmdFrame::AtCmdResp set_param | ( | const RemoteXBee & | remote, |
const char *const | param, | ||
uint32_t | data | ||
) | [virtual] |
set_param - sets a parameter in a remote radio by sending an AT command and waiting for the response.
- Parameters:
-
remote remote device param parameter to be set. data the parameter value (4 bytes) to be set.
- Returns:
- the command response status.
Implements XBee.
Definition at line 285 of file XBeeDM.cpp.
AtCmdFrame::AtCmdResp set_param | ( | const RemoteXBee & | remote, |
const char *const | param, | ||
const uint8_t * | data = NULL , |
||
uint16_t | len = 0 |
||
) | [virtual] |
set_param - sets a parameter in a remote radio by sending an AT command and waiting for the response.
- Parameters:
-
remote remote device param parameter to be set. data the parameter value byte array (len bytes) to be set. len number of bytes of the parameter value.
- Returns:
- the command response status.
Implements XBee.
Definition at line 298 of file XBeeDM.cpp.
AtCmdFrame::AtCmdResp set_param | ( | const char *const | param, |
uint32_t | data | ||
) | [inherited] |
set_param - sets a parameter in the local radio by sending an AT command and waiting for the response.
- Parameters:
-
param parameter to be set. data the parameter value (4 bytes) to be set.
- Returns:
- the command response status.
Definition at line 128 of file AtCommands.cpp.
RadioStatus set_pin_config | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
IoMode | mode | ||
) |
set_pin_config - configures a radio IO line
- Parameters:
-
remote remote device line IO line being configured mode configuration mode for the selected line
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 337 of file XBeeDM.cpp.
RadioStatus set_pin_pull_up | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
bool | enable | ||
) |
set_pin_pull_up - enables or disables the internal pull-up resistor of a line
- Parameters:
-
remote remote device line line being configured for pull-up enable whether to enable the internal pull-up resistor.
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 451 of file XBeeDM.cpp.
RadioStatus set_power_level | ( | uint8_t | level ) | [inherited] |
set_power_level - sets the power level at which the radio will transmit
- Parameters:
-
level power level at which the radio will transmit
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 29 of file RadioConfig.cpp.
RadioStatus set_pwm | ( | const RemoteXBee & | remote, |
IoLine | line, | ||
float | duty_cycle | ||
) |
set_pwm - sets the duty cycle of a PWM line
- Parameters:
-
remote remote device line PWM line being set duty_cycle duty cycle that will be set in the PWM line
- Returns:
- Success if the operation was successful, Failure otherwise
Definition at line 385 of file XBeeDM.cpp.
void set_timeout | ( | uint16_t | timeout_ms ) | [inherited] |
void set_tx_options | ( | uint8_t | options ) | [inherited] |
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:
-
options variable with the option flags
Definition at line 143 of file RadioConfig.cpp.
RadioStatus software_reset | ( | void | ) | [inherited] |
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 | ( | ) | [inherited] |
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, inherited] |
RadioStatus unregister_frame_handler | ( | FrameHandler *const | handler ) | [protected, inherited] |
void unregister_io_sample_cb | ( | ) |
unregister_io_sample_cb - removes the IO Sample Data reception callback
Definition at line 254 of file XBeeDM.cpp.
void unregister_modem_status_cb | ( | void | ) | [inherited] |
void unregister_node_discovery_cb | ( | ) |
unregister_node_discovery_cb - removes the node discovery callback
Definition at line 216 of file XBeeDM.cpp.
void unregister_receive_cb | ( | void | ) |
unregister_receive_cb - removes the rx packet callback
Definition at line 235 of file XBeeDM.cpp.
RadioStatus write_config | ( | void | ) | [inherited] |
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, inherited] |
FrameHandler* _fhandlers[MAX_FRAME_HANDLERS] [protected, inherited] |
FrameBuffer _framebuf_app [static, protected, inherited] |
uint16_t _fw_version [protected, inherited] |
volatile uint16_t _hw_reset_cnt [protected, inherited] |
uint16_t _hw_version [protected, inherited] |
bool _initializing [protected, inherited] |
FH_IoDataSampeDM* _io_data_handler [protected] |
AtCmdFrame::ModemStatus _modem_status [protected, inherited] |
FH_ModemStatus* _modem_status_handler [protected, inherited] |
FH_NodeDiscoveryDM* _nd_handler [protected] |
int _nd_timeout [protected, inherited] |
Timer _nd_timer [protected, inherited] |
uint8_t _node_by_ni_frame_id [protected, inherited] |
DigitalOut* _reset [protected, inherited] |
FH_RxPacketDM* _rx_pkt_handler [protected] |
SerialBase::Flow _serial_flow_type [protected, inherited] |
uint16_t _timeout_ms [protected, inherited] |
uint8_t _tx_options [protected, inherited] |
RawSerial* _uart [protected, inherited] |
volatile uint16_t _wd_reset_cnt [protected, inherited] |
Generated on Tue Jul 12 2022 19:44:24 by 1.7.2