1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-06-13 03:52:30 -04:00

DATV demod server plugin

This commit is contained in:
f4exb 2025-05-03 04:29:19 +02:00
parent fc82606e6e
commit ce007419e8
15 changed files with 285 additions and 247 deletions

View File

@ -211,6 +211,26 @@ else()
message(STATUS "Not building wdsprx (ENABLE_CHANNELRX_WDSPRX=${ENABLE_CHANNELRX_WDSPRX} WDSP_SUPPORT=${WDSP_SUPPORT})")
endif()
# need ffmpeg 3.1 that correstonds to
# libavutil 55.27.100
# libavcodec 57.48.101
# libavformat 57.40.101
find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE)
if (ENABLE_CHANNELRX_DEMODDATV AND FFMPEG_FOUND)
if(WIN32)
add_subdirectory(demoddatv)
else()
if(((AVUTIL_VERSION VERSION_GREATER "55.27.99") AND (AVCODEC_VERSION VERSION_GREATER "57.48.101")) OR FFMPEG_EXTERNAL OR FFMPEG_SKIP_CHECK)
message(STATUS "Include demoddatv")
add_subdirectory(demoddatv)
else()
message(STATUS "FFmpeg too old to compile demoddatv; needs at least avutil: 55.27.100, avcodec/avformat: 57.48.101")
endif()
endif()
else()
message(STATUS "Not building demoddatv (ENABLE_CHANNELRX_DEMODDATV=${ENABLE_CHANNELRX_DEMODDATV} FFMPEG_FOUND=${FFMPEG_FOUND})")
endif()
if(NOT SERVER_MODE)
if (ENABLE_CHANNELRX_HEATMAP)
@ -230,25 +250,4 @@ if(NOT SERVER_MODE)
else()
message(STATUS "Not building demodatv (ENABLE_CHANNELRX_DEMODATV=${ENABLE_CHANNELRX_DEMODATV})")
endif()
# need ffmpeg 3.1 that correstonds to
# libavutil 55.27.100
# libavcodec 57.48.101
# libavformat 57.40.101
find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE)
if (ENABLE_CHANNELRX_DEMODDATV AND FFMPEG_FOUND)
if(WIN32)
add_subdirectory(demoddatv)
else()
if(((AVUTIL_VERSION VERSION_GREATER "55.27.99") AND (AVCODEC_VERSION VERSION_GREATER "57.48.101")) OR FFMPEG_EXTERNAL OR FFMPEG_SKIP_CHECK)
message(STATUS "Include demoddatv")
add_subdirectory(demoddatv)
else()
message(STATUS "FFmpeg too old to compile demoddatv; needs at least avutil: 55.27.100, avcodec/avformat: 57.48.101")
endif()
endif()
else()
message(STATUS "Not building demoddatv (ENABLE_CHANNELRX_DEMODDATV=${ENABLE_CHANNELRX_DEMODDATV} FFMPEG_FOUND=${FFMPEG_FOUND})")
endif()
endif()

View File

