mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 02:06:08 +08:00
Better detect simExit on FSX, dispatch error just warning in that case
This commit is contained in:
@@ -1407,9 +1407,10 @@ namespace BlackSimPlugin
|
|||||||
// error handling
|
// error handling
|
||||||
if (isFailure(hr))
|
if (isFailure(hr))
|
||||||
{
|
{
|
||||||
|
// on FSX we normally receive this one here when simulator goes down, and NOT onSimExit
|
||||||
|
// in that case sim status is Connected, but not PAUSED or SIMULATING
|
||||||
const SimulatorStatus simStatus = this->getSimulatorStatus();
|
const SimulatorStatus simStatus = this->getSimulatorStatus();
|
||||||
const bool disconnectedOrPaused = simStatus.testFlag(Disconnected) || simStatus.testFlag(Paused);
|
const bool disconnectedOrNotSimulating = simStatus.testFlag(Disconnected) || !simStatus.testFlag(Simulating);
|
||||||
Q_UNUSED(disconnectedOrPaused);
|
|
||||||
|
|
||||||
m_dispatchErrors++;
|
m_dispatchErrors++;
|
||||||
this->triggerAutoTraceSendId();
|
this->triggerAutoTraceSendId();
|
||||||
@@ -1417,12 +1418,14 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
// 2nd time, an error / avoid multiple messages
|
// 2nd time, an error / avoid multiple messages
|
||||||
// idea: if it happens once ignore
|
// idea: if it happens once ignore
|
||||||
CLogMessage(this).error(u"%1: Dispatch error, sim.status: %2") << this->getSimulatorPluginInfo().getIdentifier() << ISimulator::statusToString(simStatus);
|
const QString msg = QStringLiteral(u"%1: Dispatch error, sim.status: %2").arg(this->getSimulatorPluginInfo().getIdentifier(), ISimulator::statusToString(simStatus));
|
||||||
|
CLogMessage(this).log(disconnectedOrNotSimulating ? CStatusMessage::SeverityWarning : CStatusMessage::SeverityError, msg);
|
||||||
}
|
}
|
||||||
else if (m_dispatchErrors > 5)
|
else if (m_dispatchErrors > 5)
|
||||||
{
|
{
|
||||||
// this normally happens during a FSX crash or shutdown with simconnect
|
// this normally happens during a FSX crash or shutdown with simconnect
|
||||||
CLogMessage(this).error(u"%1: Multiple dispatch errors, disconnecting. Sim.status: %2") << this->getSimulatorPluginInfo().getIdentifier() << ISimulator::statusToString(simStatus);
|
const QString msg = QStringLiteral(u"%1: Multiple dispatch errors, disconnecting. Sim.status: %2").arg(this->getSimulatorPluginInfo().getIdentifier(), ISimulator::statusToString(simStatus));
|
||||||
|
CLogMessage(this).log(disconnectedOrNotSimulating ? CStatusMessage::SeverityWarning : CStatusMessage::SeverityError, msg);
|
||||||
this->disconnectFrom();
|
this->disconnectFrom();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user