LoRaMAC  4.4.7
Documentation of the API
LoRa MAC Class B layer implementation

This module specifies the API implementation of the LoRaMAC Class B layer. This is a placeholder for a detailed description of the LoRaMac layer and the supported features. More...

Data Structures

struct  PingSlotContext_t
 
struct  BeaconContext_t
 
struct  BeaconContext_t::sBeaconCtrl
 
struct  LoRaMacClassBCallback_t
 
struct  LoRaMacClassBParams_t
 
struct  LoRaMacClassBPingSlotNvmData_t
 
struct  LoRaMacClassBPingSlotNvmData_t::sPingSlotCtrlNvm
 
struct  LoRaMacClassBBeaconNvmData_t
 
struct  LoRaMacClassBBeaconNvmData_t::sBeaconCtrlNvm
 
struct  LoRaMacClassBNvmData_t
 

Macros

#define CLASSB_BEACON_INTERVAL   128000
 
#define CLASSB_BEACON_RESERVED   2120
 
#define CLASSB_BEACON_GUARD   3000
 
#define CLASSB_BEACON_WINDOW   122880
 
#define CLASSB_BEACON_WINDOW_SLOTS   4096
 
#define CLASSB_PING_SLOT_WINDOW   30
 
#define CLASSB_MAX_BEACON_LESS_PERIOD   7200000
 
#define CLASSB_BEACON_DELAY_BEACON_TIMING_ANS   30
 
#define CLASSB_BEACON_SYMBOL_TO_DEFAULT   8
 
#define CLASSB_BEACON_SYMBOL_TO_EXPANSION_MAX   255
 
#define CLASSB_PING_SLOT_SYMBOL_TO_EXPANSION_MAX   30
 
#define CLASSB_BEACON_SYMBOL_TO_EXPANSION_FACTOR   2
 
#define CLASSB_WINDOW_MOVE_DEFAULT   2
 
#define CLASSB_WINDOW_MOVE_EXPANSION_MAX   256
 
#define CLASSB_WINDOW_MOVE_EXPANSION_FACTOR   2
 

Typedefs

typedef void(* LoRaMacClassBNvmEvent) (void)
 

Enumerations

enum  BeaconState_t {
  BEACON_STATE_ACQUISITION, BEACON_STATE_ACQUISITION_BY_TIME, BEACON_STATE_TIMEOUT, BEACON_STATE_BEACON_MISSED,
  BEACON_STATE_REACQUISITION, BEACON_STATE_LOCKED, BEACON_STATE_HALT, BEACON_STATE_IDLE,
  BEACON_STATE_GUARD, BEACON_STATE_RX, BEACON_STATE_LOST
}
 
enum  PingSlotState_t { PINGSLOT_STATE_CALC_PING_OFFSET, PINGSLOT_STATE_SET_TIMER, PINGSLOT_STATE_IDLE, PINGSLOT_STATE_RX }
 

Functions

void LoRaMacClassBInit (LoRaMacClassBParams_t *classBParams, LoRaMacClassBCallback_t *callbacks, LoRaMacClassBNvmData_t *nvm)
 Initialize LoRaWAN Class B. More...
 
void LoRaMacClassBSetBeaconState (BeaconState_t beaconState)
 Set the state of the beacon state machine. More...
 
void LoRaMacClassBSetPingSlotState (PingSlotState_t pingSlotState)
 Set the state of the ping slot state machine. More...
 
void LoRaMacClassBSetMulticastSlotState (PingSlotState_t multicastSlotState)
 Set the state of the multicast slot state machine. More...
 
bool LoRaMacClassBIsAcquisitionInProgress (void)
 Verifies if an acquisition procedure is in progress. More...
 
void LoRaMacClassBBeaconTimerEvent (void *context)
 State machine of the Class B for beaconing.
 
void LoRaMacClassBPingSlotTimerEvent (void *context)
 State machine of the Class B for ping slots.
 
void LoRaMacClassBMulticastSlotTimerEvent (void *context)
 State machine of the Class B for multicast slots.
 
bool LoRaMacClassBRxBeacon (uint8_t *payload, uint16_t size)
 Receives and decodes the beacon frame. More...
 
bool LoRaMacClassBIsBeaconExpected (void)
 The function validates, if the node expects a beacon at the current time. More...
 
