nanolr 2.0.0.0
nanolr.h File Reference

This file contains API for Nano LR Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_uart.h"

Go to the source code of this file.

Data Structures

struct  nanolr_t
 Click ctx object definition. More...
 
struct  nanolr_cfg_t
 Click configuration structure definition. More...
 
struct  nanolr_rsp_t
 Click response structure definition. More...
 
struct  nanolr_network_t
 Click network structure definition. More...
 

Macros

#define NANOLR_MAP_MIKROBUS(cfg, mikrobus)
 
#define NANOLR_RETVAL   uint8_t
 
#define NANOLR_OK   0x00
 
#define NANOLR_INIT_ERROR   0xFF
 
#define NANOLR_CMD_DEV_INFO   0x01
 
#define NANOLR_CMD_DEV_STATE   0x04
 
#define NANOLR_CMD_RESET   0x05
 
#define NANOLR_CMD_FW_VER   0x06
 
#define NANOLR_CMD_RESTORE_DEF_SETTINGS   0x07
 
#define NANOLR_CMD_SAVE_SETTINGS   0x08
 
#define NANOLR_CMD_SERIAL_PORT_CFG   0x09
 
#define NANOLR_CMD_OUTPUT_POWER   0x10
 
#define NANOLR_CMD_OP_CHAN   0x11
 
#define NANOLR_CMD_ENERGY_SAVE   0x13
 
#define NANOLR_CMD_PHYSICAL_ADR   0x20
 
#define NANOLR_CMD_NETWORK_ADR   0x21
 
#define NANOLR_CMD_NETWORK_ID   0x22
 
#define NANOLR_CMD_NETWORK_ROLE   0x23
 
#define NANOLR_CMD_NETWORK_AUTO_SETTINGS   0x24
 
#define NANOLR_CMD_NETWORK_PREF   0x25
 
#define NANOLR_CMD_NETWORK_SECURITY   0x26
 
#define NANOLR_CMD_NETWORK_JOIN_MODE   0x27
 
#define NANOLR_CMD_NETWORK_STOP   0x30
 
#define NANOLR_CMD_NETWORK_START   0x31
 
#define NANOLR_CMD_SEND_DATA   0x50
 
#define NANOLR_CMD_RECEIVED_DATA   0x60
 
#define NANOLR_CMD_ENTER_BOOTLOADER   0x70
 
#define NANOLR_SET_BOOTLOADER_OPTIONS   0x71
 
#define NANOLR_ERASE_MEM   0x78
 
#define NANOLR_WRITE_MEM_CHUNK   0x7A
 
#define NANOLR_READ_MEM_CHUNK   0x7B
 
#define NANOLR_COMMIT_FW   0x7F
 
#define NANOLR_SUCCESS   0x00
 
#define NANOLR_GENERIC_ERROR   0x01
 
#define NANOLR_PARAM_NOT_ACCEPTED   0x02
 
#define NANOLR_OPERATION_TIMEOUT   0x03
 
#define NANOLR_NO_MEMORY   0x04
 
#define NANOLR_UNSUPPORTED   0x05
 
#define NANOLR_BUSY   0x06
 
#define NANOLR_DEV_INFO_RESP   0x81
 
#define NANOLR_DEV_STATE_RESP   0x84
 
#define NANOLR_RESET_RESP   0x85
 
#define NANOLR_FW_VER_RESP   0x86
 
#define NANOLR_RESTORE_DEF_SETTINGS_RESP   0x87
 
#define NANOLR_SAVE_SETTINGS_RESP   0x88
 
#define NANOLR_SERIAL_PORT_CFG_RESP   0x89
 
#define NANOLR_OUTPUT_POWER_RESP   0x90
 
#define NANOLR_OP_CHAN_RESP   0x91
 
#define NANOLR_ENERGY_SAVE_RESP   0x93
 
#define NANOLR_PHYSICAL_ADR_RESP   0xA0
 
#define NANOLR_NETWORK_ADR_RESP   0xA1
 
