mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-12-23 01:55:48 -05:00
Send AOS to features. Support AOS/LOS in local time on map.
This commit is contained in:
parent
2aab4cc2cb
commit
8ac583f36c
@ -36,6 +36,7 @@
|
||||
#include "device/deviceset.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "channel/channelwebapiutils.h"
|
||||
#include "feature/featurewebapiutils.h"
|
||||
#include "maincore.h"
|
||||
|
||||
#include "satellitetracker.h"
|
||||
@ -460,10 +461,22 @@ void SatelliteTrackerWorker::update()
|
||||
text = text.append("\nSatellite is visible");
|
||||
else
|
||||
text = text.append("\nAOS in: %1 mins").arg((int)round((satWorkerState->m_satState.m_passes[0]->m_aos.toSecsSinceEpoch() - qdt.toSecsSinceEpoch())/60.0));
|
||||
QString aosDateTime;
|
||||
QString losDateTime;
|
||||
if (m_settings.m_utc)
|
||||
{
|
||||
aosDateTime = satWorkerState->m_satState.m_passes[0]->m_aos.toString(m_settings.m_dateFormat + " hh:mm");
|
||||
losDateTime = satWorkerState->m_satState.m_passes[0]->m_los.toString(m_settings.m_dateFormat + " hh:mm");
|
||||
}
|
||||
else
|
||||
{
|
||||
aosDateTime = satWorkerState->m_satState.m_passes[0]->m_aos.toLocalTime().toString(m_settings.m_dateFormat + " hh:mm");
|
||||
losDateTime = satWorkerState->m_satState.m_passes[0]->m_los.toLocalTime().toString(m_settings.m_dateFormat + " hh:mm");
|
||||
}
|
||||
text = QString("%1\nAOS: %2\nLOS: %3\nMax El: %4%5")
|
||||
.arg(text)
|
||||
.arg(satWorkerState->m_satState.m_passes[0]->m_aos.toString(m_settings.m_dateFormat + " hh:mm"))
|
||||
.arg(satWorkerState->m_satState.m_passes[0]->m_los.toString(m_settings.m_dateFormat + " hh:mm"))
|
||||
.arg(aosDateTime)
|
||||
.arg(losDateTime)
|
||||
.arg((int)round(satWorkerState->m_satState.m_passes[0]->m_maxElevation))
|
||||
.arg(QChar(0xb0));
|
||||
}
|
||||
@ -631,9 +644,10 @@ void SatelliteTrackerWorker::applyDeviceAOSSettings(const QString& name)
|
||||
}
|
||||
}
|
||||
|
||||
// Send AOS message to channels
|
||||
// Send AOS message to channels/features
|
||||
SatWorkerState *satWorkerState = m_workerState.value(name);
|
||||
ChannelWebAPIUtils::satelliteAOS(name, satWorkerState->m_satState.m_passes[0]->m_northToSouth);
|
||||
FeatureWebAPIUtils::satelliteAOS(name, satWorkerState->m_aos, satWorkerState->m_los);
|
||||
|
||||
// Start Doppler correction, if needed
|
||||
satWorkerState->m_initFrequencyOffset.clear();
|
||||
@ -690,9 +704,10 @@ void SatelliteTrackerWorker::applyDeviceAOSSettings(const QString& name)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Send AOS message to channels
|
||||
// Send AOS message to channels/features
|
||||
SatWorkerState *satWorkerState = m_workerState.value(name);
|
||||
ChannelWebAPIUtils::satelliteAOS(name, satWorkerState->m_satState.m_passes[0]->m_northToSouth);
|
||||
FeatureWebAPIUtils::satelliteAOS(name, satWorkerState->m_aos, satWorkerState->m_los);
|
||||
}
|
||||
|
||||
}
|
||||
@ -775,8 +790,9 @@ void SatelliteTrackerWorker::los(SatWorkerState *satWorkerState)
|
||||
}
|
||||
}
|
||||
|
||||
// Send LOS message to channels
|
||||
// Send LOS message to channels/features
|
||||
ChannelWebAPIUtils::satelliteLOS(satWorkerState->m_name);
|
||||
FeatureWebAPIUtils::satelliteLOS(satWorkerState->m_name);
|
||||
|
||||
// Stop acquisition
|
||||
for (int i = 0; i < m_deviceSettingsList->size(); i++)
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "SWGFeatureActions.h"
|
||||
#include "SWGMapActions.h"
|
||||
#include "SWGPERTesterActions.h"
|
||||
|
||||
#include "maincore.h"
|
||||
#include "feature/featureset.h"
|
||||
@ -99,3 +100,48 @@ Feature* FeatureWebAPIUtils::getFeature(int featureSetIndex, int featureIndex, c
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// Send AOS actions to all features that support it
|
||||
bool FeatureWebAPIUtils::satelliteAOS(const QString name, const QDateTime aos, const QDateTime los)
|
||||
{
|
||||
std::vector<FeatureSet*>& featureSets = MainCore::instance()->getFeatureeSets();
|
||||
|
||||
for (std::vector<FeatureSet*>::const_iterator it = featureSets.begin(); it != featureSets.end(); ++it)
|
||||
{
|
||||
for (int fi = 0; fi < (*it)->getNumberOfFeatures(); fi++)
|
||||
{
|
||||
Feature *feature = (*it)->getFeatureAt(fi);
|
||||
if (feature->getURI() == "sdrangel.feature.pertester")
|
||||
{
|
||||
QStringList featureActionKeys = {"aos"};
|
||||
SWGSDRangel::SWGFeatureActions featureActions;
|
||||
SWGSDRangel::SWGPERTesterActions *perTesterFeatureAction = new SWGSDRangel::SWGPERTesterActions();
|
||||
SWGSDRangel::SWGPERTesterActions_aos *aosAction = new SWGSDRangel::SWGPERTesterActions_aos();
|
||||
QString errorResponse;
|
||||
int httpRC;
|
||||
|
||||
aosAction->setSatelliteName(new QString(name));
|
||||
aosAction->setAosTime(new QString(aos.toString(Qt::ISODate)));
|
||||
aosAction->setLosTime(new QString(los.toString(Qt::ISODate)));
|
||||
perTesterFeatureAction->setAos(aosAction);
|
||||
|
||||
featureActions.setPerTesterActions(perTesterFeatureAction);
|
||||
httpRC = feature->webapiActionsPost(featureActionKeys, featureActions, errorResponse);
|
||||
if (httpRC/100 != 2)
|
||||
{
|
||||
qWarning("FeatureWebAPIUtils::satelliteAOS: webapiActionsPost error %d: %s",
|
||||
httpRC, qPrintable(errorResponse));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Send LOS actions to all features that support it
|
||||
bool FeatureWebAPIUtils::satelliteLOS(const QString name)
|
||||
{
|
||||
// Not currently required by any features
|
||||
return true;
|
||||
}
|
||||
|
@ -18,6 +18,8 @@
|
||||
#ifndef SDRBASE_FEATURE_FEATUREWEBAPIUTILS_H_
|
||||
#define SDRBASE_FEATURE_FEATUREWEBAPIUTILS_H_
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
#include "export.h"
|
||||
|
||||
class Feature;
|
||||
@ -27,6 +29,8 @@ class SDRBASE_API FeatureWebAPIUtils
|
||||
public:
|
||||
static bool mapFind(const QString& target, int featureSetIndex=-1, int featureIndex=-1);
|
||||
static Feature *getFeature(int featureSetIndex, int featureIndex, const QString& uri);
|
||||
static bool satelliteAOS(const QString name, const QDateTime aos, const QDateTime los);
|
||||
static bool satelliteLOS(const QString name);
|
||||
};
|
||||
|
||||
#endif // SDRBASE_FEATURE_FEATUREWEBAPIUTILS_H_
|
||||
|
Loading…
Reference in New Issue
Block a user