refactor: Remove airport view

This commit is contained in:
Lars Toenning
2024-12-30 00:13:19 +01:00
parent f2dd54d77b
commit edbabe34be
35 changed files with 1 additions and 621 deletions

View File

@@ -103,10 +103,6 @@ namespace swift::simplugin::flightgear
const QString &icao, const QString &modelString, const QString &name,
const QString &description);
//! Airports in range are updated
void airportsInRangeUpdated(const QStringList &icaoCodes, const QStringList &names, const QList<double> &lats,
const QList<double> &lons, const QList<double> &alts);
public slots:
//! Get Flightgear version number
int getVersionNumber();

View File

@@ -356,8 +356,6 @@ namespace swift::simplugin::flightgear
setSimulatorDetails("Flightgear", {}, "");
connect(m_serviceProxy, &CFGSwiftBusServiceProxy::aircraftModelChanged, this,
&CSimulatorFlightgear::emitOwnAircraftModelChanged);
connect(m_serviceProxy, &CFGSwiftBusServiceProxy::airportsInRangeUpdated, this,
&CSimulatorFlightgear::setAirportsInRange);
connect(m_trafficProxy, &CFGSwiftBusTrafficProxy::simFrame, this, &CSimulatorFlightgear::updateRemoteAircraft);
connect(m_trafficProxy, &CFGSwiftBusTrafficProxy::remoteAircraftAdded, this,
&CSimulatorFlightgear::onRemoteAircraftAdded);
@@ -432,36 +430,6 @@ namespace swift::simplugin::flightgear
m_serviceProxy->addTextMessage(message.getSenderCallsign().toQString() + ": " + message.getMessage());
}
void CSimulatorFlightgear::setAirportsInRange(const QStringList &icaos, const QStringList &names,
const CSequence<double> &lats, const CSequence<double> &lons,
const CSequence<double> &alts)
{
//! \todo restrict to maxAirportsInRange()
m_airportsInRange.clear();
auto icaoIt = icaos.begin();
auto nameIt = names.begin();
auto latIt = lats.begin();
auto lonIt = lons.begin();
auto altIt = alts.begin();
for (; icaoIt != icaos.end() && nameIt != names.end() && latIt != lats.end() && lonIt != lons.end() &&
altIt != alts.end();
++icaoIt, ++nameIt, ++latIt, ++lonIt, ++altIt)
{
m_airportsInRange.push_back({ *icaoIt,
{ CLatitude(*latIt, CAngleUnit::deg()), CLongitude(*lonIt, CAngleUnit::deg()),
CAltitude(*altIt, CLengthUnit::m()) },
*nameIt });
}
}
CAirportList CSimulatorFlightgear::getAirportsInRange(bool recalculateDistance) const
{
if (!recalculateDistance) { return m_airportsInRange; }
CAirportList airports(m_airportsInRange);
airports.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition());
return airports;
}
bool CSimulatorFlightgear::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
{
return m_flightgearAircraftObjects.contains(callsign);

View File

@@ -131,7 +131,6 @@ namespace swift::simplugin::flightgear
const swift::misc::CIdentifier &originator) override;
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override;
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override;
virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override;
virtual void unload() override;
@@ -171,9 +170,6 @@ namespace swift::simplugin::flightgear
using QDoubleList = QList<double>;
void setAirportsInRange(const QStringList &icaoCodes, const QStringList &names,
const swift::misc::CSequence<double> &lats, const swift::misc::CSequence<double> &lons,
const swift::misc::CSequence<double> &alts);
void emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery,
const QString &icao, const QString &modelString, const QString &name,
const QString &description);
@@ -234,7 +230,6 @@ namespace swift::simplugin::flightgear
QTimer m_slowTimer;
QTimer m_airportUpdater;
QTimer m_pendingAddedTimer;
swift::misc::aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft
swift::misc::CData<swift::misc::simulation::data::TModelSetCacheFG> m_modelSet {
this
}; //!< Flightgear model set

View File

@@ -58,25 +58,4 @@ namespace swift::simplugin::fscommon
this->emitSimulatorCombinedStatus();
return r;
}
CAirportList CSimulatorFsCommon::getAirportsInRange(bool recalculateDistance) const
{
if (!m_airportsInRangeFromSimulator.isEmpty())
{
CAirportList airports = m_airportsInRangeFromSimulator;
if (recalculateDistance)
{
airports.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition());
}
return airports;
}
return ISimulator::getAirportsInRange(recalculateDistance);
}
void CSimulatorFsCommon::onSwiftDbAirportsRead()
{
const CAirportList webServiceAirports = this->getWebServiceAirports();
if (!webServiceAirports.isEmpty()) { m_airportsInRangeFromSimulator.updateMissingParts(webServiceAirports); }
ISimulator::onSwiftDbAirportsRead();
}
} // namespace swift::simplugin::fscommon