#define NANOLR_NETWORK_ID_RESP   0xA2
 
#define NANOLR_NETWORK_ROLE_RESP   0xA3
 
#define NANOLR_NETWORK_AUTO_SETTINGS_RESP   0xA4
 
#define NANOLR_NETWORK_PREF_RESP   0xA5
 
#define NANOLR_NETWORK_SECURITY_RESP   0xA6
 
#define NANOLR_BAUD_RATE_MAINTAIN_SPEED   0x00
 
#define NANOLR_BAUD_RATE_1200   0x01
 
#define NANOLR_BAUD_RATE_2400   0x02
 
#define NANOLR_BAUD_RATE_4800   0x03
 
#define NANOLR_BAUD_RATE_9600   0x04
 
#define NANOLR_BAUD_RATE_19200   0x05
 
#define NANOLR_BAUD_RATE_38400   0x06
 
#define NANOLR_BAUD_RATE_57600   0x07
 
#define NANOLR_BAUD_RATE_115200   0x08
 
#define NANOLR_DEVICE_ID_UNKNOWN   0x00
 
#define NANOLR_DEVICE_ID_EMB_ZRF2XX   0x20
 
#define NANOLR_DEVICE_ID_EMB_ZRF231XX   0x24
 
#define NANOLR_DEVICE_ID_EMB_ZRF231PA   0x26
 
#define NANOLR_DEVICE_ID_EMB_ZRF212XX   0x28
 
#define NANOLR_DEVICE_ID_EMB_ZRF212B   0x29
 
#define NANOLR_DEVICE_ID_EMB_Z253X   0x30
 
#define NANOLR_DEVICE_ID_EMB_Z2530X   0x34
 
#define NANOLR_DEVICE_ID_EMB_Z2530PA   0x36
 
#define NANOLR_DEVICE_ID_EMB_Z2531X   0x38
 
#define NANOLR_DEVICE_ID_EMB_Z2531PA_USB   0x3A
 
#define NANOLR_DEVICE_ID_EMB_Z2538X   0x3C
 
#define NANOLR_DEVICE_ID_EMB_Z2538PA   0x3D
 
#define NANOLR_DEVICE_ID_EMB_WMBX   0x40
 
#define NANOLR_DEVICE_ID_EMB_WMB169X   0x44
 
#define NANOLR_DEVICE_ID_EMB_WMB169T   0x45
 
#define NANOLR_DEVICE_ID_EMB_WMB169PA   0x46
 
#define NANOLR_DEVICE_ID_EMB_WMB868X   0x48
 
#define NANOLR_DEVICE_ID_EMB_WMB868   0x49
 
#define NANOLR_DEVICE_ID_EMB_LRX   0x50
 
#define NANOLR_DEVICE_ID_EMB_LR1272   0x54
 
#define NANOLR_NETWORK_ROLE_COORDINATOR   0x00
 
#define NANOLR_NETWORK_ROLE_RESERVED   0x01
 
#define NANOLR_NETWORK_ROLE_END_DEV   0x02
 
#define NANOLR_DEV_STATE_BOOTING   0x00
 
#define NANOLR_DEV_STATE_INSIDE_BOOTLOADER   0x01
 
#define NANOLR_DEV_STATE_RDY_STARTUP_OP_SUCC   0x10
 
#define NANOLR_DEV_STATE_RDY_STARTUP_OP_FAILED   0x11
 
#define NANOLR_DEV_STATE_OFFLINE   0x20
 
#define NANOLR_DEV_STATE_CONNECTING   0x21
 
#define NANOLR_DEV_STATE_TRANSPARENT_MODE_STARTUP   0x22
 
#define NANOLR_DEV_STATE_ONLINE   0x30
 
#define NANOLR_DEV_STATE_DISCONNECTING   0x40
 
#define NANOLR_DEV_STATE_RESERVED   0x50
 
#define NANOLR_DEV_STATE_END_RECEIVING_WINDOW   0x51
 