bool LoRaMacClassBIsPingExpected (void)
 The function validates, if the node expects a ping slot at the current time. More...
 
bool LoRaMacClassBIsMulticastExpected (void)
 The function validates, if the node expects a multicast slot at the current time. More...
 
bool LoRaMacClassBIsAcquisitionPending (void)
 Verifies if the acquisition pending bit is set. More...
 
bool LoRaMacClassBIsBeaconModeActive (void)
 Verifies if the beacon mode active bit is set. More...
 
void LoRaMacClassBHaltBeaconing (void)
 Stops the beacon and ping slot operation.
 
void LoRaMacClassBResumeBeaconing (void)
 Resumes the beacon and ping slot operation.
 
void LoRaMacClassBSetPingSlotInfo (uint8_t periodicity)
 Sets the periodicity of the ping slots. More...
 
LoRaMacStatus_t LoRaMacClassBSwitchClass (DeviceClass_t nextClass)
 Switches the device class. More...
 
LoRaMacStatus_t LoRaMacClassBMibGetRequestConfirm (MibRequestConfirm_t *mibGet)
 LoRaMAC ClassB MIB-Get. More...
 
LoRaMacStatus_t LoRaMacMibClassBSetRequestConfirm (MibRequestConfirm_t *mibSet)
 LoRaMAC Class B MIB-Set. More...
 
void LoRaMacClassBPingSlotInfoAns (void)
 This function handles the PING_SLOT_FREQ_ANS.
 
uint8_t LoRaMacClassBPingSlotChannelReq (uint8_t datarate, uint32_t frequency)
 This function handles the PING_SLOT_CHANNEL_REQ. More...
 
void LoRaMacClassBBeaconTimingAns (uint16_t beaconTimingDelay, uint8_t beaconTimingChannel, TimerTime_t lastRxDone)
 This function handles the BEACON_TIMING_ANS. More...
 
void LoRaMacClassBDeviceTimeAns (void)
 This function handles the ClassB DEVICE_TIME_ANS.
 
bool LoRaMacClassBBeaconFreqReq (uint32_t frequency)
 This function handles the BEACON_FREQ_REQ. More...
 
TimerTime_t LoRaMacClassBIsUplinkCollision (TimerTime_t txTimeOnAir)
 Queries the ping slot window time. More...
 
void LoRaMacClassBStopRxSlots (void)
 Stops the timers for the RX slots. This includes the timers for ping and multicast slots.
 
void LoRaMacClassBStartRxSlots (void)
 Starts the timers for the RX slots. This includes the timers for ping and multicast slots.
 
void LoRaMacClassBSetMulticastPeriodicity (MulticastCtx_t *multicastChannel)
 Starts the timers for the RX slots. This includes the timers for ping and multicast slots. More...
 
void LoRaMacClassBProcess (void)
 

Variables

uint32_t PingSlotWindow
 
uint16_t PingOffset
 
uint16_t SymbolTimeout
 
MulticastCtx_tNextMulticastChannel
 
uint8_t BeaconMode: 1
 
uint8_t BeaconAcquired: 1
 
uint8_t BeaconDelaySet: 1
 
uint8_t BeaconChannelSet: 1
 
uint8_t AcquisitionPending: 1
 
uint8_t ResumeBeaconing: 1
 
struct BeaconContext_t::sBeaconCtrl Ctrl
 
float Temperature
 
SysTime_t BeaconTime
 
SysTime_t LastBeaconRx
 
SysTime_t NextBeaconRx
 
TimerTime_t NextBeaconRxAdjusted
 
uint16_t SymbolTimeout
 
TimerTime_t BeaconWindowMovement
 
uint8_t BeaconTimingChannel
 
TimerTime_t BeaconTimingDelay
 
TimerTime_t TimeStamp
 
float(* GetTemperatureLevel )(void)
 Measures the temperature level. More...
 
void(* MacProcessNotify )(void)
 Will be called each time a Radio IRQ is handled by the MAC layer. More...
 
MlmeIndication_tMlmeIndication
 
McpsIndication_tMcpsIndication
 
MlmeConfirm_tMlmeConfirm
 
LoRaMacFlags_tLoRaMacFlags
 
uint32_t * LoRaMacDevAddr
 
