Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
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
 Flag to indicate receiving on any port.
 

Typedefs

typedef uint8_t(* lorawan_battery_level_cb_t) (void)
 Defines the battery level callback handler function signature.
 
typedef void(* lorawan_dr_changed_cb_t) (enum lorawan_datarate dr)
 Defines the datarate changed callback handler function signature.
 

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_channels_mask_size {
  LORAWAN_CHANNELS_MASK_SIZE_AS923 = 1 , LORAWAN_CHANNELS_MASK_SIZE_AU915 = 6 , LORAWAN_CHANNELS_MASK_SIZE_CN470 = 6 , LORAWAN_CHANNELS_MASK_SIZE_CN779 = 1 ,
  LORAWAN_CHANNELS_MASK_SIZE_EU433 = 1 , LORAWAN_CHANNELS_MASK_SIZE_EU868 = 1 , LORAWAN_CHANNELS_MASK_SIZE_KR920 = 1 , LORAWAN_CHANNELS_MASK_SIZE_IN865 = 1 ,
  LORAWAN_CHANNELS_MASK_SIZE_US915 = 6 , LORAWAN_CHANNELS_MASK_SIZE_RU864 = 1
}
 LoRaWAN channels mask sizes. 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

void lorawan_register_battery_level_callback (lorawan_battery_level_cb_t cb)
 Register a 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 (lorawan_dr_changed_cb_t cb)
 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_channels_mask (uint16_t *channels_mask, size_t channels_mask_size)
 Set the channels mask.
 
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.