Nol.A SDK Library  24.11.4
For IoT System Software Development
Public Member Functions | List of all members
LoRaMacUS902Hybrid Class Reference
Inheritance diagram for LoRaMacUS902Hybrid:
LoRaMacUS902 LoRaMac PacketRadio

Public Member Functions

 LoRaMacUS902Hybrid (LoRaRadioChip &radio, uint16_t radioWakeupTime=1)
 
error_t beginJoining (const uint8_t *devEui, const uint8_t *appEui, const uint8_t *appKey)
 Over-the-Air Activation (OTAA) 방식의 join을 시도합니다. More...
 
- Public Member Functions inherited from LoRaMacUS902
 LoRaMacUS902 (LoRaRadioChip &radio, uint16_t radioWakeupTime=1)
 
error_t addChannel (uint8_t id, ChannelParams_t params)
 Add a channel. More...
 
error_t removeChannel (uint8_t id)
 LoRaMAC channel remove service. More...
 
const ChannelParams_tgetChannel (uint8_t index)
 채널 정보를 가져옵니다. More...
 
uint8_t getMaxPayload (uint8_t dr, bool repeater=false) override
 최대 application payload 길이(N)를 가져옵니다. More...
 
virtual uint32_t getRx1Frequency () override
 Rx1에서 사용할 주파수를 가져옵니다.
 
virtual uint8_t getRx1Datarate () override
 Rx1에 사용될, DR offset이 적용된 DR을 가져옵니다. More...
 
- Public Member Functions inherited from LoRaMac
 LoRaMac (LoRaRadioChip &, int8_t defTxPower, int8_t defDatarate, bool dutyCycleOn, uint8_t numChannels, const DatarateParams_t *drTable, uint8_t maxDatarate, uint8_t minTxPower, uint8_t maxTxPower, uint8_t adrAckLimit, uint8_t adrAckDelay, uint32_t maxFCntGap, uint16_t radioWakeupTime=1)
 
virtual error_t begin (uint8_t(*getBatteryLevel)()=NULL)
 LoRaMAC layer initialization. More...
 
error_t linkMulticastChannel (MulticastParams_t *channelParam)
 LoRaMAC multicast channel link service. More...
 
error_t unlinkMulticastChannel (MulticastParams_t *channelParam)
 LoRaMAC multicast channel unlink service. More...
 
error_t beginJoining (const uint8_t *devEui, const uint8_t *appKey)
 
bool isJoining ()
 현재 OTAA Join 중인지 확인합니다. More...
 
void onJoin (void(*func)(LoRaMac &mac, bool result, const uint8_t *devEui, const uint8_t *appEui, const uint8_t *appKey, const uint8_t *nwkSKey, const uint8_t *appSKey, uint32_t devAddr, const RadioPacket &frame, uint32_t airTime))
 Join이 완료되었을 때 호출될 콜백함수를 지정합니다. More...
 
void onJoinRequested (void(*func)(LoRaMac &, uint32_t frequencyHz, const DatarateParams_t &))
 JoinRequest 메시지를 보낼 때 호출될 콜백함수를 지정합니다. More...
 
virtual void setABP (const uint8_t *nwkSKey, const uint8_t *appSKey, uint32_t devAddr)
 ABP를 사용하도록 설정합니다. More...
 
void setPublicNetwork (bool enable)
 공용 LoRaWAN 네트워크를 사용할지 설정합니다. More...
 
DeviceClass_t getDeviceClass ()
 Device class를 가져옵니다. More...
 
error_t setDeviceClass (DeviceClass_t c)
 Device class를 설정합니다. More...
 
error_t setDeviceClass (DeviceClass_t c, bool sendDeviceModeInd, void(*func)(LoRaMac &, DeviceClass_t))
 
const DatarateParams_tgetDatarate (uint8_t index)
 Datarate 정보를 가져옵니다. More...
 
uint8_t getRx2Datarate ()
 Rx2에서 사용할 DR을 가져옵니다.
 
void setRx2Datarate (uint8_t dr)
 Rx2에서 사용할 DR을 임의로 설정합니다.
 
uint32_t getRx2Frequency ()
 Rx2에서 사용할 주파수를 가져옵니다.
 
