2020-10-27 12:22:10 -04:00
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Copyright (C) 2020 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 INCLUDE_ADSBDEMODGUI_H
|
|
|
|
#define INCLUDE_ADSBDEMODGUI_H
|
|
|
|
|
|
|
|
#include <QTableWidgetItem>
|
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 <QMenu>
|
2020-10-27 12:22:10 -04:00
|
|
|
#include <QGeoCoordinate>
|
|
|
|
#include <QDateTime>
|
|
|
|
#include <QAbstractListModel>
|
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 <QProgressDialog>
|
2021-10-27 17:25:14 -04:00
|
|
|
#include <QTextToSpeech>
|
2022-02-05 04:34:37 -05:00
|
|
|
#include <QRandomGenerator>
|
2022-02-09 11:36:09 -05:00
|
|
|
#include <QNetworkAccessManager>
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
#include "channel/channelgui.h"
|
|
|
|
#include "dsp/dsptypes.h"
|
|
|
|
#include "dsp/channelmarker.h"
|
2022-06-06 05:53:10 -04:00
|
|
|
#include "util/aviationweather.h"
|
2020-10-27 12:22:10 -04:00
|
|
|
#include "util/messagequeue.h"
|
|
|
|
#include "util/azel.h"
|
2020-10-31 00:09:28 -04:00
|
|
|
#include "util/movingaverage.h"
|
2021-10-29 07:54:10 -04:00
|
|
|
#include "util/flightinformation.h"
|
2021-11-12 11:51:23 -05:00
|
|
|
#include "util/openaip.h"
|
|
|
|
#include "util/planespotters.h"
|
2022-01-08 23:27:12 -05:00
|
|
|
#include "settings/rollupstate.h"
|
2021-01-13 12:15:32 -05:00
|
|
|
#include "maincore.h"
|
2020-10-27 12:22:10 -04:00
|
|
|
|
2022-02-04 11:57:45 -05:00
|
|
|
#include "SWGMapItem.h"
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
#include "adsbdemodsettings.h"
|
2023-02-14 09:46:08 -05:00
|
|
|
#include "util/ourairportsdb.h"
|
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
|
|
|
#include "util/osndb.h"
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
class PluginAPI;
|
|
|
|
class DeviceUISet;
|
|
|
|
class BasebandSampleSink;
|
|
|
|
class ADSBDemod;
|
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 WebAPIAdapterInterface;
|
|
|
|
class HttpDownloadManager;
|
|
|
|
class ADSBDemodGUI;
|
2021-11-12 11:51:23 -05:00
|
|
|
class ADSBOSMTemplateServer;
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
namespace Ui {
|
|
|
|
class ADSBDemodGUI;
|
|
|
|
}
|
|
|
|
|
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
|
|
|
// Custom widget to allow formatted decimal numbers to be sorted numerically
|
|
|
|
class CustomDoubleTableWidgetItem : public QTableWidgetItem
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CustomDoubleTableWidgetItem(const QString text = QString("")) :
|
|
|
|
QTableWidgetItem(text)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
bool operator <(const QTableWidgetItem& other) const
|
|
|
|
{
|
|
|
|
// Treat "" as less than 0
|
|
|
|
QString thisText = text();
|
|
|
|
QString otherText = other.text();
|
|
|
|
if (thisText == "")
|
|
|
|
return true;
|
|
|
|
if (otherText == "")
|
|
|
|
return false;
|
|
|
|
return thisText.toDouble() < otherText.toDouble();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
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
|
|
|
// Data about an aircraft extracted from ADS-B and Mode-S frames
|
2020-10-27 12:22:10 -04:00
|
|
|
struct Aircraft {
|
|
|
|
int m_icao; // 24-bit ICAO aircraft address
|
2022-02-04 11:57:45 -05:00
|
|
|
QString m_icaoHex;
|
2021-10-29 07:54:10 -04:00
|
|
|
QString m_callsign; // Flight callsign
|
|
|
|
QString m_flight; // Guess at flight number
|
2020-10-27 12:22:10 -04:00
|
|
|
Real m_latitude; // Latitude in decimal degrees
|
|
|
|
Real m_longitude; // Longitude in decimal degrees
|
|
|
|
int m_altitude; // Altitude in feet
|
2022-02-04 11:57:45 -05:00
|
|
|
bool m_onSurface; // Indicates if on surface or airbourne
|
|
|
|
bool m_altitudeGNSS; // Altitude is GNSS HAE (Height above WGS-84 ellipsoid) rather than barometric alitute (relative to 29.92 Hg)
|
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
|
|
|
float m_heading; // Heading or track in degrees
|
2020-10-27 12:22:10 -04:00
|
|
|
int m_verticalRate; // Vertical climb rate in ft/min
|
|
|
|
QString m_emitterCategory; // Aircraft type
|
|
|
|
QString m_status; // Aircraft status
|
2020-11-10 07:03:36 -05:00
|
|
|
int m_squawk; // Mode-A code
|
2020-10-27 12:22:10 -04:00
|
|
|
Real m_range; // Distance from station to aircraft
|
|
|
|
Real m_azimuth; // Azimuth from station to aircraft
|
2022-02-04 11:57:45 -05:00
|
|
|
Real m_elevation; // Elevation from station to aicraft
|
2020-10-27 12:22:10 -04:00
|
|
|
QDateTime m_time; // When last updated
|
|
|
|
|
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
|
|
|
int m_selAltitude; // Selected altitude in MCP/FCU or FMS in feet
|
|
|
|
int m_selHeading; // Selected heading in MCP/FCU in degrees
|
|
|
|
int m_baro; // Aircraft baro setting in mb (Mode-S)
|
|
|
|
float m_roll; // In degrees
|
|
|
|
int m_groundspeed; // In knots
|
|
|
|
float m_turnRate; // In degrees per second
|
|
|
|
int m_trueAirspeed; // In knots
|
|
|
|
int m_indicatedAirspeed; // In knots
|
|
|
|
float m_mach; // Mach number
|
|
|
|
|
|
|
|
bool m_bdsCapabilities[16][16]; // BDS capabilities are indicaited by BDS 1.7
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
bool m_positionValid; // Indicates if we have valid data for the above fields
|
|
|
|
bool m_altitudeValid;
|
|
|
|
bool m_headingValid;
|
|
|
|
bool m_verticalRateValid;
|
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
|
|
|
bool m_selAltitudeValid;
|
|
|
|
bool m_selHeadingValid;
|
|
|
|
bool m_baroValid;
|
|
|
|
bool m_rollValid;
|
|
|
|
bool m_groundspeedValid;
|
|
|
|
bool m_turnRateValid;
|
|
|
|
bool m_trueAirspeedValid;
|
|
|
|
bool m_indicatedAirspeedValid;
|
|
|
|
bool m_machValid;
|
|
|
|
bool m_bdsCapabilitiesValid;
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
// State for calculating position using two CPR frames
|
|
|
|
bool m_cprValid[2];
|
|
|
|
Real m_cprLat[2];
|
|
|
|
Real m_cprLong[2];
|
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
|
|
|
QDateTime m_cprTime[2];
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
int m_adsbFrameCount; // Number of ADS-B frames for this aircraft
|
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
|
|
|
int m_tisBFrameCount;
|
2020-10-27 12:22:10 -04:00
|
|
|
float m_minCorrelation;
|
|
|
|
float m_maxCorrelation;
|
2020-10-30 09:27:00 -04:00
|
|
|
float m_correlation;
|
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
|
|
|
MovingAverageUtil<float, double, 100> m_correlationAvg;
|
|
|
|
|
|
|
|
bool m_isTarget; // Are we targetting this aircraft (sending az/el to rotator)
|
|
|
|
bool m_isHighlighted; // Are we highlighting this aircraft in the table and map
|
|
|
|
bool m_showAll;
|
|
|
|
|
|
|
|
QVariantList m_coordinates; // Coordinates we've recorded the aircraft at
|
2023-10-26 11:31:37 -04:00
|
|
|
QList<QDateTime> m_coordinateDateTimes;
|
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
|
|
|
|
|
|
|
AircraftInformation *m_aircraftInfo; // Info about the aircraft from the database
|
2022-02-04 11:57:45 -05:00
|
|
|
QString m_aircraft3DModel; // 3D model for map based on aircraft type
|
|
|
|
QString m_aircraftCat3DModel; // 3D model based on aircraft category
|
|
|
|
float m_modelAltitudeOffset; // Altitude adjustment so aircraft model doesn't go underground
|
|
|
|
float m_labelAltitudeOffset; // How height to position label above 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
|
|
|
ADSBDemodGUI *m_gui;
|
2022-02-04 11:57:45 -05:00
|
|
|
QString m_flagIconURL;
|
|
|
|
QString m_airlineIconURL;
|
|
|
|
|
|
|
|
// For animation on 3D map
|
|
|
|
float m_runwayAltitude;
|
|
|
|
bool m_runwayAltitudeValid;
|
|
|
|
bool m_gearDown;
|
|
|
|
float m_flaps; // 0 - no flaps, 1 - full flaps
|
|
|
|
bool m_rotorStarted; // Rotors started on 'Rotorcraft'
|
|
|
|
bool m_engineStarted; // Engines started (typically propellors)
|
|
|
|
QDateTime m_positionDateTime;
|
|
|
|
QDateTime m_orientationDateTime;
|
|
|
|
QDateTime m_headingDateTime;
|
|
|
|
QDateTime m_prevHeadingDateTime;
|
|
|
|
int m_prevHeading;
|
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
|
|
|
float m_pitchEst; // Estimated pitch based on vertical rate
|
|
|
|
float m_rollEst; // Estimated roll based on rate of change in heading
|
2020-10-27 12:22:10 -04:00
|
|
|
|
2021-10-27 17:25:14 -04:00
|
|
|
bool m_notified; // Set when a notification has been made for this aircraft, so we don't repeat it
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
// GUI table items for above data
|
|
|
|
QTableWidgetItem *m_icaoItem;
|
2021-10-29 07:54:10 -04:00
|
|
|
QTableWidgetItem *m_callsignItem;
|
2023-10-26 11:31:37 -04:00
|
|
|
QTableWidgetItem* m_atcCallsignItem;
|
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
|
|
|
QTableWidgetItem *m_modelItem;
|
|
|
|
QTableWidgetItem *m_airlineItem;
|
2020-10-27 12:22:10 -04:00
|
|
|
QTableWidgetItem *m_latitudeItem;
|
|
|
|
QTableWidgetItem *m_longitudeItem;
|
|
|
|
QTableWidgetItem *m_altitudeItem;
|
|
|
|
QTableWidgetItem *m_headingItem;
|
|
|
|
QTableWidgetItem *m_verticalRateItem;
|
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
|
|
|
CustomDoubleTableWidgetItem *m_rangeItem;
|
|
|
|
QTableWidgetItem *m_azElItem;
|
2020-10-27 12:22:10 -04:00
|
|
|
QTableWidgetItem *m_emitterCategoryItem;
|
|
|
|
QTableWidgetItem *m_statusItem;
|
2020-11-10 07:03:36 -05:00
|
|
|
QTableWidgetItem *m_squawkItem;
|
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
|
|
|
QTableWidgetItem *m_registrationItem;
|
|
|
|
QTableWidgetItem *m_countryItem;
|
|
|
|
QTableWidgetItem *m_registeredItem;
|
|
|
|
QTableWidgetItem *m_manufacturerNameItem;
|
|
|
|
QTableWidgetItem *m_ownerItem;
|
|
|
|
QTableWidgetItem *m_operatorICAOItem;
|
2020-10-27 12:22:10 -04:00
|
|
|
QTableWidgetItem *m_timeItem;
|
|
|
|
QTableWidgetItem *m_adsbFrameCountItem;
|
|
|
|
QTableWidgetItem *m_correlationItem;
|
2020-11-09 01:28:43 -05:00
|
|
|
QTableWidgetItem *m_rssiItem;
|
2021-10-29 07:54:10 -04:00
|
|
|
QTableWidgetItem *m_flightStatusItem;
|
|
|
|
QTableWidgetItem *m_depItem;
|
|
|
|
QTableWidgetItem *m_arrItem;
|
|
|
|
QTableWidgetItem *m_stdItem;
|
|
|
|
QTableWidgetItem *m_etdItem;
|
|
|
|
QTableWidgetItem *m_atdItem;
|
|
|
|
QTableWidgetItem *m_staItem;
|
|
|
|
QTableWidgetItem *m_etaItem;
|
|
|
|
QTableWidgetItem *m_ataItem;
|
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
|
|
|
QTableWidgetItem *m_selAltitudeItem;
|
|
|
|
QTableWidgetItem *m_selHeadingItem;
|
|
|
|
QTableWidgetItem *m_baroItem;
|
|
|
|
QTableWidgetItem *m_apItem;
|
|
|
|
QTableWidgetItem *m_vModeItem;
|
|
|
|
QTableWidgetItem *m_lModeItem;
|
|
|
|
QTableWidgetItem *m_rollItem;
|
|
|
|
QTableWidgetItem *m_groundspeedItem;
|
|
|
|
QTableWidgetItem *m_turnRateItem;
|
|
|
|
QTableWidgetItem *m_trueAirspeedItem;
|
|
|
|
QTableWidgetItem *m_indicatedAirspeedItem;
|
|
|
|
QTableWidgetItem *m_machItem;
|
|
|
|
QTableWidgetItem *m_headwindItem;
|
|
|
|
QTableWidgetItem *m_estAirTempItem;
|
|
|
|
QTableWidgetItem *m_windSpeedItem;
|
|
|
|
QTableWidgetItem *m_windDirItem;
|
|
|
|
QTableWidgetItem *m_staticPressureItem;
|
|
|
|
QTableWidgetItem *m_staticAirTempItem;
|
|
|
|
QTableWidgetItem *m_humidityItem;
|
|
|
|
QTableWidgetItem *m_tisBItem;
|
2020-10-27 12:22:10 -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
|
|
|
Aircraft(ADSBDemodGUI *gui) :
|
2020-10-27 12:22:10 -04:00
|
|
|
m_icao(0),
|
|
|
|
m_latitude(0),
|
|
|
|
m_longitude(0),
|
|
|
|
m_altitude(0),
|
2022-02-04 11:57:45 -05:00
|
|
|
m_onSurface(false),
|
|
|
|
m_altitudeGNSS(false),
|
2020-10-27 12:22:10 -04:00
|
|
|
m_heading(0),
|
|
|
|
m_verticalRate(0),
|
|
|
|
m_azimuth(0),
|
|
|
|
m_elevation(0),
|
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
|
|
|
m_selAltitude(0),
|
|
|
|
m_selHeading(0),
|
|
|
|
m_baro(0),
|
|
|
|
m_roll(0.0f),
|
|
|
|
m_groundspeed(0),
|
|
|
|
m_turnRate(0.0f),
|
|
|
|
m_trueAirspeed(0),
|
|
|
|
m_indicatedAirspeed(0),
|
|
|
|
m_mach(0.0f),
|
2020-10-27 12:22:10 -04:00
|
|
|
m_positionValid(false),
|
|
|
|
m_altitudeValid(false),
|
|
|
|
m_headingValid(false),
|
|
|
|
m_verticalRateValid(false),
|
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
|
|
|
m_selAltitudeValid(false),
|
|
|
|
m_selHeadingValid(false),
|
|
|
|
m_baroValid(false),
|
|
|
|
m_rollValid(false),
|
|
|
|
m_groundspeedValid(false),
|
|
|
|
m_turnRateValid(false),
|
|
|
|
m_trueAirspeedValid(false),
|
|
|
|
m_indicatedAirspeedValid(false),
|
|
|
|
m_machValid(false),
|
|
|
|
m_bdsCapabilitiesValid(false),
|
2020-10-27 12:22:10 -04:00
|
|
|
m_adsbFrameCount(0),
|
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
|
|
|
m_tisBFrameCount(0),
|
2020-10-27 12:22:10 -04:00
|
|
|
m_minCorrelation(INFINITY),
|
|
|
|
m_maxCorrelation(-INFINITY),
|
2020-10-30 09:27:00 -04:00
|
|
|
m_correlation(0.0f),
|
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
|
|
|
m_isTarget(false),
|
|
|
|
m_isHighlighted(false),
|
|
|
|
m_showAll(false),
|
|
|
|
m_aircraftInfo(nullptr),
|
2022-02-04 11:57:45 -05:00
|
|
|
m_modelAltitudeOffset(0.0f),
|
|
|
|
m_labelAltitudeOffset(5.0f),
|
2021-10-27 17:25:14 -04:00
|
|
|
m_gui(gui),
|
2022-02-04 11:57:45 -05:00
|
|
|
m_runwayAltitude(0.0),
|
|
|
|
m_runwayAltitudeValid(false),
|
|
|
|
m_gearDown(false),
|
|
|
|
m_flaps(0.0),
|
|
|
|
m_rotorStarted(false),
|
|
|
|
m_engineStarted(false),
|
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
|
|
|
m_pitchEst(0.0),
|
|
|
|
m_rollEst(0.0),
|
2021-10-27 17:25:14 -04:00
|
|
|
m_notified(false)
|
2020-10-27 12:22:10 -04:00
|
|
|
{
|
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
|
|
|
for (int i = 0; i < 2; i++) {
|
2020-10-27 12:22:10 -04:00
|
|
|
m_cprValid[i] = false;
|
|
|
|
}
|
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
|
|
|
for (int i = 0; i < 16; i++) {
|
|
|
|
for (int j = 0; j < 16; j++) {
|
|
|
|
m_bdsCapabilities[i][j] = false;
|
|
|
|
}
|
|
|
|
}
|
2020-10-27 12:22:10 -04:00
|
|
|
// These are deleted by QTableWidget
|
|
|
|
m_icaoItem = new QTableWidgetItem();
|
2021-10-29 07:54:10 -04:00
|
|
|
m_callsignItem = new QTableWidgetItem();
|
2023-10-26 11:31:37 -04:00
|
|
|
m_atcCallsignItem = new QTableWidgetItem();
|
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
|
|
|
m_modelItem = new QTableWidgetItem();
|
|
|
|
m_airlineItem = new QTableWidgetItem();
|
2020-10-27 12:22:10 -04:00
|
|
|
m_altitudeItem = new QTableWidgetItem();
|
|
|
|
m_headingItem = new QTableWidgetItem();
|
|
|
|
m_verticalRateItem = new QTableWidgetItem();
|
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
|
|
|
m_rangeItem = new CustomDoubleTableWidgetItem();
|
|
|
|
m_azElItem = new QTableWidgetItem();
|
|
|
|
m_latitudeItem = new QTableWidgetItem();
|
|
|
|
m_longitudeItem = new QTableWidgetItem();
|
2020-10-27 12:22:10 -04:00
|
|
|
m_emitterCategoryItem = new QTableWidgetItem();
|
|
|
|
m_statusItem = new QTableWidgetItem();
|
2020-11-10 07:03:36 -05:00
|
|
|
m_squawkItem = new QTableWidgetItem();
|
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
|
|
|
m_registrationItem = new QTableWidgetItem();
|
|
|
|
m_countryItem = new QTableWidgetItem();
|
|
|
|
m_registeredItem = new QTableWidgetItem();
|
|
|
|
m_manufacturerNameItem = new QTableWidgetItem();
|
|
|
|
m_ownerItem = new QTableWidgetItem();
|
|
|
|
m_operatorICAOItem = new QTableWidgetItem();
|
2020-10-27 12:22:10 -04:00
|
|
|
m_timeItem = new QTableWidgetItem();
|
|
|
|
m_adsbFrameCountItem = new QTableWidgetItem();
|
|
|
|
m_correlationItem = new QTableWidgetItem();
|
2020-11-09 01:28:43 -05:00
|
|
|
m_rssiItem = new QTableWidgetItem();
|
2021-10-29 07:54:10 -04:00
|
|
|
m_flightStatusItem = new QTableWidgetItem();
|
|
|
|
m_depItem = new QTableWidgetItem();
|
|
|
|
m_arrItem = new QTableWidgetItem();
|
|
|
|
m_stdItem = new QTableWidgetItem();
|
|
|
|
m_etdItem = new QTableWidgetItem();
|
|
|
|
m_atdItem = new QTableWidgetItem();
|
|
|
|
m_staItem = new QTableWidgetItem();
|
|
|
|
m_etaItem = new QTableWidgetItem();
|
|
|
|
m_ataItem = new QTableWidgetItem();
|
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
|
|
|
m_selAltitudeItem = new QTableWidgetItem();
|
|
|
|
m_selHeadingItem = new QTableWidgetItem();
|
|
|
|
m_baroItem = new QTableWidgetItem();
|
|
|
|
m_apItem = new QTableWidgetItem();
|
|
|
|
m_vModeItem = new QTableWidgetItem();
|
|
|
|
m_lModeItem = new QTableWidgetItem();
|
|
|
|
m_rollItem = new QTableWidgetItem();
|
|
|
|
m_groundspeedItem = new QTableWidgetItem();
|
|
|
|
m_turnRateItem = new QTableWidgetItem();
|
|
|
|
m_trueAirspeedItem = new QTableWidgetItem();
|
|
|
|
m_indicatedAirspeedItem = new QTableWidgetItem();
|
|
|
|
m_machItem = new QTableWidgetItem();
|
|
|
|
m_headwindItem = new QTableWidgetItem();
|
|
|
|
m_estAirTempItem = new QTableWidgetItem();
|
|
|
|
m_windSpeedItem = new QTableWidgetItem();
|
|
|
|
m_windDirItem = new QTableWidgetItem();
|
|
|
|
m_staticPressureItem = new QTableWidgetItem();
|
|
|
|
m_staticAirTempItem = new QTableWidgetItem();
|
|
|
|
m_humidityItem = new QTableWidgetItem();
|
|
|
|
m_tisBItem = new QTableWidgetItem();
|
2020-10-27 12:22:10 -04:00
|
|
|
}
|
2021-01-13 12:15:32 -05:00
|
|
|
|
2022-02-04 11:57:45 -05:00
|
|
|
QString getImage() const;
|
2023-10-26 11:31:37 -04:00
|
|
|
QString getText(const ADSBDemodSettings *settings, bool all=false) const;
|
|
|
|
// Label to use for aircraft on map
|
|
|
|
QString getLabel(const ADSBDemodSettings *settings) const;
|
2021-01-13 12:15:32 -05:00
|
|
|
|
2023-10-26 11:31:37 -04:00
|
|
|
// Name to use when selected as a target (E.g. for use as target name in Rotator Controller)
|
2021-01-13 12:15:32 -05:00
|
|
|
QString targetName()
|
|
|
|
{
|
2021-10-29 07:54:10 -04:00
|
|
|
if (!m_callsign.isEmpty())
|
|
|
|
return QString("Callsign: %1").arg(m_callsign);
|
2021-01-13 12:15:32 -05:00
|
|
|
else
|
|
|
|
return QString("ICAO: %1").arg(m_icao, 0, 16);
|
|
|
|
}
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
// Aircraft data model used by QML map item
|
|
|
|
class AircraftModel : public QAbstractListModel {
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
using QAbstractListModel::QAbstractListModel;
|
|
|
|
enum MarkerRoles{
|
|
|
|
positionRole = Qt::UserRole + 1,
|
|
|
|
headingRole = Qt::UserRole + 2,
|
|
|
|
adsbDataRole = Qt::UserRole + 3,
|
|
|
|
aircraftImageRole = Qt::UserRole + 4,
|
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
|
|
|
bubbleColourRole = Qt::UserRole + 5,
|
|
|
|
aircraftPathRole = Qt::UserRole + 6,
|
|
|
|
showAllRole = Qt::UserRole + 7,
|
|
|
|
highlightedRole = Qt::UserRole + 8,
|
|
|
|
targetRole = Qt::UserRole + 9
|
2020-10-27 12:22:10 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
Q_INVOKABLE void addAircraft(Aircraft *aircraft) {
|
|
|
|
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
|
|
|
m_aircrafts.append(aircraft);
|
|
|
|
endInsertRows();
|
|
|
|
}
|
|
|
|
|
|
|
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override {
|
|
|
|
Q_UNUSED(parent)
|
|
|
|
return m_aircrafts.count();
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
|
|
|
|
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 setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override;
|
|
|
|
|
2020-11-14 05:13:32 -05:00
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override
|
|
|
|
{
|
|
|
|
(void) index;
|
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
|
|
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
|
|
|
|
}
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
void aircraftUpdated(Aircraft *aircraft) {
|
|
|
|
int row = m_aircrafts.indexOf(aircraft);
|
|
|
|
if (row >= 0)
|
|
|
|
{
|
|
|
|
QModelIndex idx = index(row);
|
|
|
|
emit dataChanged(idx, idx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
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
|
|
|
void allAircraftUpdated() {
|
|
|
|
/*
|
|
|
|
// Not sure why this doesn't work - it should be more efficient
|
|
|
|
// than the following code
|
|
|
|
emit dataChanged(index(0), index(rowCount()));
|
|
|
|
*/
|
|
|
|
for (int i = 0; i < m_aircrafts.count(); i++)
|
|
|
|
{
|
|
|
|
QModelIndex idx = index(i);
|
|
|
|
emit dataChanged(idx, idx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
void removeAircraft(Aircraft *aircraft) {
|
|
|
|
int row = m_aircrafts.indexOf(aircraft);
|
|
|
|
if (row >= 0)
|
|
|
|
{
|
|
|
|
beginRemoveRows(QModelIndex(), row, row);
|
|
|
|
m_aircrafts.removeAt(row);
|
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QHash<int, QByteArray> roleNames() const {
|
|
|
|
QHash<int, QByteArray> roles;
|
|
|
|
roles[positionRole] = "position";
|
|
|
|
roles[headingRole] = "heading";
|
|
|
|
roles[adsbDataRole] = "adsbData";
|
|
|
|
roles[aircraftImageRole] = "aircraftImage";
|
|
|
|
roles[bubbleColourRole] = "bubbleColour";
|
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
|
|
|
roles[aircraftPathRole] = "aircraftPath";
|
|
|
|
roles[showAllRole] = "showAll";
|
|
|
|
roles[highlightedRole] = "highlighted";
|
|
|
|
roles[targetRole] = "target";
|
2020-10-27 12:22:10 -04:00
|
|
|
return roles;
|
|
|
|
}
|
|
|
|
|
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
|
|
|
void setFlightPaths(bool flightPaths)
|
|
|
|
{
|
|
|
|
m_flightPaths = flightPaths;
|
|
|
|
allAircraftUpdated();
|
|
|
|
}
|
|
|
|
|
2021-01-13 12:15:32 -05:00
|
|
|
void setAllFlightPaths(bool allFlightPaths)
|
|
|
|
{
|
|
|
|
m_allFlightPaths = allFlightPaths;
|
|
|
|
allAircraftUpdated();
|
|
|
|
}
|
|
|
|
|
2023-10-26 11:31:37 -04:00
|
|
|
void setSettings(const ADSBDemodSettings *settings)
|
|
|
|
{
|
|
|
|
m_settings = settings;
|
|
|
|
allAircraftUpdated();
|
|
|
|
}
|
|
|
|
|
2023-02-14 09:46:08 -05:00
|
|
|
Q_INVOKABLE void findOnMap(int index);
|
|
|
|
|
|
|
|
void updateAircraftInformation(QSharedPointer<const QHash<int, AircraftInformation *>> aircraftInfo)
|
|
|
|
{
|
|
|
|
for (auto aircraft : m_aircrafts)
|
|
|
|
{
|
|
|
|
if (aircraftInfo->contains(aircraft->m_icao)) {
|
|
|
|
aircraft->m_aircraftInfo = aircraftInfo->value(aircraft->m_icao);
|
|
|
|
} else {
|
|
|
|
aircraft->m_aircraftInfo = nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-02-04 11:57:45 -05:00
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
private:
|
|
|
|
QList<Aircraft *> m_aircrafts;
|
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_flightPaths;
|
2021-01-13 12:15:32 -05:00
|
|
|
bool m_allFlightPaths;
|
2023-10-26 11:31:37 -04:00
|
|
|
const ADSBDemodSettings *m_settings;
|
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
|
|
|
};
|
|
|
|
|
|
|
|
// Airport data model used by QML map item
|
|
|
|
class AirportModel : public QAbstractListModel {
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
using QAbstractListModel::QAbstractListModel;
|
|
|
|
enum MarkerRoles {
|
|
|
|
positionRole = Qt::UserRole + 1,
|
|
|
|
airportDataRole = Qt::UserRole + 2,
|
|
|
|
airportDataRowsRole = Qt::UserRole + 3,
|
|
|
|
airportImageRole = Qt::UserRole + 4,
|
|
|
|
bubbleColourRole = Qt::UserRole + 5,
|
|
|
|
showFreqRole = Qt::UserRole + 6,
|
|
|
|
selectedFreqRole = Qt::UserRole + 7
|
|
|
|
};
|
|
|
|
|
|
|
|
AirportModel(ADSBDemodGUI *gui) :
|
|
|
|
m_gui(gui)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2023-02-14 09:46:08 -05:00
|
|
|
Q_INVOKABLE void addAirport(const AirportInformation *airport, float az, float el, float distance) {
|
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
|
|
|
QString text;
|
|
|
|
int rows;
|
|
|
|
|
|
|
|
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
|
|
|
m_airports.append(airport);
|
2020-11-10 08:40:57 -05:00
|
|
|
airportFreq(airport, az, el, distance, text, rows);
|
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
|
|
|
m_airportDataFreq.append(text);
|
|
|
|
m_airportDataFreqRows.append(rows);
|
|
|
|
m_showFreq.append(false);
|
2020-11-10 08:40:57 -05:00
|
|
|
m_azimuth.append(az);
|
|
|
|
m_elevation.append(el);
|
2021-11-07 13:38:46 -05:00
|
|
|
m_range.append(distance);
|
2022-06-06 05:53:10 -04:00
|
|
|
m_metar.append("");
|
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
|
|
|
endInsertRows();
|
|
|
|
}
|
|
|
|
|
|
|
|
void removeAirport(AirportInformation *airport) {
|
|
|
|
int row = m_airports.indexOf(airport);
|
|
|
|
if (row >= 0)
|
|
|
|
{
|
|
|
|
beginRemoveRows(QModelIndex(), row, row);
|
|
|
|
m_airports.removeAt(row);
|
|
|
|
m_airportDataFreq.removeAt(row);
|
|
|
|
m_airportDataFreqRows.removeAt(row);
|
|
|
|
m_showFreq.removeAt(row);
|
2020-11-10 08:40:57 -05:00
|
|
|
m_azimuth.removeAt(row);
|
|
|
|
m_elevation.removeAt(row);
|
2021-11-07 13:38:46 -05:00
|
|
|
m_range.removeAt(row);
|
2022-06-06 05:53:10 -04:00
|
|
|
m_metar.removeAt(row);
|
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
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void removeAllAirports() {
|
2021-04-13 05:14:54 -04:00
|
|
|
if (m_airports.count() > 0)
|
|
|
|
{
|
|
|
|
beginRemoveRows(QModelIndex(), 0, m_airports.count() - 1);
|
|
|
|
m_airports.clear();
|
|
|
|
m_airportDataFreq.clear();
|
|
|
|
m_airportDataFreqRows.clear();
|
|
|
|
m_showFreq.clear();
|
|
|
|
m_azimuth.clear();
|
|
|
|
m_elevation.clear();
|
2021-11-07 13:38:46 -05:00
|
|
|
m_range.clear();
|
2022-06-06 05:53:10 -04:00
|
|
|
m_metar.clear();
|
2021-04-13 05:14:54 -04:00
|
|
|
endRemoveRows();
|
|
|
|
}
|
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 rowCount(const QModelIndex &parent = QModelIndex()) const override {
|
|
|
|
Q_UNUSED(parent)
|
|
|
|
return m_airports.count();
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
|
|
|
|
|
|
|
bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override;
|
|
|
|
|
2020-11-14 05:13:32 -05:00
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override
|
|
|
|
{
|
|
|
|
(void) index;
|
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
|
|
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
|
|
|
|
}
|
|
|
|
|
2023-02-14 09:46:08 -05:00
|
|
|
void airportFreq(const AirportInformation *airport, float az, float el, float distance, QString& text, int& rows) {
|
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
|
|
|
// Create the text to go in the bubble next to the airport
|
|
|
|
// Display name and frequencies
|
|
|
|
QStringList list;
|
|
|
|
|
|
|
|
list.append(QString("%1: %2").arg(airport->m_ident).arg(airport->m_name));
|
|
|
|
rows = 1;
|
|
|
|
for (int i = 0; i < airport->m_frequencies.size(); i++)
|
|
|
|
{
|
2023-02-14 09:46:08 -05:00
|
|
|
const AirportInformation::FrequencyInformation *frequencyInfo = airport->m_frequencies[i];
|
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
|
|
|
list.append(QString("%1: %2 MHz").arg(frequencyInfo->m_type).arg(frequencyInfo->m_frequency));
|
|
|
|
rows++;
|
|
|
|
}
|
2020-11-10 08:40:57 -05:00
|
|
|
list.append(QString("Az/El: %1/%2").arg((int)std::round(az)).arg((int)std::round(el)));
|
|
|
|
list.append(QString("Distance: %1 km").arg(distance/1000.0f, 0, 'f', 1));
|
|
|
|
rows += 2;
|
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
|
|
|
text = list.join("\n");
|
|
|
|
}
|
|
|
|
|
2023-02-14 09:46:08 -05:00
|
|
|
void airportUpdated(const AirportInformation *airport) {
|
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 row = m_airports.indexOf(airport);
|
|
|
|
if (row >= 0)
|
|
|
|
{
|
|
|
|
QModelIndex idx = index(row);
|
|
|
|
emit dataChanged(idx, idx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QHash<int, QByteArray> roleNames() const {
|
|
|
|
QHash<int, QByteArray> roles;
|
|
|
|
roles[positionRole] = "position";
|
|
|
|
roles[airportDataRole] = "airportData";
|
|
|
|
roles[airportDataRowsRole] = "airportDataRows";
|
|
|
|
roles[airportImageRole] = "airportImage";
|
|
|
|
roles[bubbleColourRole] = "bubbleColour";
|
|
|
|
roles[showFreqRole] = "showFreq";
|
|
|
|
roles[selectedFreqRole] = "selectedFreq";
|
|
|
|
return roles;
|
|
|
|
}
|
|
|
|
|
2022-06-06 05:53:10 -04:00
|
|
|
void updateWeather(const QString &icao, const QString &text, const QString &decoded)
|
|
|
|
{
|
|
|
|
for (int i = 0; i < m_airports.size(); i++)
|
|
|
|
{
|
|
|
|
if (m_airports[i]->m_ident == icao)
|
|
|
|
{
|
|
|
|
m_metar[i] = "METAR: " + text + "\n" + decoded;
|
|
|
|
QModelIndex idx = index(i);
|
|
|
|
emit dataChanged(idx, idx);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-10-26 11:31:37 -04:00
|
|
|
Q_INVOKABLE QStringList getFreqScanners() const;
|
|
|
|
Q_INVOKABLE void sendToFreqScanner(int index, const QString& id);
|
|
|
|
|
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
|
|
|
private:
|
|
|
|
ADSBDemodGUI *m_gui;
|
2023-02-14 09:46:08 -05:00
|
|
|
QList<const AirportInformation *> m_airports;
|
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
|
|
|
QList<QString> m_airportDataFreq;
|
|
|
|
QList<int> m_airportDataFreqRows;
|
|
|
|
QList<bool> m_showFreq;
|
2020-11-10 08:40:57 -05:00
|
|
|
QList<float> m_azimuth;
|
|
|
|
QList<float> m_elevation;
|
2021-11-07 13:38:46 -05:00
|
|
|
QList<float> m_range;
|
2022-06-06 05:53:10 -04:00
|
|
|
QList<QString> m_metar;
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void requestMetar(const QString& icao);
|
2020-10-27 12:22:10 -04:00
|
|
|
};
|
|
|
|
|
2021-11-12 11:51:23 -05:00
|
|
|
// Airspace data model used by QML map item
|
|
|
|
class AirspaceModel : public QAbstractListModel {
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
using QAbstractListModel::QAbstractListModel;
|
|
|
|
enum MarkerRoles {
|
|
|
|
nameRole = Qt::UserRole + 1,
|
|
|
|
detailsRole = Qt::UserRole + 2,
|
|
|
|
positionRole = Qt::UserRole + 3,
|
|
|
|
airspaceBorderColorRole = Qt::UserRole + 4,
|
|
|
|
airspaceFillColorRole = Qt::UserRole + 5,
|
|
|
|
airspacePolygonRole = Qt::UserRole + 6
|
|
|
|
};
|
|
|
|
|
|
|
|
Q_INVOKABLE void addAirspace(Airspace *airspace) {
|
|
|
|
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
|
|
|
m_airspaces.append(airspace);
|
|
|
|
// Convert QPointF to QVariantList of QGeoCoordinates
|
|
|
|
QVariantList polygon;
|
|
|
|
for (const auto p : airspace->m_polygon)
|
|
|
|
{
|
|
|
|
QGeoCoordinate coord(p.y(), p.x(), airspace->topHeightInMetres());
|
|
|
|
polygon.push_back(QVariant::fromValue(coord));
|
|
|
|
}
|
|
|
|
m_polygons.append(polygon);
|
|
|
|
endInsertRows();
|
|
|
|
}
|
|
|
|
|
|
|
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override {
|
|
|
|
Q_UNUSED(parent)
|
|
|
|
return m_airspaces.count();
|
|
|
|
}
|
|
|
|
|
|
|
|
void removeAllAirspaces() {
|
|
|
|
if (m_airspaces.count() > 0)
|
|
|
|
{
|
|
|
|
beginRemoveRows(QModelIndex(), 0, m_airspaces.count() - 1);
|
|
|
|
m_airspaces.clear();
|
|
|
|
m_polygons.clear();
|
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
|
|
|
|
|
|
|
bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override;
|
|
|
|
|
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override
|
|
|
|
{
|
|
|
|
(void) index;
|
|
|
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
|
|
|
|
}
|
|
|
|
|
|
|
|
QHash<int, QByteArray> roleNames() const {
|
|
|
|
QHash<int, QByteArray> roles;
|
|
|
|
roles[nameRole] = "name";
|
|
|
|
roles[detailsRole] = "details";
|
|
|
|
roles[positionRole] = "position";
|
|
|
|
roles[airspaceBorderColorRole] = "airspaceBorderColor";
|
|
|
|
roles[airspaceFillColorRole] = "airspaceFillColor";
|
|
|
|
roles[airspacePolygonRole] = "airspacePolygon";
|
|
|
|
return roles;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
QList<Airspace *> m_airspaces;
|
|
|
|
QList<QVariantList> m_polygons;
|
|
|
|
};
|
|
|
|
|
|
|
|
// NavAid model used for each NavAid on the map
|
|
|
|
class NavAidModel : public QAbstractListModel {
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
using QAbstractListModel::QAbstractListModel;
|
|
|
|
enum MarkerRoles{
|
|
|
|
positionRole = Qt::UserRole + 1,
|
|
|
|
navAidDataRole = Qt::UserRole + 2,
|
|
|
|
navAidImageRole = Qt::UserRole + 3,
|
|
|
|
bubbleColourRole = Qt::UserRole + 4,
|
|
|
|
selectedRole = Qt::UserRole + 5
|
|
|
|
};
|
|
|
|
|
|
|
|
Q_INVOKABLE void addNavAid(NavAid *vor) {
|
|
|
|
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
|
|
|
m_navAids.append(vor);
|
|
|
|
m_selected.append(false);
|
|
|
|
endInsertRows();
|
|
|
|
}
|
|
|
|
|
|
|
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override {
|
|
|
|
Q_UNUSED(parent)
|
|
|
|
return m_navAids.count();
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
|
|
|
|
|
|
|
bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override;
|
|
|
|
|
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override {
|
|
|
|
(void) index;
|
|
|
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
|
|
|
|
}
|
|
|
|
|
|
|
|
void allNavAidsUpdated() {
|
|
|
|
for (int i = 0; i < m_navAids.count(); i++)
|
|
|
|
{
|
|
|
|
QModelIndex idx = index(i);
|
|
|
|
emit dataChanged(idx, idx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void removeNavAid(NavAid *vor) {
|
|
|
|
int row = m_navAids.indexOf(vor);
|
|
|
|
if (row >= 0)
|
|
|
|
{
|
|
|
|
beginRemoveRows(QModelIndex(), row, row);
|
|
|
|
m_navAids.removeAt(row);
|
|
|
|
m_selected.removeAt(row);
|
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void removeAllNavAids() {
|
|
|
|
if (m_navAids.count() > 0)
|
|
|
|
{
|
|
|
|
beginRemoveRows(QModelIndex(), 0, m_navAids.count() - 1);
|
|
|
|
m_navAids.clear();
|
|
|
|
m_selected.clear();
|
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
QHash<int, QByteArray> roleNames() const {
|
|
|
|
QHash<int, QByteArray> roles;
|
|
|
|
roles[positionRole] = "position";
|
|
|
|
roles[navAidDataRole] = "navAidData";
|
|
|
|
roles[navAidImageRole] = "navAidImage";
|
|
|
|
roles[bubbleColourRole] = "bubbleColour";
|
|
|
|
roles[selectedRole] = "selected";
|
|
|
|
return roles;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
QList<NavAid *> m_navAids;
|
|
|
|
QList<bool> m_selected;
|
|
|
|
};
|
|
|
|
|
2022-02-04 11:57:45 -05:00
|
|
|
// Match 3D models to Opensky-Network Aircraft database
|
|
|
|
// The database doesn't use consistent names for aircraft, so we use regexps
|
|
|
|
class ModelMatch {
|
|
|
|
public:
|
|
|
|
ModelMatch(const QString &aircraftRegExp, const QString &model) :
|
|
|
|
m_aircraftRegExp(aircraftRegExp),
|
|
|
|
m_model(model)
|
|
|
|
{
|
|
|
|
m_aircraftRegExp.optimize();
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual bool match(const QString &aircraft, const QString &manufacturer, QString &model)
|
|
|
|
{
|
2022-02-04 17:26:40 -05:00
|
|
|
(void) manufacturer;
|
|
|
|
|
2022-02-04 11:57:45 -05:00
|
|
|
QRegularExpressionMatch match = m_aircraftRegExp.match(aircraft);
|
|
|
|
if (match.hasMatch())
|
|
|
|
{
|
|
|
|
model = m_model;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
QRegularExpression m_aircraftRegExp;
|
|
|
|
QString m_model;
|
|
|
|
};
|
|
|
|
|
|
|
|
// For very generic aircraft names, also match against manufacturer name
|
|
|
|
class ManufacturerModelMatch : public ModelMatch {
|
|
|
|
public:
|
|
|
|
ManufacturerModelMatch(const QString &modelRegExp, const QString &manufacturerRegExp, const QString &model) :
|
|
|
|
ModelMatch(modelRegExp, model),
|
|
|
|
m_manufacturerRegExp(manufacturerRegExp)
|
|
|
|
{
|
|
|
|
m_manufacturerRegExp.optimize();
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual bool match(const QString &aircraft, const QString &manufacturer, QString &model) override
|
|
|
|
{
|
|
|
|
QRegularExpressionMatch matchManufacturer = m_manufacturerRegExp.match(manufacturer);
|
|
|
|
if (matchManufacturer.hasMatch())
|
|
|
|
{
|
|
|
|
QRegularExpressionMatch matchAircraft = m_aircraftRegExp.match(aircraft);
|
|
|
|
if (matchAircraft.hasMatch())
|
|
|
|
{
|
|
|
|
model = m_model;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
QRegularExpression m_manufacturerRegExp;
|
|
|
|
};
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
class ADSBDemodGUI : public ChannelGUI {
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
static ADSBDemodGUI* create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
|
|
|
virtual void destroy();
|
|
|
|
|
|
|
|
void resetToDefaults();
|
|
|
|
QByteArray serialize() const;
|
|
|
|
bool deserialize(const QByteArray& data);
|
|
|
|
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
2022-04-12 10:20:45 -04:00
|
|
|
virtual void setWorkspaceIndex(int index) { m_settings.m_workspaceIndex = index; };
|
|
|
|
virtual int getWorkspaceIndex() const { return m_settings.m_workspaceIndex; };
|
|
|
|
virtual void setGeometryBytes(const QByteArray& blob) { m_settings.m_geometryBytes = blob; };
|
|
|
|
virtual QByteArray getGeometryBytes() const { return m_settings.m_geometryBytes; };
|
|
|
|
virtual QString getTitle() const { return m_settings.m_title; };
|
|
|
|
virtual QColor getTitleColor() const { return m_settings.m_rgbColor; };
|
2022-04-12 12:27:27 -04:00
|
|
|
virtual void zetHidden(bool hidden) { m_settings.m_hidden = hidden; }
|
|
|
|
virtual bool getHidden() const { return m_settings.m_hidden; }
|
2022-04-16 10:45:53 -04:00
|
|
|
virtual ChannelMarker& getChannelMarker() { return m_channelMarker; }
|
2022-04-17 19:42:03 -04:00
|
|
|
virtual int getStreamIndex() const { return m_settings.m_streamIndex; }
|
|
|
|
virtual void setStreamIndex(int streamIndex) { m_settings.m_streamIndex = streamIndex; }
|
2022-04-12 10:20:45 -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
|
|
|
void highlightAircraft(Aircraft *aircraft);
|
|
|
|
void targetAircraft(Aircraft *aircraft);
|
2021-11-07 13:38:46 -05:00
|
|
|
void target(const QString& name, float az, float el, float range);
|
2023-10-26 11:31:37 -04:00
|
|
|
bool setFrequency(qint64 frequency);
|
2022-02-04 11:57:45 -05:00
|
|
|
bool useSIUints() const { return m_settings.m_siUnits; }
|
2021-11-12 11:51:23 -05:00
|
|
|
Q_INVOKABLE void clearHighlighted();
|
2022-02-04 11:57:45 -05:00
|
|
|
QString get3DModel(const QString &aircraft, const QString &operatorICAO) const;
|
2022-02-05 04:34:37 -05:00
|
|
|
QString get3DModel(const QString &aircraft);
|
2022-02-04 11:57:45 -05:00
|
|
|
void get3DModel(Aircraft *aircraft);
|
2022-02-09 11:36:09 -05:00
|
|
|
void get3DModelBasedOnCategory(Aircraft *aircraft);
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
public slots:
|
|
|
|
void channelMarkerChangedByCursor();
|
|
|
|
void channelMarkerHighlightedByCursor();
|
2021-10-29 07:54:10 -04:00
|
|
|
void flightInformationUpdated(const FlightInformation::Flight& flight);
|
2021-11-12 11:51:23 -05:00
|
|
|
void aircraftPhoto(const PlaneSpottersPhoto *photo);
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
Ui::ADSBDemodGUI* ui;
|
|
|
|
PluginAPI* m_pluginAPI;
|
|
|
|
DeviceUISet* m_deviceUISet;
|
|
|
|
ChannelMarker m_channelMarker;
|
2022-01-08 23:27:12 -05:00
|
|
|
RollupState m_rollupState;
|
2020-10-27 12:22:10 -04:00
|
|
|
ADSBDemodSettings m_settings;
|
2022-04-13 05:08:21 -04:00
|
|
|
qint64 m_deviceCenterFrequency;
|
|
|
|
int m_basebandSampleRate;
|
2020-10-27 12:22:10 -04:00
|
|
|
bool m_basicSettingsShown;
|
|
|
|
bool m_doApplySettings;
|
|
|
|
|
|
|
|
ADSBDemod* m_adsbDemod;
|
|
|
|
uint32_t m_tickCount;
|
|
|
|
MessageQueue m_inputMessageQueue;
|
|
|
|
|
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
|
|
|
QHash<int, Aircraft *> m_aircraft; // Hashed on ICAO
|
2023-02-14 09:46:08 -05:00
|
|
|
QSharedPointer<const QHash<int, AircraftInformation *>> m_aircraftInfo;
|
|
|
|
QSharedPointer<const QHash<int, AirportInformation *>> m_airportInfo; // Hashed on id
|
2020-10-27 12:22:10 -04:00
|
|
|
AircraftModel m_aircraftModel;
|
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
|
|
|
AirportModel m_airportModel;
|
2021-11-12 11:51:23 -05:00
|
|
|
AirspaceModel m_airspaceModel;
|
|
|
|
NavAidModel m_navAidModel;
|
2023-02-14 09:46:08 -05:00
|
|
|
QSharedPointer<const QList<Airspace *>> m_airspaces;
|
|
|
|
QSharedPointer<const QList<NavAid *>> m_navAids;
|
|
|
|
QGeoCoordinate m_lastFullUpdatePosition;
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
AzEl m_azEl; // Position of station
|
|
|
|
Aircraft *m_trackAircraft; // Aircraft we want to track in Channel Report
|
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
|
|
|
MovingAverageUtil<float, double, 10> m_correlationAvg;
|
2020-11-09 01:28:43 -05:00
|
|
|
MovingAverageUtil<float, double, 10> m_correlationOnesAvg;
|
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
|
|
|
Aircraft *m_highlightAircraft; // Aircraft we want to highlight, when selected in table
|
|
|
|
|
|
|
|
float m_currentAirportRange; // Current settings, so we only update if changed
|
|
|
|
ADSBDemodSettings::AirportType m_currentAirportMinimumSize;
|
|
|
|
bool m_currentDisplayHeliports;
|
|
|
|
|
2021-10-27 17:25:14 -04:00
|
|
|
QTextToSpeech *m_speech;
|
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
|
|
|
QMenu *menu; // Column select context menu
|
2021-10-29 07:54:10 -04:00
|
|
|
FlightInformation *m_flightInformation;
|
2021-11-12 11:51:23 -05:00
|
|
|
PlaneSpotters m_planeSpotters;
|
2022-06-06 05:53:10 -04:00
|
|
|
AviationWeather *m_aviationWeather;
|
2021-11-12 11:51:23 -05:00
|
|
|
QString m_photoLink;
|
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
|
|
|
WebAPIAdapterInterface *m_webAPIAdapterInterface;
|
|
|
|
QProgressDialog *m_progressDialog;
|
2021-11-12 11:51:23 -05:00
|
|
|
quint16 m_osmPort;
|
|
|
|
OpenAIP m_openAIP;
|
2023-02-14 09:46:08 -05:00
|
|
|
OsnDB m_osnDB;
|
|
|
|
OurAirportsDB m_ourAirportsDB;
|
2021-11-12 11:51:23 -05:00
|
|
|
ADSBOSMTemplateServer *m_templateServer;
|
2022-02-05 04:34:37 -05:00
|
|
|
QRandomGenerator m_random;
|
2022-02-04 11:57:45 -05:00
|
|
|
QHash<QString, QString> m_3DModels; // Hashed aircraft_icao or just aircraft
|
2022-02-05 04:34:37 -05:00
|
|
|
QHash<QString, QStringList> m_3DModelsByType; // Hashed aircraft to list of all of that type
|
2022-02-04 11:57:45 -05:00
|
|
|
QList<ModelMatch *> m_3DModelMatch; // Map of database aircraft names to 3D model names
|
|
|
|
QHash<QString, float> m_modelAltitudeOffset;
|
|
|
|
QHash<QString, float> m_labelAltitudeOffset;
|
2020-10-27 12:22:10 -04:00
|
|
|
|
2022-02-09 11:36:09 -05:00
|
|
|
QTimer m_importTimer;
|
2022-03-23 05:03:42 -04:00
|
|
|
QTimer m_redrawMapTimer;
|
2022-02-09 11:36:09 -05:00
|
|
|
QNetworkAccessManager *m_networkManager;
|
2023-02-14 09:46:08 -05:00
|
|
|
bool m_loadingData;
|
2022-02-09 11:36:09 -05:00
|
|
|
|
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
|
|
|
static const char m_idMap[];
|
|
|
|
static const QString m_categorySetA[];
|
|
|
|
static const QString m_categorySetB[];
|
|
|
|
static const QString m_categorySetC[];
|
|
|
|
static const QString m_emergencyStatus[];
|
|
|
|
static const QString m_flightStatuses[];
|
|
|
|
static const QString m_hazardSeverity[];
|
|
|
|
static const QString m_fomSources[];
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
explicit ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0);
|
|
|
|
virtual ~ADSBDemodGUI();
|
|
|
|
|
|
|
|
void blockApplySettings(bool block);
|
|
|
|
void applySettings(bool force = false);
|
|
|
|
void displaySettings();
|
|
|
|
bool handleMessage(const Message& message);
|
2022-04-12 10:20:45 -04:00
|
|
|
void makeUIConnections();
|
2022-04-13 05:08:21 -04:00
|
|
|
void updateAbsoluteCenterFrequency();
|
2022-04-12 10:20:45 -04:00
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
void updatePosition(Aircraft *aircraft);
|
2020-11-12 03:40:12 -05:00
|
|
|
bool updateLocalPosition(Aircraft *aircraft, double latitude, double longitude, bool surfacePosition);
|
2023-02-14 09:46:08 -05:00
|
|
|
void clearFromMap(const QString& name);
|
2022-02-04 11:57:45 -05:00
|
|
|
void sendToMap(Aircraft *aircraft, QList<SWGSDRangel::SWGMapAnimation *> *animations);
|
2022-02-09 11:36:09 -05:00
|
|
|
Aircraft *getAircraft(int icao, bool &newAircraft);
|
2023-10-26 11:31:37 -04:00
|
|
|
void atcCallsign(Aircraft *aircraft);
|
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
|
|
|
void callsignToFlight(Aircraft *aircraft);
|
|
|
|
int roundTo50Feet(int alt);
|
|
|
|
bool calcAirTemp(Aircraft *aircraft);
|
2020-11-09 01:28:43 -05:00
|
|
|
void handleADSB(
|
|
|
|
const QByteArray data,
|
|
|
|
const QDateTime dateTime,
|
|
|
|
float correlation,
|
2022-02-04 11:57:45 -05:00
|
|
|
float correlationOnes,
|
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
|
|
|
unsigned crc,
|
2022-02-04 11:57:45 -05:00
|
|
|
bool updateModel);
|
2022-08-26 08:47:36 -04:00
|
|
|
void decodeModeS(const QByteArray data, int df, Aircraft *aircraft);
|
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
|
|
|
void decodeCommB(const QByteArray data, const QDateTime dateTime, int df, Aircraft *aircraft, bool &updatedCallsign);
|
2022-02-04 18:55:42 -05:00
|
|
|
QList<SWGSDRangel::SWGMapAnimation *> *animate(QDateTime dateTime, Aircraft *aircraft);
|
2022-02-04 11:57:45 -05:00
|
|
|
SWGSDRangel::SWGMapAnimation *gearAnimation(QDateTime startDateTime, bool up);
|
|
|
|
SWGSDRangel::SWGMapAnimation *flapsAnimation(QDateTime startDateTime, float currentFlaps, float flaps);
|
|
|
|
SWGSDRangel::SWGMapAnimation *slatsAnimation(QDateTime startDateTime, bool retract);
|
|
|
|
SWGSDRangel::SWGMapAnimation *rotorAnimation(QDateTime startDateTime, bool stop);
|
|
|
|
SWGSDRangel::SWGMapAnimation *engineAnimation(QDateTime startDateTime, int engine, bool stop);
|
2021-10-27 17:25:14 -04:00
|
|
|
void checkStaticNotification(Aircraft *aircraft);
|
|
|
|
void checkDynamicNotification(Aircraft *aircraft);
|
2023-02-16 07:40:05 -05:00
|
|
|
void enableSpeechIfNeeded();
|
2021-10-27 17:25:14 -04:00
|
|
|
void speechNotification(Aircraft *aircraft, const QString &speech);
|
|
|
|
void commandNotification(Aircraft *aircraft, const QString &command);
|
|
|
|
QString subAircraftString(Aircraft *aircraft, const QString &string);
|
2020-10-30 09:27:00 -04:00
|
|
|
void resizeTable();
|
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
|
|
|
QString getDataDir();
|
|
|
|
void readAirportDB(const QString& filename);
|
|
|
|
void readAirportFrequenciesDB(const QString& filename);
|
2022-02-04 11:57:45 -05:00
|
|
|
void update3DModels();
|
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
|
|
|
void updateAirports();
|
2021-11-12 11:51:23 -05:00
|
|
|
void updateAirspaces();
|
|
|
|
void updateNavAids();
|
2023-10-26 11:31:37 -04:00
|
|
|
void updateChannelList();
|
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
|
|
|
QAction *createCheckableItem(QString& text, int idx, bool checked);
|
2021-10-29 07:54:10 -04:00
|
|
|
Aircraft* findAircraftByFlight(const QString& flight);
|
|
|
|
QString dataTimeToShortString(QDateTime dt);
|
|
|
|
void initFlightInformation();
|
2022-06-06 05:53:10 -04:00
|
|
|
void initAviationWeather();
|
2021-11-12 11:51:23 -05:00
|
|
|
void applyMapSettings();
|
|
|
|
void updatePhotoText(Aircraft *aircraft);
|
|
|
|
void updatePhotoFlightInformation(Aircraft *aircraft);
|
2022-02-04 11:57:45 -05:00
|
|
|
void findOnChannelMap(Aircraft *aircraft);
|
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
|
|
|
int squawkDecode(int code) const;
|
|
|
|
int gillhamToFeet(int n) const;
|
2022-02-04 11:57:45 -05:00
|
|
|
int grayToBinary(int gray, int bits) const;
|
|
|
|
void redrawMap();
|
2022-02-09 11:36:09 -05:00
|
|
|
void applyImportSettings();
|
2023-10-26 11:31:37 -04:00
|
|
|
void sendAircraftReport();
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
void leaveEvent(QEvent*);
|
2022-11-17 09:36:12 -05:00
|
|
|
void enterEvent(EnterEventType*);
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
private slots:
|
|
|
|
void on_deltaFrequency_changed(qint64 value);
|
|
|
|
void on_rfBW_valueChanged(int value);
|
|
|
|
void on_threshold_valueChanged(int value);
|
2020-11-12 08:25:49 -05:00
|
|
|
void on_phaseSteps_valueChanged(int value);
|
|
|
|
void on_tapsPerPhase_valueChanged(int value);
|
2022-02-04 11:57:45 -05:00
|
|
|
void adsbData_customContextMenuRequested(QPoint point);
|
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
|
|
|
void on_adsbData_cellClicked(int row, int column);
|
2020-10-27 12:22:10 -04:00
|
|
|
void on_adsbData_cellDoubleClicked(int row, int column);
|
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
|
|
|
void adsbData_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex);
|
|
|
|
void adsbData_sectionResized(int logicalIndex, int oldSize, int newSize);
|
|
|
|
void columnSelectMenu(QPoint pos);
|
|
|
|
void columnSelectMenuChecked(bool checked = false);
|
2020-10-27 12:22:10 -04:00
|
|
|
void on_spb_currentIndexChanged(int value);
|
2020-11-14 05:13:32 -05:00
|
|
|
void on_correlateFullPreamble_clicked(bool checked);
|
|
|
|
void on_demodModeS_clicked(bool checked);
|
|
|
|
void on_feed_clicked(bool checked);
|
2021-10-27 17:25:14 -04:00
|
|
|
void on_notifications_clicked();
|
2021-10-29 07:54:10 -04:00
|
|
|
void on_flightInfo_clicked();
|
2022-02-04 11:57:45 -05:00
|
|
|
void on_findOnMapFeature_clicked();
|
2020-11-14 05:13:32 -05:00
|
|
|
void on_getOSNDB_clicked();
|
|
|
|
void on_getAirportDB_clicked();
|
2021-11-12 11:51:23 -05:00
|
|
|
void on_getAirspacesDB_clicked();
|
2020-11-14 05:13:32 -05:00
|
|
|
void on_flightPaths_clicked(bool checked);
|
2021-01-13 12:15:32 -05:00
|
|
|
void on_allFlightPaths_clicked(bool checked);
|
2023-10-26 11:31:37 -04:00
|
|
|
void on_atcLabels_clicked(bool checked);
|
2020-10-27 12:22:10 -04:00
|
|
|
void onWidgetRolled(QWidget* widget, bool rollDown);
|
|
|
|
void onMenuDialogCalled(const QPoint& p);
|
|
|
|
void handleInputMessages();
|
|
|
|
void tick();
|
2023-10-26 11:31:37 -04:00
|
|
|
void on_amDemod_currentIndexChanged(int index);
|
2022-12-28 14:33:28 -05:00
|
|
|
void feedSelect(const QPoint& p);
|
2020-11-14 05:13:32 -05:00
|
|
|
void on_displaySettings_clicked();
|
2021-11-03 13:19:21 -04:00
|
|
|
void on_logEnable_clicked(bool checked=false);
|
|
|
|
void on_logFilename_clicked();
|
|
|
|
void on_logOpen_clicked();
|
2021-11-12 11:51:23 -05:00
|
|
|
void downloadingURL(const QString& url);
|
|
|
|
void downloadError(const QString& error);
|
2023-02-14 09:46:08 -05:00
|
|
|
void downloadProgress(qint64 bytesRead, qint64 totalBytes);
|
2021-11-12 11:51:23 -05:00
|
|
|
void downloadAirspaceFinished();
|
|
|
|
void downloadNavAidsFinished();
|
2023-02-14 09:46:08 -05:00
|
|
|
void downloadAircraftInformationFinished();
|
|
|
|
void downloadAirportInformationFinished();
|
2021-11-12 11:51:23 -05:00
|
|
|
void photoClicked();
|
2022-12-20 05:31:15 -05:00
|
|
|
virtual void showEvent(QShowEvent *event) override;
|
|
|
|
virtual bool eventFilter(QObject *obj, QEvent *event) override;
|
2022-02-09 11:36:09 -05:00
|
|
|
void import();
|
|
|
|
void handleImportReply(QNetworkReply* reply);
|
2022-03-21 06:14:35 -04:00
|
|
|
void preferenceChanged(int elementType);
|
2022-06-06 05:53:10 -04:00
|
|
|
void requestMetar(const QString& icao);
|
|
|
|
void weatherUpdated(const AviationWeather::METAR &metar);
|
2021-11-12 11:51:23 -05:00
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
signals:
|
|
|
|
void homePositionChanged();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // INCLUDE_ADSBDEMODGUI_H
|
2023-02-14 09:46:08 -05:00
|
|
|
|