Nol.A SDK Library  24.11.0
For IoT System Software Development
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
LoRaRadioChip Class Referenceabstract
Inheritance diagram for LoRaRadioChip:
PacketRadioChip SX126xChip SX127xChip SX1272Chip SX1276Chip SystemFeatherM0::RFM9x SystemPLM100S::SX1276

Public Types

enum  State_t { RF_IDLE = 0 , RF_RX_RUNNING = 1 , RF_TX_RUNNING = 2 , RF_CAD = 3 }
 

Public Member Functions

virtual State_t getStatus ()=0
 
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)
 
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)
 
uint32_t getTimeOnAir (uint8_t payloadLen)
 
virtual void setTxPower (int8_t dBm) override
 송신 출력을 설정합니다. More...
 
virtual int8_t getTxPower () override
 현재 설정된 송신 출력을 반환합니다. More...
 
virtual int16_t getRssi ()=0
 RSSI를 dB 단위로 읽습니다.
 
virtual bool cca () override
 채널이 혼잡한지 아닌지 검사합니다. More...
 
virtual void doCAD (void(*func)(LoRaRadioChip &, bool))=0
 CAD (Carrier Activity Detection) 검사를 수행합니다. (LoRa 전용) More...
 
virtual void setStandby ()=0
 
virtual void setPublicNetwork (bool enable)=0
 Syncword를 설정합니다. More...
 
virtual void transmitCW ()=0
 Continuous Wave (CW) 신호를 송출합니다. (LoRa 전용)
 
virtual error_t transmit (RadioPacket *) override
 
void setFreqOffset (int32_t offsetHz)
 중심 주파수 오차를 제거하기 위한 offset을 설정합니다. More...
 
int32_t getFreqOffset ()
 중심 주파수 오차를 제거하기 위한 offset을 가져옵니다.
 
- Public Member Functions inherited from PacketRadioChip
virtual error_t begin ()=0
 
virtual error_t readFrame (RadioPacket *frame)=0
 수신 버퍼에서 프레임을 읽습니다. More...
 
virtual bool bufferIsEmpty ()=0
 
virtual void flushBuffer ()=0
 
virtual void sleep ()=0
 
virtual void wakeup ()=0
 
void setCcaThreshold (int16_t dBthreshold)
 
virtual void setChannel (uint32_t channel)=0
 채널을 설정합니다.
 
virtual uint32_t getChannel ()=0
 현재 설정된 채널을 반환합니다.
 
virtual int64_t getDeviceTimestamp ()
 장치 내부의 timestamp 값을 읽습니다. More...
 

Static Public Member Functions

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

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

virtual void ccaTask ()
 

Static Protected Member Functions

static void CCATask (void *)
 

Protected Attributes

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
 
void(* cadCompletedHandler )(LoRaRadioChip &, bool) = nullptr
 
volatile bool inCca = false
 
bool inChannelBusyHandler = false
 
int32_t freqOffset
 

Member Enumeration Documentation

◆ State_t

Radio driver internal state machine states definition

14  { RF_IDLE = 0,
15  RF_RX_RUNNING = 1,
16  RF_TX_RUNNING = 2,
17  RF_CAD = 3,
18  } State_t;
State_t
Definition: LoRaRadioChip.hpp:14

Member Function Documentation

◆ cca()

virtual bool LoRaRadioChip::cca ( )
overridevirtual

채널이 혼잡한지 아닌지 검사합니다.

채널이 혼잡하다고 감지되는 순간, onChannelBusy 가 가리키는 콜백함수가 호출됩니다.

Implements PacketRadioChip.

Reimplemented in SX127xChip.

◆ doCAD()

virtual void LoRaRadioChip::doCAD ( void(*)(LoRaRadioChip &, bool)  func)
pure virtual

CAD (Carrier Activity Detection) 검사를 수행합니다. (LoRa 전용)

Parameters
funcCAD 검사가 완료될 때 호출될 콜백함수 포인터

Implemented in SX127xChip, and SX126xChip.

◆ getTxPower()

virtual int8_t LoRaRadioChip::getTxPower ( )
overridevirtual

현재 설정된 송신 출력을 반환합니다.

Returns
송신 출력 (단위: dBm)

Implements PacketRadioChip.

Reimplemented in SX127xChip.

◆ setFreqOffset()

void LoRaRadioChip::setFreqOffset ( int32_t  offsetHz)

중심 주파수 오차를 제거하기 위한 offset을 설정합니다.

실제 사용되는 중심 주파수는 setChannel() 로 설정한 주파수에 offset을 더한 값이 됩니다. 기본 offset은 하드웨어마다 다릅니다. 설정된 offset을 구하기 위해서는 getFreqOffset() 을 사용하십시오.

◆ setPublicNetwork()

virtual void LoRaRadioChip::setPublicNetwork ( bool  enable)
pure virtual

Syncword를 설정합니다.

Parameters
valueenable (true: LoRaWAN, false: non-LoRaWAN)

Implemented in SX127xChip, and SX126xChip.

◆ setTxPower()

virtual void LoRaRadioChip::setTxPower ( int8_t  dBm)
overridevirtual

송신 출력을 설정합니다.

Parameters
dBm송신 출력 세기 (단위: dBm)

Implements PacketRadioChip.

Reimplemented in SX127xChip.


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