Browse Source

Merge pull request #2844 from oltaco/fix-rx-boosted-gain

Fix for Rx boosted gain on LR1110
pull/2848/head
Liam Cottle 2 weeks ago
committed by GitHub
parent
commit
62b95b4e48
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      examples/simple_repeater/MyMesh.cpp
  2. 5
      examples/simple_repeater/MyMesh.h
  3. 14
      src/helpers/CommonCLI.cpp
  4. 4
      src/helpers/CommonCLI.h
  5. 2
      src/helpers/esp32/ESPNOWRadio.h
  6. 4
      src/helpers/radiolib/CustomLLCC68Wrapper.h
  7. 4
      src/helpers/radiolib/CustomLR1110Wrapper.h
  8. 4
      src/helpers/radiolib/CustomSX1262Wrapper.h
  9. 4
      src/helpers/radiolib/CustomSX1268Wrapper.h
  10. 2
      src/helpers/radiolib/RadioLibWrappers.h

6
examples/simple_repeater/MyMesh.cpp

@ -1062,11 +1062,9 @@ void MyMesh::setTxPower(int8_t power_dbm) {
radio_driver.setTxPower(power_dbm); radio_driver.setTxPower(power_dbm);
} }
#if defined(USE_SX1262) || defined(USE_SX1268) bool MyMesh::setRxBoostedGain(bool enable) {
void MyMesh::setRxBoostedGain(bool enable) { return radio_driver.setRxBoostedGainMode(enable);
radio_driver.setRxBoostedGainMode(enable);
} }
#endif
void MyMesh::formatNeighborsReply(char *reply) { void MyMesh::formatNeighborsReply(char *reply) {
char *dp = reply; char *dp = reply;

5
examples/simple_repeater/MyMesh.h

@ -252,7 +252,6 @@ public:
// To check if there is pending work // To check if there is pending work
bool hasPendingWork() const; bool hasPendingWork() const;
#if defined(USE_SX1262) || defined(USE_SX1268) bool setRxBoostedGain(bool enable) override;
void setRxBoostedGain(bool enable) override;
#endif
}; };

14
src/helpers/CommonCLI.cpp

@ -571,13 +571,15 @@ void CommonCLI::handleSetCmd(uint32_t sender_timestamp, char* command, char* rep
_prefs->disable_fwd = memcmp(&config[7], "off", 3) == 0; _prefs->disable_fwd = memcmp(&config[7], "off", 3) == 0;
savePrefs(); savePrefs();
strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON"); strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON");
#if defined(USE_SX1262) || defined(USE_SX1268) || defined(USE_LR1110)
} else if (memcmp(config, "radio.rxgain ", 13) == 0) { } else if (memcmp(config, "radio.rxgain ", 13) == 0) {
_prefs->rx_boosted_gain = memcmp(&config[13], "on", 2) == 0; bool enabled = memcmp(&config[13], "on", 2) == 0;
strcpy(reply, "OK"); _prefs->rx_boosted_gain = enabled;
savePrefs(); savePrefs();
_callbacks->setRxBoostedGain(_prefs->rx_boosted_gain); if (_callbacks->setRxBoostedGain(enabled)) {
#endif strcpy(reply, "OK");
} else {
strcpy(reply, "Error: unsupported");
}
} else if (memcmp(config, "radio.fem.rxgain ", 17) == 0) { } else if (memcmp(config, "radio.fem.rxgain ", 17) == 0) {
if (!_board->canControlLoRaFemLna()) { if (!_board->canControlLoRaFemLna()) {
strcpy(reply, "Error: unsupported"); strcpy(reply, "Error: unsupported");
@ -835,10 +837,8 @@ void CommonCLI::handleGetCmd(uint32_t sender_timestamp, char* command, char* rep
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lat)); sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lat));
} else if (memcmp(config, "lon", 3) == 0) { } else if (memcmp(config, "lon", 3) == 0) {
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lon)); sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lon));
#if defined(USE_SX1262) || defined(USE_SX1268) || defined(USE_LR1110)
} else if (memcmp(config, "radio.rxgain", 12) == 0) { } else if (memcmp(config, "radio.rxgain", 12) == 0) {
sprintf(reply, "> %s", _prefs->rx_boosted_gain ? "on" : "off"); sprintf(reply, "> %s", _prefs->rx_boosted_gain ? "on" : "off");
#endif
} else if (memcmp(config, "radio.fem.rxgain", 16) == 0) { } else if (memcmp(config, "radio.fem.rxgain", 16) == 0) {
if (!_board->canControlLoRaFemLna()) { if (!_board->canControlLoRaFemLna()) {
strcpy(reply, "Error: unsupported"); strcpy(reply, "Error: unsupported");

4
src/helpers/CommonCLI.h

@ -111,8 +111,8 @@ public:
// no op by default // no op by default
}; };
virtual void setRxBoostedGain(bool enable) { virtual bool setRxBoostedGain(bool enable) {
// no op by default return false; // CommonCLI reports unsupported if not overridden by wrapper
}; };
}; };

