2020-10-27 12:22:10 -04:00
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Copyright (C) 2017 Edouard Griffiths, F4EXB //
|
|
|
|
// Copyright (C) 2020 Jon Beniston, M7RCE //
|
|
|
|
// //
|
|
|
|
// 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 PLUGINS_CHANNELRX_DEMODADSB_ADSBDEMODSETTINGS_H_
|
|
|
|
#define PLUGINS_CHANNELRX_DEMODADSB_ADSBDEMODSETTINGS_H_
|
|
|
|
|
|
|
|
#include <QtGlobal>
|
|
|
|
#include <QString>
|
2021-10-27 17:25:14 -04:00
|
|
|
#include <QRegularExpression>
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
#include <stdint.h>
|
|
|
|
#include "dsp/dsptypes.h"
|
|
|
|
|
|
|
|
class Serializable;
|
|
|
|
|
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
|
|
|
// Number of columns in the table
|
2021-10-29 07:54:10 -04:00
|
|
|
#define ADSBDEMOD_COLUMNS 34
|
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
|
|
|
|
2021-10-27 17:25:14 -04:00
|
|
|
// ADS-B table columns
|
|
|
|
#define ADSB_COL_ICAO 0
|
2021-10-29 07:54:10 -04:00
|
|
|
#define ADSB_COL_CALLSIGN 1
|
2021-10-27 17:25:14 -04:00
|
|
|
#define ADSB_COL_MODEL 2
|
|
|
|
#define ADSB_COL_AIRLINE 3
|
|
|
|
#define ADSB_COL_ALTITUDE 4
|
|
|
|
#define ADSB_COL_SPEED 5
|
|
|
|
#define ADSB_COL_HEADING 6
|
|
|
|
#define ADSB_COL_VERTICALRATE 7
|
|
|
|
#define ADSB_COL_RANGE 8
|
|
|
|
#define ADSB_COL_AZEL 9
|
|
|
|
#define ADSB_COL_LATITUDE 10
|
|
|
|
#define ADSB_COL_LONGITUDE 11
|
|
|
|
#define ADSB_COL_CATEGORY 12
|
|
|
|
#define ADSB_COL_STATUS 13
|
|
|
|
#define ADSB_COL_SQUAWK 14
|
|
|
|
#define ADSB_COL_REGISTRATION 15
|
|
|
|
#define ADSB_COL_COUNTRY 16
|
|
|
|
#define ADSB_COL_REGISTERED 17
|
|
|
|
#define ADSB_COL_MANUFACTURER 18
|
|
|
|
#define ADSB_COL_OWNER 19
|
|
|
|
#define ADSB_COL_OPERATOR_ICAO 20
|
|
|
|
#define ADSB_COL_TIME 21
|
|
|
|
#define ADSB_COL_FRAMECOUNT 22
|
|
|
|
#define ADSB_COL_CORRELATION 23
|
|
|
|
#define ADSB_COL_RSSI 24
|
2021-10-29 07:54:10 -04:00
|
|
|
#define ADSB_COL_FLIGHT_STATUS 25
|
|
|
|
#define ADSB_COL_DEP 26
|
|
|
|
#define ADSB_COL_ARR 27
|
|
|
|
#define ADSB_COL_STD 28
|
|
|
|
#define ADSB_COL_ETD 29
|
|
|
|
#define ADSB_COL_ATD 30
|
|
|
|
#define ADSB_COL_STA 31
|
|
|
|
#define ADSB_COL_ETA 32
|
|
|
|
#define ADSB_COL_ATA 33
|
2021-10-27 17:25:14 -04:00
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
struct ADSBDemodSettings
|
|
|
|
{
|
2021-10-27 17:25:14 -04:00
|
|
|
struct NotificationSettings {
|
|
|
|
int m_matchColumn;
|
|
|
|
QString m_regExp;
|
|
|
|
QString m_speech;
|
|
|
|
QString m_command;
|
|
|
|
QRegularExpression m_regularExpression;
|
2021-11-07 13:38:46 -05:00
|
|
|
bool m_autoTarget;
|
2021-10-27 17:25:14 -04:00
|
|
|
|
|
|
|
NotificationSettings();
|
|
|
|
void updateRegularExpression();
|
|
|
|
};
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
int32_t m_inputFrequencyOffset;
|
|
|
|
Real m_rfBandwidth;
|
2020-10-30 09:27:00 -04:00
|
|
|
Real m_correlationThreshold; //!< Correlation power threshold in dB
|
2020-10-27 12:22:10 -04:00
|
|
|
int m_samplesPerBit;
|
2020-10-30 09:27:00 -04:00
|
|
|
int m_removeTimeout; //!< Time in seconds before removing an aircraft, unless a new frame is received
|
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
|
|
|
bool m_feedEnabled;
|
|
|
|
QString m_feedHost;
|
|
|
|
uint16_t m_feedPort;
|
|
|
|
enum FeedFormat {
|
|
|
|
BeastBinary,
|
|
|
|
BeastHex
|
|
|
|
} m_feedFormat;
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
quint32 m_rgbColor;
|
|
|
|
QString m_title;
|
|
|
|
int m_streamIndex; //!< MIMO channel. Not relevant when connected to SI (single Rx).
|
|
|
|
bool m_useReverseAPI;
|
|
|
|
QString m_reverseAPIAddress;
|
|
|
|
uint16_t m_reverseAPIPort;
|
|
|
|
uint16_t m_reverseAPIDeviceIndex;
|
|
|
|
uint16_t m_reverseAPIChannelIndex;
|
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
|
|
|
int m_columnIndexes[ADSBDEMOD_COLUMNS];//!< How the columns are ordered in the table
|
|
|
|
int m_columnSizes[ADSBDEMOD_COLUMNS]; //!< Size of the coumns in the table
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
Serializable *m_channelMarker;
|
|
|
|
|
2020-11-10 08:40:57 -05:00
|
|
|
float m_airportRange; //!< How far away should we display airports (km)
|
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
|
|
|
enum AirportType {
|
|
|
|
Small,
|
|
|
|
Medium,
|
|
|
|
Large,
|
|
|
|
Heliport
|
|
|
|
} m_airportMinimumSize; //!< What's the minimum size airport that should be displayed
|
|
|
|
bool m_displayHeliports; //!< Whether to display heliports on the map
|
|
|
|
bool m_flightPaths; //!< Whether to display flight paths
|
2021-01-13 12:15:32 -05:00
|
|
|
bool m_allFlightPaths; //!< Whether to display flight paths for all aircraft
|
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
|
|
|
bool m_siUnits; //!< Uses m,kph rather than ft/knts
|
|
|
|
QString m_tableFontName; //!< Font to use for table
|
|
|
|
int m_tableFontSize;
|
|
|
|
bool m_displayDemodStats;
|
|
|
|
bool m_correlateFullPreamble;
|
|
|
|
bool m_demodModeS; //!< Demodulate all Mode-S frames, not just ADS-B
|
|
|
|
int m_deviceIndex; //!< Device to set to ATC frequencies
|
2020-11-10 09:27:42 -05:00
|
|
|
bool m_autoResizeTableColumns;
|
2020-11-12 08:25:49 -05:00
|
|
|
int m_interpolatorPhaseSteps;
|
|
|
|
float m_interpolatorTapsPerPhase;
|
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
|
|
|
|
2021-10-27 17:25:14 -04:00
|
|
|
QList<NotificationSettings *> m_notificationSettings;
|
2021-10-29 07:54:10 -04:00
|
|
|
QString m_apiKey; //!< aviationstack.com API key
|
2021-10-27 17:25:14 -04:00
|
|
|
|
2021-11-03 13:19:21 -04:00
|
|
|
QString m_logFilename;
|
|
|
|
bool m_logEnabled;
|
|
|
|
|
2021-11-12 11:51:23 -05:00
|
|
|
QStringList m_airspaces; //!< Airspace names to display
|
|
|
|
float m_airspaceRange; //!< How far away we display airspace (mkm)
|
|
|
|
enum MapType {
|
|
|
|
AVIATION_LIGHT, //!< White map with no place names
|
|
|
|
AVIATION_DARK,
|
|
|
|
STREET,
|
|
|
|
SATELLITE
|
|
|
|
} m_mapType;
|
|
|
|
bool m_displayNavAids;
|
|
|
|
bool m_displayPhotos;
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
ADSBDemodSettings();
|
|
|
|
void resetToDefaults();
|
|
|
|
void setChannelMarker(Serializable *channelMarker) { m_channelMarker = channelMarker; }
|
|
|
|
QByteArray serialize() const;
|
|
|
|
bool deserialize(const QByteArray& data);
|
2021-10-27 17:25:14 -04:00
|
|
|
QByteArray serializeNotificationSettings(QList<NotificationSettings *> notificationSettings) const;
|
|
|
|
void deserializeNotificationSettings(const QByteArray& data, QList<NotificationSettings *>& notificationSettings);
|
2020-10-27 12:22:10 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* PLUGINS_CHANNELRX_DEMODADSB_ADSBDEMODSETTINGS_H_ */
|