LoRaMacRegion_tLoRaMacRegion
 
LoRaMacParams_tLoRaMacParams
 
MulticastCtx_tMulticastChannels
 
uint8_t Assigned: 1
 
uint8_t CustomFreq: 1
 
struct LoRaMacClassBPingSlotNvmData_t::sPingSlotCtrlNvm Ctrl
 
uint8_t PingNb
 
uint16_t PingPeriod
 
uint32_t Frequency
 
int8_t Datarate
 
uint8_t CustomFreq: 1
 
struct LoRaMacClassBBeaconNvmData_t::sBeaconCtrlNvm Ctrl
 
uint32_t Frequency
 
LoRaMacClassBPingSlotNvmData_t PingSlotCtx
 
LoRaMacClassBBeaconNvmData_t BeaconCtx
 
uint32_t Crc32
 

Detailed Description

This module specifies the API implementation of the LoRaMAC Class B layer. This is a placeholder for a detailed description of the LoRaMac layer and the supported features.

This header file contains parameters to configure the class b operation. By default, all parameters are set according to the specification.


Data Structure Documentation

◆ PingSlotContext_t

struct PingSlotContext_t

Class B ping slot context structure

Data Fields
uint32_t PingSlotWindow

Ping slot length time in ms

uint16_t PingOffset

Ping offset

uint16_t SymbolTimeout

Current symbol timeout. The node enlarges this variable in case of beacon loss.

MulticastCtx_t * NextMulticastChannel

The multicast channel which will be enabled next.

◆ BeaconContext_t

struct BeaconContext_t

Class B beacon context structure

Data Fields
struct sBeaconCtrl Ctrl
float Temperature

Current temperature

SysTime_t BeaconTime

Beacon time received with the beacon frame

SysTime_t LastBeaconRx

Time when the last beacon was received

SysTime_t NextBeaconRx

Time when the next beacon will be received

TimerTime_t NextBeaconRxAdjusted

This is the time where the RX window will be opened. Its base is NextBeaconRx with temperature compensations and RX window movement.

uint16_t SymbolTimeout

Current symbol timeout. The node enlarges this variable in case of beacon loss.

TimerTime_t BeaconWindowMovement

Specifies how much time the beacon window will be moved.

uint8_t BeaconTimingChannel

Beacon timing channel for next beacon

TimerTime_t BeaconTimingDelay

Delay for next beacon in ms

TimerTime_t TimeStamp

◆ BeaconContext_t::sBeaconCtrl

struct BeaconContext_t::sBeaconCtrl
Data Fields
uint8_t BeaconMode: 1

Set if the node receives beacons

uint8_t BeaconAcquired: 1

Set if the node has acquired the beacon

uint8_t BeaconDelaySet: 1

Set if a beacon delay was set for the beacon acquisition

uint8_t BeaconChannelSet: 1

Set if a beacon channel was set for the beacon acquisition

uint8_t AcquisitionPending: 1

Set if beacon acquisition is pending

uint8_t ResumeBeaconing: 1

Set if the beacon state machine will be resumed

◆ LoRaMacClassBParams_t

struct LoRaMacClassBParams_t

Data structure which pointers to the properties LoRaMAC

Data Fields
MlmeIndication_t * MlmeIndication

Pointer to the MlmeIndication structure

McpsIndication_t * McpsIndication

Pointer to the McpsIndication structure

MlmeConfirm_t * MlmeConfirm

Pointer to the MlmeConfirm structure

LoRaMacFlags_t * LoRaMacFlags

Pointer to the LoRaMacFlags structure

uint32_t * LoRaMacDevAddr

Pointer to the LoRaMac device address

LoRaMacRegion_t * LoRaMacRegion

Pointer to the LoRaMac region definition

LoRaMacParams_t * LoRaMacParams

Pointer to the LoRaMacParams structure

MulticastCtx_t * MulticastChannels

Pointer to the multicast channel list

◆ LoRaMacClassBPingSlotNvmData_t

struct LoRaMacClassBPingSlotNvmData_t

LoRaMac Class B Context structure for NVM parameters related to ping slots

Data Fields
struct sPingSlotCtrlNvm Ctrl
uint8_t PingNb

Number of ping slots

uint16_t PingPeriod

Period of the ping slots

