rusEFI
The most advanced open source ECU
|
#include <instant_rpm_calculator.h>
Public Member Functions | |
InstantRpmCalculator () | |
float | getInstantRpm () const |
void | updateInstantRpm (uint32_t current_index, TriggerWaveform const &triggerShape, TriggerFormDetails *triggerFormDetails, uint32_t index, efitick_t nowNt) |
void | setLastEventTimeForInstantRpm (efitick_t nowNt) |
void | movePreSynchTimestamps () |
void | resetInstantRpm () |
Data Fields | |
uint32_t | timeOfLastEvent [PWM_PHASE_MAX_COUNT] |
size_t | spinningEventIndex = 0 |
uint32_t | spinningEvents [120] |
float | instantRpmValue [PWM_PHASE_MAX_COUNT] |
float | prevInstantRpmValue = 0 |
float | m_instantRpm = 0 |
Private Member Functions | |
float | calculateInstantRpm (TriggerWaveform const &triggerShape, TriggerFormDetails *triggerFormDetails, uint32_t index, efitick_t nowNt) |
Private Attributes | |
float | m_instantRpmRatio = 0 |
Definition at line 8 of file instant_rpm_calculator.h.
InstantRpmCalculator::InstantRpmCalculator | ( | ) |
Definition at line 20 of file instant_rpm_calculator.cpp.
|
private |
Definition at line 50 of file instant_rpm_calculator.cpp.
Referenced by updateInstantRpm().
|
inline |
Definition at line 11 of file instant_rpm_calculator.h.
Referenced by getAdvanceCorrections(), IdleController::onSlowCallback(), rpmShaftPositionCallback(), and updateTunerStudioState().
void InstantRpmCalculator::movePreSynchTimestamps | ( | ) |
Definition at line 27 of file instant_rpm_calculator.cpp.
Referenced by rpmShaftPositionCallback().
|
inline |
Definition at line 29 of file instant_rpm_calculator.h.
Referenced by PrimaryTriggerDecoder::onTriggerError(), Engine::OnTriggerSynchronizationLost(), and TriggerCentral::syncAndReport().
void InstantRpmCalculator::setLastEventTimeForInstantRpm | ( | efitick_t | nowNt | ) |
Update timeOfLastEvent[] on every trigger event - even without synchronization Needed for early spin-up RPM detection.
Definition at line 109 of file instant_rpm_calculator.cpp.
Referenced by RpmCalculator::setSpinningUp().
void InstantRpmCalculator::updateInstantRpm | ( | uint32_t | current_index, |
TriggerWaveform const & | triggerShape, | ||
TriggerFormDetails * | triggerFormDetails, | ||
uint32_t | index, | ||
efitick_t | nowNt | ||
) |
Definition at line 127 of file instant_rpm_calculator.cpp.
Referenced by rpmShaftPositionCallback().
float InstantRpmCalculator::instantRpmValue[PWM_PHASE_MAX_COUNT] |
instant RPM calculated at this trigger wheel tooth
Definition at line 50 of file instant_rpm_calculator.h.
Referenced by calculateInstantRpm().
float InstantRpmCalculator::m_instantRpm = 0 |
Definition at line 57 of file instant_rpm_calculator.h.
Referenced by getInstantRpm(), resetInstantRpm(), and updateInstantRpm().
|
private |
Definition at line 63 of file instant_rpm_calculator.h.
Referenced by calculateInstantRpm(), and updateInstantRpm().
float InstantRpmCalculator::prevInstantRpmValue = 0 |
Stores last non-zero instant RPM value to fix early instability
Definition at line 54 of file instant_rpm_calculator.h.
Referenced by calculateInstantRpm(), and resetInstantRpm().
size_t InstantRpmCalculator::spinningEventIndex = 0 |
Definition at line 42 of file instant_rpm_calculator.h.
Referenced by movePreSynchTimestamps(), resetInstantRpm(), setLastEventTimeForInstantRpm(), and RpmCalculator::setSpinningUp().
uint32_t InstantRpmCalculator::spinningEvents[120] |
Definition at line 46 of file instant_rpm_calculator.h.
Referenced by movePreSynchTimestamps(), resetInstantRpm(), and setLastEventTimeForInstantRpm().
uint32_t InstantRpmCalculator::timeOfLastEvent[PWM_PHASE_MAX_COUNT] |
timestamp of each trigger wheel tooth
Definition at line 40 of file instant_rpm_calculator.h.
Referenced by calculateInstantRpm(), movePreSynchTimestamps(), and resetInstantRpm().