#define NANOLR_ENERGY_SAVE_MODE_ALWAYS_ON   0x00
 
#define NANOLR_ENERGY_SAVE_MODE_RX_WINDOW   0x01
 
#define NANOLR_ENERGY_SAVE_MODE_TX_ONLY   0x02
 
#define NANOLR_OP_CHANNEL_CH_1_868_1MHz   0x01
 
#define NANOLR_OP_CHANNEL_CH_2_868_3MHz   0x02
 
#define NANOLR_OP_CHANNEL_CH_3_868_5MHz   0x03
 
#define NANOLR_OP_CHANNEL_CH_4_869_525MHz   0x04
 
#define NANOLR_OP_CHANNEL_SPR_FCT_128   0x07
 
#define NANOLR_OP_CHANNEL_SPR_FCT_256   0x08
 
#define NANOLR_OP_CHANNEL_SPR_FCT_512   0x09
 
#define NANOLR_OP_CHANNEL_SPR_FCT_1024   0x0A
 
#define NANOLR_OP_CHANNEL_SPR_FCT_2048   0x0B
 
#define NANOLR_OP_CHANNEL_SPR_FCT_4096   0x0C
 
#define NANOLR_OP_CHANNEL_BANDWIDTH_125KHz   0x00
 
#define NANOLR_OP_CHANNEL_BANDWIDTH_250KHz   0x01
 
#define NANOLR_OP_CHANNEL_CODING_RATE_4_5   0x01
 
#define NANOLR_OP_CHANNEL_CODING_RATE_4_6   0x02
 
#define NANOLR_OP_CHANNEL_CODING_RATE_4_7   0x03
 
#define NANOLR_OP_CHANNEL_CODING_RATE_4_8   0x04
 
#define NANOLR_NTW_ROLE_COORDINATOR   0x00
 
#define NANOLR_NTW_ROLE_END_DEVICE   0x02
 
#define NANOLR_NTW_PREFERENCE_PROTOCOL_LR_EMB   0x00
 
#define NANOLR_NTW_PREFERENCE_PROTOCOL_LR_WAN   0x80
 
#define NANOLR_NTW_PREFERENCE_AUTO_JOIN_DISABLE   0x00
 
#define NANOLR_NTW_PREFERENCE_AUTO_JOIN_ENABLE   0x40
 
#define NANOLR_NTW_PREFERENCE_ADAPTIVE_DATA_RATE_DISABLE   0x00
 
#define NANOLR_NTW_PREFERENCE_ADAPTIVE_DATA_RATE_ENABLE   0x20
 
#define NANOLR_NTW_JOIN_MODE_ABP   0x00
 
#define NANOLR_NTW_JOIN_MODE_OTAA   0x01
 
#define NANOLR_RSP_READY   0x01
 
#define NANOLR_RSP_NOT_READY   0x00
 
#define NANOLR_ERR_CRC   0x01
 
#define NANOLR_ERR_STATUS_OK   0x00
 
#define DRV_RX_BUFFER_SIZE   500
 
#define nanolr_err_t   uint8_t
 Driver Error type.
 

Functions

void nanolr_cfg_setup (nanolr_cfg_t *cfg)
 Config Object Initialization function.
 
NANOLR_RETVAL nanolr_init (nanolr_t *ctx, nanolr_cfg_t *cfg)
 Initialization function.
 
void nanolr_default_cfg (nanolr_t *ctx)
 Click Default Configuration function.
 
void nanolr_reset (nanolr_t *ctx)
 Reset module.
 
void nanolr_generic_write (nanolr_t *ctx, char *data_buf, uint16_t len)
 Generic write function.
 
int32_t nanolr_generic_read (nanolr_t *ctx, char *data_buf, uint16_t max_len)
 Generic read function.
 
uint8_t nanolr_request_2_send (nanolr_t *ctx)
 Request to Send function.
 
void nanolr_clear_2_send (nanolr_t *ctx, uint8_t state)
 Clear to Send function.
 
