refs #469, adjusted network context due to changes in signals and METAR naming

This commit is contained in:
Klaus Basan
2015-09-28 18:21:12 +02:00
committed by Mathew Sutcliffe
parent 8827b68b3b
commit 2ba061bbc0
7 changed files with 28 additions and 47 deletions

View File

@@ -20,7 +20,7 @@
#include "blackmisc/simulation/simulatedaircraftlist.h"
#include "blackmisc/statusmessage.h"
#include "blackmisc/statusmessagelist.h"
#include "blackmisc/network/dbflags.h"
#include "blackmisc/network/entityflags.h"
#include "blackmisc/network/textmessagelist.h"
#include "blackmisc/network/userlist.h"
#include "blackmisc/network/clientlist.h"
@@ -135,17 +135,9 @@ namespace BlackCore
// --------------------------- data readers -------------------------------
//! Data file read
void vatsimDataFileRead(int lines);
//! Bookings read
void vatsimBookingsRead(int number);
//! Metar read
void vatsimMetarsRead(int number);
//! swift DB data read
void swiftDbDataRead(BlackMisc::Network::CDbFlags::Entity entity, BlackMisc::Network::CDbFlags::ReadState, int number);
//! Web serice data read
// void webServiceDataRead(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
void webServiceDataRead(int entity, int state, int number);
public slots:
//! Reload bookings from booking service
@@ -166,6 +158,9 @@ namespace BlackCore
//! Aircraft count
virtual int getAircraftInRangeCount() const = 0;
//! Get METAR, if not available request it (code such as EDDF, KLAX)
virtual BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const = 0;
//! Online station for callsign
virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
@@ -229,9 +224,6 @@ namespace BlackCore
//! Command line was entered
virtual bool parseCommandLine(const QString &commandLine, const BlackMisc::CIdentifier &originator) = 0;
//! Get METAR, if not available request it (code such as EDDF, KLAX)
virtual BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) = 0;
//! Use the selected COM1/2 frequencies, and get the corresponding voice room for it
virtual BlackMisc::Audio::CVoiceRoomList getSelectedVoiceRooms() const = 0;

View File

@@ -134,7 +134,7 @@ namespace BlackCore
}
//! \copydoc IContextNetwork::getMetar
BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) override
BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const override
{
Q_UNUSED(airportIcaoCode);
logEmptyContextWarning(Q_FUNC_INFO);

View File

@@ -59,15 +59,10 @@ namespace BlackCore
// 3. data reader
this->m_webDataReader = new CWebDataServices(CWebReaderFlags::AllReaders, this);
this->m_webReaderSignalConnections = this->m_webDataReader->connectVatsimDataSignals(
this, // the object here must be the same as in the bind
std::bind(&CContextNetwork::vatsimBookingsRead, this, std::placeholders::_1),
std::bind(&CContextNetwork::vatsimDataFileRead, this, std::placeholders::_1),
std::bind(&CContextNetwork::vatsimMetarsRead, this, std::placeholders::_1));
this->m_webReaderSignalConnections.append(
this->m_webDataReader->connectSwiftDatabaseSignals(
this->m_webDataReader->connectDataReadSignal(
this, // the object here must be the same as in the bind
std::bind(&CContextNetwork::swiftDbDataRead, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)
std::bind(&CContextNetwork::webServiceDataRead, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)
)
);
this->m_webDataReader->readAllInBackground(1000);
@@ -639,10 +634,10 @@ namespace BlackCore
this->m_airspace->testAddAircraftParts(callsign, parts, incremental);
}
CMetar CContextNetwork::getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode)
CMetar CContextNetwork::getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const
{
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << airportIcaoCode; }
return m_airspace->getMetar(airportIcaoCode);
return m_airspace->getMetarForAirport(airportIcaoCode);
}
CAtcStationList CContextNetwork::getSelectedAtcStations() const

View File