uint32_t Frequency

Reception frequency of the ping slot windows

int8_t Datarate

Datarate of the ping slot

◆ LoRaMacClassBPingSlotNvmData_t::sPingSlotCtrlNvm

struct LoRaMacClassBPingSlotNvmData_t::sPingSlotCtrlNvm
Data Fields
uint8_t Assigned: 1

Set when the server assigned a ping slot to the node

uint8_t CustomFreq: 1

Set when a custom frequency is used

◆ LoRaMacClassBBeaconNvmData_t

struct LoRaMacClassBBeaconNvmData_t

LoRaMac Class B Context structure for NVM parameters related to beaconing

Data Fields
struct sBeaconCtrlNvm Ctrl
uint32_t Frequency

Beacon reception frequency

◆ LoRaMacClassBBeaconNvmData_t::sBeaconCtrlNvm

struct LoRaMacClassBBeaconNvmData_t::sBeaconCtrlNvm
Data Fields
uint8_t CustomFreq: 1

Set if the node has a custom frequency for beaconing and ping slots

◆ LoRaMacClassBNvmData_t

struct LoRaMacClassBNvmData_t

LoRaMac Class B Context structure

Data Fields
LoRaMacClassBPingSlotNvmData_t PingSlotCtx

Class B ping slot context

LoRaMacClassBBeaconNvmData_t BeaconCtx

Class B beacon context

uint32_t Crc32

CRC32 value of the ClassB data structure.

Macro Definition Documentation

◆ CLASSB_BEACON_INTERVAL

#define CLASSB_BEACON_INTERVAL   128000

Defines the beacon interval in ms

◆ CLASSB_BEACON_RESERVED

#define CLASSB_BEACON_RESERVED   2120

Beacon reserved time in ms

◆ CLASSB_BEACON_GUARD

#define CLASSB_BEACON_GUARD   3000

Beacon guard time in ms

◆ CLASSB_BEACON_WINDOW

#define CLASSB_BEACON_WINDOW   122880

Beacon window time in ms

◆ CLASSB_BEACON_WINDOW_SLOTS

#define CLASSB_BEACON_WINDOW_SLOTS   4096

Beacon window time in numer of slots

◆ CLASSB_PING_SLOT_WINDOW

#define CLASSB_PING_SLOT_WINDOW   30

Ping slot length time in ms

◆ CLASSB_MAX_BEACON_LESS_PERIOD

#define CLASSB_MAX_BEACON_LESS_PERIOD   7200000

Maximum allowed beacon less time in ms

◆ CLASSB_BEACON_DELAY_BEACON_TIMING_ANS

#define CLASSB_BEACON_DELAY_BEACON_TIMING_ANS   30

Delay time for the BeaconTimingAns in ms

◆ CLASSB_BEACON_SYMBOL_TO_DEFAULT

#define CLASSB_BEACON_SYMBOL_TO_DEFAULT   8

Default symbol timeout for beacons and ping slot windows

◆ CLASSB_BEACON_SYMBOL_TO_EXPANSION_MAX

#define CLASSB_BEACON_SYMBOL_TO_EXPANSION_MAX   255

Maximum symbol timeout for beacons

◆ CLASSB_PING_SLOT_SYMBOL_TO_EXPANSION_MAX

#define CLASSB_PING_SLOT_SYMBOL_TO_EXPANSION_MAX   30

Maximum symbol timeout for ping slots

◆ CLASSB_BEACON_SYMBOL_TO_EXPANSION_FACTOR

#define CLASSB_BEACON_SYMBOL_TO_EXPANSION_FACTOR   2

Symbol expansion value for beacon windows in case of beacon loss in symbols

◆ CLASSB_WINDOW_MOVE_DEFAULT

#define CLASSB_WINDOW_MOVE_DEFAULT   2

Defines the default window movement time

◆ CLASSB_WINDOW_MOVE_EXPANSION_MAX

#define CLASSB_WINDOW_MOVE_EXPANSION_MAX   256

Defines the maximum time for the beacon movement

◆ CLASSB_WINDOW_MOVE_EXPANSION_FACTOR

#define CLASSB_WINDOW_MOVE_EXPANSION_FACTOR   2

Defines the expansion factor for the beacon movement

Typedef Documentation

