ADS-B Demodulator updates.
Add OpenSky Network aircraft database support, for information about
aircraft model, owner, registration.
Add airline logos and country & military flags for display in the table.
Add OurAirports airport database support, to allow airports and ATC
frequencies to be displayed on the map.
Allow ATC frequency to be tuned by clicking on the map.
Add support for displaying flight paths on the map.
Allow columns in table to be rearranged and hidden.
Allow rows in table to be sorted by clicking on header.
Allow switching units from ft, kn, ft/min to m, kph, m/s
Allow aircraft timeout to be set by the user.
Allow font used for the table to be set by the user.
Add optional display of demodulator statistics.
Support multithreading in demodulator to reduce FIFO overflows.
Add support for demodulating all Mode-S frames and feeding them.
Add support for feeding in Beast hex format.
Allow option of correlating against full preamble or partial preamble.
Supporting highlighting of an aircraft in the table by selecting it on
the map.
Use difference of zeros and ones correlation, rather than absolute
threshold, to better account for varying conditions and make the
threshold easier to set.
Enable anti-aliasing for text on the map.
Improve CRC performance by 5x-10x.
Add HttpDownloadManager class to support downloading of files from the
web to disk.
2020-11-06 07:18:55 -05:00
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
2023-11-19 00:43:20 -05:00
|
|
|
// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany //
|
|
|
|
// written by Christian Daniel //
|
|
|
|
// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB <f4exb06@gmail.com> //
|
2024-04-06 17:22:28 -04:00
|
|
|
// Copyright (C) 2020-2024 Jon Beniston, M7RCE <jon@beniston.com> //
|
ADS-B Demodulator updates.
Add OpenSky Network aircraft database support, for information about
aircraft model, owner, registration.
Add airline logos and country & military flags for display in the table.
Add OurAirports airport database support, to allow airports and ATC
frequencies to be displayed on the map.
Allow ATC frequency to be tuned by clicking on the map.
Add support for displaying flight paths on the map.
Allow columns in table to be rearranged and hidden.
Allow rows in table to be sorted by clicking on header.
Allow switching units from ft, kn, ft/min to m, kph, m/s
Allow aircraft timeout to be set by the user.
Allow font used for the table to be set by the user.
Add optional display of demodulator statistics.
Support multithreading in demodulator to reduce FIFO overflows.
Add support for demodulating all Mode-S frames and feeding them.
Add support for feeding in Beast hex format.
Allow option of correlating against full preamble or partial preamble.
Supporting highlighting of an aircraft in the table by selecting it on
the map.
Use difference of zeros and ones correlation, rather than absolute
threshold, to better account for varying conditions and make the
threshold easier to set.
Enable anti-aliasing for text on the map.
Improve CRC performance by 5x-10x.
Add HttpDownloadManager class to support downloading of files from the
web to disk.
2020-11-06 07:18:55 -05:00
|
|
|
// //
|
|
|
|
// This program is free software; you can redistribute it and/or modify //
|
|
|
|
// it under the terms of the GNU General Public License as published by //
|
|
|
|
// the Free Software Foundation as version 3 of the License, or //
|
|
|
|
// (at your option) any later version. //
|
|
|
|
// //
|
|
|
|
// This program is distributed in the hope that it will be useful, //
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
|
|
|
// GNU General Public License V3 for more details. //
|
|
|
|
// //
|
|
|
|
// You should have received a copy of the GNU General Public License //
|
|
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef SDRBASE_CHANNEL_CHANNELWEBAPIUTILS_H_
|
|
|
|
#define SDRBASE_CHANNEL_CHANNELWEBAPIUTILS_H_
|
|
|
|
|
2021-02-26 15:25:48 -05:00
|
|
|
#include <QString>
|
2024-03-27 12:47:13 -04:00
|
|
|
#include <QJsonArray>
|
2024-10-08 13:15:52 -04:00
|
|
|
#include <QTimer>
|
2021-02-26 15:25:48 -05:00
|
|
|
|
2021-10-12 06:31:14 -04:00
|
|
|
#include "SWGDeviceSettings.h"
|
2022-07-19 05:10:20 -04:00
|
|
|
#include "SWGDeviceReport.h"
|
2021-10-12 06:31:14 -04:00
|
|
|
#include "SWGFeatureSettings.h"
|
2022-02-09 11:42:51 -05:00
|
|
|
#include "SWGFeatureReport.h"
|
2023-04-03 11:47:13 -04:00
|
|
|
#include "SWGChannelSettings.h"
|
|
|
|
#include "SWGChannelReport.h"
|
2021-10-12 06:31:14 -04:00
|
|
|
|
ADS-B Demodulator updates.
Add OpenSky Network aircraft database support, for information about
aircraft model, owner, registration.
Add airline logos and country & military flags for display in the table.
Add OurAirports airport database support, to allow airports and ATC
frequencies to be displayed on the map.
Allow ATC frequency to be tuned by clicking on the map.
Add support for displaying flight paths on the map.
Allow columns in table to be rearranged and hidden.
Allow rows in table to be sorted by clicking on header.
Allow switching units from ft, kn, ft/min to m, kph, m/s
Allow aircraft timeout to be set by the user.
Allow font used for the table to be set by the user.
Add optional display of demodulator statistics.
Support multithreading in demodulator to reduce FIFO overflows.
Add support for demodulating all Mode-S frames and feeding them.
Add support for feeding in Beast hex format.
Allow option of correlating against full preamble or partial preamble.
Supporting highlighting of an aircraft in the table by selecting it on
the map.
Use difference of zeros and ones correlation, rather than absolute
threshold, to better account for varying conditions and make the
threshold easier to set.
Enable anti-aliasing for text on the map.
Improve CRC performance by 5x-10x.
Add HttpDownloadManager class to support downloading of files from the
web to disk.
2020-11-06 07:18:55 -05:00
|
|
|
#include "export.h"
|
|
|
|
|
2021-10-12 06:31:14 -04:00
|
|
|
class DeviceSet;
|
|
|
|
class Feature;
|
2023-04-03 11:47:13 -04:00
|
|
|
class ChannelAPI;
|
2024-10-08 13:15:52 -04:00
|
|
|
class DeviceAPI;
|
|
|
|
|
|
|
|
// Use ChannelWebAPIUtils::addDevice rather than this directly
|
|
|
|
class DeviceOpener : public QObject {
|
|
|
|
Q_OBJECT
|
|
|
|
protected:
|
|
|
|
DeviceOpener(int deviceIndex, int direction, const QStringList& settingsKeys, SWGSDRangel::SWGDeviceSettings *response);
|
|
|
|
private:
|
|
|
|
int m_deviceIndex;
|
|
|
|
int m_direction;
|
|
|
|
int m_deviceSetIndex;
|
|
|
|
QStringList m_settingsKeys;
|
|
|
|
SWGSDRangel::SWGDeviceSettings *m_response;
|
|
|
|
DeviceAPI *m_device;
|
|
|
|
QTimer m_timer;
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void deviceSetAdded(int index, DeviceAPI *device);
|
|
|
|
void checkInitialised();
|
|
|
|
public:
|
|
|
|
static bool open(const QString hwType, int direction, const QStringList& settingsKeys, SWGSDRangel::SWGDeviceSettings *response);
|
|
|
|
};
|
2021-10-12 06:31:14 -04:00
|
|
|
|
ADS-B Demodulator updates.
Add OpenSky Network aircraft database support, for information about
aircraft model, owner, registration.
Add airline logos and country & military flags for display in the table.
Add OurAirports airport database support, to allow airports and ATC
frequencies to be displayed on the map.
Allow ATC frequency to be tuned by clicking on the map.
Add support for displaying flight paths on the map.
Allow columns in table to be rearranged and hidden.
Allow rows in table to be sorted by clicking on header.
Allow switching units from ft, kn, ft/min to m, kph, m/s
Allow aircraft timeout to be set by the user.
Allow font used for the table to be set by the user.
Add optional display of demodulator statistics.
Support multithreading in demodulator to reduce FIFO overflows.
Add support for demodulating all Mode-S frames and feeding them.
Add support for feeding in Beast hex format.
Allow option of correlating against full preamble or partial preamble.
Supporting highlighting of an aircraft in the table by selecting it on
the map.
Use difference of zeros and ones correlation, rather than absolute
threshold, to better account for varying conditions and make the
threshold easier to set.
Enable anti-aliasing for text on the map.
Improve CRC performance by 5x-10x.
Add HttpDownloadManager class to support downloading of files from the
web to disk.
2020-11-06 07:18:55 -05:00
|
|
|
class SDRBASE_API ChannelWebAPIUtils
|
|
|
|
{
|
|
|
|
public:
|
2020-11-14 16:08:06 -05:00
|
|
|
static bool getCenterFrequency(unsigned int deviceIndex, double &frequencyInHz);
|
|
|
|
static bool setCenterFrequency(unsigned int deviceIndex, double frequencyInHz);
|
2022-07-19 05:10:20 -04:00
|
|
|
static bool getLOPpmCorrection(unsigned int deviceIndex, int &ppmTenths);
|
|
|
|
static bool setLOPpmCorrection(unsigned int deviceIndex, int ppmTenths);
|
|
|
|
static bool getDevSampleRate(unsigned int deviceIndex, int &sampleRate);
|
|
|
|
static bool setDevSampleRate(unsigned int deviceIndex, int sampleRate);
|
|
|
|
static bool getGain(unsigned int deviceIndex, int stage, int &gain);
|
|
|
|
static bool setGain(unsigned int deviceIndex, int stage, int gain);
|
|
|
|
static bool getAGC(unsigned int deviceIndex, int &enabled);
|
|
|
|
static bool setAGC(unsigned int deviceIndex, bool enabled);
|
|
|
|
static bool getRFBandwidth(unsigned int deviceIndex, int &bw);
|
|
|
|
static bool setRFBandwidth(unsigned int deviceIndex, int bw);
|
|
|
|
static bool getSoftDecim(unsigned int deviceIndex, int &log2Decim);
|
|
|
|
static bool setSoftDecim(unsigned int deviceIndex, int log2Decim);
|
|
|
|
static bool getBiasTee(unsigned int deviceIndex, int &enabled);
|
|
|
|
static bool setBiasTee(unsigned int deviceIndex, bool enabled);
|
|
|
|
static bool getDCOffsetRemoval(unsigned int deviceIndex, int &enabled);
|
|
|
|
static bool setDCOffsetRemoval(unsigned int deviceIndex, bool enabled);
|
|
|
|
static bool getIQCorrection(unsigned int deviceIndex, int &enabled);
|
|
|
|
static bool setIQCorrection(unsigned int deviceIndex, bool enabled);
|
2021-02-26 15:25:48 -05:00
|
|
|
static bool run(unsigned int deviceIndex, int subsystemIndex=0);
|
|
|
|
static bool stop(unsigned int deviceIndex, int subsystemIndex=0);
|
|
|
|
static bool getFrequencyOffset(unsigned int deviceIndex, int channelIndex, int& offset);
|
|
|
|
static bool setFrequencyOffset(unsigned int deviceIndex, int channelIndex, int offset);
|
2023-09-28 11:45:35 -04:00
|
|
|
static bool setAudioMute(unsigned int deviceIndex, int channelIndex, bool mute);
|
2021-02-26 15:25:48 -05:00
|
|
|
static bool startStopFileSinks(unsigned int deviceIndex, bool start);
|
2022-02-04 13:21:56 -05:00
|
|
|
static bool satelliteAOS(const QString name, bool northToSouthPass, const QString &tle, QDateTime dateTime);
|
2021-02-26 15:25:48 -05:00
|
|
|
static bool satelliteLOS(const QString name);
|
2021-10-12 06:31:14 -04:00
|
|
|
static bool getDeviceSetting(unsigned int deviceIndex, const QString &setting, int &value);
|
2022-02-04 13:21:56 -05:00
|
|
|
static bool getDeviceReportValue(unsigned int deviceIndex, const QString &key, QString &value);
|
2022-07-19 05:10:20 -04:00
|
|
|
static bool getDeviceReportList(unsigned int deviceIndex, const QString &key, const QString &subKey, QList<int> &values);
|
2024-09-17 04:47:45 -04:00
|
|
|
static bool getDevicePosition(unsigned int deviceIndex, float& latitude, float& longitude, float& altitude);
|
2021-10-12 06:31:14 -04:00
|
|
|
static bool patchDeviceSetting(unsigned int deviceIndex, const QString &setting, int value);
|
2024-03-27 12:47:13 -04:00
|
|
|
static bool runFeature(unsigned int featureSetIndex, unsigned int featureIndex);
|
|
|
|
static bool stopFeature(unsigned int featureSetIndex, unsigned int featureIndex);
|
2021-10-12 06:31:14 -04:00
|
|
|
static bool patchFeatureSetting(unsigned int featureSetIndex, unsigned int featureIndex, const QString &setting, const QString &value);
|
|
|
|
static bool patchFeatureSetting(unsigned int featureSetIndex, unsigned int featureIndex, const QString &setting, double value);
|
2024-03-27 12:47:13 -04:00
|
|
|
static bool patchFeatureSetting(unsigned int featureSetIndex, unsigned int featureIndex, const QString &setting, const QJsonArray& value);
|
2024-04-06 17:22:28 -04:00
|
|
|
static bool patchChannelSetting(ChannelAPI *channel, const QString &setting, const QVariant &value);
|
|
|
|
static bool patchChannelSetting(unsigned int deviceSetIndex, unsigned int channeIndex, const QString &setting, const QString &value);
|
|
|
|
static bool patchChannelSetting(unsigned int deviceSetIndex, unsigned int channeIndex, const QString &setting, int value);
|
2023-11-29 12:13:34 -05:00
|
|
|
static bool patchChannelSetting(unsigned int deviceSetIndex, unsigned int channeIndex, const QString &setting, double value);
|
2023-10-26 11:31:37 -04:00
|
|
|
static bool patchChannelSetting(unsigned int deviceSetIndex, unsigned int channeIndex, const QString &setting, const QJsonArray& value);
|
2023-03-21 06:54:42 -04:00
|
|
|
static bool getFeatureSetting(unsigned int featureSetIndex, unsigned int featureIndex, const QString &setting, int &value);
|
2023-04-03 11:47:13 -04:00
|
|
|
static bool getFeatureSetting(unsigned int featureSetIndex, unsigned int featureIndex, const QString &setting, double &value);
|
2023-03-21 06:54:42 -04:00
|
|
|
static bool getFeatureSetting(unsigned int featureSetIndex, unsigned int featureIndex, const QString &setting, QString &value);
|
2023-04-03 11:47:13 -04:00
|
|
|
static bool getChannelSetting(unsigned int deviceSetIndex, unsigned int channelIndex, const QString &setting, int &value);
|
|
|
|
static bool getChannelSetting(unsigned int deviceSetIndex, unsigned int channelIndex, const QString &setting, double &value);
|
|
|
|
static bool getChannelSetting(unsigned int deviceSetIndex, unsigned int channelIndex, const QString &setting, QString &value);
|
2021-10-12 06:31:14 -04:00
|
|
|
static bool getFeatureReportValue(unsigned int featureSetIndex, unsigned int featureIndex, const QString &key, int &value);
|
2023-04-03 11:47:13 -04:00
|
|
|
static bool getFeatureReportValue(unsigned int featureSetIndex, unsigned int featureIndex, const QString &key, double &value);
|
|
|
|
static bool getFeatureReportValue(unsigned int featureSetIndex, unsigned int featureIndex, const QString &key, QString &value);
|
|
|
|
static bool getChannelReportValue(unsigned int deviceIndex, unsigned int channelIndex, const QString &key, int &value);
|
|
|
|
static bool getChannelReportValue(unsigned int deviceIndex, unsigned int channelIndex, const QString &key, double &value);
|
|
|
|
static bool getChannelReportValue(unsigned int deviceIndex, unsigned int channelIndex, const QString &key, QString &value);
|
2021-10-12 06:31:14 -04:00
|
|
|
static bool getDeviceSettings(unsigned int deviceIndex, SWGSDRangel::SWGDeviceSettings &deviceSettingsResponse, DeviceSet *&deviceSet);
|
2022-07-19 05:10:20 -04:00
|
|
|
static bool getDeviceReport(unsigned int deviceIndex, SWGSDRangel::SWGDeviceReport &deviceReport);
|
2021-10-12 06:31:14 -04:00
|
|
|
static bool getFeatureSettings(unsigned int featureSetIndex, unsigned int featureIndex, SWGSDRangel::SWGFeatureSettings &featureSettingsResponse, Feature *&feature);
|
2022-02-09 11:42:51 -05:00
|
|
|
static bool getFeatureReport(unsigned int featureSetIndex, unsigned int featureIndex, SWGSDRangel::SWGFeatureReport &featureReport);
|
2023-04-03 11:47:13 -04:00
|
|
|
static bool getChannelSettings(unsigned int deviceIndex, unsigned int channelIndex, SWGSDRangel::SWGChannelSettings &channelSettingsResponse, ChannelAPI *&channel);
|
2024-04-06 17:22:28 -04:00
|
|
|
static bool getChannelSettings(ChannelAPI *channel, SWGSDRangel::SWGChannelSettings &channelSettingsResponse);
|
2023-04-03 11:47:13 -04:00
|
|
|
static bool getChannelReport(unsigned int deviceIndex, unsigned int channelIndex, SWGSDRangel::SWGChannelReport &channelReport);
|
2024-04-06 17:22:28 -04:00
|
|
|
static bool addChannel(unsigned int deviceSetIndex, const QString& uri, int direction);
|
2024-10-08 13:15:52 -04:00
|
|
|
static bool addDevice(const QString hwType, int direction, const QStringList& settingsKeys, SWGSDRangel::SWGDeviceSettings *response);
|
2023-08-26 09:40:13 -04:00
|
|
|
protected:
|
2022-07-19 05:10:20 -04:00
|
|
|
static QString getDeviceHardwareId(unsigned int deviceIndex);
|
ADS-B Demodulator updates.
Add OpenSky Network aircraft database support, for information about
aircraft model, owner, registration.
Add airline logos and country & military flags for display in the table.
Add OurAirports airport database support, to allow airports and ATC
frequencies to be displayed on the map.
Allow ATC frequency to be tuned by clicking on the map.
Add support for displaying flight paths on the map.
Allow columns in table to be rearranged and hidden.
Allow rows in table to be sorted by clicking on header.
Allow switching units from ft, kn, ft/min to m, kph, m/s
Allow aircraft timeout to be set by the user.
Allow font used for the table to be set by the user.
Add optional display of demodulator statistics.
Support multithreading in demodulator to reduce FIFO overflows.
Add support for demodulating all Mode-S frames and feeding them.
Add support for feeding in Beast hex format.
Allow option of correlating against full preamble or partial preamble.
Supporting highlighting of an aircraft in the table by selecting it on
the map.
Use difference of zeros and ones correlation, rather than absolute
threshold, to better account for varying conditions and make the
threshold easier to set.
Enable anti-aliasing for text on the map.
Improve CRC performance by 5x-10x.
Add HttpDownloadManager class to support downloading of files from the
web to disk.
2020-11-06 07:18:55 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // SDRBASE_CHANNEL_CHANNELWEBAPIUTILS_H_
|
2023-04-03 11:47:13 -04:00
|
|
|
|