@@ -173,8 +173,8 @@ namespace BlackCore
//! \copydoc IContextNetwork::loadFlightPlanFromNetwork()
virtual BlackMisc::Aviation::CFlightPlan loadFlightPlanFromNetwork(const BlackMisc::Aviation::CCallsign &callsign) const override;
//! \copydoc IContextNetwork::getMetar
BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) override;
//! \copydoc IContextNetwork::getMetarForAirport
BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const override;
//! \copydoc IContextNetwork::getSelectedVoiceRooms()
virtual BlackMisc::Audio::CVoiceRoomList getSelectedVoiceRooms() const override;
@@ -238,12 +238,12 @@ namespace BlackCore
CContextNetwork *registerWithDBus(CDBusServer *server);
private:
CAirspaceMonitor *m_airspace = nullptr;
INetwork *m_network = nullptr;
CWebDataServices *m_webDataReader = nullptr; //!< web service readers
CAirspaceMonitor *m_airspace = nullptr;
INetwork *m_network = nullptr;
CWebDataServices *m_webDataReader = nullptr; //!< web service readers
QList<QMetaObject::Connection> m_webReaderSignalConnections;
INetwork::ConnectionStatus m_currentStatus = INetwork::Disconnected; //!< used to detect pending connections
QTimer *m_dataUpdateTimer = nullptr; //!< general updates such as ATIS, frequencies, see requestDataUpdates()
INetwork::ConnectionStatus m_currentStatus = INetwork::Disconnected; //!< used to detect pending connections
QTimer *m_dataUpdateTimer = nullptr; //!< general updates such as ATIS, frequencies, see requestDataUpdates()
// Digest signals, only sending after some time
BlackMisc::CDigestSignal m_dsAtcStationsBookedChanged { this, &IContextNetwork::changedAtcStationsBooked, &IContextNetwork::changedAtcStationsBookedDigest, 750, 2 };

View File

@@ -69,17 +69,11 @@ namespace BlackCore
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
"textMessageSent", this, SIGNAL(textMessageSent(BlackMisc::Network::CTextMessage)));
Q_ASSERT(s);
// s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
// "webServiceDataRead", this, SIGNAL(webServiceDataRead(BlackMisc::Network::CEntityFlags::Entity, BlackMisc::Network::CEntityFlags::ReadState, int)));
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
"vatsimDataFileRead", this, SIGNAL(vatsimDataFileRead(int)));
Q_ASSERT(s);
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
"vatsimBookingsRead", this, SIGNAL(vatsimBookingsRead(int)));
Q_ASSERT(s);
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
"vatsimMetarsRead", this, SIGNAL(vatsimMetarsRead(int)));
Q_ASSERT(s);
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
"changedRemoteAircraftModel", this, SIGNAL(changedRemoteAircraftModel(BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::CIdentifier)));
"webServiceDataRead", this, SIGNAL(webServiceDataRead(int, int, int)));
Q_ASSERT(s);
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
"changedRemoteAircraftEnabled", this, SIGNAL(changedRemoteAircraftEnabled(BlackMisc::Simulation::CSimulatedAircraft, BlackMisc::CIdentifier)));
@@ -271,9 +265,9 @@ namespace BlackCore
return this->m_dBusInterface->callDBusRet<BlackMisc::Aviation::CFlightPlan>(QLatin1Literal("loadFlightPlanFromNetwork"), callsign);
}
CMetar CContextNetworkProxy::getMetar(const CAirportIcaoCode &airportIcaoCode)
CMetar CContextNetworkProxy::getMetarForAirport(const CAirportIcaoCode &airportIcaoCode) const
{
return this->m_dBusInterface->callDBusRet<BlackMisc::Weather::CMetar>(QLatin1Literal("getMetar"), airportIcaoCode);
return this->m_dBusInterface->callDBusRet<BlackMisc::Weather::CMetar>(QLatin1Literal("getMetarForAirport"), airportIcaoCode);
}
} // namespace

View File

@@ -99,8 +99,8 @@ namespace BlackCore
//! \copydoc IContextNetwork::loadFlightPlanFromNetwork()
virtual BlackMisc::Aviation::CFlightPlan loadFlightPlanFromNetwork(const BlackMisc::Aviation::CCallsign &callsign) const override;
//! \copydoc IContextNetwork::getMetar
BlackMisc::Weather::CMetar getMetar(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) override;
//! \copydoc IContextNetwork::getMetarForAirport
BlackMisc::Weather::CMetar getMetarForAirport(const BlackMisc::Aviation::CAirportIcaoCode &airportIcaoCode) const override;
//! \copydoc IContextNetwork::getSelectedVoiceRooms()
virtual BlackMisc::Audio::CVoiceRoomList getSelectedVoiceRooms() const override;

View File

@@ -150,7 +150,7 @@ namespace BlackGui
QString icao = airportIcaoCode.isEmpty() ? this->ui->le_AtcStationsOnlineMetar->text().trimmed().toUpper() : airportIcaoCode.trimmed().toUpper();
this->ui->le_AtcStationsOnlineMetar->setText(icao);
if (icao.length() != 4) { return; }
CMetar metar = this->getIContextNetwork()->getMetar(icao);
CMetar metar(this->getIContextNetwork()->getMetarForAirport(icao));
if (metar == CMetar())
{
this->ui->te_AtcStationsOnlineInfo->clear();