Nol.A SDK Library  24.11.0
For IoT System Software Development
Public Types | Public Member Functions | List of all members
LoRaMacKR920SKT Class Reference

대한민국 920~923MHz 대역을 사용하는 SK 텔레콤용 LoRaMac More...

#include <LoRaMacKR920SKT.hpp>

Inheritance diagram for LoRaMacKR920SKT:
LoRaMacKR920 LoRaMacLBT LoRaMac PacketRadio

Public Types

enum  {
  MSG_TYPE_REAL_APP_KEY_ALLOC_REQ = 0 , MSG_TYPE_REAL_APP_KEY_ALLOC_ANS = 1 , MSG_TYPE_REAL_APP_KEY_RX_REPORT_REQ = 2 , MSG_TYPE_REAL_APP_KEY_RX_REPORT_ANS = 3 ,
  MSG_TYPE_CONFIRMED_NB_RETRANS = 4
}
 
- 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 }
 

Public Member Functions

 LoRaMacKR920SKT (LoRaRadioChip &radio, uint16_t radioWakeupTime=1)
 대한민국 920~923MHz 대역을 사용하는 SKT LoRaMac instance를 생성합니다. More...
 
error_t beginJoining (const uint8_t *devEui, const uint8_t *appEui, const uint8_t *appKey)
 OTAA Join을 시도합니다. More...
 
void setNetworkJoined (bool joined)
 SK Telecom Enhanced Provisioning 사용 여부를 결정합니다. More...
 
error_t requestLinkCheck ()
 LinkCheckReq MAC command를 요청합니다. More...
 
void setABP (const uint8_t *nwkSKey, const uint8_t *appSKey, uint32_t devAddr)
 ABP를 사용하도록 설정합니다. More...
 
void setUpLinkCounter (uint32_t) override
 Uplink용 frame counter (fCntUp) 를 설정합니다. More...
 
void setDownLinkCounter (uint32_t) override
 Downlink용 frame counter (fCntDown) 를 설정합니다. More...
 
uint8_t getMaxPayload (uint8_t dr, bool repeater=false) override
 최대 application payload 길이(N)를 가져옵니다. More...
 
- Public Member Functions inherited from LoRaMacKR920
 LoRaMacKR920 (LoRaRadioChip &radio, uint16_t radioWakeupTime=1, uint32_t maxFCntGap=16384, const DatarateParams_t *drTable=nullptr, uint8_t maxDr=5)
 대한민국 920~923MHz 대역을 사용하는 LoRaMac instance를 생성합니다. More...
 
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...
 
virtual uint32_t getRx1Frequency () override
 Rx1에서 사용할 주파수를 가져옵니다.
 
- Public Member Functions inherited from LoRaMacLBT
 LoRaMacLBT (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...
 
- 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)
 
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...
 
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을 가져옵니다.
 
virtual uint8_t getRx1Datarate ()
 Rx1에 사용될, DR offset이 적용된 DR을 가져옵니다. More...
 
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...
 
uint32_t getDownLinkCounter ()
 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...
 
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 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 void applyTxParamSetup (uint8_t payload)
 
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 ()
 
bool requestsAck ()
 
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 LoRaMacLBT
static void OnCCATimeoutEvent (void *)
 
- Static Protected Member Functions inherited from LoRaMac
static void OnTxDelayedTimerEvent (void *)
 
static void OnMacStateCheckTimerEvent (void *)
 
- Protected Attributes inherited from LoRaMacKR920
Band_t Bands [16]
 
ChannelParams_t Channels [16]
 
uint16_t ChannelsMask
 
- 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
 

Detailed Description

대한민국 920~923MHz 대역을 사용하는 SK 텔레콤용 LoRaMac

관련 표준

Constructor & Destructor Documentation

◆ LoRaMacKR920SKT()

LoRaMacKR920SKT::LoRaMacKR920SKT ( LoRaRadioChip radio,
uint16_t  radioWakeupTime = 1 
)

대한민국 920~923MHz 대역을 사용하는 SKT LoRaMac instance를 생성합니다.

