mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-22 08:04:49 -05:00
v7: rename VORDemodSC classes to VORDemod classes. Part of #1223
This commit is contained in:
parent
c2bcd990b9
commit
ca44e253ec
@ -1,4 +1,4 @@
|
||||
<h1>VOR demodulator plugin - Single channel version</h1>
|
||||
<h1>VOR demodulator plugin</h1>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
|
||||
|
@ -42,19 +42,19 @@
|
||||
#include "vordemodscreport.h"
|
||||
#include "vordemodsc.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodSC::MsgConfigureVORDemod, Message)
|
||||
MESSAGE_CLASS_DEFINITION(VORDemod::MsgConfigureVORDemod, Message)
|
||||
|
||||
const char * const VORDemodSC::m_channelIdURI = "sdrangel.channel.vordemodsc";
|
||||
const char * const VORDemodSC::m_channelId = "VORDemodSC";
|
||||
const char * const VORDemod::m_channelIdURI = "sdrangel.channel.vordemodsc";
|
||||
const char * const VORDemod::m_channelId = "VORDemod";
|
||||
|
||||
VORDemodSC::VORDemodSC(DeviceAPI *deviceAPI) :
|
||||
VORDemod::VORDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(0)
|
||||
{
|
||||
setObjectName(m_channelId);
|
||||
|
||||
m_basebandSink = new VORDemodSCBaseband();
|
||||
m_basebandSink = new VORDemodBaseband();
|
||||
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
|
||||
m_basebandSink->moveToThread(&m_thread);
|
||||
|
||||
@ -68,24 +68,24 @@ VORDemodSC::VORDemodSC(DeviceAPI *deviceAPI) :
|
||||
m_networkManager,
|
||||
&QNetworkAccessManager::finished,
|
||||
this,
|
||||
&VORDemodSC::networkManagerFinished
|
||||
&VORDemod::networkManagerFinished
|
||||
);
|
||||
QObject::connect(
|
||||
this,
|
||||
&ChannelAPI::indexInDeviceSetChanged,
|
||||
this,
|
||||
&VORDemodSC::handleIndexInDeviceSetChanged
|
||||
&VORDemod::handleIndexInDeviceSetChanged
|
||||
);
|
||||
}
|
||||
|
||||
VORDemodSC::~VORDemodSC()
|
||||
VORDemod::~VORDemod()
|
||||
{
|
||||
qDebug("VORDemodSC::~VORDemodSC");
|
||||
qDebug("VORDemod::~VORDemod");
|
||||
QObject::disconnect(
|
||||
m_networkManager,
|
||||
&QNetworkAccessManager::finished,
|
||||
this,
|
||||
&VORDemodSC::networkManagerFinished
|
||||
&VORDemod::networkManagerFinished
|
||||
);
|
||||
delete m_networkManager;
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
@ -98,7 +98,7 @@ VORDemodSC::~VORDemodSC()
|
||||
delete m_basebandSink;
|
||||
}
|
||||
|
||||
void VORDemodSC::setDeviceAPI(DeviceAPI *deviceAPI)
|
||||
void VORDemod::setDeviceAPI(DeviceAPI *deviceAPI)
|
||||
{
|
||||
if (deviceAPI != m_deviceAPI)
|
||||
{
|
||||
@ -110,20 +110,20 @@ void VORDemodSC::setDeviceAPI(DeviceAPI *deviceAPI)
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t VORDemodSC::getNumberOfDeviceStreams() const
|
||||
uint32_t VORDemod::getNumberOfDeviceStreams() const
|
||||
{
|
||||
return m_deviceAPI->getNbSourceStreams();
|
||||
}
|
||||
|
||||
void VORDemodSC::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
|
||||
void VORDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
|
||||
{
|
||||
(void) firstOfBurst;
|
||||
m_basebandSink->feed(begin, end);
|
||||
}
|
||||
|
||||
void VORDemodSC::start()
|
||||
void VORDemod::start()
|
||||
{
|
||||
qDebug("VORDemodSC::start");
|
||||
qDebug("VORDemod::start");
|
||||
|
||||
m_basebandSink->reset();
|
||||
m_basebandSink->startWork();
|
||||
@ -132,24 +132,24 @@ void VORDemodSC::start()
|
||||
DSPSignalNotification *dspMsg = new DSPSignalNotification(m_basebandSampleRate, m_centerFrequency);
|
||||
m_basebandSink->getInputMessageQueue()->push(dspMsg);
|
||||
|
||||
VORDemodSCBaseband::MsgConfigureVORDemodBaseband *msg = VORDemodSCBaseband::MsgConfigureVORDemodBaseband::create(m_settings, true);
|
||||
VORDemodBaseband::MsgConfigureVORDemodBaseband *msg = VORDemodBaseband::MsgConfigureVORDemodBaseband::create(m_settings, true);
|
||||
m_basebandSink->getInputMessageQueue()->push(msg);
|
||||
}
|
||||
|
||||
void VORDemodSC::stop()
|
||||
void VORDemod::stop()
|
||||
{
|
||||
qDebug("VORDemodSC::stop");
|
||||
qDebug("VORDemod::stop");
|
||||
m_basebandSink->stopWork();
|
||||
m_thread.quit();
|
||||
m_thread.wait();
|
||||
}
|
||||
|
||||
bool VORDemodSC::handleMessage(const Message& cmd)
|
||||
bool VORDemod::handleMessage(const Message& cmd)
|
||||
{
|
||||
if (MsgConfigureVORDemod::match(cmd))
|
||||
{
|
||||
MsgConfigureVORDemod& cfg = (MsgConfigureVORDemod&) cmd;
|
||||
qDebug() << "VORDemodSC::handleMessage: MsgConfigureVORDemod";
|
||||
qDebug() << "VORDemod::handleMessage: MsgConfigureVORDemod";
|
||||
applySettings(cfg.getSettings(), cfg.getForce());
|
||||
|
||||
return true;
|
||||
@ -161,7 +161,7 @@ bool VORDemodSC::handleMessage(const Message& cmd)
|
||||
m_centerFrequency = notif.getCenterFrequency();
|
||||
// Forward to the sink
|
||||
DSPSignalNotification* rep = new DSPSignalNotification(notif); // make a copy
|
||||
qDebug() << "VORDemodSC::handleMessage: DSPSignalNotification";
|
||||
qDebug() << "VORDemod::handleMessage: DSPSignalNotification";
|
||||
m_basebandSink->getInputMessageQueue()->push(rep);
|
||||
// Forward to GUI if any
|
||||
if (m_guiMessageQueue) {
|
||||
@ -170,16 +170,16 @@ bool VORDemodSC::handleMessage(const Message& cmd)
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (VORDemodSCReport::MsgReportRadial::match(cmd))
|
||||
else if (VORDemodReport::MsgReportRadial::match(cmd))
|
||||
{
|
||||
VORDemodSCReport::MsgReportRadial& report = (VORDemodSCReport::MsgReportRadial&) cmd;
|
||||
VORDemodReport::MsgReportRadial& report = (VORDemodReport::MsgReportRadial&) cmd;
|
||||
m_radial = report.getRadial();
|
||||
m_refMag = report.getRefMag();
|
||||
m_varMag = report.getVarMag();
|
||||
|
||||
if (m_guiMessageQueue)
|
||||
{
|
||||
VORDemodSCReport::MsgReportRadial *msg = new VORDemodSCReport::MsgReportRadial(report);
|
||||
VORDemodReport::MsgReportRadial *msg = new VORDemodReport::MsgReportRadial(report);
|
||||
m_guiMessageQueue->push(msg);
|
||||
}
|
||||
|
||||
@ -193,14 +193,14 @@ bool VORDemodSC::handleMessage(const Message& cmd)
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (VORDemodSCReport::MsgReportIdent::match(cmd))
|
||||
else if (VORDemodReport::MsgReportIdent::match(cmd))
|
||||
{
|
||||
VORDemodSCReport::MsgReportIdent& report = (VORDemodSCReport::MsgReportIdent&) cmd;
|
||||
VORDemodReport::MsgReportIdent& report = (VORDemodReport::MsgReportIdent&) cmd;
|
||||
m_morseIdent = report.getIdent();
|
||||
|
||||
if (m_guiMessageQueue)
|
||||
{
|
||||
VORDemodSCReport::MsgReportIdent *msg = new VORDemodSCReport::MsgReportIdent(report);
|
||||
VORDemodReport::MsgReportIdent *msg = new VORDemodReport::MsgReportIdent(report);
|
||||
m_guiMessageQueue->push(msg);
|
||||
}
|
||||
|
||||
@ -220,9 +220,9 @@ bool VORDemodSC::handleMessage(const Message& cmd)
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::setCenterFrequency(qint64 frequency)
|
||||
void VORDemod::setCenterFrequency(qint64 frequency)
|
||||
{
|
||||
VORDemodSCSettings settings = m_settings;
|
||||
VORDemodSettings settings = m_settings;
|
||||
settings.m_inputFrequencyOffset = frequency;
|
||||
applySettings(settings, false);
|
||||
|
||||
@ -233,9 +233,9 @@ void VORDemodSC::setCenterFrequency(qint64 frequency)
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::applySettings(const VORDemodSCSettings& settings, bool force)
|
||||
void VORDemod::applySettings(const VORDemodSettings& settings, bool force)
|
||||
{
|
||||
qDebug() << "VORDemodSC::applySettings:"
|
||||
qDebug() << "VORDemod::applySettings:"
|
||||
<< " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset
|
||||
<< " m_navId: " << settings.m_navId
|
||||
<< " m_volume: " << settings.m_volume
|
||||
@ -290,7 +290,7 @@ void VORDemodSC::applySettings(const VORDemodSCSettings& settings, bool force)
|
||||
reverseAPIKeys.append("identThreshold");
|
||||
}
|
||||
|
||||
VORDemodSCBaseband::MsgConfigureVORDemodBaseband *msg = VORDemodSCBaseband::MsgConfigureVORDemodBaseband::create(settings, force);
|
||||
VORDemodBaseband::MsgConfigureVORDemodBaseband *msg = VORDemodBaseband::MsgConfigureVORDemodBaseband::create(settings, force);
|
||||
m_basebandSink->getInputMessageQueue()->push(msg);
|
||||
|
||||
if (settings.m_useReverseAPI)
|
||||
@ -313,12 +313,12 @@ void VORDemodSC::applySettings(const VORDemodSCSettings& settings, bool force)
|
||||
m_settings = settings;
|
||||
}
|
||||
|
||||
QByteArray VORDemodSC::serialize() const
|
||||
QByteArray VORDemod::serialize() const
|
||||
{
|
||||
return m_settings.serialize();
|
||||
}
|
||||
|
||||
bool VORDemodSC::deserialize(const QByteArray& data)
|
||||
bool VORDemod::deserialize(const QByteArray& data)
|
||||
{
|
||||
if (m_settings.deserialize(data))
|
||||
{
|
||||
@ -335,7 +335,7 @@ bool VORDemodSC::deserialize(const QByteArray& data)
|
||||
}
|
||||
}
|
||||
|
||||
int VORDemodSC::webapiSettingsGet(
|
||||
int VORDemod::webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage)
|
||||
{
|
||||
@ -346,20 +346,20 @@ int VORDemodSC::webapiSettingsGet(
|
||||
return 200;
|
||||
}
|
||||
|
||||
int VORDemodSC::webapiSettingsPutPatch(
|
||||
int VORDemod::webapiSettingsPutPatch(
|
||||
bool force,
|
||||
const QStringList& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage)
|
||||
{
|
||||
(void) errorMessage;
|
||||
VORDemodSCSettings settings = m_settings;
|
||||
VORDemodSettings settings = m_settings;
|
||||
webapiUpdateChannelSettings(settings, channelSettingsKeys, response);
|
||||
|
||||
MsgConfigureVORDemod *msg = MsgConfigureVORDemod::create(settings, force);
|
||||
m_inputMessageQueue.push(msg);
|
||||
|
||||
qDebug("VORDemodSC::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue);
|
||||
qDebug("VORDemod::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue);
|
||||
if (m_guiMessageQueue) // forward to GUI if any
|
||||
{
|
||||
MsgConfigureVORDemod *msgToGUI = MsgConfigureVORDemod::create(settings, force);
|
||||
@ -371,8 +371,8 @@ int VORDemodSC::webapiSettingsPutPatch(
|
||||
return 200;
|
||||
}
|
||||
|
||||
void VORDemodSC::webapiUpdateChannelSettings(
|
||||
VORDemodSCSettings& settings,
|
||||
void VORDemod::webapiUpdateChannelSettings(
|
||||
VORDemodSettings& settings,
|
||||
const QStringList& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings& response)
|
||||
{
|
||||
@ -429,7 +429,7 @@ void VORDemodSC::webapiUpdateChannelSettings(
|
||||
}
|
||||
}
|
||||
|
||||
int VORDemodSC::webapiReportGet(
|
||||
int VORDemod::webapiReportGet(
|
||||
SWGSDRangel::SWGChannelReport& response,
|
||||
QString& errorMessage)
|
||||
{
|
||||
@ -440,7 +440,7 @@ int VORDemodSC::webapiReportGet(
|
||||
return 200;
|
||||
}
|
||||
|
||||
void VORDemodSC::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const VORDemodSCSettings& settings)
|
||||
void VORDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const VORDemodSettings& settings)
|
||||
{
|
||||
response.getVorDemodScSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset);
|
||||
response.getVorDemodScSettings()->setNavId(settings.m_navId);
|
||||
@ -504,7 +504,7 @@ void VORDemodSC::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& re
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response)
|
||||
void VORDemod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response)
|
||||
{
|
||||
double magsqAvg, magsqPeak;
|
||||
int nbMagsqSamples;
|
||||
@ -532,7 +532,7 @@ void VORDemodSC::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& respon
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const VORDemodSCSettings& settings, bool force)
|
||||
void VORDemod::webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const VORDemodSettings& settings, bool force)
|
||||
{
|
||||
SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings();
|
||||
webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force);
|
||||
@ -557,10 +557,10 @@ void VORDemodSC::webapiReverseSendSettings(QList<QString>& channelSettingsKeys,
|
||||
delete swgChannelSettings;
|
||||
}
|
||||
|
||||
void VORDemodSC::sendChannelSettings(
|
||||
void VORDemod::sendChannelSettings(
|
||||
const QList<ObjectPipe*>& pipes,
|
||||
QList<QString>& channelSettingsKeys,
|
||||
const VORDemodSCSettings& settings,
|
||||
const VORDemodSettings& settings,
|
||||
bool force)
|
||||
{
|
||||
for (const auto& pipe : pipes)
|
||||
@ -582,7 +582,7 @@ void VORDemodSC::sendChannelSettings(
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::sendChannelReport(QList<ObjectPipe*>& messagePipes)
|
||||
void VORDemod::sendChannelReport(QList<ObjectPipe*>& messagePipes)
|
||||
{
|
||||
for (const auto& pipe : messagePipes)
|
||||
{
|
||||
@ -601,17 +601,17 @@ void VORDemodSC::sendChannelReport(QList<ObjectPipe*>& messagePipes)
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::webapiFormatChannelSettings(
|
||||
void VORDemod::webapiFormatChannelSettings(
|
||||
QList<QString>& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings *swgChannelSettings,
|
||||
const VORDemodSCSettings& settings,
|
||||
const VORDemodSettings& settings,
|
||||
bool force
|
||||
)
|
||||
{
|
||||
swgChannelSettings->setDirection(0); // Single sink (Rx)
|
||||
swgChannelSettings->setOriginatorChannelIndex(getIndexInDeviceSet());
|
||||
swgChannelSettings->setOriginatorDeviceSetIndex(getDeviceSetIndex());
|
||||
swgChannelSettings->setChannelType(new QString("VORDemodSC"));
|
||||
swgChannelSettings->setChannelType(new QString("VORDemod"));
|
||||
swgChannelSettings->setVorDemodScSettings(new SWGSDRangel::SWGVORDemodSCSettings());
|
||||
SWGSDRangel::SWGVORDemodSCSettings *swgVORDemodSCSettings = swgChannelSettings->getVorDemodScSettings();
|
||||
|
||||
@ -663,13 +663,13 @@ void VORDemodSC::webapiFormatChannelSettings(
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSC::networkManagerFinished(QNetworkReply *reply)
|
||||
void VORDemod::networkManagerFinished(QNetworkReply *reply)
|
||||
{
|
||||
QNetworkReply::NetworkError replyError = reply->error();
|
||||
|
||||
if (replyError)
|
||||
{
|
||||
qWarning() << "VORDemodSC::networkManagerFinished:"
|
||||
qWarning() << "VORDemod::networkManagerFinished:"
|
||||
<< " error(" << (int) replyError
|
||||
<< "): " << replyError
|
||||
<< ": " << reply->errorString();
|
||||
@ -678,13 +678,13 @@ void VORDemodSC::networkManagerFinished(QNetworkReply *reply)
|
||||
{
|
||||
QString answer = reply->readAll();
|
||||
answer.chop(1); // remove last \n
|
||||
qDebug("VORDemodSC::networkManagerFinished: reply:\n%s", answer.toStdString().c_str());
|
||||
qDebug("VORDemod::networkManagerFinished: reply:\n%s", answer.toStdString().c_str());
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
void VORDemodSC::handleIndexInDeviceSetChanged(int index)
|
||||
void VORDemod::handleIndexInDeviceSetChanged(int index)
|
||||
{
|
||||
if (index < 0) {
|
||||
return;
|
||||
|
@ -37,33 +37,33 @@ class QThread;
|
||||
class DeviceAPI;
|
||||
class ObjectPipe;
|
||||
|
||||
class VORDemodSC : public BasebandSampleSink, public ChannelAPI {
|
||||
class VORDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
public:
|
||||
class MsgConfigureVORDemod : public Message {
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
|
||||
public:
|
||||
const VORDemodSCSettings& getSettings() const { return m_settings; }
|
||||
const VORDemodSettings& getSettings() const { return m_settings; }
|
||||
bool getForce() const { return m_force; }
|
||||
|
||||
static MsgConfigureVORDemod* create(const VORDemodSCSettings& settings, bool force)
|
||||
static MsgConfigureVORDemod* create(const VORDemodSettings& settings, bool force)
|
||||
{
|
||||
return new MsgConfigureVORDemod(settings, force);
|
||||
}
|
||||
|
||||
private:
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodSettings m_settings;
|
||||
bool m_force;
|
||||
|
||||
MsgConfigureVORDemod(const VORDemodSCSettings& settings, bool force) :
|
||||
MsgConfigureVORDemod(const VORDemodSettings& settings, bool force) :
|
||||
Message(),
|
||||
m_settings(settings),
|
||||
m_force(force)
|
||||
{ }
|
||||
};
|
||||
|
||||
VORDemodSC(DeviceAPI *deviceAPI);
|
||||
virtual ~VORDemodSC();
|
||||
VORDemod(DeviceAPI *deviceAPI);
|
||||
virtual ~VORDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
virtual void setDeviceAPI(DeviceAPI *deviceAPI);
|
||||
virtual DeviceAPI *getDeviceAPI() { return m_deviceAPI; }
|
||||
@ -111,10 +111,10 @@ public:
|
||||
|
||||
static void webapiFormatChannelSettings(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
const VORDemodSCSettings& settings);
|
||||
const VORDemodSettings& settings);
|
||||
|
||||
static void webapiUpdateChannelSettings(
|
||||
VORDemodSCSettings& settings,
|
||||
VORDemodSettings& settings,
|
||||
const QStringList& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings& response);
|
||||
|
||||
@ -134,8 +134,8 @@ public:
|
||||
private:
|
||||
DeviceAPI *m_deviceAPI;
|
||||
QThread m_thread;
|
||||
VORDemodSCBaseband* m_basebandSink;
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodBaseband* m_basebandSink;
|
||||
VORDemodSettings m_settings;
|
||||
int m_basebandSampleRate; //!< stored from device message used when starting baseband sink
|
||||
qint64 m_centerFrequency;
|
||||
|
||||
@ -148,20 +148,20 @@ private:
|
||||
QNetworkRequest m_networkRequest;
|
||||
|
||||
virtual bool handleMessage(const Message& cmd);
|
||||
void applySettings(const VORDemodSCSettings& settings, bool force = false);
|
||||
void applySettings(const VORDemodSettings& settings, bool force = false);
|
||||
void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response);
|
||||
void webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const VORDemodSCSettings& settings, bool force);
|
||||
void webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const VORDemodSettings& settings, bool force);
|
||||
void sendChannelSettings(
|
||||
const QList<ObjectPipe*>& pipes,
|
||||
QList<QString>& channelSettingsKeys,
|
||||
const VORDemodSCSettings& settings,
|
||||
const VORDemodSettings& settings,
|
||||
bool force
|
||||
);
|
||||
void sendChannelReport(QList<ObjectPipe*>& messagePipes);
|
||||
void webapiFormatChannelSettings(
|
||||
QList<QString>& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings *swgChannelSettings,
|
||||
const VORDemodSCSettings& settings,
|
||||
const VORDemodSettings& settings,
|
||||
bool force
|
||||
);
|
||||
|
||||
|
@ -25,14 +25,14 @@
|
||||
#include "vordemodscbaseband.h"
|
||||
#include "vordemodscreport.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodSCBaseband::MsgConfigureVORDemodBaseband, Message)
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodBaseband::MsgConfigureVORDemodBaseband, Message)
|
||||
|
||||
VORDemodSCBaseband::VORDemodSCBaseband() :
|
||||
VORDemodBaseband::VORDemodBaseband() :
|
||||
m_messageQueueToGUI(nullptr),
|
||||
m_running(false),
|
||||
m_mutex(QMutex::Recursive)
|
||||
{
|
||||
qDebug("VORDemodSCBaseband::VORDemodSCBaseband");
|
||||
qDebug("VORDemodBaseband::VORDemodBaseband");
|
||||
m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(48000));
|
||||
m_channelizer = new DownChannelizer(&m_sink);
|
||||
|
||||
@ -41,14 +41,14 @@ VORDemodSCBaseband::VORDemodSCBaseband() :
|
||||
m_channelSampleRate = 0;
|
||||
}
|
||||
|
||||
VORDemodSCBaseband::~VORDemodSCBaseband()
|
||||
VORDemodBaseband::~VORDemodBaseband()
|
||||
{
|
||||
m_inputMessageQueue.clear();
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(m_sink.getAudioFifo());
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::reset()
|
||||
void VORDemodBaseband::reset()
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
m_inputMessageQueue.clear();
|
||||
@ -56,21 +56,21 @@ void VORDemodSCBaseband::reset()
|
||||
m_channelSampleRate = 0;
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::startWork()
|
||||
void VORDemodBaseband::startWork()
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
QObject::connect(
|
||||
&m_sampleFifo,
|
||||
&SampleSinkFifo::dataReady,
|
||||
this,
|
||||
&VORDemodSCBaseband::handleData,
|
||||
&VORDemodBaseband::handleData,
|
||||
Qt::QueuedConnection
|
||||
);
|
||||
connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()));
|
||||
m_running = true;
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::stopWork()
|
||||
void VORDemodBaseband::stopWork()
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()));
|
||||
@ -78,17 +78,17 @@ void VORDemodSCBaseband::stopWork()
|
||||
&m_sampleFifo,
|
||||
&SampleSinkFifo::dataReady,
|
||||
this,
|
||||
&VORDemodSCBaseband::handleData
|
||||
&VORDemodBaseband::handleData
|
||||
);
|
||||
m_running = false;
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end)
|
||||
void VORDemodBaseband::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end)
|
||||
{
|
||||
m_sampleFifo.write(begin, end);
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::handleData()
|
||||
void VORDemodBaseband::handleData()
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
|
||||
@ -115,7 +115,7 @@ void VORDemodSCBaseband::handleData()
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::handleInputMessages()
|
||||
void VORDemodBaseband::handleInputMessages()
|
||||
{
|
||||
Message* message;
|
||||
|
||||
@ -127,13 +127,13 @@ void VORDemodSCBaseband::handleInputMessages()
|
||||
}
|
||||
}
|
||||
|
||||
bool VORDemodSCBaseband::handleMessage(const Message& cmd)
|
||||
bool VORDemodBaseband::handleMessage(const Message& cmd)
|
||||
{
|
||||
if (MsgConfigureVORDemodBaseband::match(cmd))
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
MsgConfigureVORDemodBaseband& cfg = (MsgConfigureVORDemodBaseband&) cmd;
|
||||
qDebug() << "VORDemodSCBaseband::handleMessage: MsgConfigureVORDemodBaseband";
|
||||
qDebug() << "VORDemodBaseband::handleMessage: MsgConfigureVORDemodBaseband";
|
||||
|
||||
applySettings(cfg.getSettings(), cfg.getForce());
|
||||
|
||||
@ -143,7 +143,7 @@ bool VORDemodSCBaseband::handleMessage(const Message& cmd)
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
DSPSignalNotification& notif = (DSPSignalNotification&) cmd;
|
||||
qDebug() << "VORDemodSCBaseband::handleMessage: DSPSignalNotification: basebandSampleRate: " << notif.getSampleRate() << " centerFrequency: " << notif.getCenterFrequency();
|
||||
qDebug() << "VORDemodBaseband::handleMessage: DSPSignalNotification: basebandSampleRate: " << notif.getSampleRate() << " centerFrequency: " << notif.getCenterFrequency();
|
||||
m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(notif.getSampleRate()));
|
||||
m_channelizer->setBasebandSampleRate(notif.getSampleRate());
|
||||
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
|
||||
@ -162,7 +162,7 @@ bool VORDemodSCBaseband::handleMessage(const Message& cmd)
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSCBaseband::applySettings(const VORDemodSCSettings& settings, bool force)
|
||||
void VORDemodBaseband::applySettings(const VORDemodSettings& settings, bool force)
|
||||
{
|
||||
if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force)
|
||||
{
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
class DownChannelizer;
|
||||
|
||||
class VORDemodSCBaseband : public QObject
|
||||
class VORDemodBaseband : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
@ -38,27 +38,27 @@ public:
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
|
||||
public:
|
||||
const VORDemodSCSettings& getSettings() const { return m_settings; }
|
||||
const VORDemodSettings& getSettings() const { return m_settings; }
|
||||
bool getForce() const { return m_force; }
|
||||
|
||||
static MsgConfigureVORDemodBaseband* create(const VORDemodSCSettings& settings, bool force)
|
||||
static MsgConfigureVORDemodBaseband* create(const VORDemodSettings& settings, bool force)
|
||||
{
|
||||
return new MsgConfigureVORDemodBaseband(settings, force);
|
||||
}
|
||||
|
||||
private:
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodSettings m_settings;
|
||||
bool m_force;
|
||||
|
||||
MsgConfigureVORDemodBaseband(const VORDemodSCSettings& settings, bool force) :
|
||||
MsgConfigureVORDemodBaseband(const VORDemodSettings& settings, bool force) :
|
||||
Message(),
|
||||
m_settings(settings),
|
||||
m_force(force)
|
||||
{ }
|
||||
};
|
||||
|
||||
VORDemodSCBaseband();
|
||||
~VORDemodSCBaseband();
|
||||
VORDemodBaseband();
|
||||
~VORDemodBaseband();
|
||||
void reset();
|
||||
void startWork();
|
||||
void stopWork();
|
||||
@ -79,13 +79,13 @@ private:
|
||||
int m_channelSampleRate;
|
||||
VORDemodSCSink m_sink;
|
||||
MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodSettings m_settings;
|
||||
MessageQueue *m_messageQueueToGUI;
|
||||
bool m_running;
|
||||
QMutex m_mutex;
|
||||
|
||||
bool handleMessage(const Message& cmd);
|
||||
void applySettings(const VORDemodSCSettings& settings, bool force = false);
|
||||
void applySettings(const VORDemodSettings& settings, bool force = false);
|
||||
|
||||
private slots:
|
||||
void handleInputMessages();
|
||||
|
@ -42,30 +42,30 @@
|
||||
#include "vordemodscreport.h"
|
||||
#include "vordemodscgui.h"
|
||||
|
||||
VORDemodSCGUI* VORDemodSCGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel)
|
||||
VORDemodGUI* VORDemodGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel)
|
||||
{
|
||||
VORDemodSCGUI* gui = new VORDemodSCGUI(pluginAPI, deviceUISet, rxChannel);
|
||||
VORDemodGUI* gui = new VORDemodGUI(pluginAPI, deviceUISet, rxChannel);
|
||||
return gui;
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::destroy()
|
||||
void VORDemodGUI::destroy()
|
||||
{
|
||||
delete this;
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::resetToDefaults()
|
||||
void VORDemodGUI::resetToDefaults()
|
||||
{
|
||||
m_settings.resetToDefaults();
|
||||
displaySettings();
|
||||
applySettings(true);
|
||||
}
|
||||
|
||||
QByteArray VORDemodSCGUI::serialize() const
|
||||
QByteArray VORDemodGUI::serialize() const
|
||||
{
|
||||
return m_settings.serialize();
|
||||
}
|
||||
|
||||
bool VORDemodSCGUI::deserialize(const QByteArray& data)
|
||||
bool VORDemodGUI::deserialize(const QByteArray& data)
|
||||
{
|
||||
if(m_settings.deserialize(data)) {
|
||||
displaySettings();
|
||||
@ -77,7 +77,7 @@ bool VORDemodSCGUI::deserialize(const QByteArray& data)
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::resizeEvent(QResizeEvent* size)
|
||||
void VORDemodGUI::resizeEvent(QResizeEvent* size)
|
||||
{
|
||||
int maxWidth = getRollupContents()->maximumWidth();
|
||||
int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight();
|
||||
@ -85,12 +85,12 @@ void VORDemodSCGUI::resizeEvent(QResizeEvent* size)
|
||||
size->accept();
|
||||
}
|
||||
|
||||
bool VORDemodSCGUI::handleMessage(const Message& message)
|
||||
bool VORDemodGUI::handleMessage(const Message& message)
|
||||
{
|
||||
if (VORDemodSC::MsgConfigureVORDemod::match(message))
|
||||
if (VORDemod::MsgConfigureVORDemod::match(message))
|
||||
{
|
||||
qDebug("VORDemodSCGUI::handleMessage: VORDemodSC::MsgConfigureVORDemod");
|
||||
const VORDemodSC::MsgConfigureVORDemod& cfg = (VORDemodSC::MsgConfigureVORDemod&) message;
|
||||
qDebug("VORDemodGUI::handleMessage: VORDemod::MsgConfigureVORDemod");
|
||||
const VORDemod::MsgConfigureVORDemod& cfg = (VORDemod::MsgConfigureVORDemod&) message;
|
||||
m_settings = cfg.getSettings();
|
||||
blockApplySettings(true);
|
||||
displaySettings();
|
||||
@ -107,9 +107,9 @@ bool VORDemodSCGUI::handleMessage(const Message& message)
|
||||
updateAbsoluteCenterFrequency();
|
||||
return true;
|
||||
}
|
||||
else if (VORDemodSCReport::MsgReportRadial::match(message))
|
||||
else if (VORDemodReport::MsgReportRadial::match(message))
|
||||
{
|
||||
VORDemodSCReport::MsgReportRadial& report = (VORDemodSCReport::MsgReportRadial&) message;
|
||||
VORDemodReport::MsgReportRadial& report = (VORDemodReport::MsgReportRadial&) message;
|
||||
|
||||
// Display radial and signal magnitudes
|
||||
Real varMagDB = std::round(20.0*std::log10(report.getVarMag()));
|
||||
@ -143,9 +143,9 @@ bool VORDemodSCGUI::handleMessage(const Message& message)
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (VORDemodSCReport::MsgReportIdent::match(message))
|
||||
else if (VORDemodReport::MsgReportIdent::match(message))
|
||||
{
|
||||
VORDemodSCReport::MsgReportIdent& report = (VORDemodSCReport::MsgReportIdent&) message;
|
||||
VORDemodReport::MsgReportIdent& report = (VORDemodReport::MsgReportIdent&) message;
|
||||
|
||||
QString ident = report.getIdent();
|
||||
QString identString = Morse::toString(ident); // Convert Morse to a string
|
||||
@ -172,7 +172,7 @@ bool VORDemodSCGUI::handleMessage(const Message& message)
|
||||
return false;
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::handleInputMessages()
|
||||
void VORDemodGUI::handleInputMessages()
|
||||
{
|
||||
Message* message;
|
||||
|
||||
@ -185,19 +185,19 @@ void VORDemodSCGUI::handleInputMessages()
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::channelMarkerChangedByCursor()
|
||||
void VORDemodGUI::channelMarkerChangedByCursor()
|
||||
{
|
||||
ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency());
|
||||
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::channelMarkerHighlightedByCursor()
|
||||
void VORDemodGUI::channelMarkerHighlightedByCursor()
|
||||
{
|
||||
setHighlighted(m_channelMarker.getHighlighted());
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::on_deltaFrequency_changed(qint64 value)
|
||||
void VORDemodGUI::on_deltaFrequency_changed(qint64 value)
|
||||
{
|
||||
m_channelMarker.setCenterFrequency(value);
|
||||
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
|
||||
@ -205,34 +205,34 @@ void VORDemodSCGUI::on_deltaFrequency_changed(qint64 value)
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::on_thresh_valueChanged(int value)
|
||||
void VORDemodGUI::on_thresh_valueChanged(int value)
|
||||
{
|
||||
ui->threshText->setText(QString("%1").arg(value / 10.0, 0, 'f', 1));
|
||||
m_settings.m_identThreshold = value / 10.0;
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::on_volume_valueChanged(int value)
|
||||
void VORDemodGUI::on_volume_valueChanged(int value)
|
||||
{
|
||||
ui->volumeText->setText(QString("%1").arg(value / 10.0, 0, 'f', 1));
|
||||
m_settings.m_volume = value / 10.0;
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::on_squelch_valueChanged(int value)
|
||||
void VORDemodGUI::on_squelch_valueChanged(int value)
|
||||
{
|
||||
ui->squelchText->setText(QString("%1 dB").arg(value));
|
||||
m_settings.m_squelch = value;
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::on_audioMute_toggled(bool checked)
|
||||
void VORDemodGUI::on_audioMute_toggled(bool checked)
|
||||
{
|
||||
m_settings.m_audioMute = checked;
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::onWidgetRolled(QWidget* widget, bool rollDown)
|
||||
void VORDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
|
||||
{
|
||||
(void) widget;
|
||||
(void) rollDown;
|
||||
@ -241,7 +241,7 @@ void VORDemodSCGUI::onWidgetRolled(QWidget* widget, bool rollDown)
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::onMenuDialogCalled(const QPoint &p)
|
||||
void VORDemodGUI::onMenuDialogCalled(const QPoint &p)
|
||||
{
|
||||
if (m_contextMenuType == ContextMenuChannelSettings)
|
||||
{
|
||||
@ -288,9 +288,9 @@ void VORDemodSCGUI::onMenuDialogCalled(const QPoint &p)
|
||||
resetContextMenuType();
|
||||
}
|
||||
|
||||
VORDemodSCGUI::VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) :
|
||||
VORDemodGUI::VORDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) :
|
||||
ChannelGUI(parent),
|
||||
ui(new Ui::VORDemodSCGUI),
|
||||
ui(new Ui::VORDemodGUI),
|
||||
m_pluginAPI(pluginAPI),
|
||||
m_deviceUISet(deviceUISet),
|
||||
m_channelMarker(this),
|
||||
@ -308,7 +308,7 @@ VORDemodSCGUI::VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
|
||||
connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
|
||||
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));
|
||||
|
||||
m_vorDemod = reinterpret_cast<VORDemodSC*>(rxChannel);
|
||||
m_vorDemod = reinterpret_cast<VORDemod*>(rxChannel);
|
||||
m_vorDemod->setMessageQueueToGUI(getInputMessageQueue());
|
||||
|
||||
connect(&MainCore::instance()->getMasterTimer(), SIGNAL(timeout()), this, SLOT(tick())); // 50 ms
|
||||
@ -323,7 +323,7 @@ VORDemodSCGUI::VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
|
||||
|
||||
m_channelMarker.blockSignals(true);
|
||||
m_channelMarker.setColor(Qt::yellow);
|
||||
m_channelMarker.setBandwidth(2*VORDemodSCSettings::VORDEMOD_CHANNEL_BANDWIDTH);
|
||||
m_channelMarker.setBandwidth(2*VORDemodSettings::VORDEMOD_CHANNEL_BANDWIDTH);
|
||||
m_channelMarker.setCenterFrequency(0);
|
||||
m_channelMarker.setTitle("VOR Demodulator");
|
||||
m_channelMarker.blockSignals(false);
|
||||
@ -344,30 +344,30 @@ VORDemodSCGUI::VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
|
||||
applySettings(true);
|
||||
}
|
||||
|
||||
VORDemodSCGUI::~VORDemodSCGUI()
|
||||
VORDemodGUI::~VORDemodGUI()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::blockApplySettings(bool block)
|
||||
void VORDemodGUI::blockApplySettings(bool block)
|
||||
{
|
||||
m_doApplySettings = !block;
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::applySettings(bool force)
|
||||
void VORDemodGUI::applySettings(bool force)
|
||||
{
|
||||
if (m_doApplySettings)
|
||||
{
|
||||
VORDemodSC::MsgConfigureVORDemod* message = VORDemodSC::MsgConfigureVORDemod::create( m_settings, force);
|
||||
VORDemod::MsgConfigureVORDemod* message = VORDemod::MsgConfigureVORDemod::create( m_settings, force);
|
||||
m_vorDemod->getInputMessageQueue()->push(message);
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::displaySettings()
|
||||
void VORDemodGUI::displaySettings()
|
||||
{
|
||||
m_channelMarker.blockSignals(true);
|
||||
m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset);
|
||||
m_channelMarker.setBandwidth(2*VORDemodSCSettings::VORDEMOD_CHANNEL_BANDWIDTH);
|
||||
m_channelMarker.setBandwidth(2*VORDemodSettings::VORDEMOD_CHANNEL_BANDWIDTH);
|
||||
m_channelMarker.setTitle(m_settings.m_title);
|
||||
m_channelMarker.blockSignals(false);
|
||||
m_channelMarker.setColor(m_settings.m_rgbColor); // activate signal on the last setting only
|
||||
@ -398,21 +398,21 @@ void VORDemodSCGUI::displaySettings()
|
||||
blockApplySettings(false);
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::leaveEvent(QEvent* event)
|
||||
void VORDemodGUI::leaveEvent(QEvent* event)
|
||||
{
|
||||
m_channelMarker.setHighlighted(false);
|
||||
ChannelGUI::leaveEvent(event);
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::enterEvent(QEvent* event)
|
||||
void VORDemodGUI::enterEvent(QEvent* event)
|
||||
{
|
||||
m_channelMarker.setHighlighted(true);
|
||||
ChannelGUI::enterEvent(event);
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::audioSelect()
|
||||
void VORDemodGUI::audioSelect()
|
||||
{
|
||||
qDebug("VORDemodSCGUI::audioSelect");
|
||||
qDebug("VORDemodGUI::audioSelect");
|
||||
AudioSelectDialog audioSelect(DSPEngine::instance()->getAudioDeviceManager(), m_settings.m_audioDeviceName);
|
||||
audioSelect.exec();
|
||||
|
||||
@ -423,7 +423,7 @@ void VORDemodSCGUI::audioSelect()
|
||||
}
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::tick()
|
||||
void VORDemodGUI::tick()
|
||||
{
|
||||
double magsqAvg, magsqPeak;
|
||||
int nbMagsqSamples;
|
||||
@ -459,16 +459,16 @@ void VORDemodSCGUI::tick()
|
||||
m_tickCount++;
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::makeUIConnections()
|
||||
void VORDemodGUI::makeUIConnections()
|
||||
{
|
||||
QObject::connect(ui->deltaFrequency, &ValueDialZ::changed, this, &VORDemodSCGUI::on_deltaFrequency_changed);
|
||||
QObject::connect(ui->thresh, &QDial::valueChanged, this, &VORDemodSCGUI::on_thresh_valueChanged);
|
||||
QObject::connect(ui->volume, &QDial::valueChanged, this, &VORDemodSCGUI::on_volume_valueChanged);
|
||||
QObject::connect(ui->squelch, &QDial::valueChanged, this, &VORDemodSCGUI::on_squelch_valueChanged);
|
||||
QObject::connect(ui->audioMute, &QToolButton::toggled, this, &VORDemodSCGUI::on_audioMute_toggled);
|
||||
QObject::connect(ui->deltaFrequency, &ValueDialZ::changed, this, &VORDemodGUI::on_deltaFrequency_changed);
|
||||
QObject::connect(ui->thresh, &QDial::valueChanged, this, &VORDemodGUI::on_thresh_valueChanged);
|
||||
QObject::connect(ui->volume, &QDial::valueChanged, this, &VORDemodGUI::on_volume_valueChanged);
|
||||
QObject::connect(ui->squelch, &QDial::valueChanged, this, &VORDemodGUI::on_squelch_valueChanged);
|
||||
QObject::connect(ui->audioMute, &QToolButton::toggled, this, &VORDemodGUI::on_audioMute_toggled);
|
||||
}
|
||||
|
||||
void VORDemodSCGUI::updateAbsoluteCenterFrequency()
|
||||
void VORDemodGUI::updateAbsoluteCenterFrequency()
|
||||
{
|
||||
setStatusFrequency(m_deviceCenterFrequency + m_settings.m_inputFrequencyOffset);
|
||||
}
|
||||
|
@ -29,19 +29,19 @@
|
||||
class PluginAPI;
|
||||
class DeviceUISet;
|
||||
class BasebandSampleSink;
|
||||
class VORDemodSC;
|
||||
class VORDemodSCGUI;
|
||||
class VORDemod;
|
||||
class VORDemodGUI;
|
||||
|
||||
namespace Ui {
|
||||
class VORDemodSCGUI;
|
||||
class VORDemodGUI;
|
||||
}
|
||||
class VORDemodSCGUI;
|
||||
class VORDemodGUI;
|
||||
|
||||
class VORDemodSCGUI : public ChannelGUI {
|
||||
class VORDemodGUI : public ChannelGUI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static VORDemodSCGUI* create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
static VORDemodGUI* create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual void destroy();
|
||||
|
||||
void resetToDefaults();
|
||||
@ -68,23 +68,23 @@ protected:
|
||||
void resizeEvent(QResizeEvent* size);
|
||||
|
||||
private:
|
||||
Ui::VORDemodSCGUI* ui;
|
||||
Ui::VORDemodGUI* ui;
|
||||
PluginAPI* m_pluginAPI;
|
||||
DeviceUISet* m_deviceUISet;
|
||||
ChannelMarker m_channelMarker;
|
||||
RollupState m_rollupState;
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodSettings m_settings;
|
||||
qint64 m_deviceCenterFrequency;
|
||||
bool m_doApplySettings;
|
||||
|
||||
VORDemodSC* m_vorDemod;
|
||||
VORDemod* m_vorDemod;
|
||||
bool m_squelchOpen;
|
||||
int m_basebandSampleRate;
|
||||
uint32_t m_tickCount;
|
||||
MessageQueue m_inputMessageQueue;
|
||||
|
||||
explicit VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0);
|
||||
virtual ~VORDemodSCGUI();
|
||||
explicit VORDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0);
|
||||
virtual ~VORDemodGUI();
|
||||
|
||||
void blockApplySettings(bool block);
|
||||
void applySettings(bool force = false);
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>VORDemodSCGUI</class>
|
||||
<class>VORDemodGUI</class>
|
||||
<widget class="RollupContents" name="VORDemodSCGUI">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
|
@ -26,8 +26,8 @@
|
||||
#include "vordemodscwebapiadapter.h"
|
||||
#include "vordemodscplugin.h"
|
||||
|
||||
const PluginDescriptor VORDemodSCPlugin::m_pluginDescriptor = {
|
||||
VORDemodSC::m_channelId,
|
||||
const PluginDescriptor VORDemodPlugin::m_pluginDescriptor = {
|
||||
VORDemod::m_channelId,
|
||||
QStringLiteral("VOR Single Channel Demodulator"),
|
||||
QStringLiteral("6.20.2"),
|
||||
QStringLiteral("(c) Jon Beniston, M7RCE"),
|
||||
@ -36,29 +36,29 @@ const PluginDescriptor VORDemodSCPlugin::m_pluginDescriptor = {
|
||||
QStringLiteral("https://github.com/f4exb/sdrangel")
|
||||
};
|
||||
|
||||
VORDemodSCPlugin::VORDemodSCPlugin(QObject* parent) :
|
||||
VORDemodPlugin::VORDemodPlugin(QObject* parent) :
|
||||
QObject(parent),
|
||||
m_pluginAPI(0)
|
||||
{
|
||||
}
|
||||
|
||||
const PluginDescriptor& VORDemodSCPlugin::getPluginDescriptor() const
|
||||
const PluginDescriptor& VORDemodPlugin::getPluginDescriptor() const
|
||||
{
|
||||
return m_pluginDescriptor;
|
||||
}
|
||||
|
||||
void VORDemodSCPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
void VORDemodPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
{
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
m_pluginAPI->registerRxChannel(VORDemodSC::m_channelIdURI, VORDemodSC::m_channelId, this);
|
||||
m_pluginAPI->registerRxChannel(VORDemod::m_channelIdURI, VORDemod::m_channelId, this);
|
||||
}
|
||||
|
||||
void VORDemodSCPlugin::createRxChannel(DeviceAPI *deviceAPI, BasebandSampleSink **bs, ChannelAPI **cs) const
|
||||
void VORDemodPlugin::createRxChannel(DeviceAPI *deviceAPI, BasebandSampleSink **bs, ChannelAPI **cs) const
|
||||
{
|
||||
if (bs || cs)
|
||||
{
|
||||
VORDemodSC *instance = new VORDemodSC(deviceAPI);
|
||||
VORDemod *instance = new VORDemod(deviceAPI);
|
||||
|
||||
if (bs) {
|
||||
*bs = instance;
|
||||
@ -71,7 +71,7 @@ void VORDemodSCPlugin::createRxChannel(DeviceAPI *deviceAPI, BasebandSampleSink
|
||||
}
|
||||
|
||||
#ifdef SERVER_MODE
|
||||
ChannelGUI* VORDemodSCPlugin::createRxChannelGUI(
|
||||
ChannelGUI* VORDemodPlugin::createRxChannelGUI(
|
||||
DeviceUISet *deviceUISet,
|
||||
BasebandSampleSink *rxChannel) const
|
||||
{
|
||||
@ -80,13 +80,13 @@ ChannelGUI* VORDemodSCPlugin::createRxChannelGUI(
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
ChannelGUI* VORDemodSCPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel) const
|
||||
ChannelGUI* VORDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel) const
|
||||
{
|
||||
return VORDemodSCGUI::create(m_pluginAPI, deviceUISet, rxChannel);
|
||||
return VORDemodGUI::create(m_pluginAPI, deviceUISet, rxChannel);
|
||||
}
|
||||
#endif
|
||||
|
||||
ChannelWebAPIAdapter* VORDemodSCPlugin::createChannelWebAPIAdapter() const
|
||||
ChannelWebAPIAdapter* VORDemodPlugin::createChannelWebAPIAdapter() const
|
||||
{
|
||||
return new VORDemodSCWebAPIAdapter();
|
||||
}
|
||||
|
@ -25,13 +25,13 @@
|
||||
class DeviceUISet;
|
||||
class BasebandSampleSink;
|
||||
|
||||
class VORDemodSCPlugin : public QObject, PluginInterface {
|
||||
class VORDemodPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(PluginInterface)
|
||||
Q_PLUGIN_METADATA(IID "sdrangel.channel.vordemodsc")
|
||||
|
||||
public:
|
||||
explicit VORDemodSCPlugin(QObject* parent = NULL);
|
||||
explicit VORDemodPlugin(QObject* parent = NULL);
|
||||
|
||||
const PluginDescriptor& getPluginDescriptor() const;
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
@ -17,5 +17,5 @@
|
||||
|
||||
#include "vordemodscreport.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodSCReport::MsgReportRadial, Message)
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodSCReport::MsgReportIdent, Message)
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodReport::MsgReportRadial, Message)
|
||||
MESSAGE_CLASS_DEFINITION(VORDemodReport::MsgReportIdent, Message)
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include "util/message.h"
|
||||
|
||||
class VORDemodSCReport : public QObject
|
||||
class VORDemodReport : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
@ -75,8 +75,8 @@ public:
|
||||
};
|
||||
|
||||
public:
|
||||
VORDemodSCReport() {}
|
||||
~VORDemodSCReport() {}
|
||||
VORDemodReport() {}
|
||||
~VORDemodReport() {}
|
||||
};
|
||||
|
||||
#endif // INCLUDE_VORDEMODSCREPORT_H
|
||||
|
@ -23,14 +23,14 @@
|
||||
#include "settings/serializable.h"
|
||||
#include "vordemodscsettings.h"
|
||||
|
||||
VORDemodSCSettings::VORDemodSCSettings() :
|
||||
VORDemodSettings::VORDemodSettings() :
|
||||
m_channelMarker(nullptr),
|
||||
m_rollupState(nullptr)
|
||||
{
|
||||
resetToDefaults();
|
||||
}
|
||||
|
||||
void VORDemodSCSettings::resetToDefaults()
|
||||
void VORDemodSettings::resetToDefaults()
|
||||
{
|
||||
m_inputFrequencyOffset = 0;
|
||||
m_navId = -1;
|
||||
@ -54,7 +54,7 @@ void VORDemodSCSettings::resetToDefaults()
|
||||
m_varThresholdDB = -90.0;
|
||||
}
|
||||
|
||||
QByteArray VORDemodSCSettings::serialize() const
|
||||
QByteArray VORDemodSettings::serialize() const
|
||||
{
|
||||
SimpleSerializer s(1);
|
||||
s.writeS32(1, m_inputFrequencyOffset);
|
||||
@ -89,7 +89,7 @@ QByteArray VORDemodSCSettings::serialize() const
|
||||
return s.final();
|
||||
}
|
||||
|
||||
bool VORDemodSCSettings::deserialize(const QByteArray& data)
|
||||
bool VORDemodSettings::deserialize(const QByteArray& data)
|
||||
{
|
||||
SimpleDeserializer d(data);
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
class Serializable;
|
||||
|
||||
struct VORDemodSCSettings
|
||||
struct VORDemodSettings
|
||||
{
|
||||
qint32 m_inputFrequencyOffset;
|
||||
int m_navId; //!< VOR unique identifier when set by VOR localizer feature
|
||||
@ -58,7 +58,7 @@ struct VORDemodSCSettings
|
||||
// May as well make it a common audio rate, to possibly avoid decimation
|
||||
static const int VORDEMOD_CHANNEL_SAMPLE_RATE = 48000;
|
||||
|
||||
VORDemodSCSettings();
|
||||
VORDemodSettings();
|
||||
void resetToDefaults();
|
||||
void setChannelMarker(Serializable *channelMarker) { m_channelMarker = channelMarker; }
|
||||
void setRollupState(Serializable *rollupState) { m_rollupState = rollupState; }
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
VORDemodSCSink::VORDemodSCSink() :
|
||||
m_channelFrequencyOffset(0),
|
||||
m_channelSampleRate(VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE),
|
||||
m_channelSampleRate(VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE),
|
||||
m_audioSampleRate(48000),
|
||||
m_squelchCount(0),
|
||||
m_squelchOpen(false),
|
||||
@ -47,8 +47,8 @@ VORDemodSCSink::VORDemodSCSink() :
|
||||
m_movingAverageIdent(5000),
|
||||
m_prevBit(0),
|
||||
m_bitTime(0),
|
||||
m_varGoertzel(30, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE),
|
||||
m_refGoertzel(30, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE)
|
||||
m_varGoertzel(30, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE),
|
||||
m_refGoertzel(30, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE)
|
||||
{
|
||||
m_audioBuffer.resize(1<<14);
|
||||
m_audioBufferFill = 0;
|
||||
@ -197,7 +197,7 @@ void VORDemodSCSink::processOneSample(Complex &ci)
|
||||
// Calculate phase of 30Hz variable AM signal
|
||||
double varPhase;
|
||||
double varMag;
|
||||
if (m_varGoertzel.size() == VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE - 1)
|
||||
if (m_varGoertzel.size() == VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE - 1)
|
||||
{
|
||||
m_varGoertzel.goertzel(mag);
|
||||
varPhase = Units::radiansToDegrees(m_varGoertzel.phase());
|
||||
@ -220,13 +220,13 @@ void VORDemodSCSink::processOneSample(Complex &ci)
|
||||
m_refPrev = fmfilt;
|
||||
|
||||
// Calculate phase of 30Hz reference FM signal
|
||||
if (m_refGoertzel.size() == VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE - 1)
|
||||
if (m_refGoertzel.size() == VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE - 1)
|
||||
{
|
||||
m_refGoertzel.goertzel(phi);
|
||||
float phaseDeg = Units::radiansToDegrees(m_refGoertzel.phase());
|
||||
double refMag = m_refGoertzel.mag();
|
||||
int groupDelay = (301-1)/2;
|
||||
float filterPhaseShift = 360.0*30.0*groupDelay/VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE;
|
||||
float filterPhaseShift = 360.0*30.0*groupDelay/VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE;
|
||||
float shiftedPhase = phaseDeg + filterPhaseShift;
|
||||
|
||||
// Calculate difference in phase, which is the radial
|
||||
@ -240,7 +240,7 @@ void VORDemodSCSink::processOneSample(Complex &ci)
|
||||
|
||||
if (getMessageQueueToChannel())
|
||||
{
|
||||
VORDemodSCReport::MsgReportRadial *msg = VORDemodSCReport::MsgReportRadial::create(phaseDifference, refMag, varMag);
|
||||
VORDemodReport::MsgReportRadial *msg = VORDemodReport::MsgReportRadial::create(phaseDifference, refMag, varMag);
|
||||
getMessageQueueToChannel()->push(msg);
|
||||
}
|
||||
|
||||
@ -295,7 +295,7 @@ void VORDemodSCSink::processOneSample(Complex &ci)
|
||||
|
||||
if (getMessageQueueToChannel())
|
||||
{
|
||||
VORDemodSCReport::MsgReportIdent *msg = VORDemodSCReport::MsgReportIdent::create(m_ident);
|
||||
VORDemodReport::MsgReportIdent *msg = VORDemodReport::MsgReportIdent::create(m_ident);
|
||||
getMessageQueueToChannel()->push(msg);
|
||||
}
|
||||
|
||||
@ -336,7 +336,7 @@ void VORDemodSCSink::processOneSample(Complex &ci)
|
||||
|
||||
if (getMessageQueueToChannel())
|
||||
{
|
||||
VORDemodSCReport::MsgReportIdent *msg = VORDemodSCReport::MsgReportIdent::create(m_ident);
|
||||
VORDemodReport::MsgReportIdent *msg = VORDemodReport::MsgReportIdent::create(m_ident);
|
||||
getMessageQueueToChannel()->push(msg);
|
||||
}
|
||||
|
||||
@ -362,17 +362,17 @@ void VORDemodSCSink::applyChannelSettings(int channelSampleRate, int channelFreq
|
||||
|
||||
if ((m_channelSampleRate != channelSampleRate) || force)
|
||||
{
|
||||
m_interpolator.create(16, channelSampleRate, VORDemodSCSettings::VORDEMOD_CHANNEL_BANDWIDTH);
|
||||
m_interpolator.create(16, channelSampleRate, VORDemodSettings::VORDEMOD_CHANNEL_BANDWIDTH);
|
||||
m_interpolatorDistanceRemain = 0;
|
||||
m_interpolatorDistance = (Real) channelSampleRate / (Real) VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE;
|
||||
m_interpolatorDistance = (Real) channelSampleRate / (Real) VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE;
|
||||
|
||||
m_samplesPerDot7wpm = VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE*60/(50*7);
|
||||
m_samplesPerDot10wpm = VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE*60/(50*10);
|
||||
m_samplesPerDot7wpm = VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE*60/(50*7);
|
||||
m_samplesPerDot10wpm = VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE*60/(50*10);
|
||||
|
||||
m_ncoIdent.setFreq(-1020, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE); // +-50Hz source offset allowed
|
||||
m_ncoRef.setFreq(-9960, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE);
|
||||
m_lowpassIdent.create(301, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE, 100.0f);
|
||||
m_lowpassRef.create(301, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE, 600.0f); // Max deviation is 480Hz
|
||||
m_ncoIdent.setFreq(-1020, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE); // +-50Hz source offset allowed
|
||||
m_ncoRef.setFreq(-9960, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE);
|
||||
m_lowpassIdent.create(301, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE, 100.0f);
|
||||
m_lowpassRef.create(301, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE, 600.0f); // Max deviation is 480Hz
|
||||
m_movingAverageIdent.resize(m_samplesPerDot10wpm/5); // Needs to be short enough for noise floor calculation
|
||||
|
||||
m_binSampleCnt = 0;
|
||||
@ -388,7 +388,7 @@ void VORDemodSCSink::applyChannelSettings(int channelSampleRate, int channelFreq
|
||||
m_channelFrequencyOffset = channelFrequencyOffset;
|
||||
}
|
||||
|
||||
void VORDemodSCSink::applySettings(const VORDemodSCSettings& settings, bool force)
|
||||
void VORDemodSCSink::applySettings(const VORDemodSettings& settings, bool force)
|
||||
{
|
||||
qDebug() << "VORDemodSCSink::applySettings:"
|
||||
<< " m_volume: " << settings.m_volume
|
||||
@ -415,9 +415,9 @@ void VORDemodSCSink::applyAudioSampleRate(int sampleRate)
|
||||
qDebug("VORDemodSCSink::applyAudioSampleRate: sampleRate: %d m_channelSampleRate: %d", sampleRate, m_channelSampleRate);
|
||||
|
||||
// (ICAO Annex 10 3.3.6.3) - Optional voice audio is 300Hz to 3kHz
|
||||
m_audioInterpolator.create(16, VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE, 3000.0f);
|
||||
m_audioInterpolator.create(16, VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE, 3000.0f);
|
||||
m_audioInterpolatorDistanceRemain = 0;
|
||||
m_audioInterpolatorDistance = (Real) VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE / (Real) sampleRate;
|
||||
m_audioInterpolatorDistance = (Real) VORDemodSettings::VORDEMOD_CHANNEL_SAMPLE_RATE / (Real) sampleRate;
|
||||
m_bandpass.create(301, sampleRate, 300.0f, 3000.0f);
|
||||
m_audioFifo.setSize(sampleRate);
|
||||
m_squelchDelayLine.resize(sampleRate/5);
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end);
|
||||
|
||||
void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false);
|
||||
void applySettings(const VORDemodSCSettings& settings, bool force = false);
|
||||
void applySettings(const VORDemodSettings& settings, bool force = false);
|
||||
void setMessageQueueToChannel(MessageQueue *messageQueue) { m_messageQueueToChannel = messageQueue; }
|
||||
void applyAudioSampleRate(int sampleRate);
|
||||
|
||||
@ -83,7 +83,7 @@ private:
|
||||
double m_magsqPeak;
|
||||
};
|
||||
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodSettings m_settings;
|
||||
int m_channelSampleRate;
|
||||
int m_audioSampleRate;
|
||||
|
||||
|
@ -33,7 +33,7 @@ int VORDemodSCWebAPIAdapter::webapiSettingsGet(
|
||||
(void) errorMessage;
|
||||
response.setVorDemodScSettings(new SWGSDRangel::SWGVORDemodSCSettings());
|
||||
response.getVorDemodScSettings()->init();
|
||||
VORDemodSC::webapiFormatChannelSettings(response, m_settings);
|
||||
VORDemod::webapiFormatChannelSettings(response, m_settings);
|
||||
|
||||
return 200;
|
||||
}
|
||||
@ -46,7 +46,7 @@ int VORDemodSCWebAPIAdapter::webapiSettingsPutPatch(
|
||||
{
|
||||
(void) force;
|
||||
(void) errorMessage;
|
||||
VORDemodSC::webapiUpdateChannelSettings(m_settings, channelSettingsKeys, response);
|
||||
VORDemod::webapiUpdateChannelSettings(m_settings, channelSettingsKeys, response);
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
QString& errorMessage);
|
||||
|
||||
private:
|
||||
VORDemodSCSettings m_settings;
|
||||
VORDemodSettings m_settings;
|
||||
};
|
||||
|
||||
#endif // INCLUDE_VORDEMODSC_WEBAPIADAPTER_H
|
||||
|
@ -152,7 +152,7 @@ bool VORLocalizer::handleMessage(const Message& cmd)
|
||||
SWGSDRangel::SWGChannelReport* swgChannelReport = report.getSWGReport();
|
||||
QString *channelType = swgChannelReport->getChannelType();
|
||||
|
||||
if (*channelType == "VORDemodSC")
|
||||
if (*channelType == "VORDemod")
|
||||
{
|
||||
SWGSDRangel::SWGVORDemodSCReport *swgVORDemodSCReport = swgChannelReport->getVorDemodScReport();
|
||||
int navId = swgVORDemodSCReport->getNavId();
|
||||
@ -165,7 +165,7 @@ bool VORLocalizer::handleMessage(const Message& cmd)
|
||||
m_vorSinglePlans[navId] :
|
||||
false;
|
||||
|
||||
// qDebug() << "VORLocalizer::handleMessage: MainCore::MsgChannelReport(VORDemodSC): "
|
||||
// qDebug() << "VORLocalizer::handleMessage: MainCore::MsgChannelReport(VORDemod): "
|
||||
// << "navId:" << navId
|
||||
// << "singlePlanProvided" << m_vorSinglePlans.contains(navId)
|
||||
// << "singlePlan:" << singlePlan;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/**
|
||||
* SDRangel
|
||||
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
|
||||
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
|
||||
*
|
||||
* OpenAPI spec version: 6.0.0
|
||||
* Contact: f4exb06@gmail.com
|
||||
@ -13,7 +13,7 @@
|
||||
/*
|
||||
* SWGVORDemodSCReport.h
|
||||
*
|
||||
* VORDemodSC
|
||||
* VORDemod
|
||||
*/
|
||||
|
||||
#ifndef SWGVORDemodSCReport_H_
|
||||
|
@ -1,6 +1,6 @@
|
||||
/**
|
||||
* SDRangel
|
||||
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
|
||||
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
|
||||
*
|
||||
* OpenAPI spec version: 6.0.0
|
||||
* Contact: f4exb06@gmail.com
|
||||
@ -13,7 +13,7 @@
|
||||
/*
|
||||
* SWGVORDemodSCSettings.h
|
||||
*
|
||||
* VORDemodSC
|
||||
* VORDemod
|
||||
*/
|
||||
|
||||
#ifndef SWGVORDemodSCSettings_H_
|
||||
|
Loading…
Reference in New Issue
Block a user