◆ LoRaMacClassBNvmEvent

typedef void( * LoRaMacClassBNvmEvent) (void)

Signature of callback function to be called by this module when the non-volatile needs to be saved.

Enumeration Type Documentation

◆ BeaconState_t

States of the class B beacon acquisition and tracking

Enumerator
BEACON_STATE_ACQUISITION 

Initial state to acquire the beacon

BEACON_STATE_ACQUISITION_BY_TIME 

Beacon acquisition state when a time reference is available

BEACON_STATE_TIMEOUT 

Handles the state when the beacon reception fails

BEACON_STATE_BEACON_MISSED 

Handles the state when the beacon was missed due to an uplink

BEACON_STATE_REACQUISITION 

Reacquisition state which applies the algorithm to enlarge the reception windows

BEACON_STATE_LOCKED 

The node has locked a beacon successfully

BEACON_STATE_HALT 

The beacon state machine is stopped due to operations with higher priority

BEACON_STATE_IDLE 

The node currently operates in the beacon window and is idle. In this state, the temperature measurement takes place

BEACON_STATE_GUARD 

The node operates in the guard time of class B

BEACON_STATE_RX 

The node is in receive mode to lock a beacon

BEACON_STATE_LOST 

The nodes switches the device class

◆ PingSlotState_t

States of the class B ping slot mechanism

Enumerator
PINGSLOT_STATE_CALC_PING_OFFSET 

Calculation of the ping slot offset

PINGSLOT_STATE_SET_TIMER 

State to set the timer to open the next ping slot

PINGSLOT_STATE_IDLE 

The node is in idle state

PINGSLOT_STATE_RX 

The node opens up a ping slot window

Function Documentation

◆ LoRaMacClassBInit()

void LoRaMacClassBInit ( LoRaMacClassBParams_t classBParams,
LoRaMacClassBCallback_t callbacks,
LoRaMacClassBNvmData_t nvm 
)

Initialize LoRaWAN Class B.

Parameters
[IN]classBParams Information and feedback parameter
[IN]callbacks Contains the callback which the Class B implementation needs
[IN]nvm Pointer to an external non-volatile memory data structure.

◆ LoRaMacClassBSetBeaconState()

void LoRaMacClassBSetBeaconState ( BeaconState_t  beaconState)

Set the state of the beacon state machine.

Parameters
[IN]beaconState Beacon state.

◆ LoRaMacClassBSetPingSlotState()

void LoRaMacClassBSetPingSlotState ( PingSlotState_t  pingSlotState)

Set the state of the ping slot state machine.

Parameters
[IN]pingSlotState Ping slot state.

◆ LoRaMacClassBSetMulticastSlotState()

void LoRaMacClassBSetMulticastSlotState ( PingSlotState_t  multicastSlotState)

Set the state of the multicast slot state machine.

Parameters
[IN]pingSlotState multicast slot state.

◆ LoRaMacClassBIsAcquisitionInProgress()

bool LoRaMacClassBIsAcquisitionInProgress ( void  )

Verifies if an acquisition procedure is in progress.

Return values
[true,ifthe acquisition is in progress; false, if not]

◆ LoRaMacClassBRxBeacon()

bool LoRaMacClassBRxBeacon ( uint8_t *  payload,
uint16_t  size 
)

Receives and decodes the beacon frame.

Parameters
[IN]payload Pointer to the payload
[IN]size Size of the payload
Return values
[true,ifthe node has received a beacon; false, if not]

◆ LoRaMacClassBIsBeaconExpected()

bool LoRaMacClassBIsBeaconExpected ( void  )

The function validates, if the node expects a beacon at the current time.

Return values
[true,ifthe node expects a beacon; false, if not]

◆ LoRaMacClassBIsPingExpected()

bool LoRaMacClassBIsPingExpected ( void  )

The function validates, if the node expects a ping slot at the current time.

Return values
[true,ifthe node expects a ping slot; false, if not]

◆ LoRaMacClassBIsMulticastExpected()

bool LoRaMacClassBIsMulticastExpected ( void  )

The function validates, if the node expects a multicast slot at the current time.

Return values
[true,ifthe node expects a multicast slot; false, if not]

◆ LoRaMacClassBIsAcquisitionPending()

bool LoRaMacClassBIsAcquisitionPending ( void  )

