mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-04-20 22:13:47 +00:00
Merge pull request #1 from weebl2000/2026/remote-lna
Fix remote LNA toggle bugs: correct register comparison, add missing implementation & wire up companion radio
This commit is contained in:
commit
3a81837845
10 changed files with 32 additions and 15 deletions
|
|
@ -228,6 +228,7 @@ void DataStore::loadPrefsInt(const char *filename, NodePrefs& _prefs, double& no
|
|||
file.read((uint8_t *)&_prefs.gps_enabled, sizeof(_prefs.gps_enabled)); // 85
|
||||
file.read((uint8_t *)&_prefs.gps_interval, sizeof(_prefs.gps_interval)); // 86
|
||||
file.read((uint8_t *)&_prefs.autoadd_config, sizeof(_prefs.autoadd_config)); // 87
|
||||
file.read((uint8_t *)&_prefs.sx126x_rx_boosted_gain, sizeof(_prefs.sx126x_rx_boosted_gain)); // 88
|
||||
|
||||
file.close();
|
||||
}
|
||||
|
|
@ -263,6 +264,7 @@ void DataStore::savePrefs(const NodePrefs& _prefs, double node_lat, double node_
|
|||
file.write((uint8_t *)&_prefs.gps_enabled, sizeof(_prefs.gps_enabled)); // 85
|
||||
file.write((uint8_t *)&_prefs.gps_interval, sizeof(_prefs.gps_interval)); // 86
|
||||
file.write((uint8_t *)&_prefs.autoadd_config, sizeof(_prefs.autoadd_config)); // 87
|
||||
file.write((uint8_t *)&_prefs.sx126x_rx_boosted_gain, sizeof(_prefs.sx126x_rx_boosted_gain)); // 88
|
||||
|
||||
file.close();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -803,6 +803,13 @@ MyMesh::MyMesh(mesh::Radio &radio, mesh::RNG &rng, mesh::RTCClock &rtc, SimpleMe
|
|||
_prefs.gps_enabled = 0; // GPS disabled by default
|
||||
_prefs.gps_interval = 0; // No automatic GPS updates by default
|
||||
//_prefs.rx_delay_base = 10.0f; enable once new algo fixed
|
||||
#if defined(USE_SX1262) || defined(USE_SX1268)
|
||||
#ifdef SX126X_RX_BOOSTED_GAIN
|
||||
_prefs.sx126x_rx_boosted_gain = SX126X_RX_BOOSTED_GAIN;
|
||||
#else
|
||||
_prefs.sx126x_rx_boosted_gain = 1; // enabled by default
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void MyMesh::begin(bool has_display) {
|
||||
|
|
@ -869,6 +876,11 @@ void MyMesh::begin(bool has_display) {
|
|||
|
||||
radio_set_params(_prefs.freq, _prefs.bw, _prefs.sf, _prefs.cr);
|
||||
radio_set_tx_power(_prefs.tx_power_dbm);
|
||||
#if defined(USE_SX1262) || defined(USE_SX1268)
|
||||
radio_set_rx_boosted_gain_mode(_prefs.sx126x_rx_boosted_gain);
|
||||
MESH_DEBUG_PRINTLN("SX126x RX Boosted Gain Mode: %s",
|
||||
radio_get_rx_boosted_gain_mode() ? "Enabled" : "Disabled");
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *MyMesh::getNodeName() {
|
||||
|
|
|
|||
|
|
@ -28,4 +28,5 @@ struct NodePrefs { // persisted to file
|
|||
uint8_t gps_enabled; // GPS enabled flag (0=disabled, 1=enabled)
|
||||
uint32_t gps_interval; // GPS read interval in seconds
|
||||
uint8_t autoadd_config; // bitmask for auto-add contacts config
|
||||
uint8_t sx126x_rx_boosted_gain; // SX126x RX boosted gain mode (0=power saving, 1=boosted)
|
||||
};
|
||||
|
|
@ -93,9 +93,9 @@ class CustomSX1262 : public SX1262 {
|
|||
return detected;
|
||||
}
|
||||
|
||||
uint8_t getRxBoostedGainMode() {
|
||||
bool getRxBoostedGainMode() {
|
||||
uint8_t rxGain = 0;
|
||||
readRegister(RADIOLIB_SX126X_REG_RX_GAIN, &rxGain, 1);
|
||||
return rxGain;
|
||||
return (rxGain == RADIOLIB_SX126X_RX_GAIN_BOOSTED);
|
||||
}
|
||||
};
|
||||
|
|
@ -85,9 +85,9 @@ class CustomSX1268 : public SX1268 {
|
|||
return detected;
|
||||
}
|
||||
|
||||
uint8_t getRxBoostedGainMode() {
|
||||
bool getRxBoostedGainMode() {
|
||||
uint8_t rxGain = 0;
|
||||
readRegister(RADIOLIB_SX126X_REG_RX_GAIN, &rxGain, 1);
|
||||
return rxGain;
|
||||
return (rxGain == RADIOLIB_SX126X_RX_GAIN_BOOSTED);
|
||||
}
|
||||
};
|
||||
|
|
@ -27,5 +27,3 @@ uint32_t radio_get_rng_seed();
|
|||
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
|
||||
void radio_set_tx_power(int8_t dbm);
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
||||
bool radio_get_rx_boosted_gain_mode();
|
||||
|
|
|
|||
|
|
@ -26,6 +26,4 @@ bool radio_init();
|
|||
uint32_t radio_get_rng_seed();
|
||||
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
|
||||
void radio_set_tx_power(int8_t dbm);
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
||||
bool radio_get_rx_boosted_gain_mode();
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
|
@ -26,6 +26,4 @@ bool radio_init();
|
|||
uint32_t radio_get_rng_seed();
|
||||
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
|
||||
void radio_set_tx_power(int8_t dbm);
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
||||
bool radio_get_rx_boosted_gain_mode();
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
|
@ -26,6 +26,4 @@ bool radio_init();
|
|||
uint32_t radio_get_rng_seed();
|
||||
void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr);
|
||||
void radio_set_tx_power(int8_t dbm);
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
||||
bool radio_get_rx_boosted_gain_mode();
|
||||
mesh::LocalIdentity radio_new_identity();
|
||||
|
|
@ -47,3 +47,13 @@ mesh::LocalIdentity radio_new_identity() {
|
|||
RadioNoiseListener rng(radio);
|
||||
return mesh::LocalIdentity(&rng); // create new random identity
|
||||
}
|
||||
|
||||
#if defined(USE_SX1262) || defined(USE_SX1268)
|
||||
void radio_set_rx_boosted_gain_mode(bool rxbgm) {
|
||||
radio.setRxBoostedGainMode(rxbgm);
|
||||
}
|
||||
|
||||
bool radio_get_rx_boosted_gain_mode() {
|
||||
return radio.getRxBoostedGainMode();
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue