loramac.h File Reference

LoRaMAC header definitions. More...

Detailed Description

LoRaMAC header definitions.

Author
Alexandre Abadie alexa.nosp@m.ndre.nosp@m..abad.nosp@m.ie@i.nosp@m.nria..nosp@m.fr

Definition in file loramac.h.

#include <stdint.h>
#include <stdlib.h>
+ Include dependency graph for loramac.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  loramac_channel_t
 A LoRaMAC network channel. More...
 

Macros

#define LORAMAC_DEV_EUI_DEFAULT
 Default device EUI. More...
 
#define LORAMAC_APP_EUI_DEFAULT
 Default application EUI. More...
 
#define LORAMAC_APP_KEY_DEFAULT
 Default application key. More...
 
#define LORAMAC_APP_SKEY_DEFAULT
 Default application session key. More...
 
#define LORAMAC_NWK_SKEY_DEFAULT
 Default network session key. More...
 
#define LORAMAC_DEV_ADDR_DEFAULT   { 0x00, 0x00, 0x00, 0x00 }
 Default device address.
 

LoRaMAC default values

#define LORAMAC_DEFAULT_DEVICE_CLASS   (LORAMAC_CLASS_A)
 Default device class (A, B or C)
 
#define LORAMAC_DEFAULT_NETID   (1U)
 Default NetID (only valid with ABP join procedure)
 
#define LORAMAC_DEFAULT_PUBLIC_NETWORK   (true)
 Default network type (public or private)
 
#define LORAMAC_DEFAULT_DR   (LORAMAC_DR_0)
 Default datarate (only valid for EU)
 
#define LORAMAC_DEFAULT_TX_POWER   (LORAMAC_TX_PWR_1)
 Default MAC TX power (14dBm in EU)
 
#define LORAMAC_DEFAULT_TX_PORT   (2U)
 Default MAC TX port (from 1 to 223)
 
#define LORAMAC_DEFAULT_TX_MODE   (LORAMAC_TX_CNF)
 Default MAC TX mode (confirmable or unconfirmable)
 
#define LORAMAC_DEFAULT_ADR   (false)
 Default MAC TX power (14dBm in EU) More...
 
#define LORAMAC_DEFAULT_RETX   (5U)
 Default uplink retransmission.
 
#define LORAMAC_DEFAULT_LINKCHK   (0U)
 Default link check interval (in seconds) More...
 
#define LORAMAC_DEFAULT_RX1_DELAY   (1000U)
 Default first RX window delay (in ms)
 
#define LORAMAC_DEFAULT_RX2_DELAY   (1000U + LORAMAC_DEFAULT_RX1_DELAY)
 Default second RX window delay (in ms)
 
#define LORAMAC_DEFAULT_AR   (false)
 Default automatic reply status.
 
#define LORAMAC_DEFAULT_RX2_DR   (LORAMAC_DR_0)
 Default second RX window datarate index.
 
#define LORAMAC_DEFAULT_RX2_FREQ   (869525000UL)
 Default second RX window frequency (in Hz)
 
#define LORAMAC_DEFAULT_JOIN_PROCEDURE   (LORAMAC_JOIN_OTAA)
 Default LoRaMAC join procedure.
 
#define LORAMAC_DEFAULT_JOIN_DELAY1   (5U)
 Default LoRaMAC join accept delay 1 (in seconds)
 
#define LORAMAC_DEFAULT_JOIN_DELAY2   (6U)
 Default LoRaMAC join accept delay 2.
 
#define LORAMAC_DEFAULT_MAX_FCNT_GAP   (16384U)
 Default max FCNT gap.
 
#define LORAMAC_DEFAULT_ADR_ACK_LIMIT   (64U)
 Default adaptive datarate ACK limit (in s)
 
#define LORAMAC_DEFAULT_ADR_ACK_DELAY   (32U)
 Default adaptive datarate ACK delay (in s)
 
#define LORAMAC_DEFAULT_ADR_TIMEOUT   (3U)
 Default adaptive datarate timeout.
 
#define LORAMAC_DEFAULT_SYSTEM_MAX_RX_ERROR   (50)
 Default maximum system overall timing error.
 
#define LORAMAC_DEFAULT_MIN_RX_SYMBOLS   (12)
 Default minimum RX symbols to detect a frame.
 

LoRaMAC constants

#define LORAMAC_DEVEUI_LEN   (8U)
 Device EUI length in bytes.
 
#define LORAMAC_DEVADDR_LEN   (4U)
 Device address length in bytes.
 
#define LORAMAC_APPEUI_LEN   (8U)
 Application EUI length in bytes.
 
#define LORAMAC_APPKEY_LEN   (16U)
 Application key length in bytes.
 
#define LORAMAC_APPSKEY_LEN   (16U)
 Application session key length in bytes.
 
#define LORAMAC_NWKSKEY_LEN   (16U)
 Network session key length in bytes.
 
#define LORAMAC_PORT_MIN   (1U)
 Minimum port value.
 
#define LORAMAC_PORT_MAX   (223U)
 Maximmu port value.
 
#define LORAMAC_APP_NONCE_LEN   (3U)
 Application Nonce length in bytes.
 
#define LORAMAC_NETWORK_ID_LEN   (3U)
 Network ID length in bytes.
 

LoRaMAC parameters indexes

enum  loramac_class_t { LORAMAC_CLASS_A, LORAMAC_CLASS_B, LORAMAC_CLASS_C }
 Device class. More...
 
enum  loramac_join_mode_t { LORAMAC_JOIN_OTAA, LORAMAC_JOIN_ABP }
 LoRaMAC network join procedure type. More...
 
enum  loramac_tx_mode_t { LORAMAC_TX_CNF, LORAMAC_TX_UNCNF }
 LoRaMAC transmission mode. More...
 
enum  loramac_dr_idx_t {
  LORAMAC_DR_0 = 0, LORAMAC_DR_1, LORAMAC_DR_2, LORAMAC_DR_3,
  LORAMAC_DR_4, LORAMAC_DR_5, LORAMAC_DR_6, LORAMAC_DR_7,
  LORAMAC_DR_8, LORAMAC_DR_9, LORAMAC_DR_10, LORAMAC_DR_11,
  LORAMAC_DR_12, LORAMAC_DR_13, LORAMAC_DR_14, LORAMAC_DR_15
}
 LoRaMAC datarate indexes. More...
 
enum  loramac_tx_pwr_idx_t {
  LORAMAC_TX_PWR_0 = 0, LORAMAC_TX_PWR_1, LORAMAC_TX_PWR_2, LORAMAC_TX_PWR_3,
  LORAMAC_TX_PWR_4, LORAMAC_TX_PWR_5, LORAMAC_TX_PWR_6, LORAMAC_TX_PWR_7,
  LORAMAC_TX_PWR_8, LORAMAC_TX_PWR_9, LORAMAC_TX_PWR_10, LORAMAC_TX_PWR_11,
  LORAMAC_TX_PWR_12, LORAMAC_TX_PWR_13, LORAMAC_TX_PWR_14, LORAMAC_TX_PWR_15
}
 LoRaMAC transmission power indexes. More...