@ -31,84 +31,6 @@ namespace leansdr {
static const int DEFAULT_GUI_DECIMATION = 64;
static inline cstln_lut<eucl_ss, 256> * make_dvbs_constellation(cstln_lut<eucl_ss, 256>::predef c,
code_rate r)
{
float gamma1 = 1, gamma2 = 1, gamma3 = 1;
switch (c)
{
case cstln_lut<eucl_ss, 256>::APSK16:
// EN 302 307, section 5.4.3, Table 9
switch (r)
{
case FEC23:
case FEC46:
gamma1 = 3.15;
break;
case FEC34:
gamma1 = 2.85;
break;
case FEC45:
gamma1 = 2.75;
break;
case FEC56:
gamma1 = 2.70;
break;
case FEC89:
gamma1 = 2.60;
break;
case FEC910:
gamma1 = 2.57;
break;
default:
fail("cstln_lut<256>::make_dvbs_constellation: Code rate not supported with APSK16");
return 0;
}
break;
case cstln_lut<eucl_ss, 256>::APSK32:
// EN 302 307, section 5.4.4, Table 10
switch (r)
{
case FEC34:
gamma1 = 2.84;
gamma2 = 5.27;
break;
case FEC45:
gamma1 = 2.72;
gamma2 = 4.87;
break;
case FEC56:
gamma1 = 2.64;
gamma2 = 4.64;
break;
case FEC89:
gamma1 = 2.54;
gamma2 = 4.33;
break;
case FEC910:
gamma1 = 2.53;
gamma2 = 4.30;
break;
default:
fail("cstln_lut<eucl_ss, 256>::make_dvbs_constellation: Code rate not supported with APSK32");
return 0;
}
break;
case cstln_lut<eucl_ss, 256>::APSK64E:
// EN 302 307-2, section 5.4.5, Table 13f
gamma1 = 2.4;
gamma2 = 4.3;
gamma3 = 7;
break;
default:
break;
}
cstln_lut<eucl_ss, 256> *newCstln = new cstln_lut<eucl_ss, 256>(c, 10, gamma1, gamma2, gamma3);
newCstln->m_rateCode = (int) r;
newCstln->m_typeCode = (int) c;
newCstln->m_setByModcod = false;
return newCstln;
}
template<typename T> struct datvconstellation: runnable
{

View File

@ -0,0 +1,194 @@
///////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2025 Edouard Griffiths, F4EXB <f4exb06@gmail.com> //
// using LeanSDR Framework (C) 2016 F4DAV //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation as version 3 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License V3 for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
///////////////////////////////////////////////////////////////////////////////////
#ifndef DATV_CSTLN_LUT_H
#define DATV_CSTLN_LUT_H
#include "leansdr/dvb.h"
#include "leansdr/framework.h"
namespace leansdr {
static cstln_lut<eucl_ss, 256> * make_dvbs_constellation(
cstln_lut<eucl_ss, 256>::predef c,
code_rate r
)
{
float gamma1 = 1, gamma2 = 1, gamma3 = 1;
switch (c)
{
case cstln_lut<eucl_ss, 256>::APSK16:
// EN 302 307, section 5.4.3, Table 9
switch (r)
{
case FEC23:
case FEC46:
gamma1 = 3.15;
break;
case FEC34:
gamma1 = 2.85;
break;
case FEC45:
gamma1 = 2.75;
break;
case FEC56:
gamma1 = 2.70;
break;
case FEC89:
gamma1 = 2.60;
break;
case FEC910:
gamma1 = 2.57;
break;
default:
fail("cstln_lut<256>::make_dvbs_constellation: Code rate not supported with APSK16");
return 0;
}
break;
case cstln_lut<eucl_ss, 256>::APSK32:
// EN 302 307, section 5.4.4, Table 10
switch (r)
{
case FEC34:
gamma1 = 2.84;
gamma2 = 5.27;
break;
case FEC45:
gamma1 = 2.72;
gamma2 = 4.87;
break;
case FEC56:
gamma1 = 2.64;
gamma2 = 4.64;
break;
case FEC89:
gamma1 = 2.54;
gamma2 = 4.33;
break;
case FEC910:
gamma1 = 2.53;
gamma2 = 4.30;
break;
default:
fail("cstln_lut<eucl_ss, 256>::make_dvbs_constellation: Code rate not supported with APSK32");
return 0;
}
break;
case cstln_lut<eucl_ss, 256>::APSK64E:
// EN 302 307-2, section 5.4.5, Table 13f
gamma1 = 2.4;
gamma2 = 4.3;
gamma3 = 7;
break;
default:
break;
}
cstln_lut<eucl_ss, 256> *newCstln = new cstln_lut<eucl_ss, 256>(c, 10, gamma1, gamma2, gamma3);
newCstln->m_rateCode = (int) r;
newCstln->m_typeCode = (int) c;
newCstln->m_setByModcod = false;
return newCstln;
}
static cstln_lut<llr_ss, 256> * make_dvbs2_constellation(
cstln_lut<llr_ss, 256>::predef c,
code_rate r
)
{
float gamma1 = 1, gamma2 = 1, gamma3 = 1;
switch (c)
{
case cstln_lut<llr_ss, 256>::APSK16:
// EN 302 307, section 5.4.3, Table 9
switch (r)
{
case FEC23:
case FEC46:
gamma1 = 3.15;
break;
case FEC34:
gamma1 = 2.85;
break;
case FEC45:
gamma1 = 2.75;
break;
case FEC56:
gamma1 = 2.70;
break;
case FEC89:
gamma1 = 2.60;
break;
case FEC910:
gamma1 = 2.57;
break;
default:
fail("cstln_lut<256>::make_dvbs2_constellation: Code rate not supported with APSK16");
return 0;
}
break;
case cstln_lut<llr_ss, 256>::APSK32:
// EN 302 307, section 5.4.4, Table 10
switch (r)
{
case FEC34:
gamma1 = 2.84;
gamma2 = 5.27;
break;
case FEC45:
gamma1 = 2.72;
gamma2 = 4.87;
break;
case FEC56:
gamma1 = 2.64;
gamma2 = 4.64;
break;
case FEC89:
gamma1 = 2.54;
gamma2 = 4.33;
break;
case FEC910:
gamma1 = 2.53;
gamma2 = 4.30;
break;
default:
fail("cstln_lut<llr_ss, 256>::make_dvbs2_constellation: Code rate not supported with APSK32");
return 0;
}
break;
case cstln_lut<llr_ss, 256>::APSK64E:
// EN 302 307-2, section 5.4.5, Table 13f
gamma1 = 2.4;
gamma2 = 4.3;
gamma3 = 7;
break;
default:
break;
}
cstln_lut<llr_ss, 256> *newCstln = new cstln_lut<llr_ss, 256>(c, 10, gamma1, gamma2, gamma3);
newCstln->m_rateCode = r < code_rate::FEC_COUNT ? r : -1;
newCstln->m_typeCode = c < cstln_lut<llr_ss, 256>::predef::COUNT ? c : -1;
newCstln->m_setByModcod = false;
return newCstln;
}
}
#endif // DATV_CSTLN_LUT_H

View File

@ -20,10 +20,12 @@
#include <QtPlugin>
#include <QAction>
#include "plugin/pluginapi.h"
#ifndef SERVER_MODE
#include "datvdemodgui.h"
#endif
#include "datvdemod.h"
#include "datvdemodplugin.h"
#include "datvdemodwebapiadapter.h"
@ -75,10 +77,21 @@ void DATVDemodPlugin::createRxChannel(DeviceAPI *deviceAPI, BasebandSampleSink *
}
}
#ifdef SERVER_MODE
ChannelGUI* DATVDemodPlugin::createRxChannelGUI(
DeviceUISet *deviceUISet,
BasebandSampleSink *rxChannel) const
{
(void) deviceUISet;
(void) rxChannel;
return 0;
}
#else
ChannelGUI* DATVDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel) const
{
return DATVDemodGUI::create(m_ptrPluginAPI, deviceUISet, rxChannel);
}
#endif
ChannelWebAPIAdapter* DATVDemodPlugin::createChannelWebAPIAdapter() const
{

View File

@ -17,7 +17,10 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
///////////////////////////////////////////////////////////////////////////////////
#ifndef SERVER_MODE
#include "datvideorender.h"
#endif
#include "datvcstlnlut.h"
#include "datvdemodsink.h"
#include "leansdr/dvbs2.h"
@ -34,7 +37,9 @@ const unsigned int DATVDemodSink::m_rfFilterFftLength = 512;
DATVDemodSink::DATVDemodSink() :
m_blnNeedConfigUpdate(false),
m_tvScreen(nullptr),
#ifndef SERVER_MODE
m_videoRender(nullptr),
#endif
m_videoStream(new DATVideostream()),
m_udpStream(leansdr::tspacket::SIZE),
m_videoThread(nullptr),
@ -70,6 +75,7 @@ DATVDemodSink::~DATVDemodSink()
void DATVDemodSink::stopVideo()
{
#ifndef SERVER_MODE
if (m_videoThread)
{
if (m_videoThread->isRunning())
@ -79,6 +85,7 @@ void DATVDemodSink::stopVideo()
m_videoThread->wait();
}
}
#endif
}
void DATVDemodSink::setTVScreen(TVScreen *tvScreen)
@ -88,46 +95,64 @@ void DATVDemodSink::setTVScreen(TVScreen *tvScreen)
void DATVDemodSink::SetVideoRender(DATVideoRender *screen)
{
#ifndef SERVER_MODE
m_videoRender = screen;
m_videoRender->setAudioFIFO(&m_audioFifo);
m_videoThread = new DATVideoRenderThread(m_videoRender, m_videoStream);
m_videoThread->setObjectName("vtDATVDemodSink");
#endif
}
bool DATVDemodSink::audioActive()
{
#ifndef SERVER_MODE
if (m_videoRender) {
return m_videoRender->getAudioStreamIndex() >= 0;
} else {
return false;
}
#else
return false;
#endif
}
bool DATVDemodSink::videoActive()
{
#ifndef SERVER_MODE
if (m_videoRender) {
return m_videoRender->getVideoStreamIndex() >= 0;
} else {
return false;
}
#else
return false;
#endif
}
bool DATVDemodSink::audioDecodeOK()
{
#ifndef SERVER_MODE
if (m_videoRender) {
return m_videoRender->getAudioDecodeOK();
} else {
return false;
}
#else
return false;
#endif
}
bool DATVDemodSink::videoDecodeOK()
{
#ifndef SERVER_MODE
if (m_videoRender) {
return m_videoRender->getVideoDecodeOK();
} else {
return false;
}
#else
return false;
#endif
}
bool DATVDemodSink::udpRunning()
@ -146,6 +171,7 @@ bool DATVDemodSink::playVideo()
{
QMutexLocker mlock(&m_mutex);
#ifndef SERVER_MODE
if (m_videoStream == nullptr) {
return false;
}
@ -168,7 +194,7 @@ bool DATVDemodSink::playVideo()
m_videoStream->setThreadTimeout(DATVideoRenderThread::videoThreadTimeoutMs);
m_videoThread->start();
}
#endif
return false;
}
@ -1360,6 +1386,7 @@ void DATVDemodSink::applySettings(const DATVDemodSettings& settings, bool force)
return;
}
#ifndef SERVER_MODE
if ((settings.m_audioVolume) != (m_settings.m_audioVolume) || force)
{
if (m_videoRender) {
@ -1380,6 +1407,7 @@ void DATVDemodSink::applySettings(const DATVDemodSettings& settings, bool force)
m_videoRender->setVideoMute(settings.m_videoMute);
}
}
#endif
if ((m_settings.m_rfBandwidth != settings.m_rfBandwidth)
|| (m_settings.m_symbolRate != settings.m_symbolRate)

View File

@ -31,88 +31,6 @@ namespace leansdr {
static const int DEFAULT_GUI_DVBS2_DECIMATION = 64;
static inline cstln_lut<llr_ss, 256> * make_dvbs2_constellation(
cstln_lut<llr_ss, 256>::predef c,
code_rate r
)
{
float gamma1 = 1, gamma2 = 1, gamma3 = 1;
switch (c)
{
case cstln_lut<llr_ss, 256>::APSK16:
// EN 302 307, section 5.4.3, Table 9
switch (r)
{
case FEC23:
case FEC46:
gamma1 = 3.15;
break;
case FEC34:
gamma1 = 2.85;
break;
case FEC45:
gamma1 = 2.75;
break;
case FEC56:
gamma1 = 2.70;
break;
case FEC89:
gamma1 = 2.60;
break;
case FEC910:
gamma1 = 2.57;
break;
default:
fail("cstln_lut<256>::make_dvbs2_constellation: Code rate not supported with APSK16");
return 0;
}
break;
case cstln_lut<llr_ss, 256>::APSK32:
// EN 302 307, section 5.4.4, Table 10
switch (r)
{
case FEC34:
gamma1 = 2.84;
gamma2 = 5.27;
break;
case FEC45:
gamma1 = 2.72;
gamma2 = 4.87;
break;
case FEC56:
gamma1 = 2.64;
gamma2 = 4.64;
break;
case FEC89:
gamma1 = 2.54;
gamma2 = 4.33;
break;
case FEC910:
gamma1 = 2.53;
gamma2 = 4.30;
break;
default:
fail("cstln_lut<llr_ss, 256>::make_dvbs2_constellation: Code rate not supported with APSK32");
return 0;
}
break;
case cstln_lut<llr_ss, 256>::APSK64E:
// EN 302 307-2, section 5.4.5, Table 13f
gamma1 = 2.4;
gamma2 = 4.3;
gamma3 = 7;
break;
default:
break;
}
cstln_lut<llr_ss, 256> *newCstln = new cstln_lut<llr_ss, 256>(c, 10, gamma1, gamma2, gamma3);
newCstln->m_rateCode = r < code_rate::FEC_COUNT ? r : -1;
newCstln->m_typeCode = c < cstln_lut<llr_ss, 256>::predef::COUNT ? c : -1;
newCstln->m_setByModcod = false;
return newCstln;
}
template<typename T> struct datvdvbs2constellation: runnable
{

View File

@ -4930,10 +4930,6 @@ margin-bottom: 20px;
"type" : "integer",
"description" : "(boolean) engage sodt LDPC with LDPC tool sub processes (Linux only)"
},
"softLDPCToolPath" : {
"type" : "string",
"description" : "O/S path to the LDPC tool binary"
},
"softLDPCMaxTrials" : {
"type" : "integer",
"description" : "maximum number of trials in the soft LDPC algorithm (LDPC tool parameter)"
@ -8962,6 +8958,9 @@ margin-bottom: 20px;
"dcBlock" : {
"type" : "integer"
},
"splitFreq" : {
"type" : "integer"
},
"iqCorrection" : {
"type" : "integer"
},
@ -59469,7 +59468,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2024-12-24T11:56:24.260+01:00
Generated 2025-05-03T03:12:21.688+02:00
</div>
</div>
</div>

View File

@ -48,9 +48,6 @@ DATVDemodSettings:
softLDPC:
description: (boolean) engage sodt LDPC with LDPC tool sub processes (Linux only)
type: integer
softLDPCToolPath:
description: O/S path to the LDPC tool binary
type: string
softLDPCMaxTrials:
description: maximum number of trials in the soft LDPC algorithm (LDPC tool parameter)
type: integer

View File

@ -10,6 +10,8 @@ LimeSdrInputSettings:
type: integer
dcBlock:
type: integer
splitFreq:
type: integer
iqCorrection:
type: integer
log2SoftDecim:

View File

@ -48,9 +48,6 @@ DATVDemodSettings:
softLDPC:
description: (boolean) engage sodt LDPC with LDPC tool sub processes (Linux only)
type: integer
softLDPCToolPath:
description: O/S path to the LDPC tool binary
type: string
softLDPCMaxTrials:
description: maximum number of trials in the soft LDPC algorithm (LDPC tool parameter)
type: integer

View File

@ -4930,10 +4930,6 @@ margin-bottom: 20px;
"type" : "integer",
"description" : "(boolean) engage sodt LDPC with LDPC tool sub processes (Linux only)"
},
"softLDPCToolPath" : {
"type" : "string",
"description" : "O/S path to the LDPC tool binary"
},
"softLDPCMaxTrials" : {
"type" : "integer",
"description" : "maximum number of trials in the soft LDPC algorithm (LDPC tool parameter)"
@ -8962,6 +8958,9 @@ margin-bottom: 20px;
"dcBlock" : {
"type" : "integer"
},
"splitFreq" : {
"type" : "integer"
},
"iqCorrection" : {
"type" : "integer"
},
@ -59469,7 +59468,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2024-12-24T11:56:24.260+01:00
Generated 2025-05-03T03:12:21.688+02:00
</div>
</div>
</div>

View File

@ -44,8 +44,6 @@ SWGDATVDemodSettings::SWGDATVDemodSettings() {
m_fec_isSet = false;
soft_ldpc = 0;
m_soft_ldpc_isSet = false;
soft_ldpc_tool_path = nullptr;
m_soft_ldpc_tool_path_isSet = false;
soft_ldpc_max_trials = 0;
m_soft_ldpc_max_trials_isSet = false;
max_bitflips = 0;
@ -124,8 +122,6 @@ SWGDATVDemodSettings::init() {
m_fec_isSet = false;
soft_ldpc = 0;
m_soft_ldpc_isSet = false;
soft_ldpc_tool_path = new QString("");
m_soft_ldpc_tool_path_isSet = false;
soft_ldpc_max_trials = 0;
m_soft_ldpc_max_trials_isSet = false;
max_bitflips = 0;
@ -194,9 +190,6 @@ SWGDATVDemodSettings::cleanup() {
if(soft_ldpc_tool_path != nullptr) {
delete soft_ldpc_tool_path;
}
@ -263,8 +256,6 @@ SWGDATVDemodSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&soft_ldpc, pJson["softLDPC"], "qint32", "");
::SWGSDRangel::setValue(&soft_ldpc_tool_path, pJson["softLDPCToolPath"], "QString", "QString");
::SWGSDRangel::setValue(&soft_ldpc_max_trials, pJson["softLDPCMaxTrials"], "qint32", "");
::SWGSDRangel::setValue(&max_bitflips, pJson["maxBitflips"], "qint32", "");
@ -359,9 +350,6 @@ SWGDATVDemodSettings::asJsonObject() {
if(m_soft_ldpc_isSet){
obj->insert("softLDPC", QJsonValue(soft_ldpc));
}
if(soft_ldpc_tool_path != nullptr && *soft_ldpc_tool_path != QString("")){
toJsonValue(QString("softLDPCToolPath"), soft_ldpc_tool_path, obj, QString("QString"));
}
if(m_soft_ldpc_max_trials_isSet){
obj->insert("softLDPCMaxTrials", QJsonValue(soft_ldpc_max_trials));
}
@ -527,16 +515,6 @@ SWGDATVDemodSettings::setSoftLdpc(qint32 soft_ldpc) {
this->m_soft_ldpc_isSet = true;
}
QString*
SWGDATVDemodSettings::getSoftLdpcToolPath() {
return soft_ldpc_tool_path;
}
void
SWGDATVDemodSettings::setSoftLdpcToolPath(QString* soft_ldpc_tool_path) {
this->soft_ldpc_tool_path = soft_ldpc_tool_path;
this->m_soft_ldpc_tool_path_isSet = true;
}
qint32
SWGDATVDemodSettings::getSoftLdpcMaxTrials() {
return soft_ldpc_max_trials;
@ -836,9 +814,6 @@ SWGDATVDemodSettings::isSet(){
if(m_soft_ldpc_isSet){
isObjectUpdated = true; break;
}
if(soft_ldpc_tool_path && *soft_ldpc_tool_path != QString("")){
isObjectUpdated = true; break;
}
if(m_soft_ldpc_max_trials_isSet){
isObjectUpdated = true; break;
}

View File

@ -68,9 +68,6 @@ public:
qint32 getSoftLdpc();
void setSoftLdpc(qint32 soft_ldpc);
QString* getSoftLdpcToolPath();
void setSoftLdpcToolPath(QString* soft_ldpc_tool_path);
qint32 getSoftLdpcMaxTrials();
void setSoftLdpcMaxTrials(qint32 soft_ldpc_max_trials);
@ -180,9 +177,6 @@ private:
qint32 soft_ldpc;
bool m_soft_ldpc_isSet;
QString* soft_ldpc_tool_path;
bool m_soft_ldpc_tool_path_isSet;
qint32 soft_ldpc_max_trials;
bool m_soft_ldpc_max_trials_isSet;

View File

@ -35,9 +35,9 @@ SWGLimeSdrInputSettings::SWGLimeSdrInputSettings() {
log2_hard_decim = 0;
m_log2_hard_decim_isSet = false;
dc_block = 0;
splitFreq = 0;
m_dc_block_isSet = false;
m_splitFreq_isSet = false;
split_freq = 0;
m_split_freq_isSet = false;
iq_correction = 0;
m_iq_correction_isSet = false;
log2_soft_decim = 0;
@ -102,8 +102,8 @@ SWGLimeSdrInputSettings::init() {
m_log2_hard_decim_isSet = false;
dc_block = 0;
m_dc_block_isSet = false;
splitFreq = 0;
m_splitFreq_isSet = false;
split_freq = 0;
m_split_freq_isSet = false;
iq_correction = 0;
m_iq_correction_isSet = false;
log2_soft_decim = 0;
@ -179,6 +179,7 @@ SWGLimeSdrInputSettings::cleanup() {
if(reverse_api_address != nullptr) {
@ -206,8 +207,8 @@ SWGLimeSdrInputSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&log2_hard_decim, pJson["log2HardDecim"], "qint32", "");
::SWGSDRangel::setValue(&dc_block, pJson["dcBlock"], "qint32", "");
::SWGSDRangel::setValue(&splitFreq, pJson["splitFreq"], "qint32", "");
::SWGSDRangel::setValue(&split_freq, pJson["splitFreq"], "qint32", "");
::SWGSDRangel::setValue(&iq_correction, pJson["iqCorrection"], "qint32", "");
@ -285,8 +286,8 @@ SWGLimeSdrInputSettings::asJsonObject() {
if(m_dc_block_isSet){
obj->insert("dcBlock", QJsonValue(dc_block));
}
if(m_splitFreq_isSet){
obj->insert("splitFreq", QJsonValue(splitFreq));
if(m_split_freq_isSet){
obj->insert("splitFreq", QJsonValue(split_freq));
}
if(m_iq_correction_isSet){
obj->insert("iqCorrection", QJsonValue(iq_correction));
@ -406,12 +407,12 @@ SWGLimeSdrInputSettings::setDcBlock(qint32 dc_block) {
qint32
SWGLimeSdrInputSettings::getSplitFreq() {
return splitFreq;
return split_freq;
}
void
SWGLimeSdrInputSettings::setSplitFreq(qint32 splitFreq) {
this->splitFreq = splitFreq;
this->m_splitFreq_isSet = true;
SWGLimeSdrInputSettings::setSplitFreq(qint32 split_freq) {
this->split_freq = split_freq;
this->m_split_freq_isSet = true;
}
qint32
@ -671,7 +672,7 @@ SWGLimeSdrInputSettings::isSet(){
if(m_dc_block_isSet){
isObjectUpdated = true; break;
}
if(m_splitFreq_isSet){
if(m_split_freq_isSet){
isObjectUpdated = true; break;
}
if(m_iq_correction_isSet){

View File

@ -52,10 +52,10 @@ public:
void setLog2HardDecim(qint32 log2_hard_decim);
qint32 getDcBlock();
void setDcBlock(qint32 splitFreq);
void setDcBlock(qint32 dc_block);
qint32 getSplitFreq();
void setSplitFreq(qint32 splitFreq);
void setSplitFreq(qint32 split_freq);
qint32 getIqCorrection();
void setIqCorrection(qint32 iq_correction);
@ -145,8 +145,8 @@ private:
qint32 dc_block;
bool m_dc_block_isSet;
qint32 splitFreq;
bool m_splitFreq_isSet;
qint32 split_freq;
bool m_split_freq_isSet;
qint32 iq_correction;
bool m_iq_correction_isSet;