void setRx2Frequency (uint32_t f)
 Rx2에서 사용할 주파수를 임의로 설정합니다.
 
uint8_t getRx1DrOffset ()
 Rx1에 적용될 DR offset을 가져옵니다.
 
int32_t getNetworkID ()
 Network ID를 가져옵니다. More...
 
uint32_t getDeviceAddress ()
 Device address를 가져옵니다.
 
uint16_t getRx1Delay ()
 Tx 종료 후 Rx1 window가 열릴 때까지의 지연 시간(단위: 밀리초)을 가져옵니다.
 
uint16_t getRx2Delay ()
 Tx 종료 후 Rx2 window가 열릴 때까지의 지연 시간(단위: 밀리초)을 가져옵니다.
 
uint16_t getJoinAcceptDelay1 ()
 JoinRequest 송신 후 Rx1 window가 열릴 때까지의 지연 시간(단위: 밀리초)을 가져옵니다.
 
uint16_t getJoinAcceptDelay2 ()
 JoinRequest 송신 후 Rx2 window가 열릴 때까지의 지연 시간(단위: 밀리초)을 가져옵니다.
 
uint8_t getCurrentDatarateIndex ()
 현재 설정된 기본 datarate 인덱스를 가져옵니다. More...
 
error_t setCurrentDatarateIndex (uint8_t index)
 기본 datarate를 설정합니다. More...
 
uint8_t getCurrentTxPowerIndex ()
 기본 Tx power index를 가져옵니다. More...
 
error_t setCurrentTxPowerIndex (uint8_t index)
 기본 Tx power를 설정합니다. More...
 
uint32_t getUpLinkCounter ()
 Uplink용 frame counter (fCntUp) 를 가져옵니다. More...
 
virtual void setUpLinkCounter (uint32_t)
 Uplink용 frame counter (fCntUp) 를 설정합니다. More...
 
uint32_t getDownLinkCounter ()
 Downlink용 frame counter (fCntDown) 를 가져옵니다. More...
 
virtual void setDownLinkCounter (uint32_t)
 Downlink용 frame counter (fCntDown) 를 설정합니다. More...
 
uint8_t getNumRepetitions ()
 현재 설정된 unconfirmed uplink frame에 적용되는 반복 전송 횟수를 가져옵니다.
 
uint8_t getMaxDutyCycle ()
 현재의 최대 duty cycle을 가져옵니다.
 
error_t send (LoRaMacFrame *frame)
 frame 을 전송합니다. More...
 
error_t cancelSend (LoRaMacFrame *frame)
 frame 전송을 취소합니다. More...
 
void onSendDone (void(*sendDoneHandler)(LoRaMac &, LoRaMacFrame *))
 전송이 완료될 때 호출될 함수를 지정합니다. More...
 
void onReceive (void(*receiveHandler)(LoRaMac &radio, const LoRaMacFrame *frame))
 수신이 완료될 때 호출될 함수를 지정합니다. More...
 
void onReceiveErrorFrame (void(*receiveHandler)(LoRaMac &radio, const RadioPacket &frame))
 비정상 프레임 수신시 호출될 함수를 지정합니다. More...
 
uint8_t getPendingMacCommandsLength ()
 현재 송신 대기 중인 MAC commands의 길이를 가져옵니다. More...
 
std::array< uint8_t, 8 > getDevEui ()
 Device EUI를 가져옵니다. More...
 
std::array< uint8_t, 8 > getAppEui ()
 Application EUI를 가져옵니다. More...
 
std::array< uint8_t, 16 > getAppKey ()
 AppKey를 가져옵니다. More...
 
std::array< uint8_t, 16 > getNwkSKey ()
 NwkSKey를 가져옵니다. More...
 
std::array< uint8_t, 16 > getAppSKey ()
 AppSKey를 가져옵니다. More...
 
virtual error_t requestLinkCheck ()
 LinkCheckReq MAC command를 요청합니다. More...
 
error_t requestLinkCheck (void(*func)(LoRaMac &))
 LinkCheckReq MAC command를 요청합니다. More...
 
void onLinkChecked (void(*func)(LoRaMac &, uint8_t demodMargin, uint8_t numGateways))
 LinkCheckReq MAC command에 대한 응답(LinkCheckAns)이 올 경우 호출될 콜백함수를 지정합니다. More...
 
