mirror of
https://github.com/manuelbl/ttn-esp32.git
synced 2025-07-19 16:52:52 +02:00
Upgrade to mcci-catena/arduino-lmic 4.0.1-pre
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2016 IBM Corporation.
|
||||
* Copyright (c) 2017, 2019 MCCI Corporation.
|
||||
* Copyright (c) 2017, 2019-2021 MCCI Corporation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -55,6 +55,14 @@ CONST_TABLE(u1_t, _DR2RPS_CRC)[] = {
|
||||
ILLEGAL_RPS // [14]
|
||||
};
|
||||
|
||||
bit_t
|
||||
LMICus915_validDR(dr_t dr) {
|
||||
// use subtract here to avoid overflow
|
||||
if (dr >= LENOF_TABLE(_DR2RPS_CRC) - 2)
|
||||
return 0;
|
||||
return TABLE_GET_U1(_DR2RPS_CRC, dr+1)!=ILLEGAL_RPS;
|
||||
}
|
||||
|
||||
static CONST_TABLE(u1_t, maxFrameLens)[] = {
|
||||
19+5, 61+5, 133+5, 250+5, 250+5, 0, 0,0,
|
||||
61+5, 133+5, 250+5, 250+5, 250+5, 250+5
|
||||
@ -99,21 +107,34 @@ u4_t LMICus915_convFreq(xref2cu1_t ptr) {
|
||||
return freq;
|
||||
}
|
||||
|
||||
///
|
||||
/// \brief query number of default channels.
|
||||
///
|
||||
/// For US, we have no programmable channels; all channels
|
||||
/// are fixed. Return the total channel count.
|
||||
///
|
||||
u1_t LMIC_queryNumDefaultChannels() {
|
||||
return 64 + 8;
|
||||
}
|
||||
|
||||
///
|
||||
/// \brief LMIC_setupChannel for US915
|
||||
///
|
||||
/// \note there are no progammable channels for US915, so this API
|
||||
/// always returns FALSE.
|
||||
///
|
||||
bit_t LMIC_setupChannel(u1_t chidx, u4_t freq, u2_t drmap, s1_t band) {
|
||||
LMIC_API_PARAMETER(chidx);
|
||||
LMIC_API_PARAMETER(freq);
|
||||
LMIC_API_PARAMETER(drmap);
|
||||
LMIC_API_PARAMETER(band);
|
||||
|
||||
if (chidx < 72 || chidx >= 72 + MAX_XCHANNELS)
|
||||
return 0; // channels 0..71 are hardwired
|
||||
LMIC.xchFreq[chidx - 72] = freq;
|
||||
// TODO(tmm@mcci.com): don't use US SF directly, use something from the LMIC context or a static const
|
||||
LMIC.xchDrMap[chidx - 72] = drmap == 0 ? DR_RANGE_MAP(US915_DR_SF10, US915_DR_SF8C) : drmap;
|
||||
LMIC.channelMap[chidx >> 4] |= (1 << (chidx & 0xF));
|
||||
return 1;
|
||||
return 0; // channels 0..71 are hardwired
|
||||
}
|
||||
|
||||
bit_t LMIC_disableChannel(u1_t channel) {
|
||||
bit_t result = 0;
|
||||
if (channel < 72 + MAX_XCHANNELS) {
|
||||
if (channel < 72) {
|
||||
if (ENABLED_CHANNEL(channel)) {
|
||||
result = 1;
|
||||
if (IS_CHANNEL_125khz(channel))
|
||||
@ -128,7 +149,7 @@ bit_t LMIC_disableChannel(u1_t channel) {
|
||||
|
||||
bit_t LMIC_enableChannel(u1_t channel) {
|
||||
bit_t result = 0;
|
||||
if (channel < 72 + MAX_XCHANNELS) {
|
||||
if (channel < 72) {
|
||||
if (!ENABLED_CHANNEL(channel)) {
|
||||
result = 1;
|
||||
if (IS_CHANNEL_125khz(channel))
|
||||
@ -197,13 +218,7 @@ void LMICus915_updateTx(ostime_t txbeg) {
|
||||
} else {
|
||||
// at 500kHz bandwidth, we're allowed more power.
|
||||
LMIC.txpow = 26;
|
||||
if (chnl < 64 + 8) {
|
||||
LMIC.freq = US915_500kHz_UPFBASE + (chnl - 64)*US915_500kHz_UPFSTEP;
|
||||
}
|
||||
else {
|
||||
ASSERT(chnl < 64 + 8 + MAX_XCHANNELS);
|
||||
LMIC.freq = LMIC.xchFreq[chnl - 72];
|
||||
}
|
||||
LMIC.freq = US915_500kHz_UPFBASE + (chnl - 64)*US915_500kHz_UPFSTEP;
|
||||
}
|
||||
|
||||
// Update global duty cycle stats
|
||||
|
Reference in New Issue
Block a user