diff --git a/plugins/feature/afc/afcworker.cpp b/plugins/feature/afc/afcworker.cpp index c4471181c..731765e3d 100644 --- a/plugins/feature/afc/afcworker.cpp +++ b/plugins/feature/afc/afcworker.cpp @@ -260,7 +260,7 @@ void AFCWorker::processChannelSettings( if (mainCore->existsChannel(it.key())) { int channelOffset = it.value().m_channelOffset + m_trackerChannelOffset - it.value().m_trackerOffset; - updateChannelOffset(it.key(),it.value().m_channelDirection, channelOffset); + updateChannelOffset(it.key(), it.value().m_channelDirection, channelOffset); } else { @@ -286,7 +286,7 @@ void AFCWorker::processChannelSettings( } } -void AFCWorker::updateChannelOffset(ChannelAPI *channelAPI, int direction, int offset) +bool AFCWorker::updateChannelOffset(ChannelAPI *channelAPI, int direction, int offset) { SWGSDRangel::SWGChannelSettings swgChannelSettings; SWGSDRangel::SWGErrorResponse errorResponse; @@ -315,9 +315,13 @@ void AFCWorker::updateChannelOffset(ChannelAPI *channelAPI, int direction, int o errorResponse ); - if (httpRC / 100 != 2) { + if (httpRC / 100 != 2) + { qDebug() << "AFCWorker::updateChannelOffset: error code" << httpRC << ":" << *errorResponse.getMessage(); + return false; } + + return true; } void AFCWorker::updateTarget() @@ -364,6 +368,7 @@ void AFCWorker::updateTarget() QJsonObject *jsonObj = resDevice.asJsonObject(); QJsonValue xverterFrequencyValue; + // adjust transverter if (WebAPIUtils::extractValue(*jsonObj, "transverterDeltaFrequency", xverterFrequencyValue)) { double xverterFrequency = xverterFrequencyValue.toDouble(); @@ -374,6 +379,11 @@ void AFCWorker::updateTarget() qDebug() << "AFCWorker::initTrackerDeviceSet: cannot find device transverter frequency"; return; } + + // adjust tracker offset + if (updateChannelOffset(m_freqTracker, 0, m_trackerChannelOffset + correction)) { + m_trackerChannelOffset += correction; + } } else // act on device { diff --git a/plugins/feature/afc/afcworker.h b/plugins/feature/afc/afcworker.h index 744523bc0..38bf4df24 100644 --- a/plugins/feature/afc/afcworker.h +++ b/plugins/feature/afc/afcworker.h @@ -136,7 +136,7 @@ private: const QList &channelSettingsKeys, SWGSDRangel::SWGChannelSettings *swgChannelSettings ); - void updateChannelOffset(ChannelAPI *channelAPI, int direction, int offset); + bool updateChannelOffset(ChannelAPI *channelAPI, int direction, int offset); void updateTarget(); bool updateDeviceFrequency(DeviceSet *deviceSet, const QString& key, int64_t frequency); int getDeviceDirection(DeviceAPI *deviceAPI);