error_t requestDeviceTime (RTCCalendar *rtc)
 DeviceTimeReq MAC command를 요청합니다. More...
 
error_t requestDeviceTime (RTCCalendar *rtc, void(*func)(LoRaMac &))
 DeviceTimeReq MAC command를 요청합니다. More...
 
error_t requestDeviceTime (void(*func)(LoRaMac &)=nullptr)
 DeviceTimeReq MAC command를 요청합니다. More...
 
void onDeviceTimeAnswered (void(*func)(LoRaMac &, bool success, uint32_t tSeconds, uint8_t tFracSeconds), RTCCalendar *rtc)
 DeviceTimeReq MAC command에 대한 응답(DeviceTimeAns)이 올 경우 호출될 콜백함수와 RTCCalendar 를 지정합니다. More...
 
void onLinkADRReqReceived (void(*func)(LoRaMac &, const uint8_t *))
 LinkADRReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
void onLinkADRAnsSent (void(*func)(LoRaMac &, uint8_t status))
 LinkADRAns MAC command를 송신시 호출될 콜백함수를 지정합니다. More...
 
void onDutyCycleReqReceived (void(*func)(LoRaMac &, const uint8_t *))
 DutyCycleReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
void onDutyCycleAnsSent (void(*func)(LoRaMac &))
 DutyCycleAns MAC command를 송신시 호출될 콜백함수를 지정합니다. More...
 
void onRxParamSetupReqReceived (void(*func)(LoRaMac &, const uint8_t *))
 RxParamSetupReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
void onRxParamSetupAnsSent (void(*func)(LoRaMac &, uint8_t status))
 RxParamSetupAns MAC command를 송신시 호출될 콜백함수를 지정합니다. More...
 
void onDevStatusReqReceived (void(*func)(LoRaMac &))
 DevStatusReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
void onDevStatusAnsSent (void(*func)(LoRaMac &, uint8_t bat, uint8_t margin))
 DevStatusAns MAC command를 송신시 호출될 콜백함수를 지정합니다. More...
 
void onNewChannelReqReceived (void(*func)(LoRaMac &, const uint8_t *))
 NewChannelReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
void onNewChannelAnsSent (void(*func)(LoRaMac &, uint8_t status))
 NewChannelAns MAC command를 송신시 호출될 콜백함수를 지정합니다. More...
 
void onRxTimingSetupReqReceived (void(*func)(LoRaMac &, const uint8_t *))
 RxTimingSetupReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
void onRxTimingSetupAnsSent (void(*func)(LoRaMac &))
 RxTimingSetupReq MAC command를 수신시 호출될 콜백함수를 지정합니다. More...
 
- Public Member Functions inherited from PacketRadio
error_t send (RadioPacket *frame)
 frame 을 전송합니다. More...
 
error_t cancelSend (RadioPacket *frame)
 frame 전송을 취소합니다. More...
 
void onSendDone (void(*sendDoneHandler)(PacketRadio &, RadioPacket *))
 전송이 완료될 때 호출될 함수를 지정합니다. More...
 
uint8_t getNumPendingSendFrames ()
 전송 대기 중인 프레임 갯수를 구합니다. More...
 
void onReceive (void(*receiveHandler)(PacketRadio &, const RadioPacket *))
 수신이 완료될 때 호출될 함수를 지정합니다. More...
 
void setEventListener (PacketRadioEventListener &)
 전송 완료 및 수신 이벤트에 대해 PacketRadioEventListener 를 구현한 클래스로 콜백합니다. More...
 

Additional Inherited Members

- Public Types inherited from LoRaMac
enum  DeviceClass_t { CLASS_A = 0 , CLASS_B = 1 , CLASS_C = 2 }
 
enum  BatteryLevel_t { BAT_LEVEL_EXT_SRC = 0x00 , BAT_LEVEL_EMPTY = 0x01 , BAT_LEVEL_FULL = 0xFE , BAT_LEVEL_NO_MEASURE = 0xFF }
 
enum  { ERROR_INVALID_FREQUENCY = -100 , ERROR_INVALID_DATARATE = -101 , ERROR_INVALID_FREQ_AND_DR = -102 }
 
enum  MacCmd_t {
  MAC_CMD_LINK_CHECK = 0x02 , MAC_CMD_LINK_ADR = 0x03 , MAC_CMD_DUTY_CYCLE = 0x04 , MAC_CMD_RX_PARAM_SETUP = 0x05 ,
  MAC_CMD_DEV_STATUS = 0x06 , MAC_CMD_NEW_CHANNEL = 0x07 , MAC_CMD_RX_TIMING_SETUP = 0x08 , MAC_CMD_TX_PARAM_SETUP = 0x09 ,
  MAC_CMD_DL_CHANNEL = 0x0A , MAC_CMD_DEV_TIME = 0x0D
}
 
- Public Types inherited from PacketRadio
enum  { TX_FIFO_SIZE = 10 , RX_FIFO_SIZE = 10 , TX_DONE_FIFO_SIZE = 10 }
 
- Static Public Member Functions inherited from LoRaMac
static void ComputeMic (const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t address, uint8_t dir, uint32_t sequenceCounter, uint32_t *mic)
 
static void PayloadEncrypt (const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t address, uint8_t dir, uint32_t sequenceCounter, uint8_t *encBuffer)
 
static void PayloadDecrypt (const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t address, uint8_t dir, uint32_t sequenceCounter, uint8_t *decBuffer)
 
static void JoinComputeMic (const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t *mic)
 
static void JoinDecrypt (const uint8_t *buffer, uint16_t size, const uint8_t *key, uint8_t *decBuffer)
 
static void JoinComputeSKeys (const uint8_t *key, const uint8_t *appNonce, uint16_t devNonce, uint8_t *nwkSKey, uint8_t *appSKey)
 
- Public Attributes inherited from LoRaMac
uint8_t const MaxNumChannels
 최대 채널 수
 
const DatarateParams_tDR_TABLE
 
uint8_t const MaxDatarate
 최대 datarate index
 
uint8_t const MinTxPower
 Minimum Tx power index.
 
uint8_t const MaxTxPower
 Maximum Tx power index.
 
uint8_t const AdrAckLimit
 ADR_ACK_LIMIT.
 
uint8_t const AdrAckDelay
 ADR_ACK_DELAY.
 
uint32_t const MAX_FCNT_GAP
 
uint16_t const RadioWakeupTime
 
bool useADR = true
 ADR 사용여부를 설정합니다. More...
 
bool receivesDuplicate = false
 중복 프레임을 수신 여부를 설정합니다. More...
 
bool framePending = false
 Frame pending. More...
 
void(* onUplinkDone )(LoRaMac &, LoRaMacFrame *) = nullptr
 Uplink (Tx) 전송이 완료될 때 호출될 함수를 지정합니다. More...
 
void(* onMACCommandReceived )(LoRaMac &mac, MacCmd_t cid, const uint8_t *reqData, int16_t reqLen, const uint8_t *ansData, int16_t ansLen) = nullptr
 MAC command 수신시 호출될 함수 포인터 More...
 
void(* onMACCommandSend )(LoRaMac &mac, MacCmd_t cid, const uint8_t *data, uint8_t len) = nullptr
 MAC command 송신시 호출될 함수 포인터 More...
 
- Protected Types inherited from LoRaMac
enum  FrameType_t {
  FRAME_TYPE_JOIN_REQ = 0x00 , FRAME_TYPE_JOIN_ACCEPT = 0x01 , FRAME_TYPE_DATA_UNCONFIRMED_UP = 0x02 , FRAME_TYPE_DATA_UNCONFIRMED_DOWN = 0x03 ,
  FRAME_TYPE_DATA_CONFIRMED_UP = 0x04 , FRAME_TYPE_DATA_CONFIRMED_DOWN = 0x05 , FRAME_TYPE_RFU = 0x06 , FRAME_TYPE_PROPRIETARY = 0x07
}
 
enum  {
  ADR_ACK_LIMIT = 64 , ADR_ACK_DELAY = 32 , PHY_PAYLOAD_MAX_LENGTH = 255 , MAC_COMMAND_MAX_LENGTH = 15 ,
  FRM_PAYLOAD_MAX_LENGTH = 242
}
 
