| Nol.A SDK Library
    25.8.1
    For IoT System Software Development | 
#include <LMac.hpp>
 
  
| Public Member Functions | |
| LMac (LoRaRadioChip &chip) | |
| virtual error_t | begin () override | 
| virtual void | setMaxChanges (uint8_t n) | 
| MaxChanges를 설정합니다.  More... | |
| virtual void | setMaxBackoffs (uint8_t n) | 
| Max Backoff를 설정합니다.  More... | |
| virtual uint8_t | getNumChanges () | 
| 채널 등 파라미터 변경을 시도한 횟수를 반환합니다. | |
| virtual error_t | transmit (RadioPacket *p) override | 
| LMAC을 사용하여 LoRa 패킷을 전송 시도합니다.  More... | |
| virtual void | reset () | 
| 상태를 초기화합니다.  More... | |
| virtual void | doCAD () override | 
| 사용 금지  More... | |
| virtual error_t | readFrame (RadioPacket *frame) override | 
| 수신 버퍼에서 프레임을 읽습니다.  More... | |
| virtual bool | bufferIsEmpty () override | 
| virtual void | flushBuffer () override | 
| virtual void | sleep () override | 
| virtual void | wakeup () override | 
| virtual void | setChannel (uint32_t channel) override | 
| 채널을 설정합니다. | |
| virtual uint32_t | getChannel () override | 
| 현재 설정된 채널을 반환합니다. | |
| virtual State_t | getStatus () override | 
| virtual int16_t | getRssi () override | 
| RSSI를 dB 단위로 읽습니다. | |
| virtual void | setStandby () override | 
| virtual void | setPublicNetwork (bool enable) override | 
| Syncword를 설정합니다.  More... | |
| virtual void | transmitCW () override | 
| Continuous Wave (CW) 신호를 송출합니다. (LoRa 전용) | |
| virtual void | setRadio (Radio::LoRaSF_t sf, Radio::LoRaBW_t bw, Radio::LoRaCR_t cr, bool crcOn=true, bool iqInverted=false, uint16_t symbTimeout=0, uint16_t preambleLen=8, uint8_t payloadLen=0, bool freqHopOn=false, uint8_t hopPeriod=0) override | 
| virtual void | setRadio (uint32_t datarate, uint32_t bandwidth, uint32_t bandwidthAfc, uint32_t fDev, bool crcOn=true, uint16_t symbTimeout=0, uint16_t preambleLen=5, uint8_t payloadLen=0) override | 
| virtual void | setTxPower (int8_t dBm) override | 
| 송신 출력을 설정합니다.  More... | |
| virtual int8_t | getTxPower () override | 
| 현재 설정된 송신 출력을 반환합니다.  More... | |
| virtual bool | cca () override | 
| 채널이 혼잡한지 아닌지 검사합니다.  More... | |
| virtual void | setFreqOffset (int32_t offsetHz) override | 
| 중심 주파수 오차를 제거하기 위한 offset을 설정합니다.  More... | |
| virtual int32_t | getFreqOffset () override | 
| 중심 주파수 오차를 제거하기 위한 offset을 가져옵니다. | |
|  Public Member Functions inherited from LoRaRadioChip | |
| uint32_t | getTimeOnAir (uint8_t payloadLen) | 
|  Public Member Functions inherited from PacketRadioChip | |
| void | setCcaThreshold (int16_t dBthreshold) | 
| virtual int64_t | getDeviceTimestamp () | 
| 장치 내부의 timestamp 값을 읽습니다.  More... | |
| Additional Inherited Members | |
|  Public Types inherited from LoRaRadioChip | |
| enum | State_t { RF_IDLE = 0 , RF_RX_RUNNING = 1 , RF_TX_RUNNING = 2 , RF_CAD = 3 } | 
|  Static Public Member Functions inherited from LoRaRadioChip | |
| static uint32_t | TimeOnAir (Radio::LoRaSF_t, Radio::LoRaBW_t, Radio::LoRaCR_t, uint16_t preambleLen, bool fixLen, uint8_t payloadLen, bool crcOn) | 
| static uint32_t | TimeOnAir (uint32_t datarate, uint32_t bandwidth, uint16_t preambleLen, bool fixLen, uint8_t payloadLen, bool crcOn) | 
|  Public Attributes inherited from LoRaRadioChip | |
| void(* | onCADCompleted )(void *ctx, bool) = nullptr | 
| LoRa CAD (Carrier Activity Detection) 검사가 완료되면 호출될 콜백함수 포인터  More... | |
| void * | ctxOnCADCompleted | 
| onCADCompleted 가 호출될 때 함께 전달될 context | |
| int8_t | antennaGain = 0 | 
| Antenna gain을 고려한 송신 출력(EIRP)을 사용하기 위한 antenna gain (단위: dBi) | |
| void(* | onRxTimeout )(void *, GPIOInterruptInfo_t *) = nullptr | 
| void * | ctxOnRxTimeout | 
| uint32_t | channel | 
| Radio::Modulation_t | modulation | 
| int8_t | txPower | 
| uint32_t | txTimeout | 
| uint32_t | drHz | 
| uint32_t | bwHz | 
| uint32_t | afcBwHz | 
| uint32_t | fDevHz | 
| uint16_t | symbTimeout | 
| bool | addCrc | 
| uint16_t | preambleLength | 
| uint8_t | fixedPayloadLength | 
| struct { | |
| uint32_t drHz | |
| uint32_t bwHz | |
| uint32_t afcBwHz | |
| uint32_t fDevHz | |
| uint16_t symbTimeout | |
| bool addCrc | |
| uint16_t preambleLength | |
| uint8_t fixedPayloadLength | |
| } | FSK | 
| Radio::LoRaSF_t | sf | 
| Radio::LoRaCR_t | cr | 
| Radio::LoRaBW_t | bw | 
| bool | iqInverted | 
| struct { | |
| Radio::LoRaSF_t sf | |
| Radio::LoRaCR_t cr | |
| Radio::LoRaBW_t bw | |
| uint16_t preambleLength | |
| uint8_t fixedPayloadLength | |
| bool iqInverted | |
| bool addCrc | |
| uint16_t symbTimeout | |
| } | LoRa | 
|  Public Attributes inherited from PacketRadioChip | |
| void(* | onRxStarted )(void *, GPIOInterruptInfo_t *) | 
| 수신이 시작될 때 호출될 콜백함수 포인터  More... | |
| void * | ctxOnRxStarted | 
| onRxStarted 가 호출될 때 함께 전달될 context | |
| void(* | onRxDone )(void *, GPIOInterruptInfo_t *) | 
| 수신이 완료될 때 호출될 콜백함수 포인터  More... | |
| void * | ctxOnRxDone | 
| onRxDone 이 호출될 때 함께 전달될 context | |
| void(* | onTxDone )(void *, bool, GPIOInterruptInfo_t *) | 
| transmit() 후, 송신이 완료될 때 호출될 콜백함수 포인터  More... | |
| void * | ctxOnTxDone | 
| onTxDone 이 호출될 때 함께 전달될 context | |
| void(* | onChannelBusy )(void *, GPIOInterruptInfo_t *) | 
| cca() 시 채널이 혼잡할 때 호출될 콜백함수 포인터  More... | |
| void * | ctxOnChannelBusy | 
| onChannelBusy 가 호출될 때 함께 전달될 context | |
| int16_t | dBccaThreshold = -65 | 
| cca() 시 채널이 혼잡하다고 판단하기 위한 에너지 레벨을 설정합니다. (단위: dB, 기본값: -65) | |
|  Protected Member Functions inherited from LoRaRadioChip | |
| virtual void | ccaTask () | 
|  Static Protected Member Functions inherited from LoRaRadioChip | |
| static void | CCATask (void *) | 
|  Protected Attributes inherited from LoRaRadioChip | |
| struct { | |
| uint32_t channel | |
| Radio::Modulation_t modulation | |
| int8_t txPower | |
| uint32_t txTimeout | |
| union { | |
| struct { | |
| uint32_t drHz | |
| uint32_t bwHz | |
| uint32_t afcBwHz | |
| uint32_t fDevHz | |
| uint16_t symbTimeout | |
| bool addCrc | |
| uint16_t preambleLength | |
| uint8_t fixedPayloadLength | |
| } FSK | |
| struct { | |
| Radio::LoRaSF_t sf | |
| Radio::LoRaCR_t cr | |
| Radio::LoRaBW_t bw | |
| uint16_t preambleLength | |
| uint8_t fixedPayloadLength | |
| bool iqInverted | |
| bool addCrc | |
| uint16_t symbTimeout | |
| } LoRa | |
| } | |
| } | defaultSetting | 
| volatile bool | inCca = false | 
| bool | inChannelBusyHandler = false | 
| int32_t | freqOffset | 
LMac Class.
| 
 | inlineoverridevirtual | 
채널이 혼잡한지 아닌지 검사합니다.
채널이 혼잡하다고 감지되는 순간, onChannelBusy 가 가리키는 콜백함수가 호출됩니다.
Reimplemented from LoRaRadioChip.
| 
 | overridevirtual | 
| 
 | inlineoverridevirtual | 
| 
 | inlineoverridevirtual | 
수신 버퍼에서 프레임을 읽습니다.
frame 이 NULL 이거나, frame 내부 버퍼가 충분히 크지 않아서 실패 Implements PacketRadioChip.
| 
 | virtual | 
상태를 초기화합니다.
다른 LoRa 패킷을 전송하기 위해 상태를 초기화합니다.
| 
 | inlineoverridevirtual | 
중심 주파수 오차를 제거하기 위한 offset을 설정합니다.
실제 사용되는 중심 주파수는 setChannel() 로 설정한 주파수에 offset을 더한 값이 됩니다. 기본 offset은 하드웨어마다 다릅니다. 설정된 offset을 구하기 위해서는 getFreqOffset() 을 사용하십시오.
Reimplemented from LoRaRadioChip.
| 
 | virtual | 
Max Backoff를 설정합니다.
프레임당 최대 가능한 backoff 횟수 제한을 설정합니다.
실제 backoff는 (1 ~ Max Backoff) 범위에서 랜덤하게 설정됩니다.
transmit() 호출 전에 사용해야 합니다.
기본 값은 6 입니다.
| 
 | virtual | 
MaxChanges를 설정합니다.
프레임당 채널 등 파라미터 변경을 시도하는 횟수를 지정합니다.
transmit() 호출 전에 사용해야 합니다.
기본 값은 6 입니다.
| 
 | inlineoverridevirtual | 
Syncword를 설정합니다.
| value | enable (true: LoRaWAN, false: non-LoRaWAN) | 
Implements LoRaRadioChip.
| 
 | inlineoverridevirtual | 
| 
 | overridevirtual | 
LMAC을 사용하여 LoRa 패킷을 전송 시도합니다.
LMAC 알고리즘에 따라 LoRa 패킷을 전송 시도합니다.
현재 CAD 등 알고리즘이 구동 중인 경우 경우 ERROR_FAIL 을 반환합니다.
p 의 RadioPacket::modulation 이 Radio::MOD_LORA 가 아닌 경우, LMAC 알고리즘을 무시하여 전송합니다.
그 외의 경우 ERROR_SUCCESS 가 반환됩니다.
LMAC의 결과는 전송 완료 콜백과 RadioPacket::result, 및 getNumChanges() 에 의해 확인 가능합니다.
getNumChanges() 가 0보다 큰 경우,
getNumChanges() 가 0인 경우,
Reimplemented from LoRaRadioChip.