Parameters
radioLoRaMac을 구동할 LoRa 무선 칩
radioWakeupTime무선이 wakeup 후 Rx window 설정까지 걸리는 동안의 시간을 밀리초 단위로 설정합니다.

다음과 같이 LoRaMacKR920SKT 인스턴스를 선언하여 사용할 수 있습니다.

Member Function Documentation

◆ beginJoining()

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

OTAA Join을 시도합니다.

SK Telecom의 Enhanced Provisioning을 사용합니다.

PseudoAppKey joining이 완료된 후에는 onJoin() 에서 지정한 콜백함수에서 appKey는 RealAppKey가, nwkSKey, appSKey 는 NULL로 지정되어 호출됩니다.

RealAppKey joining이 완료된 후에는 두 값이 NULL이 아닌 appKey, nwkSKey 로 호출됩니다.

Join 실패시에는 다시 이 함수를 불러줘야 합니다.

Reimplemented from LoRaMac.

◆ getMaxPayload()

uint8_t LoRaMacKR920SKT::getMaxPayload ( uint8_t  dr,
bool  repeater = false 
)
overridevirtual

최대 application payload 길이(N)를 가져옵니다.

Parameters
drDR index
repeaterRepeater mode 사용 여부
Returns
  • 0이 아닌 값: 최대 application payload 길이
  • 0: 잘못된 DR

최대 application payload 길이(N)는 최대 payload 길이(M)에서 FOpt 길이를 뺀 값입니다. FOpt의 길이는 최소 8-byte 이며 더 커질 수도 있습니다.

Reimplemented from LoRaMacKR920.

◆ requestLinkCheck()

error_t LoRaMacKR920SKT::requestLinkCheck ( )
virtual

LinkCheckReq MAC command를 요청합니다.

이 MAC command는 다음 uplink 메시지 전송시 함께 전송됩니다. 즉시 전송을 원한다면 길이가 0인 빈 LoRaMacFrame 을 전송하십시오.

이 MAC command가 전송될 때 LoRaMac::onMACCommandSend 가 가리키는 함수가 콜백됩니다.

LinkCheckReq에 대한 응답으로 LinkCheckAns가 오면 LoRaMac::onMACCommandReceived 가 가리키는 함수가 콜백됩니다.

Note
자세한 내용은 LoRaWAN L2 Specification 1.0.4의 5.1 Link Check commands 를 참고하십시오.

Reimplemented from LoRaMac.

◆ setABP()

void LoRaMacKR920SKT::setABP ( const uint8_t *  nwkSKey,
const uint8_t *  appSKey,
uint32_t  devAddr 
)
virtual

ABP를 사용하도록 설정합니다.

Parameters
[in]nwkSKeyNetwork session key
[in]appSKeyApplication session key
[in]devAddrDevice address

Reimplemented from LoRaMac.

◆ setDownLinkCounter()

void LoRaMacKR920SKT::setDownLinkCounter ( uint32_t  )
overridevirtual

Downlink용 frame counter (fCntDown) 를 설정합니다.

SK Telecom 전용 규격에 의해서, 하위 2-byte만 사용됩니다. 설정된 값은 마지막으로 수신한 downlink 프레임에서 사용된 값으로 가정합니다.

Reimplemented from LoRaMac.

◆ setNetworkJoined()

void LoRaMacKR920SKT::setNetworkJoined ( bool  joined)

SK Telecom Enhanced Provisioning 사용 여부를 결정합니다.

다음과 같이 beginJoining()을 호출하기 전에 이를 true로 호출하면 RealAppKey joining이 시작됩니다.

그렇지 않고 beginJoining()을 호출하면 PseudoAppKey joining이 시작됩니다.

◆ setUpLinkCounter()

void LoRaMacKR920SKT::setUpLinkCounter ( uint32_t  )
overridevirtual

Uplink용 frame counter (fCntUp) 를 설정합니다.

SK Telecom 전용 규격에 의해서, 하위 2-byte만 사용됩니다. 설정된 값은 다음 uplink 프레임 전송 시 사용됩니다.

Reimplemented from LoRaMac.


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