Verifies if the acquisition pending bit is set.

Return values
[true,ifthe bit is set; false, if not]

◆ LoRaMacClassBIsBeaconModeActive()

bool LoRaMacClassBIsBeaconModeActive ( void  )

Verifies if the beacon mode active bit is set.

Return values
[true,ifthe bit is set; false, if not]

◆ LoRaMacClassBSetPingSlotInfo()

void LoRaMacClassBSetPingSlotInfo ( uint8_t  periodicity)

Sets the periodicity of the ping slots.

Parameters
[IN]periodicity Periodicity

◆ LoRaMacClassBSwitchClass()

LoRaMacStatus_t LoRaMacClassBSwitchClass ( DeviceClass_t  nextClass)

Switches the device class.

Parameters
[IN]nextClass Device class to switch to
Return values
LoRaMacStatus_tStatus of the operation.

◆ LoRaMacClassBMibGetRequestConfirm()

LoRaMacStatus_t LoRaMacClassBMibGetRequestConfirm ( MibRequestConfirm_t mibGet)

LoRaMAC ClassB MIB-Get.

The mac information base service to get attributes of the LoRaMac Class B layer.

Parameters
[IN]mibRequest - MIB-GET-Request to perform. Refer to MibRequestConfirm_t.
Return values
LoRaMacStatus_tStatus of the operation. Possible returns are: LORAMAC_STATUS_OK, LORAMAC_STATUS_SERVICE_UNKNOWN, LORAMAC_STATUS_PARAMETER_INVALID.

◆ LoRaMacMibClassBSetRequestConfirm()

LoRaMacStatus_t LoRaMacMibClassBSetRequestConfirm ( MibRequestConfirm_t mibSet)

LoRaMAC Class B MIB-Set.

The mac information base service to set attributes of the LoRaMac Class B layer.

Parameters
[IN]mibRequest - MIB-SET-Request to perform. Refer to MibRequestConfirm_t.
Return values
LoRaMacStatus_tStatus of the operation. Possible returns are: LORAMAC_STATUS_OK, LORAMAC_STATUS_BUSY, LORAMAC_STATUS_SERVICE_UNKNOWN, LORAMAC_STATUS_PARAMETER_INVALID.

◆ LoRaMacClassBPingSlotChannelReq()

uint8_t LoRaMacClassBPingSlotChannelReq ( uint8_t  datarate,
uint32_t  frequency 
)

This function handles the PING_SLOT_CHANNEL_REQ.

Parameters
[IN]datarate Device class to switch to
[IN]frequency Device class to switch to
Return values
Statusfor the MAC answer.

◆ LoRaMacClassBBeaconTimingAns()

void LoRaMacClassBBeaconTimingAns ( uint16_t  beaconTimingDelay,
uint8_t  beaconTimingChannel,
TimerTime_t  lastRxDone 
)

This function handles the BEACON_TIMING_ANS.

Parameters
[IN]beaconTimingDelay The beacon timing delay
[IN]beaconTimingChannel The beacon timing channel
[IN]lastRxDone The time of the last frame reception

◆ LoRaMacClassBBeaconFreqReq()

bool LoRaMacClassBBeaconFreqReq ( uint32_t  frequency)

This function handles the BEACON_FREQ_REQ.

Parameters
[IN]frequency Frequency to set
Return values
[true,ifMAC shall send an answer; false, if not]

◆ LoRaMacClassBIsUplinkCollision()

TimerTime_t LoRaMacClassBIsUplinkCollision ( TimerTime_t  txTimeOnAir)

Queries the ping slot window time.

Parameters
[IN]txTimeOnAir TX time on air for the next uplink
Return values
Returnsthe time the uplink should be delayed

◆ LoRaMacClassBSetMulticastPeriodicity()

void LoRaMacClassBSetMulticastPeriodicity ( MulticastCtx_t multicastChannel)

Starts the timers for the RX slots. This includes the timers for ping and multicast slots.

Parameters
[IN]periodicity Downlink periodicity
[IN]multicastChannel Related multicast channel

Variable Documentation

◆ PingSlotWindow

uint32_t PingSlotWindow

Ping slot length time in ms

◆ PingOffset

uint16_t PingOffset

Ping offset

◆ SymbolTimeout [1/2]

