High-level driver for the RN2483/RN2903 LoRa modules. More...
High-level driver for the RN2483/RN2903 LoRa modules.
Modules | |
| RN2483/RN2903 Radio driver compile configuration | |
Files | |
| file | rn2xx3.h | 
| High-level driver for the RN2483/RN2903 LoRa modules.  | |
| file | rn2xx3_internal.h | 
| Internal driver definitions for the RN2483/RN2903 LoRa modules.  | |
| file | rn2xx3_params.h | 
| Default configuration for RN2483/RN2903 devices.  | |
Data Structures | |
| struct | loramac_settings_t | 
| LoRaMAC communication settings.  More... | |
| struct | rn2xx3_params_t | 
| Configuration parameters for RN2483/RN2903 devices.  More... | |
| struct | rn2xx3_t | 
| RN2483/RN2903 device descriptor.  More... | |
Macros | |
| #define | RN2XX3_MAX_BUF (40U) | 
| Maximum length of an exchanged messages with commands.  | |
| #define | RN2XX3_RX_MAX_BUF (250U) | 
| Maximum length of an RX message.  More... | |
| #define | RN2XX3_REPLY_DELAY_TIMEOUT (60U) | 
| Maximum delay in second to receive a reply from server.  | |
| #define | RN2XX3_SLEEP_MIN (100U) | 
| Minimum sleep duration (in ms)  | |
Enumerations | |
| enum | {  RN2XX3_OK , RN2XX3_DATA , RN2XX3_TIMEOUT , RN2XX3_ERR_MAC_INIT , RN2XX3_ERR_INVALID_PARAM , RN2XX3_ERR_NOT_JOINED , RN2XX3_ERR_NO_FREE_CH , RN2XX3_ERR_SILENT , RN2XX3_ERR_FR_CNT_REJOIN_NEEDED , RN2XX3_ERR_BUSY , RN2XX3_ERR_MAC_PAUSED , RN2XX3_ERR_INVALID_DATA_LENGTH , RN2XX3_ERR_KEYS_NOT_INIT , RN2XX3_ERR_SLEEP_MODE , RN2XX3_REPLY_TX_MAC_OK , RN2XX3_REPLY_TX_MAC_ERR , RN2XX3_REPLY_TX_INVALID_DATA_LEN , RN2XX3_REPLY_TX_MAC_RX , RN2XX3_REPLY_JOIN_ACCEPTED , RN2XX3_REPLY_JOIN_DENIED , RN2XX3_REPLY_TIMEOUT , RN2XX3_REPLY_OTHER }  | 
| Command responses and server replies status codes.  More... | |
| enum | {  RN2XX3_INT_STATE_RESET , RN2XX3_INT_STATE_CMD , RN2XX3_INT_STATE_IDLE , RN2XX3_INT_STATE_SLEEP , RN2XX3_INT_STATE_MAC_JOIN , RN2XX3_INT_STATE_MAC_TX , RN2XX3_INT_STATE_MAC_RX_PORT , RN2XX3_INT_STATE_MAC_RX_MESSAGE }  | 
| Internal states of the device.  More... | |
Functions | |
| void | rn2xx3_setup (rn2xx3_t *dev, const rn2xx3_params_t *params) | 
| Prepares the given RN2XX3 device.  More... | |
| int | rn2xx3_init (rn2xx3_t *dev) | 
| Initializes the RN2XX3 device.  More... | |
| int | rn2xx3_sys_reset (rn2xx3_t *dev) | 
| Restarts the RN2XX2 device.  More... | |
| int | rn2xx3_sys_factory_reset (rn2xx3_t *dev) | 
| Performs a factory reset of the module.  More... | |
| int | rn2xx3_sys_sleep (rn2xx3_t *dev) | 
| Puts the RN2XX2 device in sleep mode.  More... | |
| int | rn2xx3_mac_init (rn2xx3_t *dev) | 
| Initializes the RN2XX3 device MAC layer.  More... | |
| int | rn2xx3_write_cmd (rn2xx3_t *dev) | 
| Writes a command to the RN2XX3 device.  More... | |
| int | rn2xx3_write_cmd_no_wait (rn2xx3_t *dev) | 
| Writes a command to the RN2XX3 device but don't wait for timeout or response.  More... | |
| int | rn2xx3_wait_response (rn2xx3_t *dev) | 
| Waits for a response to a command from the device.  More... | |
| int | rn2xx3_wait_reply (rn2xx3_t *dev, uint8_t timeout) | 
| Waits for a reply from the LoRaWAN network.  More... | |
| int | rn2xx3_mac_tx (rn2xx3_t *dev, uint8_t *payload, uint8_t payload_len) | 
| Sends data to LoRaWAN server.  More... | |
| int | rn2xx3_mac_join_network (rn2xx3_t *dev, loramac_join_mode_t mode) | 
| Starts network activation procedure.  More... | |
| int | rn2xx3_mac_save (rn2xx3_t *dev) | 
| Saves current LoRaMAC configuration to internal EEPROM.  More... | |
| void | rn2xx3_mac_get_deveui (rn2xx3_t *dev, uint8_t *eui) | 
| Gets the rn2xx3 LoRaMAC device EUI.  More... | |
| void | rn2xx3_mac_set_deveui (rn2xx3_t *dev, const uint8_t *eui) | 
| Sets the rn2xx3 LoRaMAC device EUI.  More... | |
| void | rn2xx3_mac_get_appeui (rn2xx3_t *dev, uint8_t *eui) | 
| Gets the rn2xx3 LoRaMAC application EUI.  More... | |
| void | rn2xx3_mac_set_appeui (rn2xx3_t *dev, const uint8_t *eui) | 
| Sets the rn2xx3 LoRaMAC application EUI.  More... | |
| void | rn2xx3_mac_set_appkey (rn2xx3_t *dev, const uint8_t *key) | 
| Sets the rn2xx3 LoRaMAC application key.  More... | |
| void | rn2xx3_mac_set_appskey (rn2xx3_t *dev, const uint8_t *key) | 
| Sets the rn2xx3 LoRaMAC application session key.  More... | |
| void | rn2xx3_mac_set_nwkskey (rn2xx3_t *dev, const uint8_t *key) | 
| Sets the rn2xx3 LoRaMAC network session key.  More... | |
| void | rn2xx3_mac_get_devaddr (rn2xx3_t *dev, uint8_t *addr) | 
| Gets the rn2xx3 LoRaMAC device address.  More... | |
| void | rn2xx3_mac_set_devaddr (rn2xx3_t *dev, const uint8_t *addr) | 
| Sets the rn2xx3 LoRaMAC device address.  More... | |
| loramac_tx_pwr_idx_t | rn2xx3_mac_get_tx_power (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC TX radio power index.  More... | |
| void | rn2xx3_mac_set_tx_power (rn2xx3_t *dev, loramac_tx_pwr_idx_t power) | 
| Sets the rn2xx3 LoRaMAC transmission power index.  More... | |
| loramac_dr_idx_t | rn2xx3_mac_get_dr (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC datarate.  More... | |
| void | rn2xx3_mac_set_dr (rn2xx3_t *dev, loramac_dr_idx_t dr) | 
| Sets the rn2xx3 LoRaMAC datarate.  More... | |
| uint16_t | rn2xx3_mac_get_band (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC frequency band in operation.  More... | |
| bool | rn2xx3_mac_get_adr (rn2xx3_t *dev) | 
| Checks if the rn2xx3 LoRaMAC adaptive datarate is enabled/disabled.  More... | |
| void | rn2xx3_mac_set_adr (rn2xx3_t *dev, bool adr) | 
| Enables/disables the rn2xx3 LoRaMAC adaptive datarate.  More... | |
| void | rn2xx3_mac_set_battery (rn2xx3_t *dev, uint8_t battery) | 
| Sets the rn2xx3 battery level measured by the end device.  More... | |
| uint8_t | rn2xx3_mac_get_retx (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC uplink retransmission retries number.  More... | |
| void | rn2xx3_mac_set_retx (rn2xx3_t *dev, uint8_t retx) | 
| Sets the rn2xx3 LoRaMAC uplink retransmission retries number.  More... | |
| void | rn2xx3_mac_set_linkchk_interval (rn2xx3_t *dev, uint16_t linkchk) | 
| Sets the rn2xx3 LoRaMAC link check interval (in seconds)  More... | |
| uint16_t | rn2xx3_mac_get_rx1_delay (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC interval delay before the first reception window (in ms)  More... | |
| void | rn2xx3_mac_set_rx1_delay (rn2xx3_t *dev, uint16_t rx1) | 
| Sets the rn2xx3 LoRaMAC interval delay before the first reception window (in ms)  More... | |
| uint16_t | rn2xx3_mac_get_rx2_delay (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC interval delay before the second reception window (in ms)  More... | |
| bool | rn2xx3_mac_get_ar (rn2xx3_t *dev) | 
| Checks the rn2xx3 LoRaMAC automatic reply state.  More... | |
| void | rn2xx3_mac_set_ar (rn2xx3_t *dev, bool ar) | 
| Enables/disables LoRaMAC rn2xx3 MAC automatic reply state.  More... | |
| loramac_dr_idx_t | rn2xx3_mac_get_rx2_dr (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC datarate used for second receive window.  More... | |
| void | rn2xx3_mac_set_rx2_dr (rn2xx3_t *dev, loramac_dr_idx_t dr) | 
| Sets the rn2xx3 LoRaMAC datarate used for second receive window.  More... | |
| uint32_t | rn2xx3_mac_get_rx2_freq (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC frequency used during second receive window (in Hz)  More... | |
| void | rn2xx3_mac_set_rx2_freq (rn2xx3_t *dev, uint32_t freq) | 
| Sets the rn2xx3 LoRaMAC frequency used during second receive window (in Hz)  More... | |
| uint8_t | rn2xx3_mac_get_tx_port (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC TX port.  More... | |
| void | rn2xx3_mac_set_tx_port (rn2xx3_t *dev, uint8_t port) | 
| Sets the rn2xx3 LoRaMAC TX port.  More... | |
| loramac_tx_mode_t | rn2xx3_mac_get_tx_mode (rn2xx3_t *dev) | 
| Gets the rn2xx3 LoRaMAC TX mode.  More... | |
| void | rn2xx3_mac_set_tx_mode (rn2xx3_t *dev, loramac_tx_mode_t mode) | 
| Sets the rn2xx3 LoRaMAC TX mode.  More... | |
| uint8_t | rn2xx3_mac_get_rx_port (rn2xx3_t *dev) | 
| Parses the response buffer to get the LoRaWAN RX port.  More... | |
| void | rn2xx3_sys_set_sleep_duration (rn2xx3_t *dev, uint32_t sleep) | 
| Sets the rn2xx3 sleep mode duration (in ms)  More... | |
| #define RN2XX3_RX_MAX_BUF (250U) | 
| anonymous enum | 
Command responses and server replies status codes.
| Enumerator | |
|---|---|
| RN2XX3_OK | Command is valid.  | 
| RN2XX3_DATA | Command returned data.  | 
| RN2XX3_TIMEOUT | Command timeout.  | 
| RN2XX3_ERR_MAC_INIT | Device mac initialization failed.  | 
| RN2XX3_ERR_INVALID_PARAM | Wrong command given.  | 
| RN2XX3_ERR_NOT_JOINED | Network is not joined.  | 
| RN2XX3_ERR_NO_FREE_CH | All channels are busy.  | 
| RN2XX3_ERR_SILENT | Device is in Silent Immediately state.  | 
| RN2XX3_ERR_FR_CNT_REJOIN_NEEDED | Frame counter rolled over.  | 
| RN2XX3_ERR_BUSY | MAC is not in Idle state.  | 
| RN2XX3_ERR_MAC_PAUSED | MAC was paused.  | 
| RN2XX3_ERR_INVALID_DATA_LENGTH | Wrong payload given.  | 
| RN2XX3_ERR_KEYS_NOT_INIT | Keys not configured ("mac join" command)  | 
| RN2XX3_ERR_SLEEP_MODE | Failure because device is in sleep mode.  | 
| RN2XX3_REPLY_TX_MAC_OK | MAC transmission successful.  | 
| RN2XX3_REPLY_TX_MAC_ERR | MAC transmission failed.  | 
| RN2XX3_REPLY_TX_INVALID_DATA_LEN | Application payload too large.  | 
| RN2XX3_REPLY_TX_MAC_RX | Data received from server.  | 
| RN2XX3_REPLY_JOIN_ACCEPTED | Join procedure successful.  | 
| RN2XX3_REPLY_JOIN_DENIED | Join procedure failed.  | 
| RN2XX3_REPLY_TIMEOUT | No MAC reply received from server.  | 
| RN2XX3_REPLY_OTHER | Unknown reply.  | 
| anonymous enum | 
Internal states of the device.
| int rn2xx3_init | ( | rn2xx3_t * | dev | ) | 
Initializes the RN2XX3 device.
| [in] | dev | RN2XX3 device descriptor | 
| bool rn2xx3_mac_get_adr | ( | rn2xx3_t * | dev | ) | 
Checks if the rn2xx3 LoRaMAC adaptive datarate is enabled/disabled.
| [in] | dev | The rn2xx3 device descriptor | 
| void rn2xx3_mac_get_appeui | ( | rn2xx3_t * | dev, | 
| uint8_t * | eui | ||
| ) | 
Gets the rn2xx3 LoRaMAC application EUI.
The application EUI is an array of 8 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [out] | eui | The application EUI | 
| bool rn2xx3_mac_get_ar | ( | rn2xx3_t * | dev | ) | 
Checks the rn2xx3 LoRaMAC automatic reply state.
| [in] | dev | The rn2xx3 device descriptor | 
| uint16_t rn2xx3_mac_get_band | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC frequency band in operation.
| [in] | dev | The rn2xx3 device descriptor | 
| void rn2xx3_mac_get_devaddr | ( | rn2xx3_t * | dev, | 
| uint8_t * | addr | ||
| ) | 
Gets the rn2xx3 LoRaMAC device address.
The device address is an array of 4 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [out] | addr | The device address | 
| void rn2xx3_mac_get_deveui | ( | rn2xx3_t * | dev, | 
| uint8_t * | eui | ||
| ) | 
Gets the rn2xx3 LoRaMAC device EUI.
The device EUI is an array of 8 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [out] | eui | The device EUI | 
| loramac_dr_idx_t rn2xx3_mac_get_dr | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC datarate.
| [in] | dev | The rn2xx3 device descriptor | 
| uint8_t rn2xx3_mac_get_retx | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC uplink retransmission retries number.
| [in] | dev | The rn2xx3 device descriptor | 
| uint16_t rn2xx3_mac_get_rx1_delay | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC interval delay before the first reception window (in ms)
| [in] | dev | The rn2xx3 device descriptor | 
| uint16_t rn2xx3_mac_get_rx2_delay | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC interval delay before the second reception window (in ms)
| [in] | dev | The rn2xx3 device descriptor | 
| loramac_dr_idx_t rn2xx3_mac_get_rx2_dr | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC datarate used for second receive window.
| [in] | dev | The rn2xx3 device descriptor | 
| uint32_t rn2xx3_mac_get_rx2_freq | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC frequency used during second receive window (in Hz)
| [in] | dev | The rn2xx3 device descriptor | 
| uint8_t rn2xx3_mac_get_rx_port | ( | rn2xx3_t * | dev | ) | 
Parses the response buffer to get the LoRaWAN RX port.
| [in] | dev | The rn2xx3 device descriptor | 
| loramac_tx_mode_t rn2xx3_mac_get_tx_mode | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC TX mode.
| [in] | dev | The rn2xx3 device descriptor | 
| uint8_t rn2xx3_mac_get_tx_port | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC TX port.
| [in] | dev | The rn2xx3 device descriptor | 
| loramac_tx_pwr_idx_t rn2xx3_mac_get_tx_power | ( | rn2xx3_t * | dev | ) | 
Gets the rn2xx3 LoRaMAC TX radio power index.
| [in] | dev | The rn2xx3 device descriptor | 
| int rn2xx3_mac_init | ( | rn2xx3_t * | dev | ) | 
Initializes the RN2XX3 device MAC layer.
| [in] | dev | RN2XX3 device descriptor | 
| int rn2xx3_mac_join_network | ( | rn2xx3_t * | dev, | 
| loramac_join_mode_t | mode | ||
| ) | 
Starts network activation procedure.
| [in] | dev | RN2XX3 device descriptor | 
| [in] | mode | Activation procedure type | 
| int rn2xx3_mac_save | ( | rn2xx3_t * | dev | ) | 
Saves current LoRaMAC configuration to internal EEPROM.
The configuration parameters saved are: frequency band, end device EUI, application EUI, application key, network session key, application session key, end device EUI and all channel parameters.
| [in] | dev | RN2XX3 device descriptor | 
| void rn2xx3_mac_set_adr | ( | rn2xx3_t * | dev, | 
| bool | adr | ||
| ) | 
Enables/disables the rn2xx3 LoRaMAC adaptive datarate.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | adr | The adaptive datarate mode | 
| void rn2xx3_mac_set_appeui | ( | rn2xx3_t * | dev, | 
| const uint8_t * | eui | ||
| ) | 
Sets the rn2xx3 LoRaMAC application EUI.
The application key is an array of 8 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | eui | The application EUI | 
| void rn2xx3_mac_set_appkey | ( | rn2xx3_t * | dev, | 
| const uint8_t * | key | ||
| ) | 
Sets the rn2xx3 LoRaMAC application key.
The application key is an array of 16 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | key | The application key | 
| void rn2xx3_mac_set_appskey | ( | rn2xx3_t * | dev, | 
| const uint8_t * | key | ||
| ) | 
Sets the rn2xx3 LoRaMAC application session key.
The application session key is an array of 16 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | key | The application session key | 
| void rn2xx3_mac_set_ar | ( | rn2xx3_t * | dev, | 
| bool | ar | ||
| ) | 
Enables/disables LoRaMAC rn2xx3 MAC automatic reply state.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | ar | The automatic reply state | 
| void rn2xx3_mac_set_battery | ( | rn2xx3_t * | dev, | 
| uint8_t | battery | ||
| ) | 
Sets the rn2xx3 battery level measured by the end device.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | battery | The battery level:
  | 
| void rn2xx3_mac_set_devaddr | ( | rn2xx3_t * | dev, | 
| const uint8_t * | addr | ||
| ) | 
Sets the rn2xx3 LoRaMAC device address.
The device address is an array of 4 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | addr | The device address | 
| void rn2xx3_mac_set_deveui | ( | rn2xx3_t * | dev, | 
| const uint8_t * | eui | ||
| ) | 
Sets the rn2xx3 LoRaMAC device EUI.
The device EUI is an array of 8 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | eui | The device EUI | 
| void rn2xx3_mac_set_dr | ( | rn2xx3_t * | dev, | 
| loramac_dr_idx_t | dr | ||
| ) | 
Sets the rn2xx3 LoRaMAC datarate.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | dr | The datarate | 
| void rn2xx3_mac_set_linkchk_interval | ( | rn2xx3_t * | dev, | 
| uint16_t | linkchk | ||
| ) | 
Sets the rn2xx3 LoRaMAC link check interval (in seconds)
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | linkchk | The link check interval in seconds | 
| void rn2xx3_mac_set_nwkskey | ( | rn2xx3_t * | dev, | 
| const uint8_t * | key | ||
| ) | 
Sets the rn2xx3 LoRaMAC network session key.
The network session key is an array of 16 bytes.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | key | The network session key | 
| void rn2xx3_mac_set_retx | ( | rn2xx3_t * | dev, | 
| uint8_t | retx | ||
| ) | 
Sets the rn2xx3 LoRaMAC uplink retransmission retries number.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | retx | The number of uplink retransmission retries | 
| void rn2xx3_mac_set_rx1_delay | ( | rn2xx3_t * | dev, | 
| uint16_t | rx1 | ||
| ) | 
Sets the rn2xx3 LoRaMAC interval delay before the first reception window (in ms)
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | rx1 | The delay in ms | 
| void rn2xx3_mac_set_rx2_dr | ( | rn2xx3_t * | dev, | 
| loramac_dr_idx_t | dr | ||
| ) | 
Sets the rn2xx3 LoRaMAC datarate used for second receive window.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | dr | The datarate during second receive window | 
| void rn2xx3_mac_set_rx2_freq | ( | rn2xx3_t * | dev, | 
| uint32_t | freq | ||
| ) | 
Sets the rn2xx3 LoRaMAC frequency used during second receive window (in Hz)
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | freq | The frequency during second receive window | 
| void rn2xx3_mac_set_tx_mode | ( | rn2xx3_t * | dev, | 
| loramac_tx_mode_t | mode | ||
| ) | 
Sets the rn2xx3 LoRaMAC TX mode.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | mode | The TX mode, either confirmable or unconfirmable | 
| void rn2xx3_mac_set_tx_port | ( | rn2xx3_t * | dev, | 
| uint8_t | port | ||
| ) | 
Sets the rn2xx3 LoRaMAC TX port.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | port | The TX port (from 1 to 223) | 
| void rn2xx3_mac_set_tx_power | ( | rn2xx3_t * | dev, | 
| loramac_tx_pwr_idx_t | power | ||
| ) | 
Sets the rn2xx3 LoRaMAC transmission power index.
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | power | The TX power index | 
| int rn2xx3_mac_tx | ( | rn2xx3_t * | dev, | 
| uint8_t * | payload, | ||
| uint8_t | payload_len | ||
| ) | 
Sends data to LoRaWAN server.
| [in] | dev | RN2XX3 device descriptor | 
| [in] | payload | Payload to transmit | 
| [in] | payload_len | Payload length to transmit | 
| void rn2xx3_setup | ( | rn2xx3_t * | dev, | 
| const rn2xx3_params_t * | params | ||
| ) | 
Prepares the given RN2XX3 device.
| [out] | dev | RN2XX3 device to initialize | 
| [in] | params | parameters for device initialization | 
| int rn2xx3_sys_factory_reset | ( | rn2xx3_t * | dev | ) | 
Performs a factory reset of the module.
The configuration data and user EEPPROM are reinitialized to factory default values and the module reboots
After calling this function, dev->resp_buf contains the module name and version string.
| [in] | dev | RN2XX3 device descriptor | 
| int rn2xx3_sys_reset | ( | rn2xx3_t * | dev | ) | 
Restarts the RN2XX2 device.
After calling this function, dev->resp_buf contains the module name and version string.
| [in] | dev | RN2XX3 device descriptor | 
| void rn2xx3_sys_set_sleep_duration | ( | rn2xx3_t * | dev, | 
| uint32_t | sleep | ||
| ) | 
Sets the rn2xx3 sleep mode duration (in ms)
| [in] | dev | The rn2xx3 device descriptor | 
| [in] | sleep | The sleep mode duration (ms) | 
| int rn2xx3_sys_sleep | ( | rn2xx3_t * | dev | ) | 
Puts the RN2XX2 device in sleep mode.
| [in] | dev | RN2XX3 device descriptor | 
| int rn2xx3_wait_reply | ( | rn2xx3_t * | dev, | 
| uint8_t | timeout | ||
| ) | 
Waits for a reply from the LoRaWAN network.
| [in] | dev | LoRaBee device descriptor | 
| [in] | timeout | Reply wait timeout in seconds | 
| int rn2xx3_wait_response | ( | rn2xx3_t * | dev | ) | 
Waits for a response to a command from the device.
| [in] | dev | RN2XX3 device descriptor | 
| int rn2xx3_write_cmd | ( | rn2xx3_t * | dev | ) | 
Writes a command to the RN2XX3 device.
The module will immediately reply with a meaningful message if the command is valid or not.
| [in] | dev | RN2XX3 device descriptor | 
| int rn2xx3_write_cmd_no_wait | ( | rn2xx3_t * | dev | ) | 
Writes a command to the RN2XX3 device but don't wait for timeout or response.
The response can be checked in the dev->resp_buf buffer after a small delay (for example 1ms).
| [in] | dev | RN2XX3 device descriptor |