Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
lorawan.h File Reference

Public LoRaWAN APIs. More...

#include <zephyr/device.h>
#include <zephyr/sys/slist.h>

Go to the source code of this file.

Data Structures

struct  lorawan_join_otaa
 LoRaWAN join parameters for over-the-Air activation (OTAA) More...
 
struct  lorawan_join_abp
 LoRaWAN join parameters for activation by personalization (ABP) More...
 
struct  lorawan_join_config
 LoRaWAN join parameters. More...
 
struct  lorawan_downlink_cb
 LoRaWAN downlink callback parameters. More...
 

Macros

#define LW_RECV_PORT_ANY   UINT16_MAX
 

Enumerations

enum  lorawan_class { LORAWAN_CLASS_A = 0x00 , LORAWAN_CLASS_B = 0x01 , LORAWAN_CLASS_C = 0x02 }
 LoRaWAN class types. More...
 
enum  lorawan_act_type { LORAWAN_ACT_OTAA = 0 , LORAWAN_ACT_ABP }
 LoRaWAN activation types. More...
 
enum  lorawan_datarate {
  LORAWAN_DR_0 = 0 , LORAWAN_DR_1 , LORAWAN_DR_2 , LORAWAN_DR_3 ,
  LORAWAN_DR_4 , LORAWAN_DR_5 , LORAWAN_DR_6 , LORAWAN_DR_7 ,
  LORAWAN_DR_8 , LORAWAN_DR_9 , LORAWAN_DR_10 , LORAWAN_DR_11 ,
  LORAWAN_DR_12 , LORAWAN_DR_13 , LORAWAN_DR_14 , LORAWAN_DR_15
}
 LoRaWAN datarate types. More...
 
enum  lorawan_region {
  LORAWAN_REGION_AS923 , LORAWAN_REGION_AU915 , LORAWAN_REGION_CN470 , LORAWAN_REGION_CN779 ,
  LORAWAN_REGION_EU433 , LORAWAN_REGION_EU868 , LORAWAN_REGION_KR920 , LORAWAN_REGION_IN865 ,
  LORAWAN_REGION_US915 , LORAWAN_REGION_RU864
}
 LoRaWAN region types. More...
 
enum  lorawan_message_type { LORAWAN_MSG_UNCONFIRMED = 0 , LORAWAN_MSG_CONFIRMED }
 LoRaWAN message types. More...
 

Functions

int lorawan_set_battery_level_callback (uint8_t(*battery_lvl_cb)(void))
 Add battery level callback function.
 
void lorawan_register_downlink_callback (struct lorawan_downlink_cb *cb)
 Register a callback to be run on downlink packets.
 
void lorawan_register_dr_changed_callback (void(*dr_cb)(enum lorawan_datarate))
 Register a callback to be called when the datarate changes.
 
int lorawan_join (const struct lorawan_join_config *config)
 Join the LoRaWAN network.
 
int lorawan_start (void)
 Start the LoRaWAN stack.
 
int lorawan_send (uint8_t port, uint8_t *data, uint8_t len, enum lorawan_message_type type)
 Send data to the LoRaWAN network.
 
int lorawan_set_class (enum lorawan_class dev_class)
 Set the current device class.
 
int lorawan_set_conf_msg_tries (uint8_t tries)
 Set the number of tries used for transmissions.
 
void lorawan_enable_adr (bool enable)
 Enable Adaptive Data Rate (ADR)
 
int lorawan_set_datarate (enum lorawan_datarate dr)
 Set the default data rate.
 
enum lorawan_datarate lorawan_get_min_datarate (void)
 Get the minimum possible datarate.
 
void lorawan_get_payload_sizes (uint8_t *max_next_payload_size, uint8_t *max_payload_size)
 Get the current payload sizes.
 
int lorawan_set_region (enum lorawan_region region)
 Set the region and frequency to be used.
 

Detailed Description

Public LoRaWAN APIs.