mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-16 21:42:34 -04:00
FeatureAPI: Added more convenient getIdentifier pure virtual method
This commit is contained in:
parent
55a0ceadf3
commit
920d160f13
@ -159,6 +159,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -68,6 +68,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -69,6 +69,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -120,6 +120,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -162,6 +162,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -107,6 +107,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -155,6 +155,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -109,6 +109,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -122,6 +122,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -68,6 +68,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -87,6 +87,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -126,6 +126,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -105,6 +105,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include "SWGDeviceState.h"
|
#include "SWGDeviceState.h"
|
||||||
#include "SWGStarTrackerDisplaySettings.h"
|
#include "SWGStarTrackerDisplaySettings.h"
|
||||||
|
|
||||||
|
#include "device/deviceset.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
#include "util/weather.h"
|
#include "util/weather.h"
|
||||||
#include "util/units.h"
|
#include "util/units.h"
|
||||||
@ -53,8 +54,6 @@ StarTracker::StarTracker(WebAPIAdapterInterface *webAPIAdapterInterface) :
|
|||||||
m_worker->moveToThread(&m_thread);
|
m_worker->moveToThread(&m_thread);
|
||||||
m_state = StIdle;
|
m_state = StIdle;
|
||||||
m_errorMessage = "StarTracker error";
|
m_errorMessage = "StarTracker error";
|
||||||
connect(&m_updatePipesTimer, SIGNAL(timeout()), this, SLOT(updatePipes()));
|
|
||||||
m_updatePipesTimer.start(1000);
|
|
||||||
m_networkManager = new QNetworkAccessManager();
|
m_networkManager = new QNetworkAccessManager();
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
m_networkManager,
|
m_networkManager,
|
||||||
@ -69,10 +68,13 @@ StarTracker::StarTracker(WebAPIAdapterInterface *webAPIAdapterInterface) :
|
|||||||
m_temps.append(new FITS(":/startracker/startracker/408mhz_ra_dec.fits"));
|
m_temps.append(new FITS(":/startracker/startracker/408mhz_ra_dec.fits"));
|
||||||
m_temps.append(new FITS(":/startracker/startracker/1420mhz_ra_dec.fits"));
|
m_temps.append(new FITS(":/startracker/startracker/1420mhz_ra_dec.fits"));
|
||||||
m_spectralIndex = new FITS(":/startracker/startracker/408mhz_ra_dec_spectral_index.fits");
|
m_spectralIndex = new FITS(":/startracker/startracker/408mhz_ra_dec_spectral_index.fits");
|
||||||
|
scanAvailableChannels();
|
||||||
|
connect(MainCore::instance(), SIGNAL(channelAdded(int, ChannelAPI*)), this, SLOT(handleChannelAdded(int, ChannelAPI*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
StarTracker::~StarTracker()
|
StarTracker::~StarTracker()
|
||||||
{
|
{
|
||||||
|
disconnect(MainCore::instance(), SIGNAL(channelAdded(int, ChannelAPI*)), this, SLOT(handleChannelAdded(int, ChannelAPI*)));
|
||||||
QObject::disconnect(
|
QObject::disconnect(
|
||||||
m_networkManager,
|
m_networkManager,
|
||||||
&QNetworkAccessManager::finished,
|
&QNetworkAccessManager::finished,
|
||||||
@ -170,23 +172,6 @@ bool StarTracker::handleMessage(const Message& cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StarTracker::updatePipes()
|
|
||||||
{
|
|
||||||
QList<AvailablePipeSource> availablePipes = updateAvailablePipeSources("startracker.display", StarTrackerSettings::m_pipeTypes, StarTrackerSettings::m_pipeURIs, this);
|
|
||||||
|
|
||||||
if (availablePipes != m_availablePipes)
|
|
||||||
{
|
|
||||||
m_availablePipes = availablePipes;
|
|
||||||
if (getMessageQueueToGUI())
|
|
||||||
{
|
|
||||||
MsgReportPipes *msgToGUI = MsgReportPipes::create();
|
|
||||||
QList<AvailablePipeSource>& msgAvailablePipes = msgToGUI->getAvailablePipes();
|
|
||||||
msgAvailablePipes.append(availablePipes);
|
|
||||||
getMessageQueueToGUI()->push(msgToGUI);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray StarTracker::serialize() const
|
QByteArray StarTracker::serialize() const
|
||||||
{
|
{
|
||||||
return m_settings.serialize();
|
return m_settings.serialize();
|
||||||
@ -902,3 +887,92 @@ bool StarTracker::calcSkyTemperature(double frequency, double beamwidth, double
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StarTracker::scanAvailableChannels()
|
||||||
|
{
|
||||||
|
MainCore *mainCore = MainCore::instance();
|
||||||
|
MessagePipes& messagePipes = mainCore->getMessagePipes();
|
||||||
|
std::vector<DeviceSet*>& deviceSets = mainCore->getDeviceSets();
|
||||||
|
m_availableChannels.clear();
|
||||||
|
|
||||||
|
for (const auto& deviceSet : deviceSets)
|
||||||
|
{
|
||||||
|
DSPDeviceSourceEngine *deviceSourceEngine = deviceSet->m_deviceSourceEngine;
|
||||||
|
|
||||||
|
if (deviceSourceEngine)
|
||||||
|
{
|
||||||
|
for (int chi = 0; chi < deviceSet->getNumberOfChannels(); chi++)
|
||||||
|
{
|
||||||
|
ChannelAPI *channel = deviceSet->getChannelAt(chi);
|
||||||
|
|
||||||
|
if (StarTrackerSettings::m_pipeURIs.contains(channel->getURI()) && !m_availableChannels.contains(channel))
|
||||||
|
{
|
||||||
|
qDebug("StarTracker::scanAvailableChannels: register %d:%d %s (%p)",
|
||||||
|
deviceSet->getIndex(), chi, qPrintable(channel->getURI()), channel);
|
||||||
|
ObjectPipe *pipe = messagePipes.registerProducerToConsumer(channel, this, "startracker.display");
|
||||||
|
MessageQueue *messageQueue = qobject_cast<MessageQueue*>(pipe->m_element);
|
||||||
|
QObject::connect(
|
||||||
|
messageQueue,
|
||||||
|
&MessageQueue::messageEnqueued,
|
||||||
|
this,
|
||||||
|
[=](){ this->handleChannelMessageQueue(messageQueue); },
|
||||||
|
Qt::QueuedConnection
|
||||||
|
);
|
||||||
|
connect(pipe, SIGNAL(toBeDeleted(int, QObject*)), this, SLOT(handleMessagePipeToBeDeleted(int, QObject*)));
|
||||||
|
m_availableChannels.insert(channel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StarTracker::handleChannelAdded(int deviceSetIndex, ChannelAPI *channel)
|
||||||
|
{
|
||||||
|
qDebug("StarTracker::handleChannelAdded: deviceSetIndex: %d:%d channel: %s (%p)",
|
||||||
|
deviceSetIndex, channel->getIndexInDeviceSet(), qPrintable(channel->getURI()), channel);
|
||||||
|
DeviceSet *deviceSet = MainCore::instance()->getDeviceSets()[deviceSetIndex];
|
||||||
|
DSPDeviceSourceEngine *deviceSourceEngine = deviceSet->m_deviceSourceEngine;
|
||||||
|
|
||||||
|
if (deviceSourceEngine && StarTrackerSettings::m_pipeURIs.contains(channel->getURI()))
|
||||||
|
{
|
||||||
|
if (!m_availableChannels.contains(channel))
|
||||||
|
{
|
||||||
|
MessagePipes& messagePipes = MainCore::instance()->getMessagePipes();
|
||||||
|
ObjectPipe *pipe = messagePipes.registerProducerToConsumer(channel, this, "startracker.display");
|
||||||
|
MessageQueue *messageQueue = qobject_cast<MessageQueue*>(pipe->m_element);
|
||||||
|
QObject::connect(
|
||||||
|
messageQueue,
|
||||||
|
&MessageQueue::messageEnqueued,
|
||||||
|
this,
|
||||||
|
[=](){ this->handleChannelMessageQueue(messageQueue); },
|
||||||
|
Qt::QueuedConnection
|
||||||
|
);
|
||||||
|
connect(pipe, SIGNAL(toBeDeleted(int, QObject*)), this, SLOT(handleMessagePipeToBeDeleted(int, QObject*)));
|
||||||
|
m_availableChannels.insert(channel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StarTracker::handleMessagePipeToBeDeleted(int reason, QObject* object)
|
||||||
|
{
|
||||||
|
if (reason == 0) // producer (channel)
|
||||||
|
{
|
||||||
|
if (m_availableChannels.contains((ChannelAPI*) object))
|
||||||
|
{
|
||||||
|
qDebug("StarTracker::handleMessagePipeToBeDeleted: removing channel at (%p)", object);
|
||||||
|
m_availableChannels.remove((ChannelAPI*) object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StarTracker::handleChannelMessageQueue(MessageQueue* messageQueue)
|
||||||
|
{
|
||||||
|
Message* message;
|
||||||
|
|
||||||
|
while ((message = messageQueue->pop()) != nullptr)
|
||||||
|
{
|
||||||
|
if (handleMessage(*message)) {
|
||||||
|
delete message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
|
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QNetworkRequest>
|
#include <QNetworkRequest>
|
||||||
#include <QTimer>
|
|
||||||
|
|
||||||
#include "feature/feature.h"
|
#include "feature/feature.h"
|
||||||
#include "util/message.h"
|
#include "util/message.h"
|
||||||
@ -109,6 +108,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
@ -160,8 +160,6 @@ private:
|
|||||||
|
|
||||||
QNetworkAccessManager *m_networkManager;
|
QNetworkAccessManager *m_networkManager;
|
||||||
QNetworkRequest m_networkRequest;
|
QNetworkRequest m_networkRequest;
|
||||||
QList<AvailablePipeSource> m_availablePipes;
|
|
||||||
QTimer m_updatePipesTimer;
|
|
||||||
Weather *m_weather;
|
Weather *m_weather;
|
||||||
float m_solarFlux;
|
float m_solarFlux;
|
||||||
|
|
||||||
@ -176,7 +174,6 @@ private:
|
|||||||
double applyBeam(const FITS *fits, double beamwidth, double ra, double dec, int& imgX, int& imgY) const;
|
double applyBeam(const FITS *fits, double beamwidth, double ra, double dec, int& imgX, int& imgY) const;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void updatePipes();
|
|
||||||
void networkManagerFinished(QNetworkReply *reply);
|
void networkManagerFinished(QNetworkReply *reply);
|
||||||
void weatherUpdated(float temperature, float pressure, float humidity);
|
void weatherUpdated(float temperature, float pressure, float humidity);
|
||||||
};
|
};
|
||||||
|
@ -139,6 +139,7 @@ public:
|
|||||||
virtual bool handleMessage(const Message& cmd);
|
virtual bool handleMessage(const Message& cmd);
|
||||||
|
|
||||||
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
virtual void getIdentifier(QString& id) const { id = objectName(); }
|
||||||
|
virtual QString getIdentifier() const { return objectName(); }
|
||||||
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
virtual void getTitle(QString& title) const { title = m_settings.m_title; }
|
||||||
|
|
||||||
virtual QByteArray serialize() const;
|
virtual QByteArray serialize() const;
|
||||||
|
@ -58,6 +58,7 @@ public:
|
|||||||
|
|
||||||
const QString& getURI() const { return m_uri; }
|
const QString& getURI() const { return m_uri; }
|
||||||
virtual void getIdentifier(QString& id) const = 0;
|
virtual void getIdentifier(QString& id) const = 0;
|
||||||
|
virtual QString getIdentifier() const = 0;
|
||||||
virtual void getTitle(QString& title) const = 0;
|
virtual void getTitle(QString& title) const = 0;
|
||||||
virtual void setName(const QString& name) { m_name = name; }
|
virtual void setName(const QString& name) { m_name = name; }
|
||||||
virtual const QString& getName() const { return m_name; }
|
virtual const QString& getName() const { return m_name; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user