2
src/helpers/esp32/ESPNOWRadio.h

@ -38,7 +38,7 @@ public:
* These two functions do nothing for ESP-NOW, but are needed for the * These two functions do nothing for ESP-NOW, but are needed for the
* Radio interface. * Radio interface.
*/ */
virtual void setRxBoostedGainMode(bool) { } virtual bool setRxBoostedGainMode(bool) { }
virtual bool getRxBoostedGainMode() const { return false; } virtual bool getRxBoostedGainMode() const { return false; }
uint32_t intID(); uint32_t intID();

4
src/helpers/radiolib/CustomLLCC68Wrapper.h

@ -33,8 +33,8 @@ public:
void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); } void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
void setRxBoostedGainMode(bool en) override { bool setRxBoostedGainMode(bool en) override {
((CustomLLCC68 *)_radio)->setRxBoostedGainMode(en); return ((CustomLLCC68 *)_radio)->setRxBoostedGainMode(en) == RADIOLIB_ERR_NONE;
} }
bool getRxBoostedGainMode() const override { bool getRxBoostedGainMode() const override {
return ((CustomLLCC68 *)_radio)->getRxBoostedGainMode(); return ((CustomLLCC68 *)_radio)->getRxBoostedGainMode();

4
src/helpers/radiolib/CustomLR1110Wrapper.h

@ -36,8 +36,8 @@ public:
uint8_t getSpreadingFactor() const override { return ((CustomLR1110 *)_radio)->getSpreadingFactor(); } uint8_t getSpreadingFactor() const override { return ((CustomLR1110 *)_radio)->getSpreadingFactor(); }
void setRxBoostedGainMode(bool en) override { bool setRxBoostedGainMode(bool en) override {
((CustomLR1110 *)_radio)->setRxBoostedGainMode(en); return ((CustomLR1110 *)_radio)->setRxBoostedGainMode(en) == RADIOLIB_ERR_NONE;
} }
bool getRxBoostedGainMode() const override { bool getRxBoostedGainMode() const override {
return ((CustomLR1110 *)_radio)->getRxBoostedGainMode(); return ((CustomLR1110 *)_radio)->getRxBoostedGainMode();

4
src/helpers/radiolib/CustomSX1262Wrapper.h

@ -40,8 +40,8 @@ public:
void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); } void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
void setRxBoostedGainMode(bool en) override { bool setRxBoostedGainMode(bool en) override {
((CustomSX1262 *)_radio)->setRxBoostedGainMode(en); return ((CustomSX1262 *)_radio)->setRxBoostedGainMode(en) == RADIOLIB_ERR_NONE;
} }
bool getRxBoostedGainMode() const override { bool getRxBoostedGainMode() const override {
return ((CustomSX1262 *)_radio)->getRxBoostedGainMode(); return ((CustomSX1262 *)_radio)->getRxBoostedGainMode();

4
src/helpers/radiolib/CustomSX1268Wrapper.h

@ -37,8 +37,8 @@ public:
void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); } void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
void setRxBoostedGainMode(bool en) override { bool setRxBoostedGainMode(bool en) override {
((CustomSX1268 *)_radio)->setRxBoostedGainMode(en); return ((CustomSX1268 *)_radio)->setRxBoostedGainMode(en) == RADIOLIB_ERR_NONE;
} }
bool getRxBoostedGainMode() const override { bool getRxBoostedGainMode() const override {
return ((CustomSX1268 *)_radio)->getRxBoostedGainMode(); return ((CustomSX1268 *)_radio)->getRxBoostedGainMode();

2
src/helpers/radiolib/RadioLibWrappers.h

@ -66,7 +66,7 @@ public:
float packetScore(float snr, int packet_len) override { return packetScoreInt(snr, 10, packet_len); } // assume sf=10 float packetScore(float snr, int packet_len) override { return packetScoreInt(snr, 10, packet_len); } // assume sf=10
virtual void setRxBoostedGainMode(bool) { } virtual bool setRxBoostedGainMode(bool) { return false; }
virtual bool getRxBoostedGainMode() const { return false; } virtual bool getRxBoostedGainMode() const { return false; }
}; };

Loading…
Cancel
Save