uint16_t SymbolTimeout

Current symbol timeout. The node enlarges this variable in case of beacon loss.

◆ NextMulticastChannel

MulticastCtx_t* NextMulticastChannel

The multicast channel which will be enabled next.

◆ BeaconMode

uint8_t BeaconMode

Set if the node receives beacons

◆ BeaconAcquired

uint8_t BeaconAcquired

Set if the node has acquired the beacon

◆ BeaconDelaySet

uint8_t BeaconDelaySet

Set if a beacon delay was set for the beacon acquisition

◆ BeaconChannelSet

uint8_t BeaconChannelSet

Set if a beacon channel was set for the beacon acquisition

◆ AcquisitionPending

uint8_t AcquisitionPending

Set if beacon acquisition is pending

◆ ResumeBeaconing

uint8_t ResumeBeaconing

Set if the beacon state machine will be resumed

◆ Ctrl [1/3]

◆ Temperature

float Temperature

Current temperature

◆ BeaconTime

SysTime_t BeaconTime

Beacon time received with the beacon frame

◆ LastBeaconRx

SysTime_t LastBeaconRx

Time when the last beacon was received

◆ NextBeaconRx

SysTime_t NextBeaconRx

Time when the next beacon will be received

◆ NextBeaconRxAdjusted

TimerTime_t NextBeaconRxAdjusted

This is the time where the RX window will be opened. Its base is NextBeaconRx with temperature compensations and RX window movement.

◆ SymbolTimeout [2/2]

uint16_t SymbolTimeout

Current symbol timeout. The node enlarges this variable in case of beacon loss.

◆ BeaconWindowMovement

TimerTime_t BeaconWindowMovement

Specifies how much time the beacon window will be moved.

◆ BeaconTimingChannel

uint8_t BeaconTimingChannel

Beacon timing channel for next beacon

◆ BeaconTimingDelay

TimerTime_t BeaconTimingDelay

Delay for next beacon in ms

◆ TimeStamp

TimerTime_t TimeStamp

◆ GetTemperatureLevel

float( * GetTemperatureLevel) (void)

Measures the temperature level.

Return values
Temperaturelevel

◆ MacProcessNotify

void( * MacProcessNotify) (void)

Will be called each time a Radio IRQ is handled by the MAC layer.

Warning
Runs in a IRQ context. Should only change variables state.

◆ MlmeIndication

MlmeIndication_t* MlmeIndication

Pointer to the MlmeIndication structure

◆ McpsIndication

McpsIndication_t* McpsIndication

Pointer to the McpsIndication structure

◆ MlmeConfirm

MlmeConfirm_t* MlmeConfirm

Pointer to the MlmeConfirm structure

◆ LoRaMacFlags

LoRaMacFlags_t* LoRaMacFlags

Pointer to the LoRaMacFlags structure

◆ LoRaMacDevAddr

uint32_t* LoRaMacDevAddr

Pointer to the LoRaMac device address

◆ LoRaMacRegion

LoRaMacRegion_t* LoRaMacRegion

Pointer to the LoRaMac region definition

◆ LoRaMacParams

LoRaMacParams_t* LoRaMacParams

Pointer to the LoRaMacParams structure

◆ MulticastChannels

MulticastCtx_t* MulticastChannels

Pointer to the multicast channel list

◆ Assigned

uint8_t Assigned

Set when the server assigned a ping slot to the node

◆ CustomFreq [1/2]

uint8_t CustomFreq

Set when a custom frequency is used

◆ Ctrl [2/3]

◆ PingNb

uint8_t PingNb

Number of ping slots

◆ PingPeriod

uint16_t PingPeriod

Period of the ping slots

◆ Frequency [1/2]

uint32_t Frequency

Reception frequency of the ping slot windows

◆ Datarate

int8_t Datarate

Datarate of the ping slot

◆ CustomFreq [2/2]

uint8_t CustomFreq

Set if the node has a custom frequency for beaconing and ping slots

◆ Ctrl [3/3]

◆ Frequency [2/2]

uint32_t Frequency

Beacon reception frequency

◆ PingSlotCtx

Class B ping slot context

◆ BeaconCtx

Class B beacon context

◆ Crc32

uint32_t Crc32

CRC32 value of the ClassB data structure.