mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +00:00
Merge pull request #2844 from oltaco/fix-rx-boosted-gain
Fix for Rx boosted gain on LR1110
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user