enum  EventInfoStatus_t {
  EVENT_INFO_STATUS_OK = 0 , EVENT_INFO_STATUS_ERROR , EVENT_INFO_STATUS_TX_TIMEOUT , EVENT_INFO_STATUS_RX1_TIMEOUT ,
  EVENT_INFO_STATUS_RX2_TIMEOUT , EVENT_INFO_STATUS_JOIN_FAIL , EVENT_INFO_STATUS_DOWNLINK_REPEATED , EVENT_INFO_STATUS_ADDRESS_FAIL ,
  EVENT_INFO_STATUS_MIC_FAIL , EVENT_INFO_STATUS_CHANNEL_BUSY
}
 
enum  {
  MAC_IDLE = 0x00000000ul , MAC_TX_RUNNING = 0x00000001ul , MAC_RX = 0x00000002ul , MAC_ACK_REQ = 0x00000004ul ,
  MAC_ACK_RETRY = 0x00000008ul , MAC_TX_DELAYED = 0x00000010ul , MAC_TX_CONFIG = 0x00000020ul
}
 
enum  FCntDownStatus_t { NEW_FCNT_OK = 0 , NEW_FCNT_DUPLICATE , NEW_FCNT_MAX_GAP_EXCEEDED }
 
- Protected Member Functions inherited from LoRaMac
virtual int8_t applyDlChannel (const uint8_t *payload)
 
virtual void applyTxParamSetup (uint8_t payload)
 
virtual bool checkTxFrame (LoRaMacFrame *frame)
 
virtual void sendDone (RadioPacket *frame, RadioPacket::Result_t)
 
virtual void receive (LoRaMacFrame *frame)
 
virtual void notifyJoin ()
 
int8_t getChannelIndex (uint32_t frequency)
 
int8_t getDatarateIndex (DatarateParams_t &dr)
 
int8_t getDatarateIndex (LoRaMacFrame &f)
 
int8_t getDatarateIndex (LoRaMacFrame *f)
 
bool checkTxFrame (RadioPacket *frame)
 
void handleRxFrame (RadioPacket *frame)
 
void log (const char *name, const char *msg)
 
void logTx (const char *name, uint32_t freq, uint8_t drIndex, int8_t power)
 
void logRx (const char *name, uint32_t freq, uint8_t drIndex, uint8_t window)
 
error_t setupRxWindow (uint8_t slot)
 
void onRxWindow2TimerEvent ()
 
virtual FCntDownStatus_t getFCntDown (uint16_t fCntFHDR, uint32_t &newFCnt)
 
bool requestsAck ()
 
virtual void eventTxDelayed ()
 
void computeRxWindowParameters (uint8_t drIndex, uint16_t *timeout, int16_t *offset, uint8_t minRxSymbols=6, uint32_t systemMaxRxError=10)
 
- Protected Member Functions inherited from PacketRadio
virtual void receive (RadioPacket *frame)
 
RadioPacketgetNextTxFrame ()
 
error_t enqueueTxFrame (RadioPacket *frame)
 
virtual void notifySendDone (RadioPacket *frame)
 
virtual void notifyReceive (RadioPacket *frame)
 
- Static Protected Member Functions inherited from LoRaMac
static void OnTxDelayedTimerEvent (void *)
 
static void OnMacStateCheckTimerEvent (void *)
 
- Protected Attributes inherited from LoRaMacUS902
uint16_t ChannelsMaskRemaining [6]
 
uint16_t ChannelsMask [6]
 
- Protected Attributes inherited from LoRaMac
bool PublicNetwork = true
 
bool RepeaterSupport = false
 
bool joining = false
 
bool isLinkCheckRequested = false
 
bool isDeviceTimeRequested = false
 
bool serverAckRequested = false
 
bool DutyCycleOn
 
bool ackTimeoutRetry = false
 
bool stateCheckerPosted = false
 
bool isOptNegSet = false
 
LoRaRadioChipRadio
 
std::array< uint8_t, 8 > devEui
 
std::array< uint8_t, 8 > appEui
 
std::array< uint8_t, 16 > appKey
 
std::array< uint8_t, 16 > nwkSKey
 
std::array< uint8_t, 16 > appSKey
 
uint16_t LoRaMacDevNonce
 
int32_t netID = -1
 
uint32_t LoRaMacDevAddr
 
MulticastParams_tMulticastChannels = NULL
 
