| 
    Nol.A SDK Library
    25.8.1
    
   For IoT System Software Development 
   | 
 
대한민국 920~923MHz 대역을 사용하는 SK 텔레콤용 LoRaMac More...
#include <LoRaMacKR920SKT.hpp>
  
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_t * | getChannel (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_t * | getDatarate (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... | |
Protected Member Functions | |
| virtual uint8_t | parseDevTimeAns (const uint8_t *payload, uint8_t len, struct timeval *t) | 
| DevTimeAns에 대한 parser.  More... | |
  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) | 
| RadioPacket * | getNextTxFrame () | 
| error_t | enqueueTxFrame (RadioPacket *frame) | 
| virtual void | notifySendDone (RadioPacket *frame) | 
| virtual void | notifyReceive (RadioPacket *frame) | 
Additional Inherited Members | |
  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_t * | DR_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 } | 
  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 | 
| LoRaRadioChip & | Radio | 
| 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_t * | MulticastChannels = 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 | 
| RTCCalendar * | rtc = NULL | 
| uint8_t | RxSlot = 0 | 
| bool | isMcpsReq = false | 
| bool | isMcpsInd = false | 
| bool | isMacDone = false | 
| LoRaMacFrame * | txFrame = NULL | 
| LoRaMacFrame * | rxFrame = 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 *) | 
| PacketRadioEventListener * | eventListener | 
대한민국 920~923MHz 대역을 사용하는 SK 텔레콤용 LoRaMac
| LoRaMacKR920SKT::LoRaMacKR920SKT | ( | LoRaRadioChip & | radio, | 
| uint16_t | radioWakeupTime = 1  | 
        ||
| ) | 
대한민국 920~923MHz 대역을 사용하는 SKT LoRaMac instance를 생성합니다.
| radio | LoRaMac을 구동할 LoRa 무선 칩 | 
| radioWakeupTime | 무선이 wakeup 후 Rx window 설정까지 걸리는 동안의 시간을 밀리초 단위로 설정합니다. | 
다음과 같이 LoRaMacKR920SKT 인스턴스를 선언하여 사용할 수 있습니다.
      
  | 
  virtual | 
      
  | 
  overridevirtual | 
최대 application payload 길이(N)를 가져옵니다.
| dr | DR index | 
| repeater | Repeater mode 사용 여부 | 
최대 application payload 길이(N)는 최대 payload 길이(M)에서 FOpt 길이를 뺀 값입니다. FOpt의 길이는 최소 8-byte 이며 더 커질 수도 있습니다.
Reimplemented from LoRaMacKR920.
      
  | 
  inlineprotectedvirtual | 
DevTimeAns에 대한 parser.
| [IN] | payload DevTimeAns의 payload 부분 | 
| [IN] | len 남은 MAC command 버퍼 길이 | 
| [OUT] | t Parse 결과를 struct timeval 로 표현한 값 | 
Reimplemented from LoRaMac.
      
  | 
  virtual | 
LinkCheckReq MAC command를 요청합니다.
이 MAC command는 다음 uplink 메시지 전송시 함께 전송됩니다. 즉시 전송을 원한다면 길이가 0인 빈 LoRaMacFrame 을 전송하십시오.
이 MAC command가 전송될 때 LoRaMac::onMACCommandSend 가 가리키는 함수가 콜백됩니다.
LinkCheckReq에 대한 응답으로 LinkCheckAns가 오면 LoRaMac::onMACCommandReceived 가 가리키는 함수가 콜백됩니다.
Reimplemented from LoRaMac.
      
  | 
  virtual | 
ABP를 사용하도록 설정합니다.
| [in] | nwkSKey | Network session key | 
| [in] | appSKey | Application session key | 
| [in] | devAddr | Device address | 
Reimplemented from LoRaMac.
      
  | 
  overridevirtual | 
Downlink용 frame counter (fCntDown) 를 설정합니다.
SK Telecom 전용 규격에 의해서, 하위 2-byte만 사용됩니다. 설정된 값은 마지막으로 수신한 downlink 프레임에서 사용된 값으로 가정합니다.
Reimplemented from LoRaMac.
| void LoRaMacKR920SKT::setNetworkJoined | ( | bool | joined | ) | 
SK Telecom Enhanced Provisioning 사용 여부를 결정합니다.
다음과 같이 beginJoining()을 호출하기 전에 이를 true로 호출하면 RealAppKey joining이 시작됩니다.
그렇지 않고 beginJoining()을 호출하면 PseudoAppKey joining이 시작됩니다.
      
  | 
  overridevirtual | 
Uplink용 frame counter (fCntUp) 를 설정합니다.
SK Telecom 전용 규격에 의해서, 하위 2-byte만 사용됩니다. 설정된 값은 다음 uplink 프레임 전송 시 사용됩니다.
Reimplemented from LoRaMac.