View File

@@ -32,7 +32,6 @@ namespace swift::simplugin::fscommon
// ---------------------- ISimulator ------------------
virtual bool disconnectFrom() override;
virtual bool isPaused() const override { return m_simPaused; }
virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
// ---------------------- ISimulator ------------------
protected:
@@ -45,9 +44,6 @@ namespace swift::simplugin::fscommon
//! Init the internal objects
virtual void initSimulatorInternals() override;
//! When swift DB data are read
virtual void onSwiftDbAirportsRead() override;
//! \copydoc swift::core::ISimulator::reset
virtual void reset() override;
@@ -58,7 +54,6 @@ namespace swift::simplugin::fscommon
0; //!< own aircraft updates, even with 50 updates/sec long enough even for 32bit
int m_skipCockpitUpdateCycles = 0; //!< skip some update cycles to allow changes in simulator cockpit to be set
bool m_simPaused = false; //!< simulator paused?
swift::misc::aviation::CAirportList m_airportsInRangeFromSimulator; //!< airports in range of own aircraft
// cockpit as set in SIM
swift::misc::aviation::CComSystem m_simCom1; //!< cockpit COM1 state in simulator

View File

@@ -2211,39 +2211,6 @@ namespace swift::simplugin::fsxcommon
return ok;
}
void CSimulatorFsxCommon::triggerUpdateAirports(const CAirportList &airports)
{
if (this->isShuttingDownOrDisconnected()) { return; }
if (airports.isEmpty()) { return; }
QPointer<CSimulatorFsxCommon> myself(this);
QTimer::singleShot(0, this, [=] {
if (!myself) { return; }
this->updateAirports(airports);
});
}
void CSimulatorFsxCommon::updateAirports(const CAirportList &airports)
{
if (airports.isEmpty()) { return; }
static const CLength maxDistance(200.0, CLengthUnit::NM());
const CCoordinateGeodetic posAircraft(this->getOwnAircraftPosition());
for (const CAirport &airport : airports)
{
CAirport consolidatedAirport(airport);
const CLength d = consolidatedAirport.calculcateAndUpdateRelativeDistanceAndBearing(posAircraft);
if (d > maxDistance) { continue; }
consolidatedAirport.updateMissingParts(this->getWebServiceAirport(airport.getIcao()));
m_airportsInRangeFromSimulator.replaceOrAddByIcao(consolidatedAirport);
if (m_airportsInRangeFromSimulator.size() > this->maxAirportsInRange())
{
m_airportsInRangeFromSimulator.sortByDistanceToReferencePosition();
m_airportsInRangeFromSimulator.truncate(this->maxAirportsInRange());
}
}
}
bool CSimulatorFsxCommon::sendRemoteAircraftPartsToSimulator(const CSimConnectObject &simObject,
const CAircraftParts &parts)
{

View File

@@ -461,12 +461,6 @@ namespace swift::simplugin::fsxcommon
bool updateRemoteAircraftParts(const CSimConnectObject &simObject,
const swift::misc::simulation::CInterpolationResult &result, bool forcedUpdate);
//! Calling CSimulatorFsxCommon::updateAirports
void triggerUpdateAirports(const swift::misc::aviation::CAirportList &airports);
//! Update airports from simulator
void updateAirports(const swift::misc::aviation::CAirportList &airports);
//! Send parts to simulator
//! \remark does not send if there is no change
bool sendRemoteAircraftPartsToSimulator(const CSimConnectObject &simObject,

View File

@@ -368,32 +368,6 @@ namespace swift::simplugin::fsxcommon
}
break; // SIMCONNECT_RECV_ID_SIMOBJECT_DATA
}
case SIMCONNECT_RECV_ID_AIRPORT_LIST:
{
const SIMCONNECT_RECV_AIRPORT_LIST *pAirportList = static_cast<SIMCONNECT_RECV_AIRPORT_LIST *>(pData);
CAirportList simAirports;
for (unsigned i = 0; i < pAirportList->dwArraySize; ++i)
{
const SIMCONNECT_DATA_FACILITY_AIRPORT *pFacilityAirport = pAirportList->rgData + i;
if (!pFacilityAirport) { break; }
const QString icao(pFacilityAirport->Icao);
if (icao.isEmpty()) { continue; } // airfield without ICAO code
if (!CAirportIcaoCode::isValidIcaoDesignator(icao, true))
{
continue;
} // tiny airfields/strips in simulator
if (CAirportIcaoCode::containsNumbers(icao)) { continue; } // tiny airfields/strips in simulator
const CCoordinateGeodetic pos(pFacilityAirport->Latitude, pFacilityAirport->Longitude,
pFacilityAirport->Altitude);
const CAirport airport(CAirportIcaoCode(icao), pos);
simAirports.push_back(airport);
}
if (!simAirports.isEmpty())
{
simulatorFsxP3D->triggerUpdateAirports(simAirports); // real "work" outside SimConnectProc
}
break; // SIMCONNECT_RECV_ID_AIRPORT_LIST
}
case SIMCONNECT_RECV_ID_CLIENT_DATA:
{
if (!simulatorFsxP3D->m_useSbOffsets) { break; }

View File

@@ -498,8 +498,6 @@ namespace swift::simplugin::xplane
setSimulatorDetails("X-Plane", {}, xplaneVersion);
connect(m_serviceProxy, &CXSwiftBusServiceProxy::aircraftModelChanged, this,
&CSimulatorXPlane::emitOwnAircraftModelChanged);
connect(m_serviceProxy, &CXSwiftBusServiceProxy::airportsInRangeUpdated, this,
&CSimulatorXPlane::setAirportsInRange);
m_serviceProxy->updateAirportsInRange();
connect(m_trafficProxy, &CXSwiftBusTrafficProxy::simFrame, this, &CSimulatorXPlane::updateRemoteAircraft);
connect(m_trafficProxy, &CXSwiftBusTrafficProxy::remoteAircraftAdded, this,
@@ -606,36 +604,6 @@ namespace swift::simplugin::xplane
color.redF(), color.greenF(), color.blueF());
}
void CSimulatorXPlane::setAirportsInRange(const QStringList &icaos, const QStringList &names,
const CSequence<double> &lats, const CSequence<double> &lons,
const CSequence<double> &alts)
{
//! \todo restrict to maxAirportsInRange()
m_airportsInRange.clear();
auto icaoIt = icaos.begin();
auto nameIt = names.begin();
auto latIt = lats.begin();
auto lonIt = lons.begin();
auto altIt = alts.begin();
for (; icaoIt != icaos.end() && nameIt != names.end() && latIt != lats.end() && lonIt != lons.end() &&
altIt != alts.end();
++icaoIt, ++nameIt, ++latIt, ++lonIt, ++altIt)
{
m_airportsInRange.push_back({ *icaoIt,
{ CLatitude(*latIt, CAngleUnit::deg()), CLongitude(*lonIt, CAngleUnit::deg()),
CAltitude(*altIt, CLengthUnit::m()) },
*nameIt });
}
}
CAirportList CSimulatorXPlane::getAirportsInRange(bool recalculateDistance) const
{
if (!recalculateDistance) { return m_airportsInRange; }
CAirportList airports(m_airportsInRange);
airports.calculcateAndUpdateRelativeDistanceAndBearing(this->getOwnAircraftPosition());
return airports;
}
bool CSimulatorXPlane::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
{
return m_xplaneAircraftObjects.contains(callsign);

View File

@@ -135,7 +135,6 @@ namespace swift::simplugin::xplane
const swift::misc::CIdentifier &originator) override;
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override;
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override;
virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override;
virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override;
@@ -188,9 +187,6 @@ namespace swift::simplugin::xplane
using QDoubleList = QList<double>;
using QBoolList = QList<bool>;
void setAirportsInRange(const QStringList &icaoCodes, const QStringList &names,
const swift::misc::CSequence<double> &lats, const swift::misc::CSequence<double> &lons,
const swift::misc::CSequence<double> &alts);
void emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery,
const QString &icao, const QString &modelString, const QString &name,
const QString &description);
@@ -284,7 +280,6 @@ namespace swift::simplugin::xplane
unsigned int m_fastTimerCalls = 0; //!< how often called
unsigned int m_slowTimerCalls = 0; //!< how often called
swift::misc::aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft
CXPlaneMPAircraftObjects m_xplaneAircraftObjects; //!< XPlane multiplayer aircraft
swift::misc::simulation::CSimulatedAircraftList m_pendingToBeAddedAircraft; //!< aircraft to be added

View File

@@ -86,10 +86,6 @@ namespace swift::simplugin::xplane
const QString &icao, const QString &modelString, const QString &name,
const QString &description);
//! Airports in range are updated
void airportsInRangeUpdated(const QStringList &icaoCodes, const QStringList &names, const QList<double> &lats,
const QList<double> &lons, const QList<double> &alts);
//! Scenery was loaded
void sceneryLoaded();