1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-02 06:04:39 -04:00

ChannelAnalyzer: implemented settings API

This commit is contained in:
f4exb
2021-12-01 08:25:32 +01:00
parent 2a9cc27a41
commit f9155575d3
13 changed files with 720 additions and 112 deletions
+1 -105
View File
@@ -4196,7 +4196,7 @@ bool WebAPIRequestMapper::getChannelSettings(
else if (channelSettingsKey == "ChannelAnalyzerSettings")
{
channelSettings->setChannelAnalyzerSettings(new SWGSDRangel::SWGChannelAnalyzerSettings());
processChannelAnalyzerSettings(channelSettings, settingsJsonObject);
channelSettings->getChannelAnalyzerSettings()->fromJsonObject(settingsJsonObject);
}
else if (channelSettingsKey == "ChirpChatDemodSettings")
{
@@ -5140,110 +5140,6 @@ void WebAPIRequestMapper::resetFeatureActions(SWGSDRangel::SWGFeatureActions& fe
featureActions.setSimplePttActions(nullptr);
}
void WebAPIRequestMapper::processChannelAnalyzerSettings(
SWGSDRangel::SWGChannelSettings *channelSettings,
const QJsonObject& channelSettingsJson
)
{
SWGSDRangel::SWGChannelAnalyzerSettings *channelAnalyzerSettings = new SWGSDRangel::SWGChannelAnalyzerSettings();
channelSettings->setChannelAnalyzerSettings(channelAnalyzerSettings);
channelAnalyzerSettings->init();
if (channelSettingsJson.contains("bandwidth")) {
channelAnalyzerSettings->setBandwidth(channelSettingsJson["bandwidth"].toInt());
}
if (channelSettingsJson.contains("downSample")) {
channelAnalyzerSettings->setDownSample(channelSettingsJson["downSample"].toInt());
}
if (channelSettingsJson.contains("downSampleRate")) {
channelAnalyzerSettings->setDownSampleRate(channelSettingsJson["downSampleRate"].toInt());
}
if (channelSettingsJson.contains("fll")) {
channelAnalyzerSettings->setFll(channelSettingsJson["fll"].toInt());
}
if (channelSettingsJson.contains("frequency")) {
channelAnalyzerSettings->setFrequency(channelSettingsJson["frequency"].toInt());
}
if (channelSettingsJson.contains("inputType")) {
channelAnalyzerSettings->setInputType(channelSettingsJson["inputType"].toInt());
}
if (channelSettingsJson.contains("lowCutoff")) {
channelAnalyzerSettings->setLowCutoff(channelSettingsJson["lowCutoff"].toInt());
}
if (channelSettingsJson.contains("pll")) {
channelAnalyzerSettings->setPll(channelSettingsJson["pll"].toInt());
}
if (channelSettingsJson.contains("pllPskOrder")) {
channelAnalyzerSettings->setPllPskOrder(channelSettingsJson["pllPskOrder"].toInt());
}
if (channelSettingsJson.contains("rgbColor")) {
channelAnalyzerSettings->setRgbColor(channelSettingsJson["rgbColor"].toInt());
}
if (channelSettingsJson.contains("rrc")) {
channelAnalyzerSettings->setRrc(channelSettingsJson["rrc"].toInt());
}
if (channelSettingsJson.contains("rrcRolloff")) {
channelAnalyzerSettings->setRrcRolloff(channelSettingsJson["rrcRolloff"].toInt());
}
if (channelSettingsJson.contains("spanLog2")) {
channelAnalyzerSettings->setSpanLog2(channelSettingsJson["spanLog2"].toInt());
}
if (channelSettingsJson.contains("ssb")) {
channelAnalyzerSettings->setSsb(channelSettingsJson["ssb"].toInt());
}
if (channelSettingsJson.contains("title")) {
channelAnalyzerSettings->setTitle(new QString(channelSettingsJson["title"].toString()));
}
if (channelSettingsJson.contains("spectrumConfig"))
{
SWGSDRangel::SWGGLSpectrum *spectrum = new SWGSDRangel::SWGGLSpectrum();
spectrum->init();
channelAnalyzerSettings->setSpectrumConfig(spectrum);
QJsonObject spectrumJson;
spectrum->fromJsonObject(spectrumJson);
}
if (channelSettingsJson.contains("scopeConfig") && channelSettingsJson["scopeConfig"].isObject())
{
SWGSDRangel::SWGGLScope *scopeConfig = new SWGSDRangel::SWGGLScope();
scopeConfig->init();
channelAnalyzerSettings->setScopeConfig(scopeConfig);
QJsonObject scopeConfigJson;
scopeConfig->fromJsonObject(scopeConfigJson);
if (scopeConfigJson.contains("tracesData") && scopeConfigJson["tracesData"].isArray())
{
QList<SWGSDRangel::SWGTraceData *> *tracesData = new QList<SWGSDRangel::SWGTraceData *>();
scopeConfig->setTracesData(tracesData);
QJsonArray tracesJson = scopeConfigJson["tracesData"].toArray();
for (int i = 0; i < tracesJson.size(); i++)
{
SWGSDRangel::SWGTraceData *traceData = new SWGSDRangel::SWGTraceData();
tracesData->append(traceData);
QJsonObject traceJson = tracesJson.at(i).toObject();
traceData->fromJsonObject(traceJson);
}
}
if (scopeConfigJson.contains("triggersData") && scopeConfigJson["triggersData"].isArray())
{
QList<SWGSDRangel::SWGTriggerData *> *triggersData = new QList<SWGSDRangel::SWGTriggerData *>();
scopeConfig->setTriggersData(triggersData);
QJsonArray triggersJson = scopeConfigJson["triggersData"].toArray();
for (int i = 0; i < triggersJson.size(); i++)
{
SWGSDRangel::SWGTriggerData *triggerData = new SWGSDRangel::SWGTriggerData();
triggersData->append(triggerData);
QJsonObject triggerJson = triggersJson.at(i).toObject();
triggerData->fromJsonObject(triggerJson);
}
}
}
}
void WebAPIRequestMapper::processSoapySDRSettings(
SWGSDRangel::SWGDeviceSettings *deviceSettings,
QJsonObject& deviceSettingsJson,