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>
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
#include "channel/channelgui.h"
|
|
|
|
#include "dsp/dsptypes.h"
|
|
|
|
#include "dsp/channelmarker.h"
|
|
|
|
#include "dsp/movingaverage.h"
|
|
|
|
#include "util/messagequeue.h"
|
|
|
|
#include "util/azel.h"
|
2020-10-31 00:09:28 -04:00
|
|
|
#include "util/movingaverage.h"
|
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 "util/httpdownloadmanager.h"
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
#include "adsbdemodsettings.h"
|
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 "ourairportsdb.h"
|
|
|
|
#include "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;
|
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();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2020-10-27 12:22:10 -04:00
|
|
|
// Data about an aircraft extracted from an ADS-B frames
|
|
|
|
struct Aircraft {
|
|
|
|
int m_icao; // 24-bit ICAO aircraft address
|
|
|
|
QString m_flight; // Flight callsign
|
|
|
|
Real m_latitude; // Latitude in decimal degrees
|
|
|
|
Real m_longitude; // Longitude in decimal degrees
|
|
|
|
int m_altitude; // Altitude in feet
|
|
|
|
int m_speed; // Speed in knots
|
|
|
|
enum SpeedType {
|
|
|
|
GS, // Ground speed
|
|
|
|
TAS, // True air speed
|
|
|
|
IAS // Indicated air speed
|
|
|
|
} m_speedType;
|
|
|
|
static const char *m_speedTypeNames[];
|
|
|
|
int m_heading; // Heading in degrees
|
|
|
|
int m_verticalRate; // Vertical climb rate in ft/min
|
|
|
|
QString m_emitterCategory; // Aircraft type
|
|
|
|
QString m_status; // Aircraft status
|
|
|
|
Real m_range; // Distance from station to aircraft
|
|
|
|
Real m_azimuth; // Azimuth from station to aircraft
|
|
|
|
Real m_elevation; // Elevation from station to aicraft;
|
|
|
|
QDateTime m_time; // When last updated
|
|
|
|
|
|
|
|
bool m_positionValid; // Indicates if we have valid data for the above fields
|
|
|
|
bool m_altitudeValid;
|
|
|
|
bool m_speedValid;
|
|
|
|
bool m_headingValid;
|
|
|
|
bool m_verticalRateValid;
|
|
|
|
|
|
|
|
// 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
|
|
|
|
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
|
|
|
|
|
|
|
|
AircraftInformation *m_aircraftInfo; // Info about the aircraft from the database
|
|
|
|
ADSBDemodGUI *m_gui;
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
// GUI table items for above data
|
|
|
|
QTableWidgetItem *m_icaoItem;
|
|
|
|
QTableWidgetItem *m_flightItem;
|
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_speedItem;
|
|
|
|
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;
|
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;
|
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),
|
|
|
|
m_speed(0),
|
|
|
|
m_heading(0),
|
|
|
|
m_verticalRate(0),
|
|
|
|
m_azimuth(0),
|
|
|
|
m_elevation(0),
|
|
|
|
m_positionValid(false),
|
|
|
|
m_altitudeValid(false),
|
|
|
|
m_speedValid(false),
|
|
|
|
m_headingValid(false),
|
|
|
|
m_verticalRateValid(false),
|
|
|
|
m_adsbFrameCount(0),
|
|
|
|
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),
|
|
|
|
m_gui(gui)
|
2020-10-27 12:22:10 -04:00
|
|
|
{
|
|
|
|
for (int i = 0; i < 2; i++)
|
|
|
|
{
|
|
|
|
m_cprValid[i] = false;
|
|
|
|
}
|
|
|
|
// These are deleted by QTableWidget
|
|
|
|
m_icaoItem = new QTableWidgetItem();
|
|
|
|
m_flightItem = 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_speedItem = 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();
|
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();
|
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;
|
|
|
|
|
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override {
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
|
|
|
// 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)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Q_INVOKABLE void addAirport(AirportInformation *airport) {
|
|
|
|
QString text;
|
|
|
|
int rows;
|
|
|
|
|
|
|
|
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
|
|
|
m_airports.append(airport);
|
|
|
|
airportFreq(airport, text, rows);
|
|
|
|
m_airportDataFreq.append(text);
|
|
|
|
m_airportDataFreqRows.append(rows);
|
|
|
|
m_showFreq.append(false);
|
|
|
|
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);
|
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void removeAllAirports() {
|
|
|
|
beginRemoveRows(QModelIndex(), 0, m_airports.count());
|
|
|
|
m_airports.clear();
|
|
|
|
m_airportDataFreq.clear();
|
|
|
|
m_airportDataFreqRows.clear();
|
|
|
|
m_showFreq.clear();
|
|
|
|
endRemoveRows();
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override {
|
|
|
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
|
|
|
|
}
|
|
|
|
|
|
|
|
void airportFreq(AirportInformation *airport, QString& text, int& rows) {
|
|
|
|
// 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++)
|
|
|
|
{
|
|
|
|
AirportInformation::FrequencyInformation *frequencyInfo = airport->m_frequencies[i];
|
|
|
|
list.append(QString("%1: %2 MHz").arg(frequencyInfo->m_type).arg(frequencyInfo->m_frequency));
|
|
|
|
rows++;
|
|
|
|
}
|
|
|
|
text = list.join("\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
void airportUpdated(AirportInformation *airport) {
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
ADSBDemodGUI *m_gui;
|
|
|
|
QList<AirportInformation *> m_airports;
|
|
|
|
QList<QString> m_airportDataFreq;
|
|
|
|
QList<int> m_airportDataFreqRows;
|
|
|
|
QList<bool> m_showFreq;
|
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; }
|
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);
|
|
|
|
bool setFrequency(float frequency);
|
|
|
|
bool useSIUints() { return m_settings.m_siUnits; }
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
public slots:
|
|
|
|
void channelMarkerChangedByCursor();
|
|
|
|
void channelMarkerHighlightedByCursor();
|
|
|
|
|
|
|
|
private:
|
|
|
|
Ui::ADSBDemodGUI* ui;
|
|
|
|
PluginAPI* m_pluginAPI;
|
|
|
|
DeviceUISet* m_deviceUISet;
|
|
|
|
ChannelMarker m_channelMarker;
|
|
|
|
ADSBDemodSettings m_settings;
|
|
|
|
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
|
|
|
|
QHash<int, AircraftInformation *> *m_aircraftInfo;
|
|
|
|
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;
|
|
|
|
QHash<QString, QIcon *> m_airlineIcons; // Hashed on airline ICAO
|
|
|
|
QHash<QString, QIcon *> m_flagIcons; // Hashed on country
|
|
|
|
QHash<QString, QString> *m_prefixMap; // Registration to country (flag name)
|
|
|
|
QHash<QString, QString> *m_militaryMap; // Operator airforce to military (flag name)
|
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;
|
|
|
|
|
|
|
|
QMenu *menu; // Column select context menu
|
|
|
|
|
|
|
|
WebAPIAdapterInterface *m_webAPIAdapterInterface;
|
|
|
|
HttpDownloadManager m_dlm;
|
|
|
|
QProgressDialog *m_progressDialog;
|
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();
|
|
|
|
void displayStreamIndex();
|
|
|
|
bool handleMessage(const Message& message);
|
|
|
|
void updatePosition(Aircraft *aircraft);
|
2020-11-09 01:28:43 -05:00
|
|
|
void handleADSB(
|
|
|
|
const QByteArray data,
|
|
|
|
const QDateTime dateTime,
|
|
|
|
float correlation,
|
|
|
|
float correlationOnes);
|
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();
|
|
|
|
QString getAirportDBFilename();
|
|
|
|
QString getAirportFrequenciesDBFilename();
|
|
|
|
QString getOSNDBFilename();
|
|
|
|
QString getFastDBFilename();
|
|
|
|
void readAirportDB(const QString& filename);
|
|
|
|
void readAirportFrequenciesDB(const QString& filename);
|
|
|
|
bool readOSNDB(const QString& filename);
|
|
|
|
bool readFastDB(const QString& filename);
|
|
|
|
void updateAirports();
|
|
|
|
QIcon *getAirlineIcon(const QString &operatorICAO);
|
|
|
|
QIcon *getFlagIcon(const QString &country);
|
|
|
|
void updateDeviceSetList();
|
|
|
|
QAction *createCheckableItem(QString& text, int idx, bool checked);
|
2020-10-27 12:22:10 -04:00
|
|
|
|
|
|
|
void leaveEvent(QEvent*);
|
|
|
|
void enterEvent(QEvent*);
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void on_deltaFrequency_changed(qint64 value);
|
|
|
|
void on_rfBW_valueChanged(int value);
|
|
|
|
void on_threshold_valueChanged(int value);
|
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);
|
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_correlateFullPreamble_clicked(bool checked=false);
|
|
|
|
void on_demodModeS_clicked(bool checked=false);
|
|
|
|
void on_feed_clicked(bool checked=false);
|
|
|
|
void on_getOSNDB_clicked(bool checked = false);
|
|
|
|
void on_getAirportDB_clicked(bool checked = false);
|
|
|
|
void on_flightPaths_clicked(bool checked = false);
|
2020-10-27 12:22:10 -04:00
|
|
|
void onWidgetRolled(QWidget* widget, bool rollDown);
|
|
|
|
void onMenuDialogCalled(const QPoint& p);
|
|
|
|
void handleInputMessages();
|
|
|
|
void tick();
|
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 updateDownloadProgress(qint64 bytesRead, qint64 totalBytes);
|
|
|
|
void downloadFinished(const QString& filename, bool success);
|
|
|
|
void on_devicesRefresh_clicked();
|
|
|
|
void on_device_currentIndexChanged(int index);
|
|
|
|
void feedSelect();
|
|
|
|
void on_displaySettings_clicked(bool checked=false);
|
2020-10-27 12:22:10 -04:00
|
|
|
signals:
|
|
|
|
void homePositionChanged();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // INCLUDE_ADSBDEMODGUI_H
|