LoRaMAC
4.6.0
Documentation of the API
|
Implementation according to LoRaWAN Specification v1.0.2. More...
Functions | |
PhyParam_t | RegionCN470GetPhyParam (GetPhyParams_t *getPhy) |
The function gets a value of a specific phy attribute. More... | |
void | RegionCN470SetBandTxDone (SetBandTxDoneParams_t *txDone) |
Updates the last TX done parameters of the current channel. More... | |
void | RegionCN470InitDefaults (InitDefaultsParams_t *params) |
Initializes the channels masks and the channels. More... | |
bool | RegionCN470Verify (VerifyParams_t *verify, PhyAttribute_t phyAttribute) |
Verifies a parameter. More... | |
void | RegionCN470ApplyCFList (ApplyCFListParams_t *applyCFList) |
The function parses the input buffer and sets up the channels of the CF list. More... | |
bool | RegionCN470ChanMaskSet (ChanMaskSetParams_t *chanMaskSet) |
Sets a channels mask. More... | |
void | RegionCN470ComputeRxWindowParameters (int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams) |
bool | RegionCN470RxConfig (RxConfigParams_t *rxConfig, int8_t *datarate) |
Configuration of the RX windows. More... | |
bool | RegionCN470TxConfig (TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir) |
TX configuration. More... | |
uint8_t | RegionCN470LinkAdrReq (LinkAdrReqParams_t *linkAdrReq, int8_t *drOut, int8_t *txPowOut, uint8_t *nbRepOut, uint8_t *nbBytesParsed) |
The function processes a Link ADR Request. More... | |
uint8_t | RegionCN470RxParamSetupReq (RxParamSetupReqParams_t *rxParamSetupReq) |
The function processes a RX Parameter Setup Request. More... | |
int8_t | RegionCN470NewChannelReq (NewChannelReqParams_t *newChannelReq) |
The function processes a Channel Request. More... | |
int8_t | RegionCN470TxParamSetupReq (TxParamSetupReqParams_t *txParamSetupReq) |
The function processes a TX ParamSetup Request. More... | |
int8_t | RegionCN470DlChannelReq (DlChannelReqParams_t *dlChannelReq) |
The function processes a DlChannel Request. More... | |
int8_t | RegionCN470AlternateDr (int8_t currentDr, AlternateDrType_t type) |
Alternates the datarate of the channel for the join request. More... | |
LoRaMacStatus_t | RegionCN470NextChannel (NextChanParams_t *nextChanParams, uint8_t *channel, TimerTime_t *time, TimerTime_t *aggregatedTimeOff) |
Searches and set the next random available channel. More... | |
LoRaMacStatus_t | RegionCN470ChannelAdd (ChannelAddParams_t *channelAdd) |
Adds a channel. More... | |
bool | RegionCN470ChannelsRemove (ChannelRemoveParams_t *channelRemove) |
Removes a channel. More... | |
uint8_t | RegionCN470ApplyDrOffset (uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset) |
Computes new datarate according to the given offset. More... | |
void | RegionCN470RxBeaconSetup (RxBeaconSetup_t *rxBeaconSetup, uint8_t *outDr) |
Sets the radio into beacon reception mode. More... | |
uint32_t | RegionCN470A20GetDownlinkFrequency (uint8_t channel, uint8_t joinChannelIndex, bool isPingSlot) |
Calculation of the beacon frequency. More... | |
uint8_t | RegionCN470A20GetBeaconChannelOffset (uint8_t joinChannelIndex) |
Performs the update of the channelsMask based on the input parameters for the channel plan type A, 20MHz. More... | |
uint8_t | RegionCN470A20LinkAdrChMaskUpdate (uint16_t *channelsMask, uint8_t chMaskCntl, uint16_t chanMask, ChannelParams_t *channels) |
Performs the update of the channelsMask based on the input parameters for the channel plan type A, 20MHz. More... | |
bool | RegionCN470A20VerifyRfFreq (uint32_t frequency) |
Verifies if the frequency provided is valid for the channel plan type A, 20MHz. More... | |
void | RegionCN470A20InitializeChannels (ChannelParams_t *channels) |
Initializes all channels, datarates, frequencies and bands for the channel plan type A, 20MHz. More... | |
void | RegionCN470A20InitializeChannelsMask (uint16_t *channelsDefaultMask) |
Initializes the channels default mask for the channel plan type A, 20MHz. More... | |
uint32_t | RegionCN470A20GetRx1Frequency (uint8_t channel) |
Computes the frequency for the RX1 window for the channel plan type A, 20MHz. More... | |
uint32_t | RegionCN470A20GetRx2Frequency (uint8_t joinChannelIndex, bool isOtaaDevice) |
Computes the frequency for the RX2 window for the channel plan type A, 20MHz. More... | |
uint32_t | RegionCN470A26GetDownlinkFrequency (uint8_t channel, uint8_t joinChannelIndex, bool isPingSlot) |
Calculation of the beacon frequency. More... | |
uint8_t | RegionCN470A26GetBeaconChannelOffset (uint8_t joinChannelIndex) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type A, 26MHz. More... | |
uint8_t | RegionCN470A26LinkAdrChMaskUpdate (uint16_t *channelsMask, uint8_t chMaskCntl, uint16_t chanMask, ChannelParams_t *channels) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type A, 26MHz. More... | |
bool | RegionCN470A26VerifyRfFreq (uint32_t frequency) |
Verifies if the frequency provided is valid for the Channel plan type A, 26MHz. More... | |
void | RegionCN470A26InitializeChannels (ChannelParams_t *channels) |
Initializes all channels, datarates, frequencies and bands for the Channel plan type A, 26MHz. More... | |
void | RegionCN470A26InitializeChannelsMask (uint16_t *channelsDefaultMask) |
Initializes the channels default mask for the Channel plan type A, 26MHz. More... | |
uint32_t | RegionCN470A26GetRx1Frequency (uint8_t channel) |
Computes the frequency for the RX1 window for the Channel plan type A, 26MHz. More... | |
uint32_t | RegionCN470A26GetRx2Frequency (uint8_t joinChannelIndex, bool isOtaaDevice) |
Computes the frequency for the RX2 window for the Channel plan type A, 26MHz. More... | |
uint32_t | RegionCN470B20GetDownlinkFrequency (uint8_t channel, uint8_t joinChannelIndex, bool isPingSlot) |
Calculation of the beacon frequency. More... | |
uint8_t | RegionCN470B20GetBeaconChannelOffset (uint8_t joinChannelIndex) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 20MHz. More... | |
uint8_t | RegionCN470B20LinkAdrChMaskUpdate (uint16_t *channelsMask, uint8_t chMaskCntl, uint16_t chanMask, ChannelParams_t *channels) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 20MHz. More... | |
bool | RegionCN470B20VerifyRfFreq (uint32_t frequency) |
Verifies if the frequency provided is valid for the Channel plan type B, 20MHz. More... | |
void | RegionCN470B20InitializeChannels (ChannelParams_t *channels) |
Initializes all channels, datarates, frequencies and bands for the Channel plan type B, 20MHz. More... | |
void | RegionCN470B20InitializeChannelsMask (uint16_t *channelsDefaultMask) |
Initializes the channels default mask for the Channel plan type B, 20MHz. More... | |
uint32_t | RegionCN470B20GetRx1Frequency (uint8_t channel) |
Computes the frequency for the RX1 window for the Channel plan type B, 20MHz. More... | |
uint32_t | RegionCN470B20GetRx2Frequency (uint8_t joinChannelIndex, bool isOtaaDevice) |
Computes the frequency for the RX2 window for the Channel plan type B, 20MHz. More... | |
uint32_t | RegionCN470B26GetDownlinkFrequency (uint8_t channel, uint8_t joinChannelIndex, bool isPingSlot) |
Calculation of the beacon frequency. More... | |
uint8_t | RegionCN470B26GetBeaconChannelOffset (uint8_t joinChannelIndex) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 26MHz. More... | |
uint8_t | RegionCN470B26LinkAdrChMaskUpdate (uint16_t *channelsMask, uint8_t chMaskCntl, uint16_t chanMask, ChannelParams_t *channels) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 26MHz. More... | |
bool | RegionCN470B26VerifyRfFreq (uint32_t frequency) |
Verifies if the frequency provided is valid for the Channel plan type B, 26MHz. More... | |
void | RegionCN470B26InitializeChannels (ChannelParams_t *channels) |
Initializes all channels, datarates, frequencies and bands for the Channel plan type B, 26MHz. More... | |
void | RegionCN470B26InitializeChannelsMask (uint16_t *channelsDefaultMask) |
Initializes the channels mask and the channels default mask for the Channel plan type B, 26MHz. More... | |
uint32_t | RegionCN470B26GetRx1Frequency (uint8_t channel) |
Computes the frequency for the RX1 window for the Channel plan type B, 26MHz. More... | |
uint32_t | RegionCN470B26GetRx2Frequency (uint8_t joinChannelIndex, bool isOtaaDevice) |
Computes the frequency for the RX2 window for the Channel plan type B, 26MHz. More... | |
Implementation according to LoRaWAN Specification v1.0.2.
#define CN470_MAX_NB_CHANNELS 96 |
LoRaMac maximum number of channels
#define CN470_TX_MIN_DATARATE DR_1 |
Minimal datarate that can be used by the node
#define CN470_TX_MAX_DATARATE DR_5 |
Maximal datarate that can be used by the node
#define CN470_RX_MIN_DATARATE DR_1 |
Minimal datarate that can be used by the node
#define CN470_RX_MAX_DATARATE DR_5 |
Maximal datarate that can be used by the node
#define CN470_DEFAULT_DATARATE DR_1 |
Default datarate used by the node
#define CN470_MIN_RX1_DR_OFFSET 0 |
Minimal Rx1 receive datarate offset
#define CN470_MAX_RX1_DR_OFFSET 5 |
Maximal Rx1 receive datarate offset
#define CN470_MIN_TX_POWER TX_POWER_7 |
Minimal Tx output power that can be used by the node
#define CN470_MAX_TX_POWER TX_POWER_0 |
Maximal Tx output power that can be used by the node
#define CN470_DEFAULT_TX_POWER TX_POWER_0 |
Default Tx output power used by the node
#define CN470_DEFAULT_MAX_EIRP 19.15f |
Default Max EIRP
#define CN470_DEFAULT_ANTENNA_GAIN 2.15f |
Default antenna gain
#define CN470_DUTY_CYCLE_ENABLED 0 |
Enabled or disabled the duty cycle
#define CN470_MAX_RX_WINDOW 3000 |
Maximum RX window duration
#define CN470_RX_WND_2_DR DR_1 |
Second reception window channel datarate definition.
#define CN470_DEFAULT_UPLINK_DWELL_TIME 0 |
Default uplink dwell time configuration
#define CN470_BEACON_SIZE 19 |
Payload size of a beacon frame
#define CN470_RFU1_SIZE 2 |
Size of RFU 1 field
#define CN470_RFU2_SIZE 1 |
Size of RFU 2 field
#define CN470_BEACON_CHANNEL_DR DR_2 |
Datarate of the beacon channel
#define CN470_BEACON_CHANNEL_BW 0 |
Bandwith of the beacon channel
#define CN470_PING_SLOT_CHANNEL_DR DR_2 |
Ping slot channel datarate
#define CN470_MAX_NB_BANDS 1 |
LoRaMac maximum number of bands
#define CN470_BAND0 { 1, CN470_MAX_TX_POWER, 0, 0, 0, 0, 0 } |
Band 0 definition Band = { DutyCycle, TxMaxPower, LastBandUpdateTime, LastMaxCreditAssignTime, TimeCredits, MaxTimeCredits, ReadyForTransmission }
#define CN470_FIRST_RX1_CHANNEL ( (uint32_t) 500300000 ) |
Defines the first channel for RX window 1 for CN470 band
#define CN470_LAST_RX1_CHANNEL ( (uint32_t) 509700000 ) |
Defines the last channel for RX window 1 for CN470 band
#define CN470_STEPWIDTH_RX1_CHANNEL ( (uint32_t) 200000 ) |
Defines the step width of the channels for RX window 1
#define CN470_COMMON_JOIN_CHANNELS |
#define CN470_A20_CHANNELS_MASK_SIZE 4 |
The maximum number of channels. Channel plan type A, 20MHz.
#define CN470_A20_JOIN_ACCEPT_LIST_SIZE 4 |
The number of entries in the join accept list. Channel plan type A, 20MHz.
#define CN470_A20_BEACON_NB_CHANNELS 8 |
This is a number which is used to calculate the beacon channel in case of frequency hopping. Channel plan type A, 20MHz.
#define CN470_A20_PING_SLOT_NB_CHANNELS 8 |
This is a number which is used to calculate the ping slot channel in case of frequency hopping. Channel plan type A, 20MHz.
#define CN470_A20_FIRST_RX_CHANNEL 483900000 |
The first RX channel, downstream group 1 and 2. Channel plan type A, 20MHz.
#define CN470_A20_LAST_RX_CHANNEL 496500000 |
The last RX channel, downstream group 1 and 2. Channel plan type A, 20MHz.
#define CN470_A20_STEPWIDTH_RX_CHANNEL 200000 |
The frequency stepwidth between RX channels, downstream group 1 and 2. Channel plan type A, 20MHz.
#define CN470_A20_FIRST_TX1_CHANNEL 470300000 |
The first TX channel, upstream group 1. Channel plan type A, 20MHz.
#define CN470_A20_STEPWIDTH_TX1_CHANNEL 200000 |
The frequency stepwidth between RX channels, upstream group 1. Channel plan type A, 20MHz.
#define CN470_A20_FIRST_TX2_CHANNEL 503500000 |
The first TX channel, upstream group 2. Channel plan type A, 20MHz.
#define CN470_A20_LAST_TX2_CHANNEL 509700000 |
The last TX channel, upstream group 2. Channel plan type A, 20MHz.
#define CN470_A20_STEPWIDTH_TX2_CHANNEL 200000 |
The frequency stepwidth between RX channels, upstream group 2. Channel plan type A, 20MHz.
#define CN470_A20_RX_WND_2_FREQ_ABP 486900000 |
The default frequency for RX window 2, when its an ABP device. Channel plan type A, 20MHz.
#define CN470_A20_RX_WND_2_FREQ_OTAA |
The channel plan frequencies for RX window 2, when its an OTAA device. Channel plan type A, 20MHz.
#define CN470_A26_CHANNELS_MASK_SIZE 3 |
The maximum number of channels. Channel plan type A, 26MHz.
#define CN470_A26_JOIN_ACCEPT_LIST_SIZE 3 |
The number of entries in the join accept list. Channel plan type A, 26MHz.
#define CN470_A26_BEACON_NB_CHANNELS 1 |
The number of channels available for the beacon. Channel plan type A, 26MHz.
#define CN470_A26_PING_SLOT_NB_CHANNELS 1 |
The number of channels available for the ping slots. Channel plan type A, 26MHz.
#define CN470_A26_FIRST_RX_CHANNEL 490100000 |
The first RX channel, downstream group 1. Channel plan type A, 26MHz.
#define CN470_A26_LAST_RX_CHANNEL 494700000 |
The last RX channel, downstream group 1. Channel plan type A, 26MHz.
#define CN470_A26_STEPWIDTH_RX_CHANNEL 200000 |
The frequency stepwidth between RX channels, downstream group 1. Channel plan type A, 26MHz.
#define CN470_A26_FIRST_TX_CHANNEL 470300000 |
The first TX channel, upstream group 1. Channel plan type A, 26MHz.
#define CN470_A26_LAST_TX_CHANNEL 479700000 |
The last TX channel, upstream group 1. Channel plan type A, 26MHz.
#define CN470_A26_STEPWIDTH_TX_CHANNEL 200000 |
The frequency stepwidth between RX channels, upstream group 1. Channel plan type A, 26MHz.
#define CN470_A26_RX_WND_2_FREQ 492500000 |
The default frequency for RX window 2 Channel plan type A, 26MHz.
#define CN470_A26_BEACON_FREQ 494900000 |
The default frequency for beacon. Channel plan type A, 26MHz.
#define CN470_B20_CHANNELS_MASK_SIZE 4 |
The maximum number of channels. Channel plan type B, 20MHz.
#define CN470_B20_JOIN_ACCEPT_LIST_SIZE 4 |
The number of entries in the join accept list. Channel plan type B, 20MHz.
#define CN470_B20_BEACON_NB_CHANNELS 1 |
This is a number which is used to calculate the beacon channel in case of frequency hopping. Channel plan type B, 20MHz.
#define CN470_B20_PING_SLOT_NB_CHANNELS 32 |
This is a number which is used to calculate the ping slot channel in case of frequency hopping. Channel plan type B, 20MHz.
#define CN470_B20_FIRST_RX1_CHANNEL 476900000 |
The first RX channel, downstream group 1. Channel plan type B, 20MHz.
#define CN470_B20_LAST_RX1_CHANNEL 483100000 |
The last RX channel, downstream group 1. Channel plan type B, 20MHz.
#define CN470_B20_STEPWIDTH_RX1_CHANNEL 200000 |
The frequency stepwidth between RX channels, downstream group 1. Channel plan type B, 20MHz.
#define CN470_B20_FIRST_RX2_CHANNEL 496900000 |
The first RX channel, downstream group 2. Channel plan type B, 20MHz.
#define CN470_B20_LAST_RX2_CHANNEL 503100000 |
The last RX channel, downstream group 2. Channel plan type B, 20MHz.
#define CN470_B20_STEPWIDTH_RX2_CHANNEL 200000 |
The frequency stepwidth between RX channels, downstream group 2. Channel plan type B, 20MHz.
#define CN470_B20_FIRST_TX1_CHANNEL CN470_B20_FIRST_RX1_CHANNEL |
The first TX channel, upstream group 1. Channel plan type B, 20MHz.
#define CN470_B20_LAST_TX1_CHANNEL CN470_B20_LAST_RX1_CHANNEL |
The last TX channel, upstream group 1. Channel plan type B, 20MHz.
#define CN470_B20_STEPWIDTH_TX1_CHANNEL CN470_B20_STEPWIDTH_RX1_CHANNEL |
The frequency stepwidth between RX channels, upstream group 1. Channel plan type B, 20MHz.
#define CN470_B20_FIRST_TX2_CHANNEL CN470_B20_FIRST_RX2_CHANNEL |
The first TX channel, upstream group 2. Channel plan type B, 20MHz.
#define CN470_B20_LAST_TX2_CHANNEL CN470_B20_LAST_RX2_CHANNEL |
The last TX channel, upstream group 2. Channel plan type B, 20MHz.
#define CN470_B20_STEPWIDTH_TX2_CHANNEL CN470_B20_STEPWIDTH_RX2_CHANNEL |
The frequency stepwidth between RX channels, upstream group 2. Channel plan type B, 20MHz.
#define CN470_B20_RX_WND_2_FREQ_ABP 498300000 |
The default frequency for RX window 2, when its an ABP device. Channel plan type B, 20MHz.
#define CN470_B20_RX_WND_2_FREQ_OTAA { 478300000, 498300000 } |
The channel plan frequencies for RX window 2, when its an OTAA device. Channel plan type B, 20MHz.
#define CN470_B26_CHANNELS_MASK_SIZE 3 |
The maximum number of channels. Channel plan type B, 26MHz.
#define CN470_B26_JOIN_ACCEPT_LIST_SIZE 3 |
The number of entries in the join accept list. Channel plan type B, 26MHz.
#define CN470_B26_BEACON_NB_CHANNELS 1 |
The number of channels available for the beacon. Channel plan type B, 26MHz.
#define CN470_B26_PING_SLOT_NB_CHANNELS 1 |
The number of channels available for the ping slots. Channel plan type B, 26MHz.
#define CN470_B26_FIRST_RX_CHANNEL 500100000 |
The first RX channel, downstream group 1. Channel plan type B, 26MHz.
#define CN470_B26_LAST_RX_CHANNEL 504700000 |
The last RX channel, downstream group 1. Channel plan type B, 26MHz.
#define CN470_B26_STEPWIDTH_RX_CHANNEL 200000 |
The frequency stepwidth between RX channels, downstream group 1 and 2. Channel plan type B, 26MHz.
#define CN470_B26_FIRST_TX_CHANNEL 480300000 |
The first TX channel, upstream group 1. Channel plan type B, 26MHz.
#define CN470_B26_LAST_TX_CHANNEL 489700000 |
The last TX channel, upstream group 1. Channel plan type B, 26MHz.
#define CN470_B26_STEPWIDTH_TX_CHANNEL 200000 |
The frequency stepwidth between RX channels, upstream group 1. Channel plan type B, 26MHz.
#define CN470_B26_RX_WND_2_FREQ 502500000 |
The default frequency for RX window 2, Channel plan type B, 26MHz.
#define CN470_B26_BEACON_FREQ 504900000 |
The default frequency for beacon, Channel plan type B, 26MHz.
PhyParam_t RegionCN470GetPhyParam | ( | GetPhyParams_t * | getPhy | ) |
The function gets a value of a specific phy attribute.
[IN] | getPhy Pointer to the function parameters. |
Returns | a structure containing the PHY parameter. |
void RegionCN470SetBandTxDone | ( | SetBandTxDoneParams_t * | txDone | ) |
Updates the last TX done parameters of the current channel.
[IN] | txDone Pointer to the function parameters. |
void RegionCN470InitDefaults | ( | InitDefaultsParams_t * | params | ) |
Initializes the channels masks and the channels.
[IN] | type Sets the initialization type. |
bool RegionCN470Verify | ( | VerifyParams_t * | verify, |
PhyAttribute_t | phyAttribute | ||
) |
Verifies a parameter.
[IN] | verify Pointer to the function parameters. |
[IN] | type Sets the initialization type. |
Returns | true, if the parameter is valid. |
void RegionCN470ApplyCFList | ( | ApplyCFListParams_t * | applyCFList | ) |
The function parses the input buffer and sets up the channels of the CF list.
[IN] | applyCFList Pointer to the function parameters. |
bool RegionCN470ChanMaskSet | ( | ChanMaskSetParams_t * | chanMaskSet | ) |
Sets a channels mask.
[IN] | chanMaskSet Pointer to the function parameters. |
Returns | true, if the channels mask could be set. |
void RegionCN470ComputeRxWindowParameters | ( | int8_t | datarate, |
uint8_t | minRxSymbols, | ||
uint32_t | rxError, | ||
RxConfigParams_t * | rxConfigParams | ||
) |
Computes the Rx window timeout and offset.
[IN] | datarate Rx window datarate index to be used |
[IN] | minRxSymbols Minimum required number of symbols to detect an Rx frame. |
[IN] | rxError System maximum timing error of the receiver. In milliseconds The receiver will turn on in a [-rxError : +rxError] ms interval around RxOffset |
[OUT]rxConfigParams | Returns updated WindowTimeout and WindowOffset fields. |
bool RegionCN470RxConfig | ( | RxConfigParams_t * | rxConfig, |
int8_t * | datarate | ||
) |
Configuration of the RX windows.
[IN] | rxConfig Pointer to the function parameters. |
[OUT] | datarate The datarate index which was set. |
Returns | true, if the configuration was applied successfully. |
bool RegionCN470TxConfig | ( | TxConfigParams_t * | txConfig, |
int8_t * | txPower, | ||
TimerTime_t * | txTimeOnAir | ||
) |
TX configuration.
[IN] | txConfig Pointer to the function parameters. |
[OUT] | txPower The tx power index which was set. |
[OUT] | txTimeOnAir The time-on-air of the frame. |
Returns | true, if the configuration was applied successfully. |
uint8_t RegionCN470LinkAdrReq | ( | LinkAdrReqParams_t * | linkAdrReq, |
int8_t * | drOut, | ||
int8_t * | txPowOut, | ||
uint8_t * | nbRepOut, | ||
uint8_t * | nbBytesParsed | ||
) |
The function processes a Link ADR Request.
[IN] | linkAdrReq Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
uint8_t RegionCN470RxParamSetupReq | ( | RxParamSetupReqParams_t * | rxParamSetupReq | ) |
The function processes a RX Parameter Setup Request.
[IN] | rxParamSetupReq Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
int8_t RegionCN470NewChannelReq | ( | NewChannelReqParams_t * | newChannelReq | ) |
The function processes a Channel Request.
[IN] | newChannelReq Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
int8_t RegionCN470TxParamSetupReq | ( | TxParamSetupReqParams_t * | txParamSetupReq | ) |
The function processes a TX ParamSetup Request.
[IN] | txParamSetupReq Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. Returns -1, if the functionality is not implemented. In this case, the end node shall not process the command. |
int8_t RegionCN470DlChannelReq | ( | DlChannelReqParams_t * | dlChannelReq | ) |
The function processes a DlChannel Request.
[IN] | dlChannelReq Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
int8_t RegionCN470AlternateDr | ( | int8_t | currentDr, |
AlternateDrType_t | type | ||
) |
Alternates the datarate of the channel for the join request.
[IN] | currentDr Current datarate. |
Datarate | to apply. |
LoRaMacStatus_t RegionCN470NextChannel | ( | NextChanParams_t * | nextChanParams, |
uint8_t * | channel, | ||
TimerTime_t * | time, | ||
TimerTime_t * | aggregatedTimeOff | ||
) |
Searches and set the next random available channel.
[OUT] | channel Next channel to use for TX. |
[OUT] | time Time to wait for the next transmission according to the duty cycle. |
[OUT] | aggregatedTimeOff Updates the aggregated time off. |
Function | status [1: OK, 0: Unable to find a channel on the current datarate] |
LoRaMacStatus_t RegionCN470ChannelAdd | ( | ChannelAddParams_t * | channelAdd | ) |
Adds a channel.
[IN] | channelAdd Pointer to the function parameters. |
Status | of the operation. |
bool RegionCN470ChannelsRemove | ( | ChannelRemoveParams_t * | channelRemove | ) |
Removes a channel.
[IN] | channelRemove Pointer to the function parameters. |
Returns | true, if the channel was removed successfully. |
uint8_t RegionCN470ApplyDrOffset | ( | uint8_t | downlinkDwellTime, |
int8_t | dr, | ||
int8_t | drOffset | ||
) |
Computes new datarate according to the given offset.
[IN] | downlinkDwellTime Downlink dwell time configuration. 0: No limit, 1: 400ms |
[IN] | dr Current datarate |
[IN] | drOffset Offset to be applied |
newDr | Computed datarate. |
void RegionCN470RxBeaconSetup | ( | RxBeaconSetup_t * | rxBeaconSetup, |
uint8_t * | outDr | ||
) |
Sets the radio into beacon reception mode.
[IN] | rxBeaconSetup Pointer to the function parameters |
uint32_t RegionCN470A20GetDownlinkFrequency | ( | uint8_t | channel, |
uint8_t | joinChannelIndex, | ||
bool | isPingSlot | ||
) |
Calculation of the beacon frequency.
[IN] | channel The Beacon channel number. |
[IN] | joinChannelIndex The join channel index. |
[IN] | isPingSlot Set to true, if its a ping slot. |
Returns | the beacon frequency. |
uint8_t RegionCN470A20GetBeaconChannelOffset | ( | uint8_t | joinChannelIndex | ) |
Performs the update of the channelsMask based on the input parameters for the channel plan type A, 20MHz.
[IN] | joinChannelIndex The join channel index. |
Returns | the offset for the given join channel. |
uint8_t RegionCN470A20LinkAdrChMaskUpdate | ( | uint16_t * | channelsMask, |
uint8_t | chMaskCntl, | ||
uint16_t | chanMask, | ||
ChannelParams_t * | channels | ||
) |
Performs the update of the channelsMask based on the input parameters for the channel plan type A, 20MHz.
[IN] | channelsMask A pointer to the channels mask. |
[IN] | chMaskCntl The value of the chMaskCntl field of the LinkAdrReq. |
[IN] | chanMask The value of the chanMask field of the LinkAdrReq. |
[IN] | channels A pointer to the available channels. |
Status | of the operation. Return 0x07 if the channels mask is valid. |
bool RegionCN470A20VerifyRfFreq | ( | uint32_t | frequency | ) |
Verifies if the frequency provided is valid for the channel plan type A, 20MHz.
[IN] | frequency The frequency to verify. |
Returns | true, if the frequency is valid. |
void RegionCN470A20InitializeChannels | ( | ChannelParams_t * | channels | ) |
Initializes all channels, datarates, frequencies and bands for the channel plan type A, 20MHz.
[IN] | channels A pointer to the available channels. |
void RegionCN470A20InitializeChannelsMask | ( | uint16_t * | channelsDefaultMask | ) |
Initializes the channels default mask for the channel plan type A, 20MHz.
[IN] | channelsDefaultMask A pointer to the channels default mask. |
uint32_t RegionCN470A20GetRx1Frequency | ( | uint8_t | channel | ) |
Computes the frequency for the RX1 window for the channel plan type A, 20MHz.
[IN] | channel The channel utilized currently. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470A20GetRx2Frequency | ( | uint8_t | joinChannelIndex, |
bool | isOtaaDevice | ||
) |
Computes the frequency for the RX2 window for the channel plan type A, 20MHz.
[IN] | joinChannelIndex The join channel index. |
[IN] | isOtaaDevice Set to true, if the device is an OTAA device. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470A26GetDownlinkFrequency | ( | uint8_t | channel, |
uint8_t | joinChannelIndex, | ||
bool | isPingSlot | ||
) |
Calculation of the beacon frequency.
[IN] | channel The Beacon channel number. |
[IN] | joinChannelIndex The join channel index. |
[IN] | isPingSlot Set to true, if its a ping slot. |
Returns | the beacon frequency. |
uint8_t RegionCN470A26GetBeaconChannelOffset | ( | uint8_t | joinChannelIndex | ) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type A, 26MHz.
[IN] | joinChannelIndex The join channel index. |
Returns | the offset for the given join channel. |
uint8_t RegionCN470A26LinkAdrChMaskUpdate | ( | uint16_t * | channelsMask, |
uint8_t | chMaskCntl, | ||
uint16_t | chanMask, | ||
ChannelParams_t * | channels | ||
) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type A, 26MHz.
[IN] | channelsMask A pointer to the channels mask. |
[IN] | chMaskCntl The value of the chMaskCntl field of the LinkAdrReq. |
[IN] | chanMask The value of the chanMask field of the LinkAdrReq. |
[IN] | channels A pointer to the available channels. |
Status | of the operation. Return 0x07 if the channels mask is valid. |
bool RegionCN470A26VerifyRfFreq | ( | uint32_t | frequency | ) |
Verifies if the frequency provided is valid for the Channel plan type A, 26MHz.
[IN] | frequency The frequency to verify. |
Returns | true, if the frequency is valid. |
void RegionCN470A26InitializeChannels | ( | ChannelParams_t * | channels | ) |
Initializes all channels, datarates, frequencies and bands for the Channel plan type A, 26MHz.
[IN] | channels A pointer to the available channels. |
void RegionCN470A26InitializeChannelsMask | ( | uint16_t * | channelsDefaultMask | ) |
Initializes the channels default mask for the Channel plan type A, 26MHz.
[IN] | channelsDefaultMask A pointer to the channels default mask. |
uint32_t RegionCN470A26GetRx1Frequency | ( | uint8_t | channel | ) |
Computes the frequency for the RX1 window for the Channel plan type A, 26MHz.
[IN] | channel The channel utilized currently. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470A26GetRx2Frequency | ( | uint8_t | joinChannelIndex, |
bool | isOtaaDevice | ||
) |
Computes the frequency for the RX2 window for the Channel plan type A, 26MHz.
[IN] | joinChannelIndex The join channel index. |
[IN] | isOtaaDevice Set to true, if the device is an OTAA device. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470B20GetDownlinkFrequency | ( | uint8_t | channel, |
uint8_t | joinChannelIndex, | ||
bool | isPingSlot | ||
) |
Calculation of the beacon frequency.
[IN] | channel The Beacon channel number. |
[IN] | joinChannelIndex The join channel index. |
[IN] | isPingSlot Set to true, if its a ping slot. |
Returns | the beacon frequency. |
uint8_t RegionCN470B20GetBeaconChannelOffset | ( | uint8_t | joinChannelIndex | ) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 20MHz.
[IN] | joinChannelIndex The join channel index. |
Returns | the offset for the given join channel. |
uint8_t RegionCN470B20LinkAdrChMaskUpdate | ( | uint16_t * | channelsMask, |
uint8_t | chMaskCntl, | ||
uint16_t | chanMask, | ||
ChannelParams_t * | channels | ||
) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 20MHz.
[IN] | channelsMask A pointer to the channels mask. |
[IN] | chMaskCntl The value of the chMaskCntl field of the LinkAdrReq. |
[IN] | chanMask The value of the chanMask field of the LinkAdrReq. |
[IN] | channels A pointer to the available channels. |
Status | of the operation. Return 0x07 if the channels mask is valid. |
bool RegionCN470B20VerifyRfFreq | ( | uint32_t | frequency | ) |
Verifies if the frequency provided is valid for the Channel plan type B, 20MHz.
[IN] | frequency The frequency to verify. |
Returns | true, if the frequency is valid. |
void RegionCN470B20InitializeChannels | ( | ChannelParams_t * | channels | ) |
Initializes all channels, datarates, frequencies and bands for the Channel plan type B, 20MHz.
[IN] | channels A pointer to the available channels. |
void RegionCN470B20InitializeChannelsMask | ( | uint16_t * | channelsDefaultMask | ) |
Initializes the channels default mask for the Channel plan type B, 20MHz.
[IN] | channelsDefaultMask A pointer to the channels default mask. |
uint32_t RegionCN470B20GetRx1Frequency | ( | uint8_t | channel | ) |
Computes the frequency for the RX1 window for the Channel plan type B, 20MHz.
[IN] | channel The channel utilized currently. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470B20GetRx2Frequency | ( | uint8_t | joinChannelIndex, |
bool | isOtaaDevice | ||
) |
Computes the frequency for the RX2 window for the Channel plan type B, 20MHz.
[IN] | joinChannelIndex The join channel index. |
[IN] | isOtaaDevice Set to true, if the device is an OTAA device. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470B26GetDownlinkFrequency | ( | uint8_t | channel, |
uint8_t | joinChannelIndex, | ||
bool | isPingSlot | ||
) |
Calculation of the beacon frequency.
[IN] | channel The Beacon channel number. |
[IN] | joinChannelIndex The join channel index. |
[IN] | isPingSlot Set to true, if its a ping slot. |
Returns | the beacon frequency. |
uint8_t RegionCN470B26GetBeaconChannelOffset | ( | uint8_t | joinChannelIndex | ) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 26MHz.
[IN] | joinChannelIndex The join channel index. |
Returns | the offset for the given join channel. |
uint8_t RegionCN470B26LinkAdrChMaskUpdate | ( | uint16_t * | channelsMask, |
uint8_t | chMaskCntl, | ||
uint16_t | chanMask, | ||
ChannelParams_t * | channels | ||
) |
Performs the update of the channelsMask based on the input parameters for the Channel plan type B, 26MHz.
[IN] | channelsMask A pointer to the channels mask. |
[IN] | chMaskCntl The value of the chMaskCntl field of the LinkAdrReq. |
[IN] | chanMask The value of the chanMask field of the LinkAdrReq. |
[IN] | channels A pointer to the available channels. |
Status | of the operation. Return 0x07 if the channels mask is valid. |
bool RegionCN470B26VerifyRfFreq | ( | uint32_t | frequency | ) |
Verifies if the frequency provided is valid for the Channel plan type B, 26MHz.
[IN] | frequency The frequency to verify. |
Returns | true, if the frequency is valid. |
void RegionCN470B26InitializeChannels | ( | ChannelParams_t * | channels | ) |
Initializes all channels, datarates, frequencies and bands for the Channel plan type B, 26MHz.
[IN] | channels A pointer to the available channels. |
void RegionCN470B26InitializeChannelsMask | ( | uint16_t * | channelsDefaultMask | ) |
Initializes the channels mask and the channels default mask for the Channel plan type B, 26MHz.
[IN] | channelsDefaultMask A pointer to the channels default mask. |
uint32_t RegionCN470B26GetRx1Frequency | ( | uint8_t | channel | ) |
Computes the frequency for the RX1 window for the Channel plan type B, 26MHz.
[IN] | channel The channel utilized currently. |
Returns | the frequency which shall be used. |
uint32_t RegionCN470B26GetRx2Frequency | ( | uint8_t | joinChannelIndex, |
bool | isOtaaDevice | ||
) |
Computes the frequency for the RX2 window for the Channel plan type B, 26MHz.
[IN] | joinChannelIndex The join channel index. |
[IN] | isOtaaDevice Set to true, if the device is an OTAA device. |
Returns | the frequency which shall be used. |