1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-05 07:24:44 -04:00

Meshtastic modulator: removed radio/coder settings from MESH: text-command

This commit is contained in:
f4exb
2026-03-23 21:16:12 +01:00
parent fe4c1f85ae
commit dce4c3365a
5 changed files with 2 additions and 164 deletions
@@ -205,76 +205,9 @@ void MeshtasticMod::setCenterFrequency(qint64 frequency)
}
}
bool MeshtasticMod::applyMeshtasticRadioSettingsIfPresent(MeshtasticModSettings& settings) const
{
if (settings.m_codingScheme != MeshtasticModSettings::CodingLoRa) {
return false;
}
if (!modemmeshtastic::Packet::isCommand(settings.m_textMessage)) {
return false;
}
modemmeshtastic::TxRadioSettings meshRadio;
QString error;
if (!modemmeshtastic::Packet::deriveTxRadioSettings(settings.m_textMessage, meshRadio, error))
{
qWarning() << "MeshtasticMod::applyMeshtasticRadioSettingsIfPresent:" << error;
return false;
}
bool changed = false;
if ((meshRadio.spreadFactor > 0) && (meshRadio.spreadFactor != settings.m_spreadFactor)) {
settings.m_spreadFactor = meshRadio.spreadFactor;
changed = true;
}
if ((meshRadio.parityBits > 0) && (meshRadio.parityBits != settings.m_nbParityBits)) {
settings.m_nbParityBits = meshRadio.parityBits;
changed = true;
}
if (meshRadio.deBits != settings.m_deBits) {
settings.m_deBits = meshRadio.deBits;
changed = true;
}
if (meshRadio.syncWord != settings.m_syncWord) {
settings.m_syncWord = meshRadio.syncWord;
changed = true;
}
if (meshRadio.hasCenterFrequency && (m_deviceAPI != nullptr))
{
const QList<quint64> centerFrequencies = m_deviceAPI->getCenterFrequency();
const int streamIndex = std::max(0, settings.m_streamIndex);
const int selectedIndex = (streamIndex < centerFrequencies.size()) ? streamIndex : 0;
if (!centerFrequencies.isEmpty())
{
const qint64 deviceCenterFrequency = static_cast<qint64>(centerFrequencies.at(selectedIndex));
const qint64 wantedOffset = meshRadio.centerFrequencyHz - deviceCenterFrequency;
if (wantedOffset != settings.m_inputFrequencyOffset)
{
settings.m_inputFrequencyOffset = static_cast<int>(wantedOffset);
changed = true;
}
}
}
if (changed) {
qInfo() << "MeshtasticMod::applyMeshtasticRadioSettingsIfPresent:" << meshRadio.summary;
}
return changed;
}
void MeshtasticMod::applySettings(const MeshtasticModSettings& incomingSettings, bool force)
{
MeshtasticModSettings settings(incomingSettings);
applyMeshtasticRadioSettingsIfPresent(settings);
qDebug() << "MeshtasticMod::applySettings:"
<< " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset