191 lines
7 KiB
C++
191 lines
7 KiB
C++
#include "LoRaWAN.h"
|
|
|
|
#if !defined(RADIOLIB_EXCLUDE_LORAWAN)
|
|
|
|
uint8_t getDownlinkDataRate(uint8_t uplink, uint8_t offset, uint8_t base, uint8_t lim) {
|
|
int8_t dr = uplink - offset + base;
|
|
if(dr < lim) {
|
|
dr = lim;
|
|
}
|
|
return(dr);
|
|
}
|
|
|
|
const LoRaWANBand_t EU868 = {
|
|
.downlinkDataRateBase = 0,
|
|
.downlinkDataRateMin = 0,
|
|
.payloadLenMax = {
|
|
59, 59, 59, 123, 230, 230, 230, 230,
|
|
0, 0, 0, 0, 0, 0, 0, 0 },
|
|
.powerMax = 16,
|
|
.powerNumSteps = 7,
|
|
.cfListType = RADIOLIB_LORAWAN_CFLIST_TYPE_FREQUENCIES,
|
|
.numChannelSpans = 1,
|
|
.defaultChannels = {
|
|
{
|
|
.direction = RADIOLIB_LORAWAN_CHANNEL_DIR_BOTH,
|
|
.joinRequestDataRate = RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
.numChannels = 3,
|
|
.freqStart = 868.1,
|
|
.freqStep = 0.2,
|
|
.dataRates = {
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_12 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_11 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_10 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_9 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_8 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_7 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_7 | RADIOLIB_LORAWAN_DATA_RATE_BW_250_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_FSK_50_K,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED
|
|
}
|
|
},
|
|
RADIOLIB_LORAWAN_CHANNEL_SPAN_NONE,
|
|
RADIOLIB_LORAWAN_CHANNEL_SPAN_NONE,
|
|
},
|
|
.backupChannel = {
|
|
.direction = RADIOLIB_LORAWAN_CHANNEL_DIR_DOWNLINK,
|
|
.joinRequestDataRate = RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
.numChannels = 1,
|
|
.freqStart = 869.858,
|
|
.freqStep = 0,
|
|
.dataRates = {
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_12 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
}
|
|
}
|
|
};
|
|
|
|
const LoRaWANBand_t US915 = {
|
|
.downlinkDataRateBase = 10,
|
|
.downlinkDataRateMin = 8,
|
|
.payloadLenMax = {
|
|
19, 61, 133, 250, 250, 0, 0, 0,
|
|
41, 117, 230, 230, 230, 230, 0, 0 },
|
|
.powerMax = 30,
|
|
.powerNumSteps = 10,
|
|
.cfListType = RADIOLIB_LORAWAN_CFLIST_TYPE_MASK,
|
|
.numChannelSpans = 3,
|
|
.defaultChannels = {
|
|
{
|
|
.direction = RADIOLIB_LORAWAN_CHANNEL_DIR_UPLINK,
|
|
.joinRequestDataRate = 0,
|
|
.numChannels = 64,
|
|
.freqStart = 902.3,
|
|
.freqStep = 0.2,
|
|
.dataRates = {
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_10 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_9 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_8 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_7 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
}
|
|
}, {
|
|
.direction = RADIOLIB_LORAWAN_CHANNEL_DIR_UPLINK,
|
|
.joinRequestDataRate = 4,
|
|
.numChannels = 8,
|
|
.freqStart = 903,
|
|
.freqStep = 1.6,
|
|
.dataRates = {
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_8 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
}
|
|
}, {
|
|
.direction = RADIOLIB_LORAWAN_CHANNEL_DIR_DOWNLINK,
|
|
.joinRequestDataRate = RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
.numChannels = 8,
|
|
.freqStart = 923.3,
|
|
.freqStep = 0.6,
|
|
.dataRates = {
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_12 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_11 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_10 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_9 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_8 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_7 | RADIOLIB_LORAWAN_DATA_RATE_BW_500_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
}
|
|
},
|
|
},
|
|
.backupChannel = {
|
|
.direction = RADIOLIB_LORAWAN_CHANNEL_DIR_DOWNLINK,
|
|
.joinRequestDataRate = RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
.numChannels = 1,
|
|
.freqStart = 869.858,
|
|
.freqStep = 0,
|
|
.dataRates = {
|
|
RADIOLIB_LORAWAN_DATA_RATE_SF_12 | RADIOLIB_LORAWAN_DATA_RATE_BW_125_KHZ,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
RADIOLIB_LORAWAN_DATA_RATE_UNUSED,
|
|
}
|
|
}
|
|
};
|
|
|
|
#endif
|