SX126x-Arduino
LoRaMac.h
Go to the documentation of this file.
1 
40 #ifndef __LORAMAC_H__
41 #define __LORAMAC_H__
42 
43 extern "C"
44 {
45 
49 #define MAC_STATE_CHECK_TIMEOUT 1000
50 
54 #define MAX_ACK_RETRIES 8
55 
59 #define UP_LINK 0
60 
64 #define DOWN_LINK 1
65 
70 #define LORAMAC_MFR_LEN 4
71 
77 #define LORA_MAC_FRMPAYLOAD_OVERHEAD 13 // MHDR(1) + FHDR(7) + Port(1) + MIC(4)
78 
84  typedef enum eDeviceClass
85  {
105 
109  typedef union uDrRange {
113  int8_t Value;
117  struct sFields
118  {
126  int8_t Min : 4;
134  int8_t Max : 4;
137 
141  typedef struct sBand
142  {
146  uint16_t DCycle;
150  int8_t TxMaxPower;
164 
168  typedef struct sChannelParams
169  {
173  uint32_t Frequency;
177  uint32_t Rx1Frequency;
185  uint8_t Band;
187 
191  typedef struct sRx2ChannelParams
192  {
196  uint32_t Frequency;
204  uint8_t Datarate;
206 
210  typedef struct sLoRaMacParams
211  {
230  uint8_t MinRxSymbols;
234  uint32_t MaxRxWindow;
238  uint32_t ReceiveDelay1;
242  uint32_t ReceiveDelay2;
254  uint8_t ChannelsNbRep;
258  uint8_t Rx1DrOffset;
274  float MaxEirp;
278  float AntennaGain;
280 
284  typedef struct sMulticastParams
285  {
289  uint32_t Address;
293  uint8_t NwkSKey[16];
297  uint8_t AppSKey[16];
301  uint32_t DownLinkCounter;
307 
313  typedef enum eLoRaMacFrameType
314  {
348 
354  typedef enum eLoRaMacMoteCmd
355  {
393 
399  typedef enum eLoRaMacSrvCmd
400  {
438 
442  typedef enum eLoRaMacBatteryLevel
443  {
461 
467  typedef union uLoRaMacHeader {
471  uint8_t Value;
475  struct sHdrBits
476  {
480  uint8_t Major : 2;
484  uint8_t RFU : 3;
488  uint8_t MType : 3;
489  } Bits;
491 
497  typedef union uLoRaMacFrameCtrl {
501  uint8_t Value;
505  struct sCtrlBits
506  {
510  uint8_t FOptsLen : 4;
514  uint8_t FPending : 1;
518  uint8_t Ack : 1;
522  uint8_t AdrAckReq : 1;
526  uint8_t Adr : 1;
527  } Bits;
529 
534  {
591 
595  typedef union eLoRaMacFlags_t {
599  uint8_t Value;
604  {
608  uint8_t McpsReq : 1;
612  uint8_t McpsInd : 1;
616  uint8_t McpsIndSkip : 1;
620  uint8_t MlmeReq : 1;
624  uint8_t MacDone : 1;
625  } Bits;
627 
651  typedef enum eMcps
652  {
670 
674  typedef struct sMcpsReqUnconfirmed
675  {
682  uint8_t fPort;
686  void *fBuffer;
690  uint16_t fBufferSize;
694  int8_t Datarate;
696 
700  typedef struct sMcpsReqConfirmed
701  {
708  uint8_t fPort;
712  void *fBuffer;
716  uint16_t fBufferSize;
720  int8_t Datarate;
741  uint8_t NbTrials;
743 
747  typedef struct sMcpsReqProprietary
748  {
752  void *fBuffer;
756  uint16_t fBufferSize;
760  int8_t Datarate;
762 
766  typedef struct sMcpsReq
767  {
772 
776  union uMcpsParam {
789  } Req;
791 
795  typedef struct sMcpsConfirm
796  {
808  uint8_t Datarate;
812  int8_t TxPower;
820  uint8_t NbRetries;
828  uint32_t UpLinkCounter;
832  uint32_t UpLinkFrequency;
834 
838  typedef struct sMcpsIndication
839  {
851  uint8_t Multicast;
855  uint8_t Port;
859  uint8_t RxDatarate;
863  uint8_t FramePending;
867  uint8_t *Buffer;
871  uint8_t BufferSize;
875  bool RxData;
879  int16_t Rssi;
883  uint8_t Snr;
889  uint8_t RxSlot;
897  uint32_t DownLinkCounter;
899 
920  typedef enum eMlme
921  {
947 
951  typedef struct sMlmeReqJoin
952  {
958  uint8_t *DevEui;
964  uint8_t *AppEui;
970  uint8_t *AppKey;
974  uint8_t NbTrials;
976 
980  typedef struct sMlmeReqTxCw
981  {
985  uint16_t Timeout;
989  uint32_t Frequency;
993  uint8_t Power;
995 
999  typedef struct sMlmeReq
1000  {
1005 
1009  union uMlmeParam {
1018  } Req;
1020 
1024  typedef struct sMlmeConfirm
1025  {
1042  uint8_t DemodMargin;
1046  uint8_t NbGateways;
1050  uint8_t NbRetries;
1052 
1098  typedef enum eMib
1099  {
1297 
1301  typedef union uMibParam {
1325  uint32_t NetID;
1331  uint32_t DevAddr;
1337  uint8_t *NwkSKey;
1343  uint8_t *AppSKey;
1379  uint16_t *ChannelsMask;
1391  uint8_t ChannelNbRep;
1397  uint32_t MaxRxWindow;
1403  uint32_t ReceiveDelay1;
1409  uint32_t ReceiveDelay2;
1451  uint32_t UpLinkCounter;
1475  uint8_t MinRxSymbols;
1483 
1487  typedef struct eMibRequestConfirm
1488  {
1493 
1499 
1503  typedef struct sLoRaMacTxInfo
1504  {
1514 
1518  typedef enum eLoRaMacStatus
1519  {
1566 
1570  typedef enum eLoRaMacRegion_t
1571  {
1613 
1618  typedef struct sLoRaMacPrimitives
1619  {
1639 
1643  typedef struct sLoRaMacCallback
1644  {
1653  uint8_t (*GetBatteryLevel)(void);
1655 
1659  static const uint8_t LoRaMacMaxEirpTable[] = {8, 10, 12, 13, 14, 16, 18, 20, 21, 24, 26, 27, 29, 30, 33, 36};
1660 
1684 
1709 
1727 
1741 
1755 
1769 
1797 
1828 
1875 
1910 
1912 };
1913 #endif // __LORAMAC_H__
sLoRaMacTxInfo::MaxPossiblePayload
uint8_t MaxPossiblePayload
Definition: LoRaMac.h:1508
LORAMAC_STATUS_NO_NETWORK_JOINED
@ LORAMAC_STATUS_NO_NETWORK_JOINED
Definition: LoRaMac.h:1551
sMcpsIndication::RxDatarate
uint8_t RxDatarate
Definition: LoRaMac.h:859
uLoRaMacHeader
Definition: LoRaMac.h:467
eMibRequestConfirm::Param
MibParam_t Param
Definition: LoRaMac.h:1497
sMlmeReq::Req
union sMlmeReq::uMlmeParam Req
MIB_DEV_ADDR
@ MIB_DEV_ADDR
Definition: LoRaMac.h:1131
sMcpsReqConfirmed
Definition: LoRaMac.h:701
BAT_LEVEL_FULL
@ BAT_LEVEL_FULL
Definition: LoRaMac.h:455
eLoRaMacFlags_t::Value
uint8_t Value
Definition: LoRaMac.h:599
sLoRaMacParams::SystemMaxRxError
uint32_t SystemMaxRxError
Definition: LoRaMac.h:225
sMlmeReq::uMlmeParam::Join
MlmeReqJoin_t Join
Definition: LoRaMac.h:1013
sLoRaMacParams::UplinkDwellTime
uint8_t UplinkDwellTime
Definition: LoRaMac.h:266
sBand
Definition: LoRaMac.h:142
LORAMAC_STATUS_BUSY
@ LORAMAC_STATUS_BUSY
Definition: LoRaMac.h:1527
sMcpsReq::uMcpsParam
Definition: LoRaMac.h:776
sLoRaMacParams::DownlinkDwellTime
uint8_t DownlinkDwellTime
Definition: LoRaMac.h:270
sLoRaMacTxInfo::CurrentPayloadSize
uint8_t CurrentPayloadSize
Definition: LoRaMac.h:1512
uMibParam::AdrEnable
bool AdrEnable
Definition: LoRaMac.h:1319
MOTE_MAC_RX_TIMING_SETUP_ANS
@ MOTE_MAC_RX_TIMING_SETUP_ANS
Definition: LoRaMac.h:383
FRAME_TYPE_DATA_CONFIRMED_UP
@ FRAME_TYPE_DATA_CONFIRMED_UP
Definition: LoRaMac.h:334
uMibParam
Definition: LoRaMac.h:1301
MOTE_MAC_TX_PARAM_SETUP_ANS
@ MOTE_MAC_TX_PARAM_SETUP_ANS
Definition: LoRaMac.h:387
MulticastParams_t
struct sMulticastParams MulticastParams_t
sMcpsConfirm::AckReceived
bool AckReceived
Definition: LoRaMac.h:816
sMcpsReqConfirmed::fBuffer
void * fBuffer
Definition: LoRaMac.h:712
MLME_JOIN
@ MLME_JOIN
Definition: LoRaMac.h:927
LoRaMacMcpsRequest
LoRaMacStatus_t LoRaMacMcpsRequest(McpsReq_t *mcpsRequest)
LoRaMAC MCPS-Request.
Definition: LoRaMac.cpp:3223
FRAME_TYPE_DATA_UNCONFIRMED_DOWN
@ FRAME_TYPE_DATA_UNCONFIRMED_DOWN
Definition: LoRaMac.h:330
uMibParam::DevAddr
uint32_t DevAddr
Definition: LoRaMac.h:1331
uLoRaMacHeader::Bits
struct uLoRaMacHeader::sHdrBits Bits
LoRaMacStatus_t
enum eLoRaMacStatus LoRaMacStatus_t
MIB_CHANNELS_MASK
@ MIB_CHANNELS_MASK
Definition: LoRaMac.h:1185
sMcpsReq::uMcpsParam::Unconfirmed
McpsReqUnconfirmed_t Unconfirmed
Definition: LoRaMac.h:780
MlmeConfirm_t
struct sMlmeConfirm MlmeConfirm_t
Rx2ChannelParams_t
struct sRx2ChannelParams Rx2ChannelParams_t
uMibParam::AntennaGain
float AntennaGain
Definition: LoRaMac.h:1481
uLoRaMacFrameCtrl::Bits
struct uLoRaMacFrameCtrl::sCtrlBits Bits
LoRaMacFrameCtrl_t
union uLoRaMacFrameCtrl LoRaMacFrameCtrl_t
sBand::LastJoinTxDoneTime
TimerTime_t LastJoinTxDoneTime
Definition: LoRaMac.h:154
LORAMAC_EVENT_INFO_STATUS_ERROR
@ LORAMAC_EVENT_INFO_STATUS_ERROR
Definition: LoRaMac.h:542
sBand::TimeOff
TimerTime_t TimeOff
Definition: LoRaMac.h:162
sLoRaMacParams::JoinAcceptDelay2
uint32_t JoinAcceptDelay2
Definition: LoRaMac.h:250
sMlmeReqTxCw
Definition: LoRaMac.h:981
sMcpsReqUnconfirmed::Datarate
int8_t Datarate
Definition: LoRaMac.h:694
MlmeConfirm
static MlmeConfirm_t MlmeConfirm
Definition: LoRaMac.cpp:400
MIB_ANTENNA_GAIN
@ MIB_ANTENNA_GAIN
Definition: LoRaMac.h:1295
sMcpsReq::Req
union sMcpsReq::uMcpsParam Req
LORAMAC_STATUS_PARAMETER_INVALID
@ LORAMAC_STATUS_PARAMETER_INVALID
Definition: LoRaMac.h:1535
uMibParam::UpLinkCounter
uint32_t UpLinkCounter
Definition: LoRaMac.h:1451
sLoRaMacPrimitives
Definition: LoRaMac.h:1619
sLoRaMacParams::ReceiveDelay2
uint32_t ReceiveDelay2
Definition: LoRaMac.h:242
eMlme
eMlme
LoRaMAC management services.
Definition: LoRaMac.h:921
uDrRange::sFields::Min
int8_t Min
Definition: LoRaMac.h:126
uDrRange::sFields::Max
int8_t Max
Definition: LoRaMac.h:134
MIB_SYSTEM_MAX_RX_ERROR
@ MIB_SYSTEM_MAX_RX_ERROR
Definition: LoRaMac.h:1283
sMlmeReqJoin::NbTrials
uint8_t NbTrials
Definition: LoRaMac.h:974
sLoRaMacCallback::GetBatteryLevel
uint8_t(* GetBatteryLevel)(void)
Measures the battery level.
Definition: LoRaMac.h:1653
McpsIndication_t
struct sMcpsIndication McpsIndication_t
eLoRaMacFlags_t::sMacFlagBits::MacDone
uint8_t MacDone
Definition: LoRaMac.h:624
MIB_PUBLIC_NETWORK
@ MIB_PUBLIC_NETWORK
Definition: LoRaMac.h:1151
SRV_MAC_LINK_CHECK_ANS
@ SRV_MAC_LINK_CHECK_ANS
Definition: LoRaMac.h:404
uLoRaMacFrameCtrl::sCtrlBits::FPending
uint8_t FPending
Definition: LoRaMac.h:514
McpsReqConfirmed_t
struct sMcpsReqConfirmed McpsReqConfirmed_t
LORAMAC_EVENT_INFO_STATUS_RX2_ERROR
@ LORAMAC_EVENT_INFO_STATUS_RX2_ERROR
Definition: LoRaMac.h:562
MIB_NET_ID
@ MIB_NET_ID
Definition: LoRaMac.h:1125
eMibRequestConfirm::Type
Mib_t Type
Definition: LoRaMac.h:1492
FRAME_TYPE_PROPRIETARY
@ FRAME_TYPE_PROPRIETARY
Definition: LoRaMac.h:346
MIB_CHANNELS_NB_REP
@ MIB_CHANNELS_NB_REP
Definition: LoRaMac.h:1197
sLoRaMacParams::ChannelsTxPower
int8_t ChannelsTxPower
Definition: LoRaMac.h:215
McpsReqUnconfirmed_t
struct sMcpsReqUnconfirmed McpsReqUnconfirmed_t
MOTE_MAC_DUTY_CYCLE_ANS
@ MOTE_MAC_DUTY_CYCLE_ANS
Definition: LoRaMac.h:367
MOTE_MAC_LINK_ADR_ANS
@ MOTE_MAC_LINK_ADR_ANS
Definition: LoRaMac.h:363
uMibParam::MaxRxWindow
uint32_t MaxRxWindow
Definition: LoRaMac.h:1397
LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT
@ LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT
Definition: LoRaMac.h:546
sMlmeConfirm
Definition: LoRaMac.h:1025
MIB_MAX_RX_WINDOW_DURATION
@ MIB_MAX_RX_WINDOW_DURATION
Definition: LoRaMac.h:1203
eLoRaMacEventInfoStatus
eLoRaMacEventInfoStatus
Definition: LoRaMac.h:534
sChannelParams
Definition: LoRaMac.h:169
LoRaMacHeader_t
union uLoRaMacHeader LoRaMacHeader_t
sLoRaMacParams::MinRxSymbols
uint8_t MinRxSymbols
Definition: LoRaMac.h:230
ChannelParams_t
struct sChannelParams ChannelParams_t
sBand::LastTxDoneTime
TimerTime_t LastTxDoneTime
Definition: LoRaMac.h:158
CLASS_C
@ CLASS_C
Definition: LoRaMac.h:103
sMlmeReq::uMlmeParam
Definition: LoRaMac.h:1009
sMlmeConfirm::NbGateways
uint8_t NbGateways
Definition: LoRaMac.h:1046
uMibParam::ReceiveDelay2
uint32_t ReceiveDelay2
Definition: LoRaMac.h:1409
uLoRaMacFrameCtrl::sCtrlBits::Ack
uint8_t Ack
Definition: LoRaMac.h:518
LoRaMacFlags_t
union eLoRaMacFlags_t LoRaMacFlags_t
McpsConfirm_t
struct sMcpsConfirm McpsConfirm_t
sMcpsIndication::FramePending
uint8_t FramePending
Definition: LoRaMac.h:863
LORAMAC_STATUS_SERVICE_UNKNOWN
@ LORAMAC_STATUS_SERVICE_UNKNOWN
Definition: LoRaMac.h:1531
sMcpsIndication::Rssi
int16_t Rssi
Definition: LoRaMac.h:879
SRV_MAC_RX_TIMING_SETUP_REQ
@ SRV_MAC_RX_TIMING_SETUP_REQ
Definition: LoRaMac.h:428
MOTE_MAC_RX_PARAM_SETUP_ANS
@ MOTE_MAC_RX_PARAM_SETUP_ANS
Definition: LoRaMac.h:371
LORAMAC_REGION_CN470
@ LORAMAC_REGION_CN470
Definition: LoRaMac.h:1583
LoRaMacPrimitives_t
struct sLoRaMacPrimitives LoRaMacPrimitives_t
MIB_DOWNLINK_COUNTER
@ MIB_DOWNLINK_COUNTER
Definition: LoRaMac.h:1271
uLoRaMacFrameCtrl::sCtrlBits::Adr
uint8_t Adr
Definition: LoRaMac.h:526
eLoRaMacFlags_t::sMacFlagBits::McpsIndSkip
uint8_t McpsIndSkip
Definition: LoRaMac.h:616
MIB_MULTICAST_CHANNEL
@ MIB_MULTICAST_CHANNEL
Definition: LoRaMac.h:1277
uMibParam::AppSKey
uint8_t * AppSKey
Definition: LoRaMac.h:1343
uMibParam::ChannelsDatarate
int8_t ChannelsDatarate
Definition: LoRaMac.h:1433
MlmeReqJoin_t
struct sMlmeReqJoin MlmeReqJoin_t
eLoRaMacFlags_t
Definition: LoRaMac.h:595
LoRaMacChannelRemove
LoRaMacStatus_t LoRaMacChannelRemove(uint8_t id)
LoRaMAC channel remove service.
Definition: LoRaMac.cpp:3018
sMcpsIndication::Multicast
uint8_t Multicast
Definition: LoRaMac.h:851
MIB_JOIN_ACCEPT_DELAY_2
@ MIB_JOIN_ACCEPT_DELAY_2
Definition: LoRaMac.h:1227
uLoRaMacHeader::sHdrBits
Definition: LoRaMac.h:476
LoRaMacSrvCmd_t
enum eLoRaMacSrvCmd LoRaMacSrvCmd_t
sMcpsConfirm::TxTimeOnAir
TimerTime_t TxTimeOnAir
Definition: LoRaMac.h:824
MIB_CHANNELS_DEFAULT_MASK
@ MIB_CHANNELS_DEFAULT_MASK
Definition: LoRaMac.h:1191
eLoRaMacFlags_t::sMacFlagBits::MlmeReq
uint8_t MlmeReq
Definition: LoRaMac.h:620
LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT
@ LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT
Definition: LoRaMac.h:550
uLoRaMacHeader::sHdrBits::RFU
uint8_t RFU
Definition: LoRaMac.h:484
LORAMAC_REGION_KR920
@ LORAMAC_REGION_KR920
Definition: LoRaMac.h:1599
MIB_CHANNELS_DEFAULT_TX_POWER
@ MIB_CHANNELS_DEFAULT_TX_POWER
Definition: LoRaMac.h:1259
BAT_LEVEL_EXT_SRC
@ BAT_LEVEL_EXT_SRC
Definition: LoRaMac.h:447
sMcpsConfirm::UpLinkFrequency
uint32_t UpLinkFrequency
Definition: LoRaMac.h:832
sMcpsReqProprietary::Datarate
int8_t Datarate
Definition: LoRaMac.h:760
McpsReqProprietary_t
struct sMcpsReqProprietary McpsReqProprietary_t
sMcpsConfirm::TxPower
int8_t TxPower
Definition: LoRaMac.h:812
sMlmeReqJoin::AppEui
uint8_t * AppEui
Definition: LoRaMac.h:964
uMibParam::ChannelsTxPower
int8_t ChannelsTxPower
Definition: LoRaMac.h:1445
uMibParam::IsNetworkJoined
bool IsNetworkJoined
Definition: LoRaMac.h:1313
sLoRaMacCallback
Definition: LoRaMac.h:1644
LoRaMacMaxEirpTable
static const uint8_t LoRaMacMaxEirpTable[]
Definition: LoRaMac.h:1659
sMlmeConfirm::MlmeRequest
Mlme_t MlmeRequest
Definition: LoRaMac.h:1029
LORAMAC_REGION_US915_HYBRID
@ LORAMAC_REGION_US915_HYBRID
Definition: LoRaMac.h:1611
Band_t
struct sBand Band_t
uMibParam::ChannelsDefaultTxPower
int8_t ChannelsDefaultTxPower
Definition: LoRaMac.h:1439
eLoRaMacStatus
eLoRaMacStatus
Definition: LoRaMac.h:1519
uMibParam::ChannelsMask
uint16_t * ChannelsMask
Definition: LoRaMac.h:1379
sMcpsReqConfirmed::NbTrials
uint8_t NbTrials
Definition: LoRaMac.h:741
MIB_UPLINK_COUNTER
@ MIB_UPLINK_COUNTER
Definition: LoRaMac.h:1265
sMlmeReq::Type
Mlme_t Type
Definition: LoRaMac.h:1004
sChannelParams::Frequency
uint32_t Frequency
Definition: LoRaMac.h:173
LoRaMacTxInfo_t
struct sLoRaMacTxInfo LoRaMacTxInfo_t
MIB_CHANNELS
@ MIB_CHANNELS
Definition: LoRaMac.h:1167
LORAMAC_REGION_AU915
@ LORAMAC_REGION_AU915
Definition: LoRaMac.h:1579
sChannelParams::Band
uint8_t Band
Definition: LoRaMac.h:185
eLoRaMacFrameType
eLoRaMacFrameType
Definition: LoRaMac.h:314
FRAME_TYPE_JOIN_ACCEPT
@ FRAME_TYPE_JOIN_ACCEPT
Definition: LoRaMac.h:322
MCPS_UNCONFIRMED
@ MCPS_UNCONFIRMED
Definition: LoRaMac.h:656
sLoRaMacParams::ChannelsDatarate
int8_t ChannelsDatarate
Definition: LoRaMac.h:219
sMcpsConfirm::UpLinkCounter
uint32_t UpLinkCounter
Definition: LoRaMac.h:828
MIB_CHANNELS_TX_POWER
@ MIB_CHANNELS_TX_POWER
Definition: LoRaMac.h:1251
eLoRaMacFlags_t::sMacFlagBits::McpsReq
uint8_t McpsReq
Definition: LoRaMac.h:608
sLoRaMacPrimitives::MacMcpsIndication
void(* MacMcpsIndication)(McpsIndication_t *McpsIndication)
MCPS-Indication primitive.
Definition: LoRaMac.h:1631
eMibRequestConfirm
Definition: LoRaMac.h:1488
sLoRaMacParams::Rx1DrOffset
uint8_t Rx1DrOffset
Definition: LoRaMac.h:258
Mib_t
enum eMib Mib_t
LoRaMacCallback_t
struct sLoRaMacCallback LoRaMacCallback_t
uMibParam::ChannelsDefaultDatarate
int8_t ChannelsDefaultDatarate
Definition: LoRaMac.h:1427
MCPS_CONFIRMED
@ MCPS_CONFIRMED
Definition: LoRaMac.h:660
LORAMAC_EVENT_INFO_STATUS_RX1_ERROR
@ LORAMAC_EVENT_INFO_STATUS_RX1_ERROR
Definition: LoRaMac.h:558
uMibParam::ReceiveDelay1
uint32_t ReceiveDelay1
Definition: LoRaMac.h:1403
sMlmeReqTxCw::Frequency
uint32_t Frequency
Definition: LoRaMac.h:989
sLoRaMacParams::MaxRxWindow
uint32_t MaxRxWindow
Definition: LoRaMac.h:234
DeviceClass_t
enum eDeviceClass DeviceClass_t
MLME_LINK_CHECK
@ MLME_LINK_CHECK
Definition: LoRaMac.h:933
MOTE_MAC_DEV_STATUS_ANS
@ MOTE_MAC_DEV_STATUS_ANS
Definition: LoRaMac.h:375
McpsConfirm
static McpsConfirm_t McpsConfirm
Definition: LoRaMac.cpp:395
MIB_RECEIVE_DELAY_2
@ MIB_RECEIVE_DELAY_2
Definition: LoRaMac.h:1215
uLoRaMacFrameCtrl::sCtrlBits::AdrAckReq
uint8_t AdrAckReq
Definition: LoRaMac.h:522
LORAMAC_EVENT_INFO_STATUS_DOWNLINK_TOO_MANY_FRAMES_LOSS
@ LORAMAC_EVENT_INFO_STATUS_DOWNLINK_TOO_MANY_FRAMES_LOSS
Definition: LoRaMac.h:581
eMib
eMib
Definition: LoRaMac.h:1099
SRV_MAC_DUTY_CYCLE_REQ
@ SRV_MAC_DUTY_CYCLE_REQ
Definition: LoRaMac.h:412
eLoRaMacMoteCmd
eLoRaMacMoteCmd
Definition: LoRaMac.h:355
uLoRaMacFrameCtrl::sCtrlBits::FOptsLen
uint8_t FOptsLen
Definition: LoRaMac.h:510
sMulticastParams::Address
uint32_t Address
Definition: LoRaMac.h:289
MIB_RECEIVE_DELAY_1
@ MIB_RECEIVE_DELAY_1
Definition: LoRaMac.h:1209
LoRaMacBatteryLevel_t
enum eLoRaMacBatteryLevel LoRaMacBatteryLevel_t
LORAMAC_EVENT_INFO_STATUS_OK
@ LORAMAC_EVENT_INFO_STATUS_OK
Definition: LoRaMac.h:538
eLoRaMacRegion_t
eLoRaMacRegion_t
Definition: LoRaMac.h:1571
sRx2ChannelParams
Definition: LoRaMac.h:192
LoRaMacMulticastChannelLink
LoRaMacStatus_t LoRaMacMulticastChannelLink(MulticastParams_t *channelParam)
LoRaMAC multicast channel link service.
Definition: LoRaMac.cpp:3039
LORAMAC_STATUS_DATARATE_INVALID
@ LORAMAC_STATUS_DATARATE_INVALID
Definition: LoRaMac.h:1543
sLoRaMacParams::MaxEirp
float MaxEirp
Definition: LoRaMac.h:274
sLoRaMacParams
Definition: LoRaMac.h:211
uLoRaMacFrameCtrl
Definition: LoRaMac.h:497
LORAMAC_STATUS_DEVICE_OFF
@ LORAMAC_STATUS_DEVICE_OFF
Definition: LoRaMac.h:1559
CLASS_A
@ CLASS_A
Definition: LoRaMac.h:91
MIB_JOIN_ACCEPT_DELAY_1
@ MIB_JOIN_ACCEPT_DELAY_1
Definition: LoRaMac.h:1221
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:338
eDeviceClass
eDeviceClass
Definition: LoRaMac.h:85
MIB_RX2_DEFAULT_CHANNEL
@ MIB_RX2_DEFAULT_CHANNEL
Definition: LoRaMac.h:1179
LoRaMacEventInfoStatus_t
enum eLoRaMacEventInfoStatus LoRaMacEventInfoStatus_t
LORAMAC_REGION_CN779
@ LORAMAC_REGION_CN779
Definition: LoRaMac.h:1587
sMcpsIndication::AckReceived
bool AckReceived
Definition: LoRaMac.h:893
sMcpsIndication::DownLinkCounter
uint32_t DownLinkCounter
Definition: LoRaMac.h:897
eLoRaMacSrvCmd
eLoRaMacSrvCmd
Definition: LoRaMac.h:400
LORAMAC_REGION_EU868
@ LORAMAC_REGION_EU868
Definition: LoRaMac.h:1595
LoRaMacMoteCmd_t
enum eLoRaMacMoteCmd LoRaMacMoteCmd_t
SRV_MAC_RX_PARAM_SETUP_REQ
@ SRV_MAC_RX_PARAM_SETUP_REQ
Definition: LoRaMac.h:416
uMibParam::Rx2DefaultChannel
Rx2ChannelParams_t Rx2DefaultChannel
Definition: LoRaMac.h:1373
eLoRaMacFlags_t::sMacFlagBits::McpsInd
uint8_t McpsInd
Definition: LoRaMac.h:612
SRV_MAC_DL_CHANNEL_REQ
@ SRV_MAC_DL_CHANNEL_REQ
Definition: LoRaMac.h:436
MIB_RX2_CHANNEL
@ MIB_RX2_CHANNEL
Definition: LoRaMac.h:1173
sLoRaMacParams::JoinAcceptDelay1
uint32_t JoinAcceptDelay1
Definition: LoRaMac.h:246
MCPS_MULTICAST
@ MCPS_MULTICAST
Definition: LoRaMac.h:664
sMcpsIndication::Port
uint8_t Port
Definition: LoRaMac.h:855
sLoRaMacPrimitives::MacMcpsConfirm
void(* MacMcpsConfirm)(McpsConfirm_t *McpsConfirm)
MCPS-Confirm primitive.
Definition: LoRaMac.h:1625
MLME_TXCW
@ MLME_TXCW
Definition: LoRaMac.h:939
sMlmeReqJoin::AppKey
uint8_t * AppKey
Definition: LoRaMac.h:970
FRAME_TYPE_DATA_UNCONFIRMED_UP
@ FRAME_TYPE_DATA_UNCONFIRMED_UP
Definition: LoRaMac.h:326
eLoRaMacFlags_t::Bits
struct eLoRaMacFlags_t::sMacFlagBits Bits
LORAMAC_REGION_AS923
@ LORAMAC_REGION_AS923
Definition: LoRaMac.h:1575
eLoRaMacFlags_t::sMacFlagBits
Definition: LoRaMac.h:604
sBand::TxMaxPower
int8_t TxMaxPower
Definition: LoRaMac.h:150
sMcpsIndication::Snr
uint8_t Snr
Definition: LoRaMac.h:883
SRV_MAC_DEV_STATUS_REQ
@ SRV_MAC_DEV_STATUS_REQ
Definition: LoRaMac.h:420
sMcpsReqProprietary
Definition: LoRaMac.h:748
sMulticastParams::Next
struct sMulticastParams * Next
Definition: LoRaMac.h:305
MLME_TXCW_1
@ MLME_TXCW_1
Definition: LoRaMac.h:945
LORAMAC_EVENT_INFO_STATUS_DOWNLINK_REPEATED
@ LORAMAC_EVENT_INFO_STATUS_DOWNLINK_REPEATED
Definition: LoRaMac.h:572
LoRaMacChannelAdd
LoRaMacStatus_t LoRaMacChannelAdd(uint8_t id, ChannelParams_t params)
LoRaMAC channel add service.
Definition: LoRaMac.cpp:2999
MIB_NWK_SKEY
@ MIB_NWK_SKEY
Definition: LoRaMac.h:1137
sMcpsIndication::RxSlot
uint8_t RxSlot
Definition: LoRaMac.h:889
LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL
@ LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL
Definition: LoRaMac.h:585
uDrRange::Value
int8_t Value
Definition: LoRaMac.h:113
sMcpsReqUnconfirmed
Definition: LoRaMac.h:675
MOTE_MAC_LINK_CHECK_REQ
@ MOTE_MAC_LINK_CHECK_REQ
Definition: LoRaMac.h:359
LoRaMacParams_t
struct sLoRaMacParams LoRaMacParams_t
BAT_LEVEL_NO_MEASURE
@ BAT_LEVEL_NO_MEASURE
Definition: LoRaMac.h:459
LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT
@ LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT
Definition: LoRaMac.h:554
uMibParam::ChannelNbRep
uint8_t ChannelNbRep
Definition: LoRaMac.h:1391
Mcps_t
enum eMcps Mcps_t
LoRaMAC data services.
MOTE_MAC_DL_CHANNEL_ANS
@ MOTE_MAC_DL_CHANNEL_ANS
Definition: LoRaMac.h:391
sMcpsConfirm::Datarate
uint8_t Datarate
Definition: LoRaMac.h:808
eMcps
eMcps
LoRaMAC data services.
Definition: LoRaMac.h:652
sMulticastParams::DownLinkCounter
uint32_t DownLinkCounter
Definition: LoRaMac.h:301
uMibParam::JoinAcceptDelay2
uint32_t JoinAcceptDelay2
Definition: LoRaMac.h:1421
uMibParam::Rx2Channel
Rx2ChannelParams_t Rx2Channel
Definition: LoRaMac.h:1367
sChannelParams::Rx1Frequency
uint32_t Rx1Frequency
Definition: LoRaMac.h:177
uMibParam::JoinAcceptDelay1
uint32_t JoinAcceptDelay1
Definition: LoRaMac.h:1415
sMcpsReq::uMcpsParam::Proprietary
McpsReqProprietary_t Proprietary
Definition: LoRaMac.h:788
sBand::DCycle
uint16_t DCycle
Definition: LoRaMac.h:146
CLASS_B
@ CLASS_B
Definition: LoRaMac.h:97
LORAMAC_STATUS_OK
@ LORAMAC_STATUS_OK
Definition: LoRaMac.h:1523
LORAMAC_STATUS_FREQUENCY_INVALID
@ LORAMAC_STATUS_FREQUENCY_INVALID
Definition: LoRaMac.h:1539
sMlmeReqJoin::DevEui
uint8_t * DevEui
Definition: LoRaMac.h:958
sMcpsReqConfirmed::Datarate
int8_t Datarate
Definition: LoRaMac.h:720
sMcpsIndication::BufferSize
uint8_t BufferSize
Definition: LoRaMac.h:871
uLoRaMacHeader::sHdrBits::MType
uint8_t MType
Definition: LoRaMac.h:488
MIB_REPEATER_SUPPORT
@ MIB_REPEATER_SUPPORT
Definition: LoRaMac.h:1159
LORAMAC_REGION_IN865
@ LORAMAC_REGION_IN865
Definition: LoRaMac.h:1603
sMulticastParams::AppSKey
uint8_t AppSKey[16]
Definition: LoRaMac.h:297
BAT_LEVEL_EMPTY
@ BAT_LEVEL_EMPTY
Definition: LoRaMac.h:451
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:2450
MOTE_MAC_NEW_CHANNEL_ANS
@ MOTE_MAC_NEW_CHANNEL_ANS
Definition: LoRaMac.h:379
sMcpsReqUnconfirmed::fBuffer
void * fBuffer
Definition: LoRaMac.h:686
sMcpsReqConfirmed::fBufferSize
uint16_t fBufferSize
Definition: LoRaMac.h:716
sMcpsReqUnconfirmed::fPort
uint8_t fPort
Definition: LoRaMac.h:682
sMcpsIndication::RxData
bool RxData
Definition: LoRaMac.h:875
sMlmeReqTxCw::Timeout
uint16_t Timeout
Definition: LoRaMac.h:985
uLoRaMacHeader::sHdrBits::Major
uint8_t Major
Definition: LoRaMac.h:480
sLoRaMacParams::AntennaGain
float AntennaGain
Definition: LoRaMac.h:278
sMcpsReqProprietary::fBufferSize
uint16_t fBufferSize
Definition: LoRaMac.h:756
SRV_MAC_TX_PARAM_SETUP_REQ
@ SRV_MAC_TX_PARAM_SETUP_REQ
Definition: LoRaMac.h:432
sMcpsConfirm::Status
LoRaMacEventInfoStatus_t Status
Definition: LoRaMac.h:804
LoRaMacMlmeRequest
LoRaMacStatus_t LoRaMacMlmeRequest(MlmeReq_t *mlmeRequest)
LoRaMAC MLME-Request.
Definition: LoRaMac.cpp:3113
SRV_MAC_NEW_CHANNEL_REQ
@ SRV_MAC_NEW_CHANNEL_REQ
Definition: LoRaMac.h:424
SRV_MAC_LINK_ADR_REQ
@ SRV_MAC_LINK_ADR_REQ
Definition: LoRaMac.h:408
sMlmeReq::uMlmeParam::TxCw
MlmeReqTxCw_t TxCw
Definition: LoRaMac.h:1017
uMibParam::ChannelList
ChannelParams_t * ChannelList
Definition: LoRaMac.h:1361
uMibParam::NetID
uint32_t NetID
Definition: LoRaMac.h:1325
McpsIndication
static McpsIndication_t McpsIndication
Definition: LoRaMac.cpp:390
FRAME_TYPE_JOIN_REQ
@ FRAME_TYPE_JOIN_REQ
Definition: LoRaMac.h:318
LoRaMacMulticastChannelUnlink
LoRaMacStatus_t LoRaMacMulticastChannelUnlink(MulticastParams_t *channelParam)
LoRaMAC multicast channel unlink service.
Definition: LoRaMac.cpp:3074
MibParam_t
union uMibParam MibParam_t
sLoRaMacTxInfo
Definition: LoRaMac.h:1504
sMcpsConfirm
Definition: LoRaMac.h:796
sMlmeConfirm::TxTimeOnAir
TimerTime_t TxTimeOnAir
Definition: LoRaMac.h:1037
LORAMAC_STATUS_FREQ_AND_DR_INVALID
@ LORAMAC_STATUS_FREQ_AND_DR_INVALID
Definition: LoRaMac.h:1547
uMibParam::EnablePublicNetwork
bool EnablePublicNetwork
Definition: LoRaMac.h:1349
uDrRange::sFields
Definition: LoRaMac.h:118
uLoRaMacFrameCtrl::Value
uint8_t Value
Definition: LoRaMac.h:501
sMulticastParams
Definition: LoRaMac.h:285
LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL
@ LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL
Definition: LoRaMac.h:566
uMibParam::MulticastList
MulticastParams_t * MulticastList
Definition: LoRaMac.h:1463
LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR
@ LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR
Definition: LoRaMac.h:577
eLoRaMacBatteryLevel
eLoRaMacBatteryLevel
Definition: LoRaMac.h:443
sLoRaMacParams::Rx2Channel
Rx2ChannelParams_t Rx2Channel
Definition: LoRaMac.h:262
MlmeReqTxCw_t
struct sMlmeReqTxCw MlmeReqTxCw_t
uDrRange
Definition: LoRaMac.h:109
uMibParam::EnableRepeaterSupport
bool EnableRepeaterSupport
Definition: LoRaMac.h:1355
uLoRaMacHeader::Value
uint8_t Value
Definition: LoRaMac.h:471
sMulticastParams::NwkSKey
uint8_t NwkSKey[16]
Definition: LoRaMac.h:293
sMcpsReqProprietary::fBuffer
void * fBuffer
Definition: LoRaMac.h:752
FRAME_TYPE_RFU
@ FRAME_TYPE_RFU
Definition: LoRaMac.h:342
MIB_DEVICE_CLASS
@ MIB_DEVICE_CLASS
Definition: LoRaMac.h:1105
LORAMAC_EVENT_INFO_STATUS_MIC_FAIL
@ LORAMAC_EVENT_INFO_STATUS_MIC_FAIL
Definition: LoRaMac.h:589
LORAMAC_REGION_US915
@ LORAMAC_REGION_US915
Definition: LoRaMac.h:1607
uMibParam::Class
DeviceClass_t Class
Definition: LoRaMac.h:1307
LoRaMacMibGetRequestConfirm
LoRaMacStatus_t LoRaMacMibGetRequestConfirm(MibRequestConfirm_t *mibGet)
LoRaMAC MIB-Get.
Definition: LoRaMac.cpp:2512
sMlmeConfirm::NbRetries
uint8_t NbRetries
Definition: LoRaMac.h:1050
sMcpsReqUnconfirmed::fBufferSize
uint16_t fBufferSize
Definition: LoRaMac.h:690
sMcpsReqConfirmed::fPort
uint8_t fPort
Definition: LoRaMac.h:708
sMcpsIndication::Status
LoRaMacEventInfoStatus_t Status
Definition: LoRaMac.h:847
MIB_ADR
@ MIB_ADR
Definition: LoRaMac.h:1119
MIB_APP_SKEY
@ MIB_APP_SKEY
Definition: LoRaMac.h:1143
uMibParam::NwkSKey
uint8_t * NwkSKey
Definition: LoRaMac.h:1337
sMlmeConfirm::DemodMargin
uint8_t DemodMargin
Definition: LoRaMac.h:1042
MIB_CHANNELS_DATARATE
@ MIB_CHANNELS_DATARATE
Definition: LoRaMac.h:1243
sMlmeReqTxCw::Power
uint8_t Power
Definition: LoRaMac.h:993
sChannelParams::DrRange
DrRange_t DrRange
Definition: LoRaMac.h:181
sMcpsReq
Definition: LoRaMac.h:767
sMcpsConfirm::NbRetries
uint8_t NbRetries
Definition: LoRaMac.h:820
sRx2ChannelParams::Frequency
uint32_t Frequency
Definition: LoRaMac.h:196
LORAMAC_REGION_EU433
@ LORAMAC_REGION_EU433
Definition: LoRaMac.h:1591
uMibParam::MinRxSymbols
uint8_t MinRxSymbols
Definition: LoRaMac.h:1475
uMibParam::SystemMaxRxError
uint32_t SystemMaxRxError
Definition: LoRaMac.h:1469
MIB_NETWORK_JOINED
@ MIB_NETWORK_JOINED
Definition: LoRaMac.h:1111
MCPS_PROPRIETARY
@ MCPS_PROPRIETARY
Definition: LoRaMac.h:668
sMcpsReq::uMcpsParam::Confirmed
McpsReqConfirmed_t Confirmed
Definition: LoRaMac.h:784
uLoRaMacFrameCtrl::sCtrlBits
Definition: LoRaMac.h:506
McpsReq_t
struct sMcpsReq McpsReq_t
sLoRaMacPrimitives::MacMlmeConfirm
void(* MacMlmeConfirm)(MlmeConfirm_t *MlmeConfirm)
MLME-Confirm primitive.
Definition: LoRaMac.h:1637
uMibParam::ChannelsDefaultMask
uint16_t * ChannelsDefaultMask
Definition: LoRaMac.h:1385
sLoRaMacParams::ReceiveDelay1
uint32_t ReceiveDelay1
Definition: LoRaMac.h:238
DrRange_t
union uDrRange DrRange_t
sMlmeReqJoin
Definition: LoRaMac.h:952
MIB_CHANNELS_DEFAULT_DATARATE
@ MIB_CHANNELS_DEFAULT_DATARATE
Definition: LoRaMac.h:1235
TimerTime_t
uint32_t TimerTime_t
Timer time variable definition.
Definition: timer.h:68
sMlmeConfirm::Status
LoRaMacEventInfoStatus_t Status
Definition: LoRaMac.h:1033
MlmeReq_t
struct sMlmeReq MlmeReq_t
sRx2ChannelParams::Datarate
uint8_t Datarate
Definition: LoRaMac.h:204
sMcpsIndication
Definition: LoRaMac.h:839
LoRaMacRegion_t
enum eLoRaMacRegion_t LoRaMacRegion_t
MIB_MIN_RX_SYMBOLS
@ MIB_MIN_RX_SYMBOLS
Definition: LoRaMac.h:1288
LORAMAC_STATUS_REGION_NOT_SUPPORTED
@ LORAMAC_STATUS_REGION_NOT_SUPPORTED
Definition: LoRaMac.h:1564
LoRaMacInitialization
LoRaMacStatus_t LoRaMacInitialization(LoRaMacPrimitives_t *primitives, LoRaMacCallback_t *callbacks, LoRaMacRegion_t region)
LoRaMAC layer initialization.
Definition: LoRaMac.cpp:2302
sMcpsReq::Type
Mcps_t Type
Definition: LoRaMac.h:771
Mlme_t
enum eMlme Mlme_t
LoRaMAC management services.
LORAMAC_STATUS_LENGTH_ERROR
@ LORAMAC_STATUS_LENGTH_ERROR
Definition: LoRaMac.h:1555
sMcpsIndication::McpsIndication
Mcps_t McpsIndication
Definition: LoRaMac.h:843
uMibParam::DownLinkCounter
uint32_t DownLinkCounter
Definition: LoRaMac.h:1457
sMcpsConfirm::McpsRequest
Mcps_t McpsRequest
Definition: LoRaMac.h:800
LoRaMacMibSetRequestConfirm
LoRaMacStatus_t LoRaMacMibSetRequestConfirm(MibRequestConfirm_t *mibSet)
LoRaMAC MIB-Set.
Definition: LoRaMac.cpp:2692
sMlmeReq
Definition: LoRaMac.h:1000
sLoRaMacParams::ChannelsNbRep
uint8_t ChannelsNbRep
Definition: LoRaMac.h:254
LoRaMacFrameType_t
enum eLoRaMacFrameType LoRaMacFrameType_t
sMcpsIndication::Buffer
uint8_t * Buffer
Definition: LoRaMac.h:867