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
|
2023-10-26 11:31:37 -04:00
|
|
|
#define ADSBDEMOD_COLUMNS 54
|
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
|
ADS-B: Add support for decoding Comm-B replies in Mode-S frames. This adds TAS, IAS, Mach, Selelected Alt, Selected Heading, Turn rate, Roll angle, Autopilot enabled, Vertical and lateral navigation modes, Baro setting, Headwind, OAT, Wind speed and direction, Pressure, Static air temperature, Humidity.
2022-08-26 07:35:12 -04:00
|
|
|
#define ADSB_COL_ICAO 0
|
|
|
|
#define ADSB_COL_CALLSIGN 1
|
2023-10-26 11:31:37 -04:00
|
|
|
#define ADSB_COL_ATC_CALLSIGN 2
|
|
|
|
#define ADSB_COL_MODEL 3
|
|
|
|
#define ADSB_COL_AIRLINE 4
|
|
|
|
#define ADSB_COL_COUNTRY 5
|
|
|
|
#define ADSB_COL_GROUND_SPEED 6
|
|
|
|
#define ADSB_COL_TRUE_AIRSPEED 7
|
|
|
|
#define ADSB_COL_INDICATED_AIRSPEED 8
|
|
|
|
#define ADSB_COL_MACH 9
|
|
|
|
#define ADSB_COL_SEL_ALTITUDE 10
|
|
|
|
#define ADSB_COL_ALTITUDE 11
|
|
|
|
#define ADSB_COL_VERTICALRATE 12
|
|
|
|
#define ADSB_COL_SEL_HEADING 13
|
|
|
|
#define ADSB_COL_HEADING 14
|
|
|
|
#define ADSB_COL_TURNRATE 15
|
|
|
|
#define ADSB_COL_ROLL 16
|
|
|
|
#define ADSB_COL_RANGE 17
|
|
|
|
#define ADSB_COL_AZEL 18
|
|
|
|
#define ADSB_COL_CATEGORY 19
|
|
|
|
#define ADSB_COL_STATUS 20
|
|
|
|
#define ADSB_COL_SQUAWK 21
|
|
|
|
#define ADSB_COL_REGISTRATION 22
|
|
|
|
#define ADSB_COL_REGISTERED 23
|
|
|
|
#define ADSB_COL_MANUFACTURER 24
|
|
|
|
#define ADSB_COL_OWNER 25
|
|
|
|
#define ADSB_COL_OPERATOR_ICAO 26
|
|
|
|
#define ADSB_COL_AP 27
|
|
|
|
#define ADSB_COL_V_MODE 28
|
|
|
|
#define ADSB_COL_L_MODE 29
|
|
|
|
#define ADSB_COL_BARO 30
|
|
|
|
#define ADSB_COL_HEADWIND 31
|
|
|
|
#define ADSB_COL_EST_AIR_TEMP 32
|
|
|
|
#define ADSB_COL_WIND_SPEED 33
|
|
|
|
#define ADSB_COL_WIND_DIR 34
|
|
|
|
#define ADSB_COL_STATIC_PRESSURE 35
|
|
|
|
#define ADSB_COL_STATIC_AIR_TEMP 36
|
|
|
|
#define ADSB_COL_HUMIDITY 37
|
|
|
|
#define ADSB_COL_LATITUDE 38
|
|
|
|
#define ADSB_COL_LONGITUDE 39
|
|
|
|
#define ADSB_COL_TIME 40
|
|
|
|
#define ADSB_COL_FRAMECOUNT 41
|
|
|
|
#define ADSB_COL_TIS_B 42
|
|
|
|
#define ADSB_COL_CORRELATION 43
|
|
|
|
#define ADSB_COL_RSSI 44
|
|
|
|
#define ADSB_COL_FLIGHT_STATUS 45
|
|
|
|
#define ADSB_COL_DEP 46
|
|
|
|
#define ADSB_COL_ARR 47
|
|
|
|
#define ADSB_COL_STD 48
|
|
|
|
#define ADSB_COL_ETD 49
|
|
|
|
#define ADSB_COL_ATD 50
|
|
|
|
#define ADSB_COL_STA 51
|
|
|
|
#define ADSB_COL_ETA 52
|
|
|
|
#define ADSB_COL_ATA 53
|
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
|
2022-02-09 11:36:09 -05: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
|
|
|
bool m_feedEnabled;
|
2022-02-09 11:36:09 -05:00
|
|
|
bool m_exportClientEnabled;
|
|
|
|
QString m_exportClientHost;
|
|
|
|
uint16_t m_exportClientPort;
|
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 FeedFormat {
|
|
|
|
BeastBinary,
|
|
|
|
BeastHex
|
2022-02-09 11:36:09 -05:00
|
|
|
} m_exportClientFormat;
|
|
|
|
bool m_exportServerEnabled;
|
|
|
|
uint16_t m_exportServerPort;
|
|
|
|
bool m_importEnabled;
|
|
|
|
QString m_importHost;
|
|
|
|
QString m_importUsername;
|
|
|
|
QString m_importPassword;
|
|
|
|
QString m_importParameters;
|
|
|
|
float m_importPeriod;
|
|
|
|
QString m_importMinLatitude;
|
|
|
|
QString m_importMaxLatitude;
|
|
|
|
QString m_importMinLongitude;
|
|
|
|
QString m_importMaxLongitude;
|
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;
|
2022-04-12 10:20:45 -04:00
|
|
|
int m_workspaceIndex;
|
|
|
|
QByteArray m_geometryBytes;
|
2022-04-12 12:27:27 -04:00
|
|
|
bool m_hidden;
|
|
|
|
|
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
|
2023-10-26 11:31:37 -04:00
|
|
|
QString m_amDemod; //!< AM Demod to tune to selected ATC frequency
|
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;
|
2022-06-06 05:53:10 -04:00
|
|
|
QString m_aviationstackAPIKey; //!< aviationstack.com API key
|
|
|
|
QString m_checkWXAPIKey; //!< checkwxapi.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)
|
2022-06-06 06:52:29 -04:00
|
|
|
QString m_mapProvider;
|
2021-11-12 11:51:23 -05:00
|
|
|
enum MapType {
|
|
|
|
AVIATION_LIGHT, //!< White map with no place names
|
|
|
|
AVIATION_DARK,
|
|
|
|
STREET,
|
|
|
|
SATELLITE
|
2022-06-06 08:50:37 -04:00
|
|
|
} m_mapType;
|
2021-11-12 11:51:23 -05:00
|
|
|
bool m_displayNavAids;
|
|
|
|
bool m_displayPhotos;
|
2022-01-08 23:27:12 -05:00
|
|
|
Serializable *m_rollupState;
|
2022-02-04 11:57:45 -05:00
|
|
|
bool m_verboseModelMatching;
|
|
|
|
int m_airfieldElevation; //!< QFE in ft so aircraft takeoff/land from correct position
|
2023-02-16 07:20:31 -05:00
|
|
|
int m_aircraftMinZoom;
|
2021-11-12 11:51:23 -05:00
|
|
|
|
2023-10-26 11:31:37 -04:00
|
|
|
bool m_atcLabels;
|
|
|
|
bool m_atcCallsigns;
|
|
|
|
int m_transitionAlt;
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
ADSBDemodSettings();
|
|
|
|
void resetToDefaults();
|
|
|
|
void setChannelMarker(Serializable *channelMarker) { m_channelMarker = channelMarker; }
|
2022-01-08 23:27:12 -05:00
|
|
|
void setRollupState(Serializable *rollupState) { m_rollupState = rollupState; }
|
2020-10-27 12:22:10 -04:00
|
|
|
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_ */
|