![]() |
LoRaMAC
4.6.0
Documentation of the API
|
LoRa MAC ADR implementation. More...
Go to the source code of this file.
Data Structures | |
| struct | CalcNextAdrParams_t |
Functions | |
| bool | LoRaMacAdrCalcNext (CalcNextAdrParams_t *adrNext, int8_t *drOut, int8_t *txPowOut, uint8_t *nbTransOut, uint32_t *adrAckCounter) |
| Calculates the next datarate to set, when ADR is on or off. More... | |
LoRa MAC ADR implementation.
| struct CalcNextAdrParams_t |
| Data Fields | ||
|---|---|---|
| bool | UpdateChanMask |
Set to true, if the function should update the channels mask. |
| bool | AdrEnabled |
Set to true, if ADR is enabled. |
| uint32_t | AdrAckCounter |
ADR ack counter. |
| uint16_t | AdrAckLimit |
ADR Ack limit |
| uint16_t | AdrAckDelay |
ADR Ack delay |
| int8_t | Datarate |
Datarate used currently. |
| int8_t | TxPower |
TX power used currently. |
| uint8_t | NbTrans |
NbTrans counter used currently. |
| uint8_t | UplinkDwellTime |
UplinkDwellTime |
| LoRaMacRegion_t | Region |
Region |
| bool LoRaMacAdrCalcNext | ( | CalcNextAdrParams_t * | adrNext, |
| int8_t * | drOut, | ||
| int8_t * | txPowOut, | ||
| uint8_t * | nbTransOut, | ||
| uint32_t * | adrAckCounter | ||
| ) |
Calculates the next datarate to set, when ADR is on or off.
Here is a summary of the actions:
| ADR_ACK_CNT | Action |
|---|---|
| 0... 63 | Do nothing |
| 64...95 | Set ADR ack bit |
| 96...127 | Set TX power to default (if already default, do nothing) |
| 128...159 | Set data rate to default (if already default, do nothing) |
| >=160 | Set NbTrans to 1, re-enable default channels |
| [IN] | adrNext Pointer to the function parameters. |
| [OUT] | drOut The calculated datarate for the next TX. |
| [OUT] | txPowOut The TX power for the next TX. |
| [OUT] | nbTransOut The NbTrans counter. |
| [OUT] | adrAckCounter The calculated ADR acknowledgement counter. |
| Returns | true, if an ADR request should be performed. |