Rastislav Vysoky
1 year ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with
20 additions and
7 deletions
-
examples/companion_radio/main.cpp
-
examples/simple_repeater/main.cpp
-
examples/simple_room_server/main.cpp
-
platformio.ini
-
src/Dispatcher.cpp
|
|
|
@ -1257,10 +1257,12 @@ void setup() { |
|
|
|
#ifdef SX126X_CURRENT_LIMIT |
|
|
|
radio.setCurrentLimit(SX126X_CURRENT_LIMIT); |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef SX126X_DIO2_AS_RF_SWITCH |
|
|
|
radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); |
|
|
|
#endif |
|
|
|
#ifdef SX126X_RX_BOOSTED_GAIN |
|
|
|
radio.setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN); |
|
|
|
#endif |
|
|
|
|
|
|
|
fast_rng.begin(radio.random(0x7FFFFFFF)); |
|
|
|
|
|
|
|
|
|
|
|
@ -685,10 +685,12 @@ void setup() { |
|
|
|
#ifdef SX126X_CURRENT_LIMIT |
|
|
|
radio.setCurrentLimit(SX126X_CURRENT_LIMIT); |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef SX126X_DIO2_AS_RF_SWITCH |
|
|
|
radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); |
|
|
|
#endif |
|
|
|
#ifdef SX126X_RX_BOOSTED_GAIN |
|
|
|
radio.setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN); |
|
|
|
#endif |
|
|
|
|
|
|
|
fast_rng.begin(radio.random(0x7FFFFFFF)); |
|
|
|
|
|
|
|
|
|
|
|
@ -747,10 +747,12 @@ void setup() { |
|
|
|
#ifdef SX126X_CURRENT_LIMIT |
|
|
|
radio.setCurrentLimit(SX126X_CURRENT_LIMIT); |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef SX126X_DIO2_AS_RF_SWITCH |
|
|
|
radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); |
|
|
|
#endif |
|
|
|
#ifdef SX126X_RX_BOOSTED_GAIN |
|
|
|
radio.setRxBoostedGainMode(SX126X_RX_BOOSTED_GAIN); |
|
|
|
#endif |
|
|
|
|
|
|
|
fast_rng.begin(radio.random(0x7FFFFFFF)); |
|
|
|
|
|
|
|
|
|
|
|
@ -125,6 +125,7 @@ build_flags = |
|
|
|
-D SX126X_DIO2_AS_RF_SWITCH=true |
|
|
|
-D SX126X_DIO3_TCXO_VOLTAGE=1.8 |
|
|
|
-D SX126X_CURRENT_LIMIT=130.0f ; for best TX power! |
|
|
|
-D SX126X_RX_BOOSTED_GAIN=true |
|
|
|
build_src_filter = ${esp32_base.build_src_filter} |
|
|
|
lib_deps = |
|
|
|
${esp32_base.lib_deps} |
|
|
|
|
|
|
|
@ -106,10 +106,16 @@ void Dispatcher::checkRecv() { |
|
|
|
memcpy(pkt->path, &raw[i], pkt->path_len); i += pkt->path_len; |
|
|
|
|
|
|
|
pkt->payload_len = len - i; // payload is remainder
|
|
|
|
memcpy(pkt->payload, &raw[i], pkt->payload_len); |
|
|
|
|
|
|
|
score = _radio->packetScore(_radio->getLastSNR(), len); |
|
|
|
air_time = _radio->getEstAirtimeFor(len); |
|
|
|
if (pkt->payload_len > sizeof(pkt->payload)) { |
|
|
|
MESH_DEBUG_PRINTLN("%s Dispatcher::checkRecv(): packet payload too big, payload_len=%d", getLogDateTime(), (uint32_t)pkt->payload_len); |
|
|
|
_mgr->free(pkt); // put back into pool
|
|
|
|
pkt = NULL; |
|
|
|
} else { |
|
|
|
memcpy(pkt->payload, &raw[i], pkt->payload_len); |
|
|
|
|
|
|
|
score = _radio->packetScore(_radio->getLastSNR(), len); |
|
|
|
air_time = _radio->getEstAirtimeFor(len); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
|