![]() |
SX126x-Arduino
1.2.1
|
This is a hybrid implementation for US915, supporting 16 uplink channels only. More...
Functions | |
PhyParam_t | RegionUS915HybridGetPhyParam (GetPhyParams_t *getPhy) |
The function gets a value of a specific phy attribute. More... | |
void | RegionUS915HybridSetBandTxDone (SetBandTxDoneParams_t *txDone) |
Updates the last TX done parameters of the current channel. More... | |
void | RegionUS915HybridInitDefaults (InitType_t type) |
Initializes the channels masks and the channels. More... | |
bool | RegionUS915HybridVerify (VerifyParams_t *verify, PhyAttribute_t phyAttribute) |
Verifies a parameter. More... | |
void | RegionUS915HybridApplyCFList (ApplyCFListParams_t *applyCFList) |
The function parses the input buffer and sets up the channels of the CF list. More... | |
bool | RegionUS915HybridChanMaskSet (ChanMaskSetParams_t *chanMaskSet) |
Sets a channels mask. More... | |
bool | RegionUS915HybridAdrNext (AdrNextParams_t *adrNext, int8_t *drOut, int8_t *txPowOut, uint32_t *adrAckCounter) |
Calculates the next datarate to set, when ADR is on or off. More... | |
void | RegionUS915HybridComputeRxWindowParameters (int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams) |
bool | RegionUS915HybridRxConfig (RxConfigParams_t *rxConfig, int8_t *datarate) |
Configuration of the RX windows. More... | |
bool | RegionUS915HybridTxConfig (TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir) |
TX configuration. More... | |
uint8_t | RegionUS915HybridLinkAdrReq (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 | RegionUS915HybridRxParamSetupReq (RxParamSetupReqParams_t *rxParamSetupReq) |
The function processes a RX Parameter Setup Request. More... | |
uint8_t | RegionUS915HybridNewChannelReq (NewChannelReqParams_t *newChannelReq) |
The function processes a Channel Request. More... | |
int8_t | RegionUS915HybridTxParamSetupReq (TxParamSetupReqParams_t *txParamSetupReq) |
The function processes a TX ParamSetup Request. More... | |
uint8_t | RegionUS915HybridDlChannelReq (DlChannelReqParams_t *dlChannelReq) |
The function processes a DlChannel Request. More... | |
int8_t | RegionUS915HybridAlternateDr (AlternateDrParams_t *alternateDr) |
Alternates the datarate of the channel for the join request. More... | |
void | RegionUS915HybridCalcBackOff (CalcBackOffParams_t *calcBackOff) |
Calculates the back-off time. More... | |
bool | RegionUS915HybridNextChannel (NextChanParams_t *nextChanParams, uint8_t *channel, TimerTime_t *time, TimerTime_t *aggregatedTimeOff) |
Searches and set the next random available channel. More... | |
LoRaMacStatus_t | RegionUS915HybridChannelAdd (ChannelAddParams_t *channelAdd) |
Adds a channel. More... | |
bool | RegionUS915HybridChannelsRemove (ChannelRemoveParams_t *channelRemove) |
Removes a channel. More... | |
void | RegionUS915HybridSetContinuousWave (ContinuousWaveParams_t *continuousWave) |
Sets the radio into continuous wave mode. More... | |
uint8_t | RegionUS915HybridApplyDrOffset (uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset) |
Computes new datarate according to the given offset. More... | |
Variables | |
static const uint8_t | DataratesUS915_HYBRID [] = {10, 9, 8, 7, 8, 0, 0, 0, 12, 11, 10, 9, 8, 7, 0, 0} |
static const uint32_t | BandwidthsUS915_HYBRID [] = {125000, 125000, 125000, 125000, 500000, 0, 0, 0, 500000, 500000, 500000, 500000, 500000, 500000, 0, 0} |
static const int8_t | DatarateOffsetsUS915_HYBRID [5][4] |
static const uint8_t | MaxPayloadOfDatarateUS915_HYBRID [] = {11, 53, 125, 242, 242, 0, 0, 0, 53, 129, 242, 242, 242, 242, 0, 0} |
static const uint8_t | MaxPayloadOfDatarateRepeaterUS915_HYBRID [] = {11, 53, 125, 242, 242, 0, 0, 0, 33, 109, 222, 222, 222, 222, 0, 0} |
This is a hybrid implementation for US915, supporting 16 uplink channels only.
#define US915_HYBRID_MAX_NB_CHANNELS 72 |
LoRaMac maximum number of channels
#define US915_HYBRID_TX_MIN_DATARATE DR_0 |
Minimal datarate that can be used by the node
#define US915_HYBRID_TX_MAX_DATARATE DR_4 |
Maximal datarate that can be used by the node
#define US915_HYBRID_RX_MIN_DATARATE DR_8 |
Minimal datarate that can be used by the node
#define US915_HYBRID_RX_MAX_DATARATE DR_13 |
Maximal datarate that can be used by the node
#define US915_HYBRID_DEFAULT_DATARATE DR_0 |
Default datarate used by the node
#define US915_HYBRID_MIN_RX1_DR_OFFSET 0 |
Minimal Rx1 receive datarate offset
#define US915_HYBRID_MAX_RX1_DR_OFFSET 3 |
Maximal Rx1 receive datarate offset
#define US915_HYBRID_DEFAULT_RX1_DR_OFFSET 0 |
Default Rx1 receive datarate offset
#define US915_HYBRID_MIN_TX_POWER TX_POWER_10 |
Minimal Tx output power that can be used by the node
#define US915_HYBRID_MAX_TX_POWER TX_POWER_0 |
Maximal Tx output power that can be used by the node
#define US915_HYBRID_DEFAULT_TX_POWER TX_POWER_0 |
Default Tx output power used by the node
#define US915_HYBRID_DEFAULT_MAX_ERP 30.0f |
Default Max ERP
#define US915_HYBRID_ADR_ACK_LIMIT 64 |
ADR Ack limit
#define US915_HYBRID_ADR_ACK_DELAY 32 |
ADR Ack delay
#define US915_HYBRID_DUTY_CYCLE_ENABLED 0 |
Enabled or disabled the duty cycle
#define US915_HYBRID_MAX_RX_WINDOW 3000 |
Maximum RX window duration
#define US915_HYBRID_RECEIVE_DELAY1 1000 |
Receive delay 1
#define US915_HYBRID_RECEIVE_DELAY2 2000 |
Receive delay 2
#define US915_HYBRID_JOIN_ACCEPT_DELAY1 5000 |
Join accept delay 1
#define US915_HYBRID_JOIN_ACCEPT_DELAY2 6000 |
Join accept delay 2
#define US915_HYBRID_MAX_FCNT_GAP 16384 |
Maximum frame counter gap
#define US915_HYBRID_ACKTIMEOUT 2000 |
Ack timeout
#define US915_HYBRID_ACK_TIMEOUT_RND 1000 |
Random ack timeout limits
#define US915_HYBRID_RX_WND_2_FREQ 923300000 |
Second reception window channel frequency definition.
#define US915_HYBRID_RX_WND_2_DR DR_8 |
Second reception window channel datarate definition.
#define US915_HYBRID_MAX_NB_BANDS 1 |
LoRaMac maximum number of bands
#define US915_HYBRID_BAND0 |
Band 0 definition { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
#define US915_HYBRID_FIRST_RX1_CHANNEL ((uint32_t)923300000) |
Defines the first channel for RX window 1 for US band
#define US915_HYBRID_LAST_RX1_CHANNEL ((uint32_t)927500000) |
Defines the last channel for RX window 1 for US band
#define US915_HYBRID_STEPWIDTH_RX1_CHANNEL ((uint32_t)600000) |
Defines the step width of the channels for RX window 1
PhyParam_t RegionUS915HybridGetPhyParam | ( | GetPhyParams_t * | getPhy | ) |
The function gets a value of a specific phy attribute.
getPhy | Pointer to the function parameters. |
Returns | a structure containing the PHY parameter. |
void RegionUS915HybridSetBandTxDone | ( | SetBandTxDoneParams_t * | txDone | ) |
Updates the last TX done parameters of the current channel.
txDone | Pointer to the function parameters. |
void RegionUS915HybridInitDefaults | ( | InitType_t | type | ) |
Initializes the channels masks and the channels.
type | Sets the initialization type. |
bool RegionUS915HybridVerify | ( | VerifyParams_t * | verify, |
PhyAttribute_t | phyAttribute | ||
) |
Verifies a parameter.
verify | Pointer to the function parameters. |
phyAttribute | Sets the initialization type. |
Returns | true, if the parameter is valid. |
void RegionUS915HybridApplyCFList | ( | ApplyCFListParams_t * | applyCFList | ) |
The function parses the input buffer and sets up the channels of the CF list.
applyCFList | Pointer to the function parameters. |
bool RegionUS915HybridChanMaskSet | ( | ChanMaskSetParams_t * | chanMaskSet | ) |
Sets a channels mask.
chanMaskSet | Pointer to the function parameters. |
Returns | true, if the channels mask could be set. |
bool RegionUS915HybridAdrNext | ( | AdrNextParams_t * | adrNext, |
int8_t * | drOut, | ||
int8_t * | txPowOut, | ||
uint32_t * | adrAckCounter | ||
) |
Calculates the next datarate to set, when ADR is on or off.
adrNext | Pointer to the function parameters. |
drOut | The calculated datarate for the next TX. |
txPowOut | The TX power for the next TX. |
adrAckCounter | The calculated ADR acknowledgement counter. |
Returns | true, if an ADR request should be performed. |
void RegionUS915HybridComputeRxWindowParameters | ( | int8_t | datarate, |
uint8_t | minRxSymbols, | ||
uint32_t | rxError, | ||
RxConfigParams_t * | rxConfigParams | ||
) |
Computes the Rx window timeout and offset.
datarate | Rx window datarate index to be used |
minRxSymbols | Minimum required number of symbols to detect an Rx frame. |
rxError | System maximum timing error of the receiver. In milliseconds The receiver will turn on in a [-rxError : +rxError] ms interval around RxOffset |
rxConfigParams | Returns updated WindowTimeout and WindowOffset fields. |
bool RegionUS915HybridRxConfig | ( | RxConfigParams_t * | rxConfig, |
int8_t * | datarate | ||
) |
Configuration of the RX windows.
rxConfig | Pointer to the function parameters. |
datarate | The datarate index which was set. |
Returns | true, if the configuration was applied successfully. |
bool RegionUS915HybridTxConfig | ( | TxConfigParams_t * | txConfig, |
int8_t * | txPower, | ||
TimerTime_t * | txTimeOnAir | ||
) |
TX configuration.
txConfig | Pointer to the function parameters. |
txPower | The tx power index which was set. |
txTimeOnAir | The time-on-air of the frame. |
Returns | true, if the configuration was applied successfully. |
uint8_t RegionUS915HybridLinkAdrReq | ( | LinkAdrReqParams_t * | linkAdrReq, |
int8_t * | drOut, | ||
int8_t * | txPowOut, | ||
uint8_t * | nbRepOut, | ||
uint8_t * | nbBytesParsed | ||
) |
The function processes a Link ADR Request.
linkAdrReq | Pointer to the function parameters. |
drOut | Data rate. |
txPowOut | TX power. |
nbRepOut | Number of repeats. |
nbBytesParsed | Number of parsed bytes. |
Returns | the status of the operation, according to the LoRaMAC specification. |
uint8_t RegionUS915HybridRxParamSetupReq | ( | RxParamSetupReqParams_t * | rxParamSetupReq | ) |
The function processes a RX Parameter Setup Request.
rxParamSetupReq | Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
uint8_t RegionUS915HybridNewChannelReq | ( | NewChannelReqParams_t * | newChannelReq | ) |
The function processes a Channel Request.
newChannelReq | Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
int8_t RegionUS915HybridTxParamSetupReq | ( | TxParamSetupReqParams_t * | txParamSetupReq | ) |
The function processes a TX ParamSetup Request.
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. |
uint8_t RegionUS915HybridDlChannelReq | ( | DlChannelReqParams_t * | dlChannelReq | ) |
The function processes a DlChannel Request.
dlChannelReq | Pointer to the function parameters. |
Returns | the status of the operation, according to the LoRaMAC specification. |
int8_t RegionUS915HybridAlternateDr | ( | AlternateDrParams_t * | alternateDr | ) |
Alternates the datarate of the channel for the join request.
alternateDr | Pointer to the function parameters. |
Datarate | to apply. |
void RegionUS915HybridCalcBackOff | ( | CalcBackOffParams_t * | calcBackOff | ) |
Calculates the back-off time.
calcBackOff | Pointer to the function parameters. |
bool RegionUS915HybridNextChannel | ( | NextChanParams_t * | nextChanParams, |
uint8_t * | channel, | ||
TimerTime_t * | time, | ||
TimerTime_t * | aggregatedTimeOff | ||
) |
Searches and set the next random available channel.
nextChanParams | Parameters of next channel to use for TX. |
channel | Next channel to use for TX. |
time | Time to wait for the next transmission according to the duty cycle. |
aggregatedTimeOff | Updates the aggregated time off. |
Function | status [1: OK, 0: Unable to find a channel on the current datarate] |
LoRaMacStatus_t RegionUS915HybridChannelAdd | ( | ChannelAddParams_t * | channelAdd | ) |
Adds a channel.
channelAdd | Pointer to the function parameters. |
Status | of the operation. |
bool RegionUS915HybridChannelsRemove | ( | ChannelRemoveParams_t * | channelRemove | ) |
Removes a channel.
channelRemove | Pointer to the function parameters. |
Returns | true, if the channel was removed successfully. |
void RegionUS915HybridSetContinuousWave | ( | ContinuousWaveParams_t * | continuousWave | ) |
Sets the radio into continuous wave mode.
continuousWave | Pointer to the function parameters. |
uint8_t RegionUS915HybridApplyDrOffset | ( | uint8_t | downlinkDwellTime, |
int8_t | dr, | ||
int8_t | drOffset | ||
) |
Computes new datarate according to the given offset.
downlinkDwellTime | Downlink dwell time configuration. 0: No limit, 1: 400ms |
dr | Current datarate |
drOffset | Offset to be applied |
newDr | Computed datarate. |
|
static |
Data rates table definition
|
static |
Bandwidths table definition in Hz
|
static |
|
static |
Maximum payload with respect to the datarate index. Cannot operate with repeater.
|
static |
Maximum payload with respect to the datarate index. Can operate with repeater.