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

Demod Analyzer: fixed sample rate handling. Fixes #931

This commit is contained in:
f4exb
2021-06-29 21:47:27 +02:00
parent a57c856a26
commit 0d4da317b3
49 changed files with 667 additions and 49 deletions
+39
View File
@@ -73,6 +73,7 @@ AISMod::AISMod(DeviceAPI *deviceAPI) :
m_networkManager = new QNetworkAccessManager();
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
connect(&m_channelMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleChannelMessages()));
}
AISMod::~AISMod()
@@ -134,6 +135,13 @@ bool AISMod::handleMessage(const Message& cmd)
m_basebandSource->getInputMessageQueue()->push(rep);
return true;
}
else if (MainCore::MsgChannelDemodQuery::match(cmd))
{
qDebug() << "AISMod::handleMessage: MsgChannelDemodQuery";
sendSampleRateToDemodAnalyzer();
return true;
}
else
{
return false;
@@ -340,6 +348,25 @@ bool AISMod::deserialize(const QByteArray& data)
return success;
}
void AISMod::sendSampleRateToDemodAnalyzer()
{
QList<MessageQueue*> *messageQueues = MainCore::instance()->getMessagePipes().getMessageQueues(this, "reportdemod");
if (messageQueues)
{
QList<MessageQueue*>::iterator it = messageQueues->begin();
for (; it != messageQueues->end(); ++it)
{
MainCore::MsgChannelDemodReport *msg = MainCore::MsgChannelDemodReport::create(
this,
AISModSettings::AISMOD_SAMPLE_RATE
);
(*it)->push(msg);
}
}
}
int AISMod::webapiSettingsGet(
SWGSDRangel::SWGChannelSettings& response,
QString& errorMessage)
@@ -822,3 +849,15 @@ void AISMod::udpRx()
m_basebandSource->getInputMessageQueue()->push(msg);
}
}
void AISMod::handleChannelMessages()
{
Message* message;
while ((message = m_channelMessageQueue.pop()) != nullptr)
{
if (handleMessage(*message)) {
delete message;
}
}
}