uint8_t nanolr_get_gp1_pin (nanolr_t *ctx)
 Get GP1 pin state function.
 
void nanolr_set_st_pin (nanolr_t *ctx, uint8_t state)
 Set ST pin state function.
 
void nanolr_get_device_info (nanolr_t *ctx)
 Get device information function.
 
void nanolr_get_device_state (nanolr_t *ctx)
 Get device state function.
 
void nanolr_sw_reset (nanolr_t *ctx)
 Software reset function.
 
void nanolr_get_fw_ver (nanolr_t *ctx)
 Get firmware version function.
 
void nanolr_restore_2_factory (nanolr_t *ctx)
 Restore to factory function.
 
void nanolr_save_settings (nanolr_t *ctx)
 Restore to factory function.
 
void nanolr_get_output_power (nanolr_t *ctx)
 Get output power function.
 
void nanolr_get_operating_channel (nanolr_t *ctx)
 Get operating channel function.
 
void nanolr_set_output_power (nanolr_t *ctx, uint8_t out_pwr)
 Set output power function.
 
void nanolr_set_operating_channel (nanolr_t *ctx, nanolr_network_t *net)
 Set operating channel function.
 
void nanolr_save_energy_always_on (nanolr_t *ctx)
 Save energy on function.
 
void nanolr_save_energy_rx_window (nanolr_t *ctx)
 Save energy rx window function.
 
void nanolr_save_energy_tx_only (nanolr_t *ctx)
 Save energy tx only function.
 
void nanolr_get_physical_address (nanolr_t *ctx)
 Get physical address function.
 
void nanolr_set_physical_address (nanolr_t *ctx, uint8_t *app_eui, uint8_t *dev_eui)
 Set physical address function.
 
void nanolr_get_network_address (nanolr_t *ctx)
 Get network address function.
 
void nanolr_set_network_address (nanolr_t *ctx, uint16_t ntw_addr)
 Set network address function.
 
void nanolr_get_network_id (nanolr_t *ctx)
 Get network identifiers function.
 
void nanolr_set_network_id (nanolr_t *ctx, uint16_t ntw_id)
 Set network identifiers function.
 
void nanolr_get_network_role (nanolr_t *ctx)
 Get network role function.
 
void nanolr_set_network_role (nanolr_t *ctx, uint8_t ntw_role)
 Set network role function.
 
void nanolr_get_network_auto_settings (nanolr_t *ctx)
 Get network automated settings function.
 
void nanolr_get_network_preference (nanolr_t *ctx)
 Get network preference function.
 
void nanolr_set_network_preference (nanolr_t *ctx, uint8_t prot, uint8_t auto_join, uint8_t adr)
 Set network preference function.
 
void nanolr_get_network_join_mode (nanolr_t *ctx)
 Get network join mode function.
 
void nanolr_set_network_join_mode (nanolr_t *ctx, uint8_t ntw_join_mode)
 Set network join mode function.
 
void nanolr_get_battery_level (nanolr_t *ctx)
 Get battery level function.
 
void nanolr_get_wan_network_type (nanolr_t *ctx)
 Get LRWAN network type function.
 
void nanolr_wan_network_public (nanolr_t *ctx)
 Set LRWAN network type public function.
 
void nanolr_wan_network_private (nanolr_t *ctx)
 Set LRWAN network type private function.
 
void nanolr_network_stop (nanolr_t *ctx)
 Network stop function.
 
void nanolr_network_start (nanolr_t *ctx)
 Network start function.
 
void nanolr_send_data (nanolr_t *ctx, uint8_t *tx_data, uint8_t length)
 Send data function.
 
uint8_t nanolr_rsp_rdy (nanolr_t *ctx)
 Check response ready function.
 
void nanolr_uart_isr (nanolr_t *ctx)
 UART ISR function.
 
nanolr_err_t nanolr_parser_rsp (nanolr_t *ctx, nanolr_rsp_t *response)
 Response parser function.
 

Detailed Description

This file contains API for Nano LR Click driver.