23#include <QNetworkDatagram>
24#include <QStandardPaths>
27#include "GlobalObject.h"
28#include "traffic/ConnectionInfo.h"
29#include "traffic/TrafficDataSource_Abstract.h"
190 [[nodiscard]] QList<Traffic::TrafficDataSource_Abstract*>
dataSources()
const;
198 return m_positionInfo.value();
207 return &m_positionInfo;
228 return m_receivingHeartbeat.value();
237 return &m_receivingHeartbeat;
246 return m_statusString.value();
255 return &m_statusString;
264 return m_trafficObjects;
273 return m_trafficObjectWithoutPosition;
282 return m_trafficReceiverRuntimeError.value();
291 return m_trafficReceiverSelfTestError.value();
448 void clearDataSources();
452 void deferredInitialization();
456 void foreFlightBroadcast();
459 void loadConnectionInfos();
462 void onCurrentSourceChanged();
474 void saveConnectionInfos();
485 QProperty<QString> m_statusString;
486 QString computeStatusString();
490 QNetworkDatagram foreFlightBroadcastDatagram {R
"({"App":"Enroute Flight Navigation","GDL90":{"port":4000}})", QHostAddress::Broadcast, 63093};
491 QUdpSocket foreFlightBroadcastSocket;
492 QTimer foreFlightBroadcastTimer;
495 QList<Traffic::TrafficFactor_WithPosition *> m_trafficObjects;
496 QPointer<Traffic::TrafficFactor_DistanceOnly> m_trafficObjectWithoutPosition;
499 QProperty<QList<QPointer<Traffic::TrafficDataSource_Abstract>>> m_dataSources;
501 QProperty<QPointer<Traffic::TrafficDataSource_Abstract>> m_currentSource;
502 QPropertyNotifier m_currentSourceNotifier;
503 QPointer<Traffic::TrafficDataSource_Abstract> computeCurrentSource();
505 QProperty<bool> m_currentSourceIsInternetService;
509 QTimer m_WarningTimer;
512 QString computeTrafficReceiverRuntimeError();
515 QString computeTrafficReceiverSelfTestError();
517 QProperty<Positioning::PositionInfo> m_positionInfo;
520 QProperty<Units::Distance> m_pressureAltitude;
524 QTimer reconnectionTimer;
527 bool computeReceivingHeartbeat();
530 QString stdFileName{QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + u
"/connectionInfos.data"_s};
static Q_INVOKABLE Traffic::TrafficDataProvider * trafficDataProvider()
Pointer to appplication-wide static TrafficDataProvider instance.
Connection to a traffic data receiver.
QString trafficReceiverSelfTestError
String describing the traffic data receiver errors found in self-test.
QString trafficReceiverRuntimeError
String describing the current traffic data receiver errors.
bool currentSourceIsInternetService
Internet service flag.
void passwordStorageRequest(const QString &SSID, const QString &password)
Password storage request.
void passwordRequest(const QString &SSID)
Password request.
QString trafficReceiverSelfTestError() const
Getter function for the property with the same name.
Traffic::TrafficFactor_DistanceOnly * trafficObjectWithoutPosition() const
Getter method for property with the same name.
QList< Traffic::TrafficDataSource_Abstract * > dataSources
Traffic data sources.
QBindable< bool > bindableReceivingHeartbeat() const
Getter method for property with the same name.
Q_INVOKABLE QString addDataSource_TCP(const QString &host, quint16 port)
Add an additional data source.
Positioning::PositionInfo positionInfo
Position information.
Traffic::Warning warning
Current traffic warning.
QList< Traffic::TrafficDataSource_Abstract * > dataSources() const
Getter method for property with the same name.
Q_INVOKABLE QString addDataSource_UDP(quint16 port)
Add an additional data source.
QList< Traffic::TrafficFactor_WithPosition * > trafficObjects() const
Getter method for property with the same name.
QString trafficReceiverRuntimeError() const
Getter function for the property with the same name.
bool receivingHeartbeat() const
Getter method for property with the same name.
Positioning::PositionInfo positionInfo() const
Getter method for property with the same name.
bool receivingHeartbeat
Heartbeat indicator.
QString statusString
Source status.
Units::Distance pressureAltitude
Pressure altitude.
void receivingHeartbeatChanged()
Notifier signal.
void connectToTrafficReceiver()
Start attempt to connect to traffic receiver.
void trafficReceiverRuntimeErrorChanged()
Notifier signal.
QBindable< Positioning::PositionInfo > bindablePositionInfo() const
Getter method for property with the same name.
Q_INVOKABLE QString addDataSource_SerialPort(const QString &portName)
Add an additional data source.
void trafficReceiverSelfTestErrorChanged()
Notifier signal.
QString statusString() const
Getter method for property with the same name.
void dataSourcesChanged()
Notifier signal.
QBindable< QString > bindableStatusString() const
Getter method for property with the same name.
void setPassword(const QString &SSID, const QString &password)
Send password to the traffic data sources.
Q_INVOKABLE void removeDataSource(Traffic::TrafficDataSource_Abstract *source)
Remove data sources.
void disconnectFromTrafficReceiver()
Disconnect from traffic receiver.
Traffic::Warning warning() const
Getter method for property with the same name.
void addDataSource(Traffic::TrafficDataSource_Abstract *source)
Add an additional data source.
Q_INVOKABLE QString addDataSource_OGN()
Add an additional data source.
TrafficDataProvider(QObject *parent=nullptr)
Default constructor.
QBindable< Units::Distance > bindablePressureAltitude() const
Getter method for property with the same name.
QList< Traffic::TrafficFactor_WithPosition * > trafficObjects
Traffic objects whose position is known.
QBindable< bool > bindableCurrentSourceIsInternetService() const
Getter method for property with the same name.
Units::Distance pressureAltitude() const
Getter method for property with the same name.
Traffic::TrafficFactor_DistanceOnly * trafficObjectWithoutPosition
Most relevant traffic object whose position is not known.
void warningChanged(const Traffic::Warning &)
Notifier signal.
Q_INVOKABLE QString addDataSource(const Traffic::ConnectionInfo &connectionInfo)
Add an additional data source.
Base class for all traffic receiver data sources.
Traffic factor where only distance is known.
Traffic factor whose precise position is known.
Convenience class for distance computations.
Conversion between units used in aviation.