mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-21 15:51:47 -05:00
APT demod fixes.
Pass satellite name to image worker thread. Don't stop image worker thread when device stopped, as this prevents the image processing controls in the GUI from working.
This commit is contained in:
parent
995b804084
commit
6b6a3f66c3
@ -72,6 +72,8 @@ APTDemod::APTDemod(DeviceAPI *deviceAPI) :
|
|||||||
|
|
||||||
m_networkManager = new QNetworkAccessManager();
|
m_networkManager = new QNetworkAccessManager();
|
||||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||||
|
|
||||||
|
startImageWorker();
|
||||||
}
|
}
|
||||||
|
|
||||||
APTDemod::~APTDemod()
|
APTDemod::~APTDemod()
|
||||||
@ -109,7 +111,6 @@ void APTDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
void APTDemod::start()
|
void APTDemod::start()
|
||||||
{
|
{
|
||||||
startBasebandSink();
|
startBasebandSink();
|
||||||
startImageWorker();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void APTDemod::startBasebandSink()
|
void APTDemod::startBasebandSink()
|
||||||
@ -141,7 +142,6 @@ void APTDemod::startImageWorker()
|
|||||||
|
|
||||||
void APTDemod::stop()
|
void APTDemod::stop()
|
||||||
{
|
{
|
||||||
stopImageWorker();
|
|
||||||
stopBasebandSink();
|
stopBasebandSink();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -594,7 +594,7 @@ int APTDemod::webapiActionsPost(
|
|||||||
m_basebandSink->getInputMessageQueue()->push(APTDemod::MsgResetDecoder::create());
|
m_basebandSink->getInputMessageQueue()->push(APTDemod::MsgResetDecoder::create());
|
||||||
|
|
||||||
// Save satellite name
|
// Save satellite name
|
||||||
m_satelliteName = *satelliteName;
|
m_imageWorker->getInputMessageQueue()->push(APTDemodImageWorker::MsgSetSatelliteName::create(*satelliteName));
|
||||||
|
|
||||||
// Enable decoder and set direction of pass
|
// Enable decoder and set direction of pass
|
||||||
APTDemodSettings settings = m_settings;
|
APTDemodSettings settings = m_settings;
|
||||||
|
@ -250,8 +250,6 @@ private:
|
|||||||
QNetworkAccessManager *m_networkManager;
|
QNetworkAccessManager *m_networkManager;
|
||||||
QNetworkRequest m_networkRequest;
|
QNetworkRequest m_networkRequest;
|
||||||
|
|
||||||
QString m_satelliteName;
|
|
||||||
|
|
||||||
void applySettings(const APTDemodSettings& settings, bool force = false);
|
void applySettings(const APTDemodSettings& settings, bool force = false);
|
||||||
void webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const APTDemodSettings& settings, bool force);
|
void webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const APTDemodSettings& settings, bool force);
|
||||||
void webapiFormatChannelSettings(
|
void webapiFormatChannelSettings(
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgConfigureAPTDemodImageWorker, Message)
|
MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgConfigureAPTDemodImageWorker, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgSaveImageToDisk, Message)
|
MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgSaveImageToDisk, Message)
|
||||||
|
MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgSetSatelliteName, Message)
|
||||||
|
|
||||||
APTDemodImageWorker::APTDemodImageWorker() :
|
APTDemodImageWorker::APTDemodImageWorker() :
|
||||||
m_messageQueueToGUI(nullptr),
|
m_messageQueueToGUI(nullptr),
|
||||||
@ -99,6 +100,12 @@ bool APTDemodImageWorker::handleMessage(const Message& cmd)
|
|||||||
saveImageToDisk();
|
saveImageToDisk();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (MsgSetSatelliteName::match(cmd))
|
||||||
|
{
|
||||||
|
MsgSetSatelliteName& msg = (MsgSetSatelliteName&) cmd;
|
||||||
|
m_satelliteName = msg.getSatelliteName();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else if (APTDemod::MsgPixels::match(cmd))
|
else if (APTDemod::MsgPixels::match(cmd))
|
||||||
{
|
{
|
||||||
QMutexLocker mutexLocker(&m_mutex);
|
QMutexLocker mutexLocker(&m_mutex);
|
||||||
@ -336,7 +343,7 @@ void APTDemodImageWorker::saveImageToDisk()
|
|||||||
{
|
{
|
||||||
QString filename;
|
QString filename;
|
||||||
QDateTime datetime = QDateTime::currentDateTime();
|
QDateTime datetime = QDateTime::currentDateTime();
|
||||||
filename = QString("apt_%1_%2.png").arg(m_satelliteName).arg(datetime.toString("yyyyMMdd_hhmm"));
|
filename = QString("apt_%1_%2.png").arg(m_satelliteName.replace(" ", "_")).arg(datetime.toString("yyyyMMdd_hhmm"));
|
||||||
|
|
||||||
if (!m_settings.m_autoSavePath.isEmpty())
|
if (!m_settings.m_autoSavePath.isEmpty())
|
||||||
{
|
{
|
||||||
|
@ -74,6 +74,27 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MsgSetSatelliteName : public Message {
|
||||||
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
|
public:
|
||||||
|
QString getSatelliteName() const { return m_satelliteName; }
|
||||||
|
|
||||||
|
static MsgSetSatelliteName* create(const QString &satelliteName)
|
||||||
|
{
|
||||||
|
return new MsgSetSatelliteName(satelliteName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_satelliteName;
|
||||||
|
|
||||||
|
MsgSetSatelliteName(const QString &satelliteName) :
|
||||||
|
Message(),
|
||||||
|
m_satelliteName(satelliteName)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
APTDemodImageWorker();
|
APTDemodImageWorker();
|
||||||
~APTDemodImageWorker();
|
~APTDemodImageWorker();
|
||||||
void reset();
|
void reset();
|
||||||
|
Loading…
Reference in New Issue
Block a user