DeviceClass_t deviceClass = CLASS_A
 
uint8_t Buffer [PHY_PAYLOAD_MAX_LENGTH]
 
uint16_t BufferPktLen = 0
 
uint8_t LoRaMacPayload [PHY_PAYLOAD_MAX_LENGTH]
 
uint32_t UpLinkCounter = 1
 
uint32_t DownLinkCounter = 0
 
uint32_t AdrAckCounter = 0
 
uint8_t MacCommandsBufferIndex = 0
 
uint8_t MacCommandsBuffer [MAC_COMMAND_MAX_LENGTH]
 
struct {
   uint32_t   Frequency
 
   uint8_t   Datarate
 
Rx2Channel
 
uint8_t Rx1DrOffset = 0
 
int8_t ChannelsTxPower
 
int8_t ChannelsDatarate
 
int8_t ChannelsDefaultDatarate
 
uint8_t ChannelsNbRepDefault = 1
 
uint8_t ChannelsNbRep
 
uint8_t ChannelsNbRepCounter = 0
 
uint8_t MaxDCycle = 0
 
uint16_t AggregatedDCycle = 1
 
uint32_t AggregatedLastTxDoneTime = 0
 
uint32_t AggregatedTimeOff = 0
 
uint8_t currentCH
 
uint32_t LoRaMacState = MAC_IDLE
 
Timer MacStateCheckTimer
 
uint8_t(* getBatteryLevel )()
 
Timer TxDelayedTimer
 
Timer RxWindowTimer1
 
Timer RxWindowTimer2
 
Timer TxTimeoutTimer
 
uint16_t ReceiveDelay1
 
uint16_t ReceiveDelay2
 
uint16_t JoinAcceptDelay1
 
uint16_t JoinAcceptDelay2
 
uint16_t rxWindow1Delay
 
uint16_t rxWindow2Delay
 
uint16_t rxWindow1Timeout
 
uint16_t rxWindow2Timeout
 
int16_t rxWindow1Offset
 
int16_t rxWindow2Offset
 
Timer AckTimeoutTimer
 
uint8_t AckTimeoutRetries = 1
 
uint8_t AckTimeoutRetriesCounter = 1
 
uint32_t TxTimeOnAir
 
struct {
   EventInfoStatus_t   Status
 
McpsIndication
 
struct {
   EventInfoStatus_t   Status
 
   bool   AckReceived
 
   uint32_t   UpLinkCounter
 
McpsConfirm
 
struct timeval tDevTimeRequested
 
RTCCalendarrtc = NULL
 
uint8_t RxSlot = 0
 
bool isMcpsReq = false
 
bool isMcpsInd = false
 
bool isMacDone = false
 
LoRaMacFrametxFrame = NULL
 
LoRaMacFramerxFrame = NULL
 
void(* joinHandler )(LoRaMac &, bool result, const uint8_t *devEui, const uint8_t *appEui, const uint8_t *appKey, const uint8_t *nwkSKey, const uint8_t *appSKey, uint32_t devAddr, const RadioPacket &frame, uint32_t airTime) = NULL
 
void(* receiveErrorFrameHandler )(LoRaMac &, const RadioPacket &frame) = nullptr
 
- Protected Attributes inherited from PacketRadio
Queue< RadioPacket * > txFifo
 
Queue< RadioPacket * > rxFifo
 
Queue< RadioPacket * > txDoneFifo
 
void(* callbackSendDone )(PacketRadio &, RadioPacket *)
 
void(* callbackReceive )(PacketRadio &, const RadioPacket *)
 
PacketRadioEventListenereventListener
 

Member Function Documentation

◆ beginJoining()

error_t LoRaMacUS902Hybrid::beginJoining ( const uint8_t *  devEui,
const uint8_t *  appEui,
const uint8_t *  appKey 
)
virtual

Over-the-Air Activation (OTAA) 방식의 join을 시도합니다.

Parameters
devEuiDevice EUI (MSB first)
appEuiApplication EUI (MSB first)
appKeyApplication Key

Join은 1회만 시도하므로, 계속 join을 시도해야 할 경우 이 함수를 다시 호출하여야 합니다.

Reimplemented from LoRaMacUS902.


The documentation for this class was generated from the following file: