Ref T515, added failover flag for addingRemoteModelFailed

* adjusted signatures
* renamings and minor style adjustments
This commit is contained in:
Klaus Basan
2019-01-24 12:19:39 +01:00
committed by Mat Sutcliffe
parent f316c63fbe
commit 6470c61d0a
12 changed files with 38 additions and 29 deletions

View File

@@ -951,7 +951,7 @@ namespace BlackSimPlugin
if (!msg.isEmpty() && msg.isWarningOrAbove())
{
CLogMessage::preformatted(msg);
emit this->physicallyAddingRemoteModelFailed(CSimulatedAircraft(), false, msg);
emit this->physicallyAddingRemoteModelFailed(CSimulatedAircraft(), false, false, msg);
}
// trigger adding pending aircraft if there are any
@@ -972,16 +972,16 @@ namespace BlackSimPlugin
CLogMessage(this).warning(u"Model failed to be added: '%1' details: %2") << simObject.getAircraftModelString() << simObject.getAircraft().toQString(true);
CStatusMessage verifyMsg;
const bool canBeUsed = this->verifyFailedAircraftInfo(simObject, verifyMsg); // aircraft.cfg existing?
const bool verifiedAircraft = this->verifyFailedAircraftInfo(simObject, verifyMsg); // aircraft.cfg existing?
if (!verifyMsg.isEmpty()) { CLogMessage::preformatted(verifyMsg); }
if (!canBeUsed || simObject.getAddingExceptions() >= ThresholdAddException)
if (!verifiedAircraft || simObject.getAddingExceptions() >= ThresholdAddException)
{
const CStatusMessage m = !canBeUsed ?
CLogMessage(this).warning(u"Model '%1' %2 failed verification and will be disabled") << simObject.getAircraftModelString() << simObject.toQString() :
CLogMessage(this).warning(u"Model '%1' %2 failed %3 time(s) before and will be disabled") << simObject.getAircraftModelString() << simObject.toQString() << simObject.getAddingExceptions();
const CStatusMessage msg = verifiedAircraft ?
CLogMessage(this).warning(u"Model '%1' %2 failed %3 time(s) before and will be disabled") << simObject.getAircraftModelString() << simObject.toQString() << simObject.getAddingExceptions() :
CLogMessage(this).warning(u"Model '%1' %2 failed verification and will be disabled") << simObject.getAircraftModelString() << simObject.toQString();
this->updateAircraftEnabled(simObject.getCallsign(), false); // disable
emit this->physicallyAddingRemoteModelFailed(simObject.getAircraft(), true, m);
emit this->physicallyAddingRemoteModelFailed(simObject.getAircraft(), true, true, msg); // verify failed
}
else
{
@@ -1195,7 +1195,7 @@ namespace BlackSimPlugin
{
const CStatusMessage m = CLogMessage(this).warning(u"Aircraft removed again multiple times and will be disabled, '%1' '%2' object id '%3'") << callsign.toQString() << simObject.getAircraftModelString() << objectID;
this->updateAircraftEnabled(simObject.getCallsign(), false);
emit this->physicallyAddingRemoteModelFailed(simObject.getAircraft(), true, m);
emit this->physicallyAddingRemoteModelFailed(simObject.getAircraft(), true, true, m); // directly removed again
}
else
{
@@ -1412,7 +1412,7 @@ namespace BlackSimPlugin
for (const CSimConnectObject &simObjOutdated : outdatedAdded)
{
const CStatusMessage msg = CStatusMessage(this).warning(msgText.arg(simObjOutdated.getCallsign().asString(), simObjOutdated.toQString()));
emit this->physicallyAddingRemoteModelFailed(simObjOutdated.getAircraft(), true, msg);
emit this->physicallyAddingRemoteModelFailed(simObjOutdated.getAircraft(), true, true, msg); // outdated
}
// if this aircraft is also outdated, ignore
@@ -1547,7 +1547,7 @@ namespace BlackSimPlugin
{
const CStatusMessage msg = CStatusMessage(this).error(u"SimConnect, can not create AI traffic: '%1' '%2'") << callsign.toQString() << modelString;
CLogMessage::preformatted(msg);
emit this->physicallyAddingRemoteModelFailed(newRemoteAircraft, true, msg);
emit this->physicallyAddingRemoteModelFailed(newRemoteAircraft, true, true, msg); // SimConnect error
}
else
{

View File

@@ -215,14 +215,16 @@ namespace BlackSimPlugin
{
bool success = simulatorFsxP3D->setSimConnectObjectId(requestId, objectId);
if (!success) { break; } // not an request ID of ours
success = simulatorFsxP3D->simulatorReportedObjectAdded(objectId); // trigger follow up actions
success = simulatorFsxP3D->simulatorReportedObjectAdded(objectId); // adding failed (no IDs), trigger follow up actions
if (!success)
{
// getting here would mean object was removed in the meantime
// otherwise we will detect it in verification
const CSimConnectObject simObject = simulatorFsxP3D->getSimObjectForObjectId(objectId);
const CSimulatedAircraft remoteAircraft(simObject.getAircraft());
const CStatusMessage msg = CStatusMessage(simulatorFsxP3D).error(u"Cannot add object %1, cs: '%2' model: '%3'") << objectId << remoteAircraft.getCallsignAsString() << remoteAircraft.getModelString();
CLogMessage::preformatted(msg);
emit simulatorFsxP3D->physicallyAddingRemoteModelFailed(remoteAircraft, false, msg);
emit simulatorFsxP3D->physicallyAddingRemoteModelFailed(remoteAircraft, false, false, msg);
}
}
break; // SIMCONNECT_RECV_ID_ASSIGNED_OBJECT_ID