![]() |
SX126x-Arduino
2.0.1
|
Implementation according to LoRaWAN Specification v1.0.2. More...
Functions | |
| PhyParam_t | RegionAS923GetPhyParam (GetPhyParams_t *getPhy) |
| The function gets a value of a specific phy attribute. More... | |
| void | RegionAS923SetBandTxDone (SetBandTxDoneParams_t *txDone) |
| Updates the last TX done parameters of the current channel. More... | |
| void | RegionAS923InitDefaults (InitType_t type) |
| Initializes the channels masks and the channels. More... | |
| bool | RegionAS923Verify (VerifyParams_t *verify, PhyAttribute_t phyAttribute) |
| Verifies a parameter. More... | |
| void | RegionAS923ApplyCFList (ApplyCFListParams_t *applyCFList) |
| The function parses the input buffer and sets up the channels of the CF list. More... | |
| bool | RegionAS923ChanMaskSet (ChanMaskSetParams_t *chanMaskSet) |
| Sets a channels mask. More... | |
| bool | RegionAS923AdrNext (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 | RegionAS923ComputeRxWindowParameters (int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams) |
| bool | RegionAS923RxConfig (RxConfigParams_t *rxConfig, int8_t *datarate) |
| Configuration of the RX windows. More... | |
| bool | RegionAS923TxConfig (TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir) |
| TX configuration. More... | |
| uint8_t | RegionAS923LinkAdrReq (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 | RegionAS923RxParamSetupReq (RxParamSetupReqParams_t *rxParamSetupReq) |
| The function processes a RX Parameter Setup Request. More... | |
| uint8_t | RegionAS923NewChannelReq (NewChannelReqParams_t *newChannelReq) |
| The function processes a Channel Request. More... | |
| int8_t | RegionAS923TxParamSetupReq (TxParamSetupReqParams_t *txParamSetupReq) |
| The function processes a TX ParamSetup Request. More... | |
| uint8_t | RegionAS923DlChannelReq (DlChannelReqParams_t *dlChannelReq) |
| The function processes a DlChannel Request. More... | |
| int8_t | RegionAS923AlternateDr (AlternateDrParams_t *alternateDr) |
| Alternates the datarate of the channel for the join request. More... | |
| void | RegionAS923CalcBackOff (CalcBackOffParams_t *calcBackOff) |
| Calculates the back-off time. More... | |
| bool | RegionAS923NextChannel (NextChanParams_t *nextChanParams, uint8_t *channel, TimerTime_t *time, TimerTime_t *aggregatedTimeOff) |
| Searches and set the next random available channel. More... | |
| LoRaMacStatus_t | RegionAS923ChannelAdd (ChannelAddParams_t *channelAdd) |
| Adds a channel. More... | |
| bool | RegionAS923ChannelsRemove (ChannelRemoveParams_t *channelRemove) |
| Removes a channel. More... | |
| void | RegionAS923SetContinuousWave (ContinuousWaveParams_t *continuousWave) |
| Sets the radio into continuous wave mode. More... | |
| uint8_t | RegionAS923ApplyDrOffset (uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset) |
| Computes new datarate according to the given offset. More... | |
| bool | RegionAS923SetVersion (uint8_t version) |
| Adjust frequency band to AS923-1, AS923-2, AS923-3. More... | |
Variables | |
| static const uint8_t | DataratesAS923 [] = {12, 11, 10, 9, 8, 7, 7, 50} |
| static const uint32_t | BandwidthsAS923 [] = {125000, 125000, 125000, 125000, 125000, 125000, 250000, 0} |
| static const uint8_t | MaxPayloadOfDatarateDwell0AS923 [] = {59, 59, 59, 123, 230, 230, 230, 230} |
| static const uint8_t | MaxPayloadOfDatarateRepeaterDwell0AS923 [] = {59, 59, 59, 123, 250, 250, 250, 250} |
| static const uint8_t | MaxPayloadOfDatarateDwell1UpAS923 [] = {0, 0, 19, 61, 133, 250, 250, 250} |
| static const uint8_t | MaxPayloadOfDatarateDwell1DownAS923 [] = {0, 0, 19, 61, 133, 250, 250, 250} |
| static const int8_t | EffectiveRx1DrOffsetAS923 [] = {0, 1, 2, 3, 4, 5, -1, -2} |
Implementation according to LoRaWAN Specification v1.0.2.
| #define AS923_MAX_NB_CHANNELS 16 |
LoRaMac maximum number of channels
| #define AS923_NUMB_DEFAULT_CHANNELS 8 |
Number of default channels
| #define AS923_NUMB_CHANNELS_CF_LIST 5 |
Number of channels to apply for the CF list
| #define AS923_TX_MIN_DATARATE DR_0 |
Minimal datarate that can be used by the node
| #define AS923_TX_MAX_DATARATE DR_7 |
Maximal datarate that can be used by the node
| #define AS923_RX_MIN_DATARATE DR_0 |
Minimal datarate that can be used by the node
| #define AS923_RX_MAX_DATARATE DR_7 |
Maximal datarate that can be used by the node
| #define AS923_DEFAULT_DATARATE DR_2 |
Default datarate used by the node
| #define AS923_DWELL_LIMIT_DATARATE DR_2 |
The minimum datarate which is used when the dwell time is limited.
| #define AS923_MIN_RX1_DR_OFFSET 0 |
Minimal Rx1 receive datarate offset
| #define AS923_MAX_RX1_DR_OFFSET 7 |
Maximal Rx1 receive datarate offset
| #define AS923_DEFAULT_RX1_DR_OFFSET 0 |
Default Rx1 receive datarate offset
| #define AS923_MIN_TX_POWER TX_POWER_7 |
Minimal Tx output power that can be used by the node
| #define AS923_MAX_TX_POWER TX_POWER_0 |
Maximal Tx output power that can be used by the node
| #define AS923_DEFAULT_TX_POWER TX_POWER_0 |
Default Tx output power used by the node
| #define AS923_DEFAULT_UPLINK_DWELL_TIME 1 |
Default uplink dwell time configuration
| #define AS923_DEFAULT_DOWNLINK_DWELL_TIME 1 |
Default downlink dwell time configuration
| #define AS923_DEFAULT_MAX_EIRP 16.0f |
Default Max EIRP
| #define AS923_DEFAULT_ANTENNA_GAIN 2.15f |
Default antenna gain
| #define AS923_ADR_ACK_LIMIT 64 |
ADR Ack limit
| #define AS923_ADR_ACK_DELAY 32 |
ADR Ack delay
| #define AS923_DUTY_CYCLE_ENABLED 0 |
Enabled or disabled the duty cycle
| #define AS923_MAX_RX_WINDOW 3000 |
Maximum RX window duration
| #define AS923_RECEIVE_DELAY1 1000 |
Receive delay 1
| #define AS923_RECEIVE_DELAY2 2000 |
Receive delay 2
| #define AS923_JOIN_ACCEPT_DELAY1 5000 |
Join accept delay 1
| #define AS923_JOIN_ACCEPT_DELAY2 6000 |
Join accept delay 2
| #define AS923_MAX_FCNT_GAP 16384 |
Maximum frame counter gap
| #define AS923_ACKTIMEOUT 2000 |
Ack timeout
| #define AS923_ACK_TIMEOUT_RND 1000 |
Random ack timeout limits
| #define AS923_RX_WND_2_DR DR_2 |
Second reception window channel datarate definition.
| #define AS923_MAX_NB_BANDS 1 |
Maximum number of bands
| #define AS923_BAND0 |
Band 0 definition { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
| #define AS923_LC1 |
| #define AS923_LC2 |
LoRaMac channels which are allowed for the join procedure
| #define AS923_RSSI_FREE_TH -85 |
RSSI threshold for a free channel [dBm]
| #define AS923_CARRIER_SENSE_TIME 6 |
Specifies the time the node performs a carrier sense
| PhyParam_t RegionAS923GetPhyParam | ( | 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 RegionAS923SetBandTxDone | ( | SetBandTxDoneParams_t * | txDone | ) |
Updates the last TX done parameters of the current channel.
| txDone | Pointer to the function parameters. |
| void RegionAS923InitDefaults | ( | InitType_t | type | ) |
Initializes the channels masks and the channels.
| type | Sets the initialization type. |
| bool RegionAS923Verify | ( | 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 RegionAS923ApplyCFList | ( | 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 RegionAS923ChanMaskSet | ( | ChanMaskSetParams_t * | chanMaskSet | ) |
Sets a channels mask.
| chanMaskSet | Pointer to the function parameters. |
| Returns | true, if the channels mask could be set. |
| bool RegionAS923AdrNext | ( | 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 RegionAS923ComputeRxWindowParameters | ( | 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 RegionAS923RxConfig | ( | 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 RegionAS923TxConfig | ( | 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 RegionAS923LinkAdrReq | ( | 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 RegionAS923RxParamSetupReq | ( | 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 RegionAS923NewChannelReq | ( | 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 RegionAS923TxParamSetupReq | ( | 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 RegionAS923DlChannelReq | ( | 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 RegionAS923AlternateDr | ( | AlternateDrParams_t * | alternateDr | ) |
Alternates the datarate of the channel for the join request.
| alternateDr | Pointer to the function parameters. |
| Datarate | to apply. |
| void RegionAS923CalcBackOff | ( | CalcBackOffParams_t * | calcBackOff | ) |
Calculates the back-off time.
| calcBackOff | Pointer to the function parameters. |
| bool RegionAS923NextChannel | ( | 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 RegionAS923ChannelAdd | ( | ChannelAddParams_t * | channelAdd | ) |
Adds a channel.
| channelAdd | Pointer to the function parameters. |
| Status | of the operation. |
| bool RegionAS923ChannelsRemove | ( | ChannelRemoveParams_t * | channelRemove | ) |
Removes a channel.
| channelRemove | Pointer to the function parameters. |
| Returns | true, if the channel was removed successfully. |
| void RegionAS923SetContinuousWave | ( | ContinuousWaveParams_t * | continuousWave | ) |
Sets the radio into continuous wave mode.
| continuousWave | Pointer to the function parameters. |
| uint8_t RegionAS923ApplyDrOffset | ( | 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. |
| bool RegionAS923SetVersion | ( | uint8_t | version | ) |
Adjust frequency band to AS923-1, AS923-2, AS923-3.
| version | 1 => use default frequencies (AS923-1) 2 => adjust frequencies by substracting 1.8MHz (AS923-2) 3 => adjust frequencies by substracting 6.6MHz (AS923-3) 4 => adjust frequencies by substracting 5.9MHz (AS923-4), only lower 8 channels supported |
|
static |
Data rates table definition
|
static |
Bandwidths table definition in Hz
|
static |
Maximum payload with respect to the datarate index. Cannot operate with repeater. The table is valid for the dwell time configuration of 0 for uplinks and downlinks.
|
static |
Maximum payload with respect to the datarate index. Can operate with repeater. The table is valid for the dwell time configuration of 0 for uplinks and downlinks. The table provides repeater support.
|
static |
Maximum payload with respect to the datarate index. Can operate with and without repeater. The table proides repeater support. The table is only valid for uplinks.
|
static |
Maximum payload with respect to the datarate index. Can operate with and without repeater. The table proides repeater support. The table is only valid for downlinks.
|
static |
Effective datarate offsets for receive window 1.
1.8.18