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:
Klaus Basan
2018-06-27 01:37:47 +02:00
parent 1f689a8830
commit 8898bf6be5
8 changed files with 72 additions and 4 deletions

View File

@@ -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;

View File

@@ -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
{

View File

@@ -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();

View File

@@ -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

View File

@@ -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);

View File

@@ -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;