mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-13 07:35:41 +08:00
Ref T285, allow to re-init all aircraft
* aircraft will be removed, then added again as new * this will go thru the full cycle and matching
This commit is contained in:
@@ -340,6 +340,14 @@ namespace BlackCore
|
||||
QObject::disconnect(this);
|
||||
}
|
||||
|
||||
int CAirspaceMonitor::reInitializeAllAircraft()
|
||||
{
|
||||
const CSimulatedAircraftList aircraft = this->getAircraftInRange();
|
||||
CRemoteAircraftProvider::removeAllAircraft();
|
||||
this->asyncAddNewAircraftInRange(aircraft, true);
|
||||
return aircraft.size();
|
||||
}
|
||||
|
||||
void CAirspaceMonitor::onRealNameReplyReceived(const CCallsign &callsign, const QString &realname)
|
||||
{
|
||||
if (!this->isConnected() || realname.isEmpty()) { return; }
|
||||
@@ -756,6 +764,25 @@ namespace BlackCore
|
||||
return CRemoteAircraftProvider::addNewAircraftInRange(newAircraft);
|
||||
}
|
||||
|
||||
void CAirspaceMonitor::asyncAddNewAircraftInRange(const CSimulatedAircraftList &aircraft, bool readyForModelMatching)
|
||||
{
|
||||
if (aircraft.isEmpty()) { return; }
|
||||
if (!sApp || sApp->isShuttingDown()) { return; }
|
||||
|
||||
int c = 1;
|
||||
QPointer<CAirspaceMonitor> myself(this);
|
||||
for (const CSimulatedAircraft &ac : aircraft)
|
||||
{
|
||||
QTimer::singleShot(c * 25, this, [ = ]
|
||||
{
|
||||
if (!myself) { return; }
|
||||
myself->addNewAircraftInRange(ac);
|
||||
if (!readyForModelMatching) { return; }
|
||||
myself->sendReadyForModelMatching(ac.getCallsign());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
int CAirspaceMonitor::updateOnlineStation(const CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues, bool sendSignal)
|
||||
{
|
||||
const int c = m_atcStationsOnline.applyIfCallsign(callsign, vm, skipEqualValues);
|
||||
|
||||
@@ -124,6 +124,9 @@ namespace BlackCore
|
||||
//! Gracefully shut down, e.g. for thread safety
|
||||
void gracefulShutdown();
|
||||
|
||||
//! Re-init all aircrft
|
||||
int reInitializeAllAircraft();
|
||||
|
||||
//! Create dummy entries for performance tests
|
||||
//! \private for testing purposes
|
||||
void testCreateDummyOnlineAtcStations(int number);
|
||||
@@ -228,6 +231,11 @@ namespace BlackCore
|
||||
//! \threadsafe
|
||||
bool addNewAircraftInRange(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
|
||||
//! Asynchronously add aircraft
|
||||
//! \threadsafe
|
||||
//! \sa addNewAircraftInRange
|
||||
void asyncAddNewAircraftInRange(const BlackMisc::Simulation::CSimulatedAircraftList &aircraft, bool readyForModelMatching);
|
||||
|
||||
//! Update online stations by callsign
|
||||
int updateOnlineStation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::CPropertyIndexVariantMap &vm, bool skipEqualValues = true, bool sendSignal = true);
|
||||
|
||||
|
||||
@@ -278,6 +278,9 @@ namespace BlackCore
|
||||
//! Change fast position updates
|
||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) = 0;
|
||||
|
||||
//! Re-initialize all aircraft
|
||||
virtual int reInitializeAllAircraft() = 0;
|
||||
|
||||
//! Get reverse lookup messages
|
||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
|
||||
|
||||
|
||||
@@ -345,6 +345,12 @@ namespace BlackCore
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::reInitializeAllAircraft
|
||||
virtual int reInitializeAllAircraft() override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::setFastPositionEnabledCallsigns
|
||||
virtual void setFastPositionEnabledCallsigns(BlackMisc::Aviation::CCallsignSet &callsigns) override
|
||||
{
|
||||
|
||||
@@ -265,7 +265,7 @@ namespace BlackCore
|
||||
{
|
||||
Q_UNUSED(originator;)
|
||||
if (commandLine.isEmpty()) { return false; }
|
||||
static const QStringList cmds({ ".msg", ".m", ".altos", ".altoffset", ".watchdog" });
|
||||
static const QStringList cmds({ ".msg", ".m", ".altos", ".altoffset", ".watchdog", ".reinit", ".reinitialize" });
|
||||
CSimpleCommandParser parser(cmds);
|
||||
parser.parse(commandLine);
|
||||
if (!parser.isKnownCommand()) { return false; }
|
||||
@@ -335,7 +335,7 @@ namespace BlackCore
|
||||
}
|
||||
}
|
||||
|
||||
QString msg(parser.remainingStringAfter(2));
|
||||
const QString msg(parser.remainingStringAfter(2));
|
||||
tm.setMessage(msg);
|
||||
if (tm.isEmpty())
|
||||
{
|
||||
@@ -379,6 +379,15 @@ namespace BlackCore
|
||||
m_airspace->enableWatchdog(watchdog);
|
||||
CLogMessage(this).info("Enabled watchdog: %1") << boolToYesNo(watchdog);
|
||||
}
|
||||
else if (parser.matchesCommand(".reinit", ".reinitialize"))
|
||||
{
|
||||
if (!m_airspace) { return false; }
|
||||
const int count = m_airspace->reInitializeAllAircraft();
|
||||
if (count > 0)
|
||||
{
|
||||
CLogMessage(this).info("Re-init %1 aircraft") << count;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -833,6 +842,11 @@ namespace BlackCore
|
||||
m_airspace->updateMarkAllAsNotRendered();
|
||||
}
|
||||
|
||||
int CContextNetwork::reInitializeAllAircraft()
|
||||
{
|
||||
return m_airspace->reInitializeAllAircraft();
|
||||
}
|
||||
|
||||
CAirspaceAircraftSnapshot CContextNetwork::getLatestAirspaceAircraftSnapshot() const
|
||||
{
|
||||
return m_airspace->getLatestAirspaceAircraftSnapshot();
|
||||
|
||||
@@ -155,6 +155,7 @@ namespace BlackCore
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositonUpdates) override;
|
||||
virtual int reInitializeAllAircraft() override;
|
||||
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||
virtual bool updateCG(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg) override;
|
||||
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
|
||||
@@ -195,8 +196,10 @@ namespace BlackCore
|
||||
//! \addtogroup swiftdotcommands
|
||||
//! @{
|
||||
//! <pre>
|
||||
//! .m .msg message text
|
||||
//! .altos .altoffset altitude offset for testing
|
||||
//! .m .msg message text
|
||||
//! .altos .altoffset altitude offset for testing
|
||||
//! .reinit .reinitialize re-initialize all aircraft
|
||||
//! .watchdog on|off watchdog on/off
|
||||
//! </pre>
|
||||
//! @}
|
||||
//! \copydoc IContextNetwork::parseCommandLine
|
||||
@@ -211,6 +214,7 @@ namespace BlackCore
|
||||
BlackMisc::CSimpleCommandParser::registerCommand({".m callsign message text", "send text message"});
|
||||
BlackMisc::CSimpleCommandParser::registerCommand({".altos callsign offsetvalue", "set altitude offset value (testing)"});
|
||||
BlackMisc::CSimpleCommandParser::registerCommand({".watchdog on|off", "enable/disable network watchdog (testing)"});
|
||||
BlackMisc::CSimpleCommandParser::registerCommand({".reinit", "re-initialize all aircraft"});
|
||||
}
|
||||
|
||||
//! \publicsection
|
||||
|
||||
@@ -233,6 +233,11 @@ namespace BlackCore
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateAircraftSupportingGndFLag"), callsign, supportGndFlag);
|
||||
}
|
||||
|
||||
int CContextNetworkProxy::reInitializeAllAircraft()
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("reInitializeAllAircraft"));
|
||||
}
|
||||
|
||||
void CContextNetworkProxy::setFastPositionEnabledCallsigns(CCallsignSet &callsigns)
|
||||
{
|
||||
m_dBusInterface->callDBus(QLatin1String("setFastPositionEnabledCallsigns"), callsigns);
|
||||
|
||||
@@ -110,6 +110,7 @@ namespace BlackCore
|
||||
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) override;
|
||||
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||
virtual int reInitializeAllAircraft() override;
|
||||
virtual void setFastPositionEnabledCallsigns(BlackMisc::Aviation::CCallsignSet &callsigns) override;
|
||||
virtual BlackMisc::Aviation::CCallsignSet getFastPositionEnabledCallsigns() const override;
|
||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
|
||||
Reference in New Issue
Block a user