Better handling of RPM during stop of cranking #3803
refactoring: reusing existing method
This commit is contained in:
parent
b9a792a07c
commit
bc66096574
|
@ -514,9 +514,7 @@ void Engine::watchdog() {
|
|||
* todo: better watch dog implementation should be implemented - see
|
||||
* http://sourceforge.net/p/rusefi/tickets/96/
|
||||
*/
|
||||
float secondsSinceTriggerEvent = engine->triggerCentral.getTimeSinceTriggerEvent(getTimeNowNt());
|
||||
|
||||
if (secondsSinceTriggerEvent < 0.5f) {
|
||||
if (engine->triggerCentral.engineMovedRecently()) {
|
||||
// Engine moved recently, no need to safe pins.
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ bool RpmCalculator::checkIfSpinning(efitick_t nowNt) const {
|
|||
/**
|
||||
* Also check if there were no trigger events
|
||||
*/
|
||||
bool noTriggerEventsForTooLong = engine->triggerCentral.getTimeSinceTriggerEvent(nowNt) >= 1;
|
||||
bool noTriggerEventsForTooLong = !engine->triggerCentral.engineMovedRecently(nowNt);
|
||||
|
||||
if (noRpmEventsForTooLong || noTriggerEventsForTooLong) {
|
||||
return false;
|
||||
|
|
|
@ -70,11 +70,15 @@ public:
|
|||
return m_lastEventTimer.getElapsedSeconds(nowNt);
|
||||
}
|
||||
|
||||
bool engineMovedRecently() const {
|
||||
bool engineMovedRecently(efitick_t nowNt) const {
|
||||
// Trigger event some time in the past second = engine moving
|
||||
// distributor single tooth, large engines crank at close to 120 RPM
|
||||
// todo: make this logic account current trigger to stop idle much faster if we have more teeth on trigger wheels?
|
||||
return getTimeSinceTriggerEvent(getTimeNowNt()) < 1.0f;
|
||||
return getTimeSinceTriggerEvent(nowNt) < 1.0f;
|
||||
}
|
||||
|
||||
bool engineMovedRecently() const {
|
||||
return engineMovedRecently(getTimeNowNt());
|
||||
}
|
||||
|
||||
TriggerNoiseFilter noiseFilter;
|
||||
|
|
Loading…
Reference in New Issue