LoRaWANCH341 Library
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
LoRaWAN::Impl Struct Reference
Collaboration diagram for LoRaWAN::Impl:
Collaboration graph

Public Member Functions

bool saveSessionData ()
 
bool loadSessionData ()
 
 Impl (std::unique_ptr< SPIInterface > spi_interface)
 
std::vector< uint8_tbuildJoinRequest ()
 
void calculateMIC (std::vector< uint8_t > &packet)
 
bool processJoinAccept (std::vector< uint8_t > &response)
 
uint16_t generateDevNonce ()
 
void resetDevNonces ()
 
float getAverageSnr () const
 
int getAverageRssi () const
 
void addSnrSample (float snr)
 
void addRssiSample (int rssi)
 

Public Attributes

std::unique_ptr< RFM95rfm
 
std::queue< MessagerxQueue
 
std::mutex queueMutex
 
std::array< uint8_t, 8 > devEUI
 
std::array< uint8_t, 8 > appEUI
 
std::array< uint8_t, 16 > appKey
 
std::array< uint8_t, 4 > devAddr
 
std::array< uint8_t, 16 > nwkSKey
 
std::array< uint8_t, 16 > appSKey
 
uint32_t uplinkCounter
 
uint32_t downlinkCounter
 
uint8_t dataRate
 
int8_t txPower
 
uint8_t channel
 
RxWindowState rxState = RX_IDLE
 
std::chrono::steady_clock::time_point rxWindowStart
 
std::chrono::steady_clock::time_point txEndTime
 
std::vector< uint16_tusedNonces
 
std::string sessionFile = "lorawan_session.json"
 
uint16_t lastDevNonce
 
std::deque< floatsnrHistory
 
std::deque< intrssiHistory
 

Constructor & Destructor Documentation

◆ Impl()

LoRaWAN::Impl::Impl ( std::unique_ptr< SPIInterface spi_interface)
inline

Member Function Documentation

◆ addRssiSample()

void LoRaWAN::Impl::addRssiSample ( int  rssi)
inline

◆ addSnrSample()

void LoRaWAN::Impl::addSnrSample ( float  snr)
inline

◆ buildJoinRequest()

std::vector< uint8_t > LoRaWAN::Impl::buildJoinRequest ( )
inline
Here is the call graph for this function:

◆ calculateMIC()

void LoRaWAN::Impl::calculateMIC ( std::vector< uint8_t > &  packet)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ generateDevNonce()

uint16_t LoRaWAN::Impl::generateDevNonce ( )
inline
Here is the caller graph for this function:

◆ getAverageRssi()

int LoRaWAN::Impl::getAverageRssi ( ) const
inline

◆ getAverageSnr()

float LoRaWAN::Impl::getAverageSnr ( ) const
inline

◆ loadSessionData()

bool LoRaWAN::Impl::loadSessionData ( )
inline
Here is the call graph for this function:

◆ processJoinAccept()

bool LoRaWAN::Impl::processJoinAccept ( std::vector< uint8_t > &  response)
inline
Here is the call graph for this function:

◆ resetDevNonces()

void LoRaWAN::Impl::resetDevNonces ( )
inline

◆ saveSessionData()

bool LoRaWAN::Impl::saveSessionData ( )
inline
Here is the call graph for this function:

Member Data Documentation

◆ appEUI

std::array<uint8_t, 8> LoRaWAN::Impl::appEUI

◆ appKey

std::array<uint8_t, 16> LoRaWAN::Impl::appKey

◆ appSKey

std::array<uint8_t, 16> LoRaWAN::Impl::appSKey

◆ channel

uint8_t LoRaWAN::Impl::channel

◆ dataRate

uint8_t LoRaWAN::Impl::dataRate

◆ devAddr

std::array<uint8_t, 4> LoRaWAN::Impl::devAddr

◆ devEUI

std::array<uint8_t, 8> LoRaWAN::Impl::devEUI

◆ downlinkCounter

uint32_t LoRaWAN::Impl::downlinkCounter

◆ lastDevNonce

uint16_t LoRaWAN::Impl::lastDevNonce

◆ nwkSKey

std::array<uint8_t, 16> LoRaWAN::Impl::nwkSKey

◆ queueMutex

std::mutex LoRaWAN::Impl::queueMutex

◆ rfm

std::unique_ptr<RFM95> LoRaWAN::Impl::rfm

◆ rssiHistory

std::deque<int> LoRaWAN::Impl::rssiHistory

◆ rxQueue

std::queue<Message> LoRaWAN::Impl::rxQueue

◆ rxState

RxWindowState LoRaWAN::Impl::rxState = RX_IDLE

◆ rxWindowStart

std::chrono::steady_clock::time_point LoRaWAN::Impl::rxWindowStart

◆ sessionFile

std::string LoRaWAN::Impl::sessionFile = "lorawan_session.json"

◆ snrHistory

std::deque<float> LoRaWAN::Impl::snrHistory

◆ txEndTime

std::chrono::steady_clock::time_point LoRaWAN::Impl::txEndTime

◆ txPower

int8_t LoRaWAN::Impl::txPower

◆ uplinkCounter

uint32_t LoRaWAN::Impl::uplinkCounter

◆ usedNonces

std::vector<uint16_t> LoRaWAN::Impl::usedNonces

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