SX126x-Arduino  2.0.1
LoRaMac.h
Go to the documentation of this file.
1 
41 #ifndef __LORAMAC_H__
42 #define __LORAMAC_H__
43 
44 extern "C"
45 {
46 
50 #define MAC_STATE_CHECK_TIMEOUT 250 // 1000
51 
55 #define MAX_ACK_RETRIES 8
56 
60 #define UP_LINK 0
61 
65 #define DOWN_LINK 1
66 
71 #define LORAMAC_MFR_LEN 4
72 
78 #define LORA_MAC_FRMPAYLOAD_OVERHEAD 13 // MHDR(1) + FHDR(7) + Port(1) + MIC(4)
79 
85  typedef enum eDeviceClass
86  {
106 
110  typedef union uDrRange
111  {
115  int8_t Value;
119  struct sFields
120  {
128  int8_t Min : 4;
136  int8_t Max : 4;
139 
143  typedef struct sBand
144  {
148  uint16_t DCycle;
152  int8_t TxMaxPower;
166 
170  typedef struct sChannelParams
171  {
175  uint32_t Frequency;
179  uint32_t Rx1Frequency;
187  uint8_t Band;
189 
193  typedef struct sRx2ChannelParams
194  {
198  uint32_t Frequency;
206  uint8_t Datarate;
208 
212  typedef struct sLoRaMacParams
213  {
232  uint8_t MinRxSymbols;
236  uint32_t MaxRxWindow;
240  uint32_t ReceiveDelay1;
244  uint32_t ReceiveDelay2;
256  uint8_t ChannelsNbRep;
260  uint8_t Rx1DrOffset;
276  float MaxEirp;
280  float AntennaGain;
282 
286  typedef struct sMulticastParams
287  {
291  uint32_t Address;
295  uint8_t NwkSKey[16];
299  uint8_t AppSKey[16];
303  uint32_t DownLinkCounter;
309 
315  typedef enum eLoRaMacFrameType
316  {
350 
356  typedef enum eLoRaMacMoteCmd
357  {
395 
401  typedef enum eLoRaMacSrvCmd
402  {
440 
444  typedef enum eLoRaMacBatteryLevel
445  {
463 
469  typedef union uLoRaMacHeader
470  {
474  uint8_t Value;
478  struct sHdrBits
479  {
483  uint8_t Major : 2;
487  uint8_t RFU : 3;
491  uint8_t MType : 3;
492  } Bits;
494 
500  typedef union uLoRaMacFrameCtrl
501  {
505  uint8_t Value;
509  struct sCtrlBits
510  {
514  uint8_t FOptsLen : 4;
518  uint8_t FPending : 1;
522  uint8_t Ack : 1;
526  uint8_t AdrAckReq : 1;
530  uint8_t Adr : 1;
531  } Bits;
533 
538  {
595 
599  typedef union eLoRaMacFlags_t
600  {
604  uint8_t Value;
609  {
613  uint8_t McpsReq : 1;
617  uint8_t McpsInd : 1;
621  uint8_t McpsIndSkip : 1;
625  uint8_t MlmeReq : 1;
629  uint8_t MacDone : 1;
630  } Bits;
632 
656  typedef enum eMcps
657  {
675 
679  typedef struct sMcpsReqUnconfirmed
680  {
687  uint8_t fPort;
691  void *fBuffer;
695  uint16_t fBufferSize;
699  int8_t Datarate;
701 
705  typedef struct sMcpsReqConfirmed
706  {
713  uint8_t fPort;
717  void *fBuffer;
721  uint16_t fBufferSize;
725  int8_t Datarate;
746  uint8_t NbTrials;
748 
752  typedef struct sMcpsReqProprietary
753  {
757  void *fBuffer;
761  uint16_t fBufferSize;
765  int8_t Datarate;
767 
771  typedef struct sMcpsReq
772  {
777 
782  {
795  } Req;
797 
801  typedef struct sMcpsConfirm
802  {
814  uint8_t Datarate;
818  int8_t TxPower;
826  uint8_t NbRetries;
834  uint32_t UpLinkCounter;
838  uint32_t UpLinkFrequency;
840 
844  typedef struct sMcpsIndication
845  {
857  uint8_t Multicast;
861  uint8_t Port;
865  uint8_t RxDatarate;
869  uint8_t FramePending;
873  uint8_t *Buffer;
877  uint8_t BufferSize;
881  bool RxData;
885  int16_t Rssi;
889  uint8_t Snr;
895  uint8_t RxSlot;
903  uint32_t DownLinkCounter;
905 
926  typedef enum eMlme
927  {
953 
957  typedef struct sMlmeReqJoin
958  {
964  uint8_t *DevEui;
970  uint8_t *AppEui;
976  uint8_t *AppKey;
980  uint8_t NbTrials;
982 
986  typedef struct sMlmeReqTxCw
987  {
991  uint16_t Timeout;
995  uint32_t Frequency;
999  uint8_t Power;
1001 
1005  typedef struct sMlmeReq
1006  {
1011 
1016  {
1025  } Req;
1027 
1031  typedef struct sMlmeConfirm
1032  {
1049  uint8_t DemodMargin;
1053  uint8_t NbGateways;
1057  uint8_t NbRetries;
1059 
1105  typedef enum eMib
1106  {
1304 
1308  typedef enum eJoinStatus
1309  {
1313  JOIN_FAILED
1315 
1319  typedef union uMibParam
1320  {
1344  uint32_t NetID;
1350  uint32_t DevAddr;
1356  uint8_t *NwkSKey;
1362  uint8_t *AppSKey;
1398  uint16_t *ChannelsMask;
1410  uint8_t ChannelNbRep;
1416  uint32_t MaxRxWindow;
1422  uint32_t ReceiveDelay1;
1428  uint32_t ReceiveDelay2;
1470  uint32_t UpLinkCounter;
1494  uint8_t MinRxSymbols;
1502 
1506  typedef struct eMibRequestConfirm
1507  {
1512 
1518 
1522  typedef struct sLoRaMacTxInfo
1523  {
1533 
1537  typedef enum eLoRaMacStatus
1538  {
1585 
1589  typedef enum eLoRaMacRegion_t
1590  {
1644 
1650  typedef struct sLoRaMacPrimitives
1651  {
1671 
1675  typedef struct sLoRaMacCallback
1676  {
1685  uint8_t (*GetBatteryLevel)(void);
1687 
1691  static const uint8_t LoRaMacMaxEirpTable[] = {8, 10, 12, 13, 14, 16, 18, 20, 21, 24, 26, 27, 29, 30, 33, 36};
1692 
1718 
1725  uint32_t LoRaMacGetOTAADevId(void);
1726 
1751 
1769 
1783 
1797 
1811 
1839 
1870 
1917 
1952 
1954 };
1955 #endif // __LORAMAC_H__
sLoRaMacTxInfo::MaxPossiblePayload
uint8_t MaxPossiblePayload
Definition: LoRaMac.h:1527
LORAMAC_STATUS_NO_NETWORK_JOINED
@ LORAMAC_STATUS_NO_NETWORK_JOINED
Definition: LoRaMac.h:1570
sMcpsIndication::RxDatarate
uint8_t RxDatarate
Definition: LoRaMac.h:865
uLoRaMacHeader
Definition: LoRaMac.h:470
eMibRequestConfirm::Param
MibParam_t Param
Definition: LoRaMac.h:1516
sMlmeReq::Req
union sMlmeReq::uMlmeParam Req
MIB_DEV_ADDR
@ MIB_DEV_ADDR
Definition: LoRaMac.h:1138
sMcpsReqConfirmed
Definition: LoRaMac.h:706
BAT_LEVEL_FULL
@ BAT_LEVEL_FULL
Definition: LoRaMac.h:457
eLoRaMacFlags_t::Value
uint8_t Value
Definition: LoRaMac.h:604
sLoRaMacParams::SystemMaxRxError
uint32_t SystemMaxRxError
Definition: LoRaMac.h:227
sMlmeReq::uMlmeParam::Join
MlmeReqJoin_t Join
Definition: LoRaMac.h:1020
sLoRaMacParams::UplinkDwellTime
uint8_t UplinkDwellTime
Definition: LoRaMac.h:268
sBand
Definition: LoRaMac.h:144
LORAMAC_STATUS_BUSY
@ LORAMAC_STATUS_BUSY
Definition: LoRaMac.h:1546
sMcpsReq::uMcpsParam
Definition: LoRaMac.h:782
sLoRaMacParams::DownlinkDwellTime
uint8_t DownlinkDwellTime
Definition: LoRaMac.h:272
sLoRaMacTxInfo::CurrentPayloadSize
uint8_t CurrentPayloadSize
Definition: LoRaMac.h:1531
uMibParam::AdrEnable
bool AdrEnable
Definition: LoRaMac.h:1338
MOTE_MAC_RX_TIMING_SETUP_ANS
@ MOTE_MAC_RX_TIMING_SETUP_ANS
Definition: LoRaMac.h:385
FRAME_TYPE_DATA_CONFIRMED_UP
@ FRAME_TYPE_DATA_CONFIRMED_UP
Definition: LoRaMac.h:336
uMibParam
Definition: LoRaMac.h:1320
MOTE_MAC_TX_PARAM_SETUP_ANS
@ MOTE_MAC_TX_PARAM_SETUP_ANS
Definition: LoRaMac.h:389
MulticastParams_t
struct sMulticastParams MulticastParams_t
sMcpsConfirm::AckReceived
bool AckReceived
Definition: LoRaMac.h:822
sMcpsReqConfirmed::fBuffer
void * fBuffer
Definition: LoRaMac.h:717
MLME_JOIN
@ MLME_JOIN
Definition: LoRaMac.h:933
LoRaMacMcpsRequest
LoRaMacStatus_t LoRaMacMcpsRequest(McpsReq_t *mcpsRequest)
LoRaMAC MCPS-Request.
Definition: LoRaMac.cpp:3284
FRAME_TYPE_DATA_UNCONFIRMED_DOWN
@ FRAME_TYPE_DATA_UNCONFIRMED_DOWN
Definition: LoRaMac.h:332
uMibParam::DevAddr
uint32_t DevAddr
Definition: LoRaMac.h:1350
uLoRaMacHeader::Bits
struct uLoRaMacHeader::sHdrBits Bits
LoRaMacStatus_t
enum eLoRaMacStatus LoRaMacStatus_t
MIB_CHANNELS_MASK
@ MIB_CHANNELS_MASK
Definition: LoRaMac.h:1192
sMcpsReq::uMcpsParam::Unconfirmed
McpsReqUnconfirmed_t Unconfirmed
Definition: LoRaMac.h:786
MlmeConfirm_t
struct sMlmeConfirm MlmeConfirm_t
Rx2ChannelParams_t
struct sRx2ChannelParams Rx2ChannelParams_t
uMibParam::AntennaGain
float AntennaGain
Definition: LoRaMac.h:1500
uLoRaMacFrameCtrl::Bits
struct uLoRaMacFrameCtrl::sCtrlBits Bits
LoRaMacFrameCtrl_t
union uLoRaMacFrameCtrl LoRaMacFrameCtrl_t
sBand::LastJoinTxDoneTime
TimerTime_t LastJoinTxDoneTime
Definition: LoRaMac.h:156
LORAMAC_EVENT_INFO_STATUS_ERROR
@ LORAMAC_EVENT_INFO_STATUS_ERROR
Definition: LoRaMac.h:546
sBand::TimeOff
TimerTime_t TimeOff
Definition: LoRaMac.h:164
LORAMAC_REGION_RU864
@ LORAMAC_REGION_RU864
Definition: LoRaMac.h:1642
sLoRaMacParams::JoinAcceptDelay2
uint32_t JoinAcceptDelay2
Definition: LoRaMac.h:252
sMlmeReqTxCw
Definition: LoRaMac.h:987
sMcpsReqUnconfirmed::Datarate
int8_t Datarate
Definition: LoRaMac.h:699
MlmeConfirm
static MlmeConfirm_t MlmeConfirm
Definition: LoRaMac.cpp:402
MIB_ANTENNA_GAIN
@ MIB_ANTENNA_GAIN
Definition: LoRaMac.h:1302
sMcpsReq::Req
union sMcpsReq::uMcpsParam Req
LORAMAC_STATUS_PARAMETER_INVALID
@ LORAMAC_STATUS_PARAMETER_INVALID
Definition: LoRaMac.h:1554
uMibParam::UpLinkCounter
uint32_t UpLinkCounter
Definition: LoRaMac.h:1470
sLoRaMacPrimitives
Definition: LoRaMac.h:1651
sLoRaMacParams::ReceiveDelay2
uint32_t ReceiveDelay2
Definition: LoRaMac.h:244
eMlme
eMlme
LoRaMAC management services.
Definition: LoRaMac.h:927
uDrRange::sFields::Min
int8_t Min
Definition: LoRaMac.h:128
uDrRange::sFields::Max
int8_t Max
Definition: LoRaMac.h:136
MIB_SYSTEM_MAX_RX_ERROR
@ MIB_SYSTEM_MAX_RX_ERROR
Definition: LoRaMac.h:1290
sMlmeReqJoin::NbTrials
uint8_t NbTrials
Definition: LoRaMac.h:980
sLoRaMacCallback::GetBatteryLevel
uint8_t(* GetBatteryLevel)(void)
Measures the battery level.
Definition: LoRaMac.h:1685
McpsIndication_t
struct sMcpsIndication McpsIndication_t
eLoRaMacFlags_t::sMacFlagBits::MacDone
uint8_t MacDone
Definition: LoRaMac.h:629
MIB_PUBLIC_NETWORK
@ MIB_PUBLIC_NETWORK
Definition: LoRaMac.h:1158
SRV_MAC_LINK_CHECK_ANS
@ SRV_MAC_LINK_CHECK_ANS
Definition: LoRaMac.h:406
uLoRaMacFrameCtrl::sCtrlBits::FPending
uint8_t FPending
Definition: LoRaMac.h:518
McpsReqConfirmed_t
struct sMcpsReqConfirmed McpsReqConfirmed_t
LORAMAC_EVENT_INFO_STATUS_RX2_ERROR
@ LORAMAC_EVENT_INFO_STATUS_RX2_ERROR
Definition: LoRaMac.h:566
MIB_NET_ID
@ MIB_NET_ID
Definition: LoRaMac.h:1132
eMibRequestConfirm::Type
Mib_t Type
Definition: LoRaMac.h:1511
FRAME_TYPE_PROPRIETARY
@ FRAME_TYPE_PROPRIETARY
Definition: LoRaMac.h:348
MIB_CHANNELS_NB_REP
@ MIB_CHANNELS_NB_REP
Definition: LoRaMac.h:1204
sLoRaMacParams::ChannelsTxPower
int8_t ChannelsTxPower
Definition: LoRaMac.h:217
McpsReqUnconfirmed_t
struct sMcpsReqUnconfirmed McpsReqUnconfirmed_t
MOTE_MAC_DUTY_CYCLE_ANS
@ MOTE_MAC_DUTY_CYCLE_ANS
Definition: LoRaMac.h:369
MOTE_MAC_LINK_ADR_ANS
@ MOTE_MAC_LINK_ADR_ANS
Definition: LoRaMac.h:365
uMibParam::MaxRxWindow
uint32_t MaxRxWindow
Definition: LoRaMac.h:1416
LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT
@ LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT
Definition: LoRaMac.h:550
sMlmeConfirm
Definition: LoRaMac.h:1032
MIB_MAX_RX_WINDOW_DURATION
@ MIB_MAX_RX_WINDOW_DURATION
Definition: LoRaMac.h:1210
eLoRaMacEventInfoStatus
eLoRaMacEventInfoStatus
Definition: LoRaMac.h:538
sChannelParams
Definition: LoRaMac.h:171
LoRaMacHeader_t
union uLoRaMacHeader LoRaMacHeader_t
sLoRaMacParams::MinRxSymbols
uint8_t MinRxSymbols
Definition: LoRaMac.h:232
ChannelParams_t
struct sChannelParams ChannelParams_t
LoRaMacGetOTAADevId
uint32_t LoRaMacGetOTAADevId(void)
Returns the Device Address set by the LoRaWan server after OTAA join was successful.
Definition: LoRaMac.cpp:3425
sBand::LastTxDoneTime
TimerTime_t LastTxDoneTime
Definition: LoRaMac.h:160
CLASS_C
@ CLASS_C
Definition: LoRaMac.h:104
sMlmeReq::uMlmeParam
Definition: LoRaMac.h:1016
sMlmeConfirm::NbGateways
uint8_t NbGateways
Definition: LoRaMac.h:1053
uMibParam::ReceiveDelay2
uint32_t ReceiveDelay2
Definition: LoRaMac.h:1428
uLoRaMacFrameCtrl::sCtrlBits::Ack
uint8_t Ack
Definition: LoRaMac.h:522
LoRaMacFlags_t
union eLoRaMacFlags_t LoRaMacFlags_t
McpsConfirm_t
struct sMcpsConfirm McpsConfirm_t
sMcpsIndication::FramePending
uint8_t FramePending
Definition: LoRaMac.h:869
LORAMAC_STATUS_SERVICE_UNKNOWN
@ LORAMAC_STATUS_SERVICE_UNKNOWN
Definition: LoRaMac.h:1550
sMcpsIndication::Rssi
int16_t Rssi
Definition: LoRaMac.h:885
SRV_MAC_RX_TIMING_SETUP_REQ
@ SRV_MAC_RX_TIMING_SETUP_REQ
Definition: LoRaMac.h:430
MOTE_MAC_RX_PARAM_SETUP_ANS
@ MOTE_MAC_RX_PARAM_SETUP_ANS
Definition: LoRaMac.h:373
LORAMAC_REGION_CN470
@ LORAMAC_REGION_CN470
Definition: LoRaMac.h:1602
LoRaMacPrimitives_t
struct sLoRaMacPrimitives LoRaMacPrimitives_t
MIB_DOWNLINK_COUNTER
@ MIB_DOWNLINK_COUNTER
Definition: LoRaMac.h:1278
uLoRaMacFrameCtrl::sCtrlBits::Adr
uint8_t Adr
Definition: LoRaMac.h:530
eLoRaMacFlags_t::sMacFlagBits::McpsIndSkip
uint8_t McpsIndSkip
Definition: LoRaMac.h:621
MIB_MULTICAST_CHANNEL
@ MIB_MULTICAST_CHANNEL
Definition: LoRaMac.h:1284
uMibParam::AppSKey
uint8_t * AppSKey
Definition: LoRaMac.h:1362
uMibParam::ChannelsDatarate
int8_t ChannelsDatarate
Definition: LoRaMac.h:1452
MlmeReqJoin_t
struct sMlmeReqJoin MlmeReqJoin_t
eLoRaMacFlags_t
Definition: LoRaMac.h:600
LoRaMacChannelRemove
LoRaMacStatus_t LoRaMacChannelRemove(uint8_t id)
LoRaMAC channel remove service.
Definition: LoRaMac.cpp:3080
sMcpsIndication::Multicast
uint8_t Multicast
Definition: LoRaMac.h:857
MIB_JOIN_ACCEPT_DELAY_2
@ MIB_JOIN_ACCEPT_DELAY_2
Definition: LoRaMac.h:1234
uLoRaMacHeader::sHdrBits
Definition: LoRaMac.h:479
LoRaMacSrvCmd_t
enum eLoRaMacSrvCmd LoRaMacSrvCmd_t
sMcpsConfirm::TxTimeOnAir
TimerTime_t TxTimeOnAir
Definition: LoRaMac.h:830
MIB_CHANNELS_DEFAULT_MASK
@ MIB_CHANNELS_DEFAULT_MASK
Definition: LoRaMac.h:1198
eLoRaMacFlags_t::sMacFlagBits::MlmeReq
uint8_t MlmeReq
Definition: LoRaMac.h:625
LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT
@ LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT
Definition: LoRaMac.h:554
uLoRaMacHeader::sHdrBits::RFU
uint8_t RFU
Definition: LoRaMac.h:487
LORAMAC_REGION_KR920
@ LORAMAC_REGION_KR920
Definition: LoRaMac.h:1618
MIB_CHANNELS_DEFAULT_TX_POWER
@ MIB_CHANNELS_DEFAULT_TX_POWER
Definition: LoRaMac.h:1266
BAT_LEVEL_EXT_SRC
@ BAT_LEVEL_EXT_SRC
Definition: LoRaMac.h:449
sMcpsConfirm::UpLinkFrequency
uint32_t UpLinkFrequency
Definition: LoRaMac.h:838
sMcpsReqProprietary::Datarate
int8_t Datarate
Definition: LoRaMac.h:765
McpsReqProprietary_t
struct sMcpsReqProprietary McpsReqProprietary_t
sMcpsConfirm::TxPower
int8_t TxPower
Definition: LoRaMac.h:818
sMlmeReqJoin::AppEui
uint8_t * AppEui
Definition: LoRaMac.h:970
uMibParam::ChannelsTxPower
int8_t ChannelsTxPower
Definition: LoRaMac.h:1464
sLoRaMacCallback
Definition: LoRaMac.h:1676
LoRaMacMaxEirpTable
static const uint8_t LoRaMacMaxEirpTable[]
Definition: LoRaMac.h:1691
JOIN_ONGOING
@ JOIN_ONGOING
Definition: LoRaMac.h:1312
sMlmeConfirm::MlmeRequest
Mlme_t MlmeRequest
Definition: LoRaMac.h:1036
Band_t
struct sBand Band_t
uMibParam::ChannelsDefaultTxPower
int8_t ChannelsDefaultTxPower
Definition: LoRaMac.h:1458
eLoRaMacStatus
eLoRaMacStatus
Definition: LoRaMac.h:1538
uMibParam::ChannelsMask
uint16_t * ChannelsMask
Definition: LoRaMac.h:1398
sMcpsReqConfirmed::NbTrials
uint8_t NbTrials
Definition: LoRaMac.h:746
MIB_UPLINK_COUNTER
@ MIB_UPLINK_COUNTER
Definition: LoRaMac.h:1272
sMlmeReq::Type
Mlme_t Type
Definition: LoRaMac.h:1010
sChannelParams::Frequency
uint32_t Frequency
Definition: LoRaMac.h:175
LoRaMacTxInfo_t
struct sLoRaMacTxInfo LoRaMacTxInfo_t
MIB_CHANNELS
@ MIB_CHANNELS
Definition: LoRaMac.h:1174
LORAMAC_REGION_AU915
@ LORAMAC_REGION_AU915
Definition: LoRaMac.h:1598
sChannelParams::Band
uint8_t Band
Definition: LoRaMac.h:187
eLoRaMacFrameType
eLoRaMacFrameType
Definition: LoRaMac.h:316
FRAME_TYPE_JOIN_ACCEPT
@ FRAME_TYPE_JOIN_ACCEPT
Definition: LoRaMac.h:324
MCPS_UNCONFIRMED
@ MCPS_UNCONFIRMED
Definition: LoRaMac.h:661
sLoRaMacParams::ChannelsDatarate
int8_t ChannelsDatarate
Definition: LoRaMac.h:221
sMcpsConfirm::UpLinkCounter
uint32_t UpLinkCounter
Definition: LoRaMac.h:834
MIB_CHANNELS_TX_POWER
@ MIB_CHANNELS_TX_POWER
Definition: LoRaMac.h:1258
eLoRaMacFlags_t::sMacFlagBits::McpsReq
uint8_t McpsReq
Definition: LoRaMac.h:613
sLoRaMacPrimitives::MacMcpsIndication
void(* MacMcpsIndication)(McpsIndication_t *McpsIndication)
MCPS-Indication primitive.
Definition: LoRaMac.h:1663
eMibRequestConfirm
Definition: LoRaMac.h:1507
sLoRaMacParams::Rx1DrOffset
uint8_t Rx1DrOffset
Definition: LoRaMac.h:260
Mib_t
enum eMib Mib_t
LoRaMacCallback_t
struct sLoRaMacCallback LoRaMacCallback_t
uMibParam::ChannelsDefaultDatarate
int8_t ChannelsDefaultDatarate
Definition: LoRaMac.h:1446
MCPS_CONFIRMED
@ MCPS_CONFIRMED
Definition: LoRaMac.h:665
LORAMAC_EVENT_INFO_STATUS_RX1_ERROR
@ LORAMAC_EVENT_INFO_STATUS_RX1_ERROR
Definition: LoRaMac.h:562
uMibParam::ReceiveDelay1
uint32_t ReceiveDelay1
Definition: LoRaMac.h:1422
sMlmeReqTxCw::Frequency
uint32_t Frequency
Definition: LoRaMac.h:995
sLoRaMacParams::MaxRxWindow
uint32_t MaxRxWindow
Definition: LoRaMac.h:236
DeviceClass_t
enum eDeviceClass DeviceClass_t
MLME_LINK_CHECK
@ MLME_LINK_CHECK
Definition: LoRaMac.h:939
MOTE_MAC_DEV_STATUS_ANS
@ MOTE_MAC_DEV_STATUS_ANS
Definition: LoRaMac.h:377
McpsConfirm
static McpsConfirm_t McpsConfirm
Definition: LoRaMac.cpp:397
MIB_RECEIVE_DELAY_2
@ MIB_RECEIVE_DELAY_2
Definition: LoRaMac.h:1222
uLoRaMacFrameCtrl::sCtrlBits::AdrAckReq
uint8_t AdrAckReq
Definition: LoRaMac.h:526
LORAMAC_EVENT_INFO_STATUS_DOWNLINK_TOO_MANY_FRAMES_LOSS
@ LORAMAC_EVENT_INFO_STATUS_DOWNLINK_TOO_MANY_FRAMES_LOSS
Definition: LoRaMac.h:585
eMib
eMib
Definition: LoRaMac.h:1106
SRV_MAC_DUTY_CYCLE_REQ
@ SRV_MAC_DUTY_CYCLE_REQ
Definition: LoRaMac.h:414
eLoRaMacMoteCmd
eLoRaMacMoteCmd
Definition: LoRaMac.h:357
uLoRaMacFrameCtrl::sCtrlBits::FOptsLen
uint8_t FOptsLen
Definition: LoRaMac.h:514
LORAMAC_REGION_AS923_3
@ LORAMAC_REGION_AS923_3
Definition: LoRaMac.h:1634
sMulticastParams::Address
uint32_t Address
Definition: LoRaMac.h:291
MIB_RECEIVE_DELAY_1
@ MIB_RECEIVE_DELAY_1
Definition: LoRaMac.h:1216
LoRaMacBatteryLevel_t
enum eLoRaMacBatteryLevel LoRaMacBatteryLevel_t
LORAMAC_EVENT_INFO_STATUS_OK
@ LORAMAC_EVENT_INFO_STATUS_OK
Definition: LoRaMac.h:542
eLoRaMacRegion_t
eLoRaMacRegion_t
Definition: LoRaMac.h:1590
sRx2ChannelParams
Definition: LoRaMac.h:194
LoRaMacMulticastChannelLink
LoRaMacStatus_t LoRaMacMulticastChannelLink(MulticastParams_t *channelParam)
LoRaMAC multicast channel link service.
Definition: LoRaMac.cpp:3101
LORAMAC_STATUS_DATARATE_INVALID
@ LORAMAC_STATUS_DATARATE_INVALID
Definition: LoRaMac.h:1562
sLoRaMacParams::MaxEirp
float MaxEirp
Definition: LoRaMac.h:276
sLoRaMacParams
Definition: LoRaMac.h:213
uLoRaMacFrameCtrl
Definition: LoRaMac.h:501
LORAMAC_STATUS_DEVICE_OFF
@ LORAMAC_STATUS_DEVICE_OFF
Definition: LoRaMac.h:1578
CLASS_A
@ CLASS_A
Definition: LoRaMac.h:92
MIB_JOIN_ACCEPT_DELAY_1
@ MIB_JOIN_ACCEPT_DELAY_1
Definition: LoRaMac.h:1228
uDrRange::Fields
struct uDrRange::sFields Fields
MibRequestConfirm_t
struct eMibRequestConfirm MibRequestConfirm_t
FRAME_TYPE_DATA_CONFIRMED_DOWN
@ FRAME_TYPE_DATA_CONFIRMED_DOWN
Definition: LoRaMac.h:340
eDeviceClass
eDeviceClass
Definition: LoRaMac.h:86
MIB_RX2_DEFAULT_CHANNEL
@ MIB_RX2_DEFAULT_CHANNEL
Definition: LoRaMac.h:1186
LoRaMacEventInfoStatus_t
enum eLoRaMacEventInfoStatus LoRaMacEventInfoStatus_t
LORAMAC_REGION_CN779
@ LORAMAC_REGION_CN779
Definition: LoRaMac.h:1606
sMcpsIndication::AckReceived
bool AckReceived
Definition: LoRaMac.h:899
sMcpsIndication::DownLinkCounter
uint32_t DownLinkCounter
Definition: LoRaMac.h:903
eLoRaMacSrvCmd
eLoRaMacSrvCmd
Definition: LoRaMac.h:402
LORAMAC_REGION_EU868
@ LORAMAC_REGION_EU868
Definition: LoRaMac.h:1614
JOIN_FAILED
@ JOIN_FAILED
Definition: LoRaMac.h:1313
LoRaMacMoteCmd_t
enum eLoRaMacMoteCmd LoRaMacMoteCmd_t
SRV_MAC_RX_PARAM_SETUP_REQ
@ SRV_MAC_RX_PARAM_SETUP_REQ
Definition: LoRaMac.h:418
uMibParam::Rx2DefaultChannel
Rx2ChannelParams_t Rx2DefaultChannel
Definition: LoRaMac.h:1392
eLoRaMacFlags_t::sMacFlagBits::McpsInd
uint8_t McpsInd
Definition: LoRaMac.h:617
SRV_MAC_DL_CHANNEL_REQ
@ SRV_MAC_DL_CHANNEL_REQ
Definition: LoRaMac.h:438
region
LoRaMacRegion_t region
Definition: LoRaMacHelper.cpp:37
MIB_RX2_CHANNEL
@ MIB_RX2_CHANNEL
Definition: LoRaMac.h:1180
sLoRaMacParams::JoinAcceptDelay1
uint32_t JoinAcceptDelay1
Definition: LoRaMac.h:248
MCPS_MULTICAST
@ MCPS_MULTICAST
Definition: LoRaMac.h:669
sMcpsIndication::Port
uint8_t Port
Definition: LoRaMac.h:861
sLoRaMacPrimitives::MacMcpsConfirm
void(* MacMcpsConfirm)(McpsConfirm_t *McpsConfirm)
MCPS-Confirm primitive.
Definition: LoRaMac.h:1657
MLME_TXCW
@ MLME_TXCW
Definition: LoRaMac.h:945
sMlmeReqJoin::AppKey
uint8_t * AppKey
Definition: LoRaMac.h:976
FRAME_TYPE_DATA_UNCONFIRMED_UP
@ FRAME_TYPE_DATA_UNCONFIRMED_UP
Definition: LoRaMac.h:328
eLoRaMacFlags_t::Bits
struct eLoRaMacFlags_t::sMacFlagBits Bits
LORAMAC_REGION_AS923
@ LORAMAC_REGION_AS923
Definition: LoRaMac.h:1594
eLoRaMacFlags_t::sMacFlagBits
Definition: LoRaMac.h:609
sBand::TxMaxPower
int8_t TxMaxPower
Definition: LoRaMac.h:152
sMcpsIndication::Snr
uint8_t Snr
Definition: LoRaMac.h:889
SRV_MAC_DEV_STATUS_REQ
@ SRV_MAC_DEV_STATUS_REQ
Definition: LoRaMac.h:422
sMcpsReqProprietary
Definition: LoRaMac.h:753
LORAMAC_REGION_AS923_4
@ LORAMAC_REGION_AS923_4
Definition: LoRaMac.h:1638
sMulticastParams::Next
struct sMulticastParams * Next
Definition: LoRaMac.h:307
MLME_TXCW_1
@ MLME_TXCW_1
Definition: LoRaMac.h:951
LORAMAC_EVENT_INFO_STATUS_DOWNLINK_REPEATED
@ LORAMAC_EVENT_INFO_STATUS_DOWNLINK_REPEATED
Definition: LoRaMac.h:576
LoRaMacChannelAdd
LoRaMacStatus_t LoRaMacChannelAdd(uint8_t id, ChannelParams_t params)
LoRaMAC channel add service.
Definition: LoRaMac.cpp:3061
MIB_NWK_SKEY
@ MIB_NWK_SKEY
Definition: LoRaMac.h:1144
sMcpsIndication::RxSlot
uint8_t RxSlot
Definition: LoRaMac.h:895
LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL
@ LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL
Definition: LoRaMac.h:589
uDrRange::Value
int8_t Value
Definition: LoRaMac.h:115
sMcpsReqUnconfirmed
Definition: LoRaMac.h:680
LoRaMacInitialization
LoRaMacStatus_t LoRaMacInitialization(LoRaMacPrimitives_t *primitives, LoRaMacCallback_t *callbacks, LoRaMacRegion_t region, eDeviceClass nodeClass=CLASS_A)
LoRaMAC layer initialization.
Definition: LoRaMac.cpp:2347
uMibParam::IsNetworkJoined
eJoinStatus_t IsNetworkJoined
Definition: LoRaMac.h:1332
MOTE_MAC_LINK_CHECK_REQ
@ MOTE_MAC_LINK_CHECK_REQ
Definition: LoRaMac.h:361
LoRaMacParams_t
struct sLoRaMacParams LoRaMacParams_t
BAT_LEVEL_NO_MEASURE
@ BAT_LEVEL_NO_MEASURE
Definition: LoRaMac.h:461
LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT
@ LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT
Definition: LoRaMac.h:558
uMibParam::ChannelNbRep
uint8_t ChannelNbRep
Definition: LoRaMac.h:1410
Mcps_t
enum eMcps Mcps_t
LoRaMAC data services.
MOTE_MAC_DL_CHANNEL_ANS
@ MOTE_MAC_DL_CHANNEL_ANS
Definition: LoRaMac.h:393
sMcpsConfirm::Datarate
uint8_t Datarate
Definition: LoRaMac.h:814
eMcps
eMcps
LoRaMAC data services.
Definition: LoRaMac.h:657
sMulticastParams::DownLinkCounter
uint32_t DownLinkCounter
Definition: LoRaMac.h:303
uMibParam::JoinAcceptDelay2
uint32_t JoinAcceptDelay2
Definition: LoRaMac.h:1440
uMibParam::Rx2Channel
Rx2ChannelParams_t Rx2Channel
Definition: LoRaMac.h:1386
sChannelParams::Rx1Frequency
uint32_t Rx1Frequency
Definition: LoRaMac.h:179
uMibParam::JoinAcceptDelay1
uint32_t JoinAcceptDelay1
Definition: LoRaMac.h:1434
sMcpsReq::uMcpsParam::Proprietary
McpsReqProprietary_t Proprietary
Definition: LoRaMac.h:794
sBand::DCycle
uint16_t DCycle
Definition: LoRaMac.h:148
CLASS_B
@ CLASS_B
Definition: LoRaMac.h:98
LORAMAC_STATUS_OK
@ LORAMAC_STATUS_OK
Definition: LoRaMac.h:1542
LORAMAC_STATUS_FREQUENCY_INVALID
@ LORAMAC_STATUS_FREQUENCY_INVALID
Definition: LoRaMac.h:1558
JOIN_OK
@ JOIN_OK
Definition: LoRaMac.h:1311
sMlmeReqJoin::DevEui
uint8_t * DevEui
Definition: LoRaMac.h:964
sMcpsReqConfirmed::Datarate
int8_t Datarate
Definition: LoRaMac.h:725
sMcpsIndication::BufferSize
uint8_t BufferSize
Definition: LoRaMac.h:877
uLoRaMacHeader::sHdrBits::MType
uint8_t MType
Definition: LoRaMac.h:491
MIB_REPEATER_SUPPORT
@ MIB_REPEATER_SUPPORT
Definition: LoRaMac.h:1166
LORAMAC_REGION_IN865
@ LORAMAC_REGION_IN865
Definition: LoRaMac.h:1622
sMulticastParams::AppSKey
uint8_t AppSKey[16]
Definition: LoRaMac.h:299
BAT_LEVEL_EMPTY
@ BAT_LEVEL_EMPTY
Definition: LoRaMac.h:453
LoRaMacQueryTxPossible
LoRaMacStatus_t LoRaMacQueryTxPossible(uint8_t size, LoRaMacTxInfo_t *txInfo)
Queries the LoRaMAC if it is possible to send the next frame with a given payload size....
Definition: LoRaMac.cpp:2509
LoRaMacRegion
LoRaMacRegion_t LoRaMacRegion
Definition: LoRaMac.cpp:50
MOTE_MAC_NEW_CHANNEL_ANS
@ MOTE_MAC_NEW_CHANNEL_ANS
Definition: LoRaMac.h:381
sMcpsReqUnconfirmed::fBuffer
void * fBuffer
Definition: LoRaMac.h:691
sMcpsReqConfirmed::fBufferSize
uint16_t fBufferSize
Definition: LoRaMac.h:721
sMcpsReqUnconfirmed::fPort
uint8_t fPort
Definition: LoRaMac.h:687
sMcpsIndication::RxData
bool RxData
Definition: LoRaMac.h:881
sMlmeReqTxCw::Timeout
uint16_t Timeout
Definition: LoRaMac.h:991
uLoRaMacHeader::sHdrBits::Major
uint8_t Major
Definition: LoRaMac.h:483
sLoRaMacParams::AntennaGain
float AntennaGain
Definition: LoRaMac.h:280
JOIN_NOT_START
@ JOIN_NOT_START
Definition: LoRaMac.h:1310
sMcpsReqProprietary::fBufferSize
uint16_t fBufferSize
Definition: LoRaMac.h:761
SRV_MAC_TX_PARAM_SETUP_REQ
@ SRV_MAC_TX_PARAM_SETUP_REQ
Definition: LoRaMac.h:434
sMcpsConfirm::Status
LoRaMacEventInfoStatus_t Status
Definition: LoRaMac.h:810
LoRaMacMlmeRequest
LoRaMacStatus_t LoRaMacMlmeRequest(MlmeReq_t *mlmeRequest)
LoRaMAC MLME-Request.
Definition: LoRaMac.cpp:3175
SRV_MAC_NEW_CHANNEL_REQ
@ SRV_MAC_NEW_CHANNEL_REQ
Definition: LoRaMac.h:426
SRV_MAC_LINK_ADR_REQ
@ SRV_MAC_LINK_ADR_REQ
Definition: LoRaMac.h:410
sMlmeReq::uMlmeParam::TxCw
MlmeReqTxCw_t TxCw
Definition: LoRaMac.h:1024
uMibParam::ChannelList
ChannelParams_t * ChannelList
Definition: LoRaMac.h:1380
uMibParam::NetID
uint32_t NetID
Definition: LoRaMac.h:1344
McpsIndication
static McpsIndication_t McpsIndication
Definition: LoRaMac.cpp:392
FRAME_TYPE_JOIN_REQ
@ FRAME_TYPE_JOIN_REQ
Definition: LoRaMac.h:320
LoRaMacMulticastChannelUnlink
LoRaMacStatus_t LoRaMacMulticastChannelUnlink(MulticastParams_t *channelParam)
LoRaMAC multicast channel unlink service.
Definition: LoRaMac.cpp:3136
MibParam_t
union uMibParam MibParam_t
sLoRaMacTxInfo
Definition: LoRaMac.h:1523
sMcpsConfirm
Definition: LoRaMac.h:802
sMlmeConfirm::TxTimeOnAir
TimerTime_t TxTimeOnAir
Definition: LoRaMac.h:1044
LORAMAC_STATUS_FREQ_AND_DR_INVALID
@ LORAMAC_STATUS_FREQ_AND_DR_INVALID
Definition: LoRaMac.h:1566
uMibParam::EnablePublicNetwork
bool EnablePublicNetwork
Definition: LoRaMac.h:1368
uDrRange::sFields
Definition: LoRaMac.h:120
uLoRaMacFrameCtrl::Value
uint8_t Value
Definition: LoRaMac.h:505
sMulticastParams
Definition: LoRaMac.h:287
LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL
@ LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL
Definition: LoRaMac.h:570
uMibParam::MulticastList
MulticastParams_t * MulticastList
Definition: LoRaMac.h:1482
LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR
@ LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR
Definition: LoRaMac.h:581
eLoRaMacBatteryLevel
eLoRaMacBatteryLevel
Definition: LoRaMac.h:445
sLoRaMacParams::Rx2Channel
Rx2ChannelParams_t Rx2Channel
Definition: LoRaMac.h:264
MlmeReqTxCw_t
struct sMlmeReqTxCw MlmeReqTxCw_t
uDrRange
Definition: LoRaMac.h:111
uMibParam::EnableRepeaterSupport
bool EnableRepeaterSupport
Definition: LoRaMac.h:1374
uLoRaMacHeader::Value
uint8_t Value
Definition: LoRaMac.h:474
sMulticastParams::NwkSKey
uint8_t NwkSKey[16]
Definition: LoRaMac.h:295
sMcpsReqProprietary::fBuffer
void * fBuffer
Definition: LoRaMac.h:757
FRAME_TYPE_RFU
@ FRAME_TYPE_RFU
Definition: LoRaMac.h:344
MIB_DEVICE_CLASS
@ MIB_DEVICE_CLASS
Definition: LoRaMac.h:1112
LORAMAC_EVENT_INFO_STATUS_MIC_FAIL
@ LORAMAC_EVENT_INFO_STATUS_MIC_FAIL
Definition: LoRaMac.h:593
LORAMAC_REGION_US915
@ LORAMAC_REGION_US915
Definition: LoRaMac.h:1626
uMibParam::Class
DeviceClass_t Class
Definition: LoRaMac.h:1326
LoRaMacMibGetRequestConfirm
LoRaMacStatus_t LoRaMacMibGetRequestConfirm(MibRequestConfirm_t *mibGet)
LoRaMAC MIB-Get.
Definition: LoRaMac.cpp:2574
sMlmeConfirm::NbRetries
uint8_t NbRetries
Definition: LoRaMac.h:1057
sMcpsReqUnconfirmed::fBufferSize
uint16_t fBufferSize
Definition: LoRaMac.h:695
sMcpsReqConfirmed::fPort
uint8_t fPort
Definition: LoRaMac.h:713
sMcpsIndication::Status
LoRaMacEventInfoStatus_t Status
Definition: LoRaMac.h:853
MIB_ADR
@ MIB_ADR
Definition: LoRaMac.h:1126
MIB_APP_SKEY
@ MIB_APP_SKEY
Definition: LoRaMac.h:1150
uMibParam::NwkSKey
uint8_t * NwkSKey
Definition: LoRaMac.h:1356
sMlmeConfirm::DemodMargin
uint8_t DemodMargin
Definition: LoRaMac.h:1049
MIB_CHANNELS_DATARATE
@ MIB_CHANNELS_DATARATE
Definition: LoRaMac.h:1250
sMlmeReqTxCw::Power
uint8_t Power
Definition: LoRaMac.h:999
sChannelParams::DrRange
DrRange_t DrRange
Definition: LoRaMac.h:183
sMcpsReq
Definition: LoRaMac.h:772
sMcpsConfirm::NbRetries
uint8_t NbRetries
Definition: LoRaMac.h:826
sRx2ChannelParams::Frequency
uint32_t Frequency
Definition: LoRaMac.h:198
LORAMAC_REGION_EU433
@ LORAMAC_REGION_EU433
Definition: LoRaMac.h:1610
uMibParam::MinRxSymbols
uint8_t MinRxSymbols
Definition: LoRaMac.h:1494
uMibParam::SystemMaxRxError
uint32_t SystemMaxRxError
Definition: LoRaMac.h:1488
MIB_NETWORK_JOINED
@ MIB_NETWORK_JOINED
Definition: LoRaMac.h:1118
eJoinStatus
eJoinStatus
Definition: LoRaMac.h:1309
MCPS_PROPRIETARY
@ MCPS_PROPRIETARY
Definition: LoRaMac.h:673
sMcpsReq::uMcpsParam::Confirmed
McpsReqConfirmed_t Confirmed
Definition: LoRaMac.h:790
uLoRaMacFrameCtrl::sCtrlBits
Definition: LoRaMac.h:510
McpsReq_t
struct sMcpsReq McpsReq_t
sLoRaMacPrimitives::MacMlmeConfirm
void(* MacMlmeConfirm)(MlmeConfirm_t *MlmeConfirm)
MLME-Confirm primitive.
Definition: LoRaMac.h:1669
uMibParam::ChannelsDefaultMask
uint16_t * ChannelsDefaultMask
Definition: LoRaMac.h:1404
sLoRaMacParams::ReceiveDelay1
uint32_t ReceiveDelay1
Definition: LoRaMac.h:240
DrRange_t
union uDrRange DrRange_t
sMlmeReqJoin
Definition: LoRaMac.h:958
MIB_CHANNELS_DEFAULT_DATARATE
@ MIB_CHANNELS_DEFAULT_DATARATE
Definition: LoRaMac.h:1242
TimerTime_t
uint32_t TimerTime_t
Timer time variable definition.
Definition: timer.h:69
sMlmeConfirm::Status
LoRaMacEventInfoStatus_t Status
Definition: LoRaMac.h:1040
MlmeReq_t
struct sMlmeReq MlmeReq_t
sRx2ChannelParams::Datarate
uint8_t Datarate
Definition: LoRaMac.h:206
sMcpsIndication
Definition: LoRaMac.h:845
LoRaMacRegion_t
enum eLoRaMacRegion_t LoRaMacRegion_t
MIB_MIN_RX_SYMBOLS
@ MIB_MIN_RX_SYMBOLS
Definition: LoRaMac.h:1295
LORAMAC_STATUS_REGION_NOT_SUPPORTED
@ LORAMAC_STATUS_REGION_NOT_SUPPORTED
Definition: LoRaMac.h:1583
LORAMAC_REGION_AS923_2
@ LORAMAC_REGION_AS923_2
Definition: LoRaMac.h:1630
sMcpsReq::Type
Mcps_t Type
Definition: LoRaMac.h:776
Mlme_t
enum eMlme Mlme_t
LoRaMAC management services.
LORAMAC_STATUS_LENGTH_ERROR
@ LORAMAC_STATUS_LENGTH_ERROR
Definition: LoRaMac.h:1574
sMcpsIndication::McpsIndication
Mcps_t McpsIndication
Definition: LoRaMac.h:849
uMibParam::DownLinkCounter
uint32_t DownLinkCounter
Definition: LoRaMac.h:1476
sMcpsConfirm::McpsRequest
Mcps_t McpsRequest
Definition: LoRaMac.h:806
eJoinStatus_t
enum eJoinStatus eJoinStatus_t
LoRaMacMibSetRequestConfirm
LoRaMacStatus_t LoRaMacMibSetRequestConfirm(MibRequestConfirm_t *mibSet)
LoRaMAC MIB-Set.
Definition: LoRaMac.cpp:2754
sMlmeReq
Definition: LoRaMac.h:1006
sLoRaMacParams::ChannelsNbRep
uint8_t ChannelsNbRep
Definition: LoRaMac.h:256
LoRaMacFrameType_t
enum eLoRaMacFrameType LoRaMacFrameType_t
sMcpsIndication::Buffer
uint8_t * Buffer
Definition: LoRaMac.h:873