Adds immediate migration results in progress

This commit is contained in:
torsten committed 2026-08-19 11:18:24 +02:00
1 parent 8453e104c5
commit 3bb6e89496
2102 files changed
+17482 -15071

No files matched your search

@@ -45,31 +45,31 @@ bool FireAutomaton::init(int32_t time, TimeType type, int32_t rounds, const QVec
{
if(m_state != State::Stopped && m_state != State::Uninitialized)
{
ERROR_LOG() << " init failed - fire automaton must be in state unitialized or stopped.";
ERROR_LOG(m_logger) << " init failed - fire automaton must be in state unitialized or stopped.";
return false;
}
if(time < 0)
{
ERROR_LOG() << " init failed - time invalid.";
ERROR_LOG(m_logger) << " init failed - time invalid.";
return false;
}
if(effectorIds.isEmpty())
{
ERROR_LOG() << " init failed - effector Ids invalid.";
ERROR_LOG(m_logger) << " init failed - effector Ids invalid.";
return false;
}
if(rounds <= 0)
{
ERROR_LOG() << " init failed - number of rounds invalid.";
ERROR_LOG(m_logger) << " init failed - number of rounds invalid.";
return false;
}
if(pattern.isEmpty())
{
ERROR_LOG() << " init failed - invalid fire pattern.";
ERROR_LOG(m_logger) << " init failed - invalid fire pattern.";
return false;
}
@@ -80,13 +80,13 @@ bool FireAutomaton::init(int32_t time, TimeType type, int32_t rounds, const QVec
if(!readPattern(pattern))
{
ERROR_LOG() << " init failed - firing pattern invalid.";
ERROR_LOG(m_logger) << " init failed - firing pattern invalid.";
return false;
}
if(!calculateSchedule(rounds))
{
ERROR_LOG() << " init failed - firing schedule invalid.";
ERROR_LOG(m_logger) << " init failed - firing schedule invalid.";
return false;
}
@@ -166,7 +166,7 @@ bool FireAutomaton::start()
{
if(m_state != State::Stopped)
{
ERROR_LOG() << " start failed - fire automaton must be in state stopped.";
ERROR_LOG(m_logger) << " start failed - fire automaton must be in state stopped.";
return false;
}
@@ -187,7 +187,7 @@ bool FireAutomaton::resume()
{
if(m_state != State::Paused)
{
ERROR_LOG() << " resume failed - fire automaton must be in state paused.";
ERROR_LOG(m_logger) << " resume failed - fire automaton must be in state paused.";
return false;
}
@@ -207,7 +207,7 @@ bool FireAutomaton::pause()
{
if(m_state != State::Running)
{
ERROR_LOG() << " pause failed - fire automaton must be in state running.";
ERROR_LOG(m_logger) << " pause failed - fire automaton must be in state running.";
return false;
}
@@ -242,7 +242,7 @@ bool FireAutomaton::performStep()
{
if(m_state != State::Stopped && m_state != State::Stepping)
{
ERROR_LOG() << " performStep failed - fire automaton must be in state stepping or stopped.";
ERROR_LOG(m_logger) << " performStep failed - fire automaton must be in state stepping or stopped.";
return false;
}
@@ -278,7 +278,7 @@ bool FireAutomaton::readPattern(const QString& pattern)
if(!patternElementFromString(element, patternElement))
{
WARNING_LOG() << " skipped invalid firing pattern elements.";
WARNING_LOG(m_logger) << " skipped invalid firing pattern elements.";
continue;
}
@@ -290,7 +290,7 @@ bool FireAutomaton::readPattern(const QString& pattern)
}
else
{
ERROR_LOG() << " a pattern may contain at most one fill element.";
ERROR_LOG(m_logger) << " a pattern may contain at most one fill element.";
return false;
}
}
@@ -300,7 +300,7 @@ bool FireAutomaton::readPattern(const QString& pattern)
if(m_pattern.empty())
{
ERROR_LOG() << " error occured reading firing pattern.";
ERROR_LOG(m_logger) << " error occured reading firing pattern.";
return false;
}
@@ -412,7 +412,7 @@ bool FireAutomaton::calculateSchedule(int32_t rounds)
if(rounds > 0)
{
ERROR_LOG() << " scheduling error - fire pattern does not provide sufficient slots to schedule all rounds. " << rounds;
ERROR_LOG(m_logger) << " scheduling error - fire pattern does not provide sufficient slots to schedule all rounds. " << rounds;
return false;
}
@@ -72,6 +72,7 @@ private slots:
void nextTick();
private:
NGL::INGLLogger &m_logger;
enum class PatternElement {
All,
AllFill,
@@ -89,6 +90,7 @@ private:
QVector<int32_t> getEffectorIds(int32_t tick) const;
private:
NGL::INGLLogger &m_logger;
QVector<int32_t> m_effectorIds;
QVector<FireAutomaton::PatternElement> m_pattern;
QVector<QVector<int32_t>> m_schedule;
@@ -132,18 +132,18 @@ FiringTimer::FiringTimer(const QString &debugInfo)
{
++s_counter;
d->m_debugInfo = debugInfo;
DEBUG_LOG() << MY_Q_FUNC_INFO << " START, s_counter=" << s_counter << " this=" << this;
DEBUG_LOG() << MY_Q_FUNC_INFO << " END, s_counter=" << s_counter << " this=" << this;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " START, s_counter=" << s_counter << " this=" << this;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " END, s_counter=" << s_counter << " this=" << this;
}
FiringTimer::~FiringTimer()
{
--s_counter;
DEBUG_LOG() << MY_Q_FUNC_INFO << " START, s_counter=" << s_counter << " this=" << this;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " START, s_counter=" << s_counter << " this=" << this;
QString debugInfoSave = d->m_debugInfo;
delete d;
//DEBUG_LOG() << MY_Q_FUNC_INFO << " END, s_counter=" << s_counter << " this=" << this;
DEBUG_LOG() << "debugInfo='" << debugInfoSave << "'" << Q_FUNC_INFO << " END, s_counter=" << s_counter << " this=" << this;
//DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " END, s_counter=" << s_counter << " this=" << this;
DEBUG_LOG(m_logger) << "debugInfo='" << debugInfoSave << "'" << Q_FUNC_INFO << " END, s_counter=" << s_counter << " this=" << this;
}
void FiringTimer::setDebugInfo(const QString &debugInfo)
@@ -153,14 +153,14 @@ void FiringTimer::setDebugInfo(const QString &debugInfo)
void FiringTimer::reset()
{
TRACE_LOG() << MY_Q_FUNC_INFO << " START";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " START";
d->reset();
TRACE_LOG() << MY_Q_FUNC_INFO << " END";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " END";
}
bool FiringTimer::init(long effectDurationMsec, int ammoCount, long ammoFlightDurationMsec)
{
TRACE_LOG() << MY_Q_FUNC_INFO << " START,"
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " START,"
<< ", effectDurationMsec=" << effectDurationMsec
<< ", ammoCount=" << ammoCount
<< ", ammoFlightDurationMsec=" << ammoFlightDurationMsec;
@@ -170,7 +170,7 @@ bool FiringTimer::init(long effectDurationMsec, int ammoCount, long ammoFlightDu
d->m_ammoCount = ammoCount;
d->m_ammoFlightDurationMsec = ammoFlightDurationMsec;
d->m_intervallMsec = static_cast<double>(d->m_effectDurationMsec) / d->m_ammoCount; // ensure float calculation
DEBUG_LOG() << MY_Q_FUNC_INFO << " m_intervallMsec " << d->m_intervallMsec;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " m_intervallMsec " << d->m_intervallMsec;
d->m_firingTimer->stop();
d->m_firingTimer->setSingleShot(false);
@@ -178,24 +178,24 @@ bool FiringTimer::init(long effectDurationMsec, int ammoCount, long ammoFlightDu
connect(d->m_firingTimer, &QTimer::timeout,
this, &FiringTimer::onFiringTimout, Qt::UniqueConnection);
TRACE_LOG() << MY_Q_FUNC_INFO << " END";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " END";
return true;
}
bool FiringTimer::startFiring()
{
TRACE_LOG() << MY_Q_FUNC_INFO << " START";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " START";
if ((d->m_currentFiringMode != FiringMode::FM_Undefined) &&
(d->m_currentFiringMode != FiringMode::FM_Paused))
{
ERROR_LOG() << MY_Q_FUNC_INFO << " wrong firingMode, cur = " << (int)d->m_currentFiringMode;
ERROR_LOG(m_logger) << MY_Q_FUNC_INFO << " wrong firingMode, cur = " << (int)d->m_currentFiringMode;
return false;
}
if (remainingAmmoCount() <= 0)
{
ERROR_LOG() << MY_Q_FUNC_INFO << " no ammo left"
ERROR_LOG(m_logger) << MY_Q_FUNC_INFO << " no ammo left"
<< " (total ammoCount was: " << d->m_ammoCount
<< " cur firingMode = " << (int)d->m_currentFiringMode;
return false;
@@ -213,7 +213,7 @@ bool FiringTimer::startFiring()
#endif // SUPPORT_STATE_CHANGE_DELAYED
DEBUG_LOG() << MY_Q_FUNC_INFO << " start firing with m_firedAmmoCount = " << d->m_firedAmmoCount;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " start firing with m_firedAmmoCount = " << d->m_firedAmmoCount;
d->m_firingTimer->start();
d->m_currentFiringMode = FiringMode::FM_Active;
@@ -227,7 +227,7 @@ bool FiringTimer::startFiring()
d->m_pausedMsec += pausedElapsedMsec;
d->m_etPaused->invalidate();
}
DEBUG_LOG() << MY_Q_FUNC_INFO << " start firing after [ms]: " << pausedElapsedMsec
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " start firing after [ms]: " << pausedElapsedMsec
<< ", m_activeMsec in total = " << d->m_activeMsec
<< ", m_pausedMsec in total = " << d->m_pausedMsec;
@@ -256,7 +256,7 @@ bool FiringTimer::startFiring()
// to fire at the beginning of the interval:
onFiringTimout();
TRACE_LOG() << MY_Q_FUNC_INFO << " END";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " END";
return true;
}
@@ -270,17 +270,17 @@ bool FiringTimer::startFiringDelay(qint64 delayMsec)
bool FiringTimer::pauseFiring()
{
TRACE_LOG() << MY_Q_FUNC_INFO << " START";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " START";
if (d->m_currentFiringMode != FiringMode::FM_Active)
{
ERROR_LOG() << MY_Q_FUNC_INFO << " wrong firingMode";
ERROR_LOG(m_logger) << MY_Q_FUNC_INFO << " wrong firingMode";
return false;
}
if (remainingAmmoCount() <= 0)
{
ERROR_LOG() << MY_Q_FUNC_INFO << " no ammo left"
ERROR_LOG(m_logger) << MY_Q_FUNC_INFO << " no ammo left"
<< " (total ammoCount was: " << d->m_ammoCount;
return false;
}
@@ -293,7 +293,7 @@ bool FiringTimer::pauseFiring()
#endif // SUPPORT_STATE_CHANGE_DELAYED
DEBUG_LOG() << MY_Q_FUNC_INFO << " stop firing at m_firedAmmoCount = " << d->m_firedAmmoCount;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " stop firing at m_firedAmmoCount = " << d->m_firedAmmoCount;
d->m_firingTimer->stop();
d->m_currentFiringMode = FiringMode::FM_Paused;
d->m_etPaused->start();
@@ -305,14 +305,14 @@ bool FiringTimer::pauseFiring()
const qint64 activeElapsedMsec = d->m_etActive->elapsed();
d->m_activeMsec += activeElapsedMsec;
d->m_etActive->invalidate();
DEBUG_LOG() << MY_Q_FUNC_INFO << " stop firing after [ms]: " << activeElapsedMsec
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " stop firing after [ms]: " << activeElapsedMsec
<< ", m_activeMsec in total = " << d->m_activeMsec
<< ", m_pausedMsec in total = " << d->m_pausedMsec;
QString log = QString(QStringLiteral("pauseFiring_at_%1")).arg(QDateTime::currentMSecsSinceEpoch()) ;
d->m_logHistorie.append(log);
TRACE_LOG() << MY_Q_FUNC_INFO << " END";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " END";
return true;
}
@@ -346,7 +346,7 @@ long FiringTimer::intervallMsec() const
#ifdef SUPPORT_STATE_CHANGE_DELAYED
void FiringTimer::emitStateChangeDelayed(AreaEffectSimulation::FiringTimer::CMD cmd, int firedAmmoCount)
{
DEBUG_LOG() << MY_Q_FUNC_INFO << " SUPPORT_STATE_CHANGE_DELAYED: " << cmd
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " SUPPORT_STATE_CHANGE_DELAYED: " << cmd
<< ", firedAmmoCount = " << firedAmmoCount;
emit stateChangeDelayedAsInt(static_cast<int>(cmd), firedAmmoCount);
}
@@ -380,11 +380,11 @@ QString FiringTimer::toString(const CMD cmd)
void FiringTimer::onFiringTimout()
{
TRACE_LOG() << MY_Q_FUNC_INFO << " START";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " START";
++d->m_firedAmmoCount;
INFO_LOG() << MY_Q_FUNC_INFO << " emit firing with: " << d->m_firedAmmoCount
INFO_LOG(m_logger) << MY_Q_FUNC_INFO << " emit firing with: " << d->m_firedAmmoCount
<< " of total ammoCount = " << d->m_ammoCount;
emit firing(d->m_firedAmmoCount, d->m_ammoCount);
@@ -396,7 +396,7 @@ void FiringTimer::onFiringTimout()
int currentFiringNumber = d->m_firedAmmoCount;
int totalFiringNumber = d->m_ammoCount;
DEBUG_LOG() << MY_Q_FUNC_INFO << " XXXXXXXXX schedule 'emit impact' " << currentFiringNumber;
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " XXXXXXXXX schedule 'emit impact' " << currentFiringNumber;
QTimer::singleShot(d->m_ammoFlightDurationMsec, this, [this, currentFiringNumber, totalFiringNumber]()
{
@@ -408,7 +408,7 @@ void FiringTimer::onFiringTimout()
}
#endif // SUPPORT_STATE_CHANGE_DELAYED
INFO_LOG() << MY_Q_FUNC_INFO << " emit impact " << currentFiringNumber
INFO_LOG(m_logger) << MY_Q_FUNC_INFO << " emit impact " << currentFiringNumber
<< " of total = " << totalFiringNumber;
emit impact(currentFiringNumber, totalFiringNumber);
@@ -430,7 +430,7 @@ void FiringTimer::onFiringTimout()
if (d->m_firedAmmoCount >= d->m_ammoCount)
{
INFO_LOG() << MY_Q_FUNC_INFO << " no ammo left, finishing firing"
INFO_LOG(m_logger) << MY_Q_FUNC_INFO << " no ammo left, finishing firing"
<< ", " << d->m_firedAmmoCount << " of total ammoCount = " << d->m_ammoCount << " are fired";
d->m_firingTimer->stop();
@@ -440,7 +440,7 @@ void FiringTimer::onFiringTimout()
// !! Attention: do pauseFiring() WITHIN the intervall will reduce amount of time the firing is active !!
DEBUG_LOG() << MY_Q_FUNC_INFO << " stop firing after [ms]: " << activeElapsedMsec
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " stop firing after [ms]: " << activeElapsedMsec
<< ", m_activeMsec in total = " << d->m_activeMsec
<< ", m_pausedMsec in total = " << d->m_pausedMsec
<< " now FiringTimoutExpiredPlus ...";
@@ -465,12 +465,12 @@ void FiringTimer::onFiringTimout()
d->m_firingTimer->start();
}
TRACE_LOG() << MY_Q_FUNC_INFO << " END" << ", m_firedAmmoCount " << d->m_firedAmmoCount;
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " END" << ", m_firedAmmoCount " << d->m_firedAmmoCount;
}
void FiringTimer::onFiringTimoutExpiredPlus()
{
TRACE_LOG() << MY_Q_FUNC_INFO << " START";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " START";
d->m_currentFiringMode = FiringMode::FM_ExpiredPlus;
@@ -480,7 +480,7 @@ void FiringTimer::onFiringTimoutExpiredPlus()
// !! Attention: do pauseFiring() WITHIN the intervall will reduce amount of time the firing is active !!
DEBUG_LOG() << MY_Q_FUNC_INFO << " stop firing2 after [ms]: " << activeElapsedMsec
DEBUG_LOG(m_logger) << MY_Q_FUNC_INFO << " stop firing2 after [ms]: " << activeElapsedMsec
<< ", m_activeMsec in total = " << d->m_activeMsec
<< ", m_pausedMsec in total = " << d->m_pausedMsec;
@@ -488,7 +488,7 @@ void FiringTimer::onFiringTimoutExpiredPlus()
emit firingFinishedPlus();
TRACE_LOG() << MY_Q_FUNC_INFO << " END";
TRACE_LOG(m_logger) << MY_Q_FUNC_INFO << " END";
}