rusEFI
The most advanced open source ECU
|
#include <trigger_central.h>
Public Member Functions | |
TriggerCentral () | |
angle_t | syncAndReport (int divider, int remainder) |
void | handleShaftSignal (trigger_event_e signal, efitick_t timestamp) |
int | getHwEventCounter (int index) const |
void | resetCounters () |
void | validateCamVvtCounters () |
void | updateWaveform () |
void | prepareTriggerShape () |
bool | checkIfTriggerConfigChanged () |
bool | isTriggerConfigChanged () |
bool | isTriggerDecoderError () |
expected< float > | getCurrentEnginePhase (efitick_t nowNt) const |
float | getSecondsSinceTriggerEvent (efitick_t nowNt) const |
bool | engineMovedRecently (efitick_t nowNt) const |
bool | engineMovedRecently () const |
angle_t | getVVTPosition (uint8_t bankIndex, uint8_t camIndex) |
Private Member Functions | |
void | decodeMapCam (efitick_t nowNt, float currentPhase) |
bool | isToothExpectedNow (efitick_t timestamp) |
Private Attributes | |
Timer | m_lastToothTimer |
float | m_lastToothPhaseFromSyncPoint |
expected< float > | expectedNextPhase = unexpected |
Maybe merge TriggerCentral and TriggerState classes into one class? Probably not: we have an instance of TriggerState which is used for trigger initialization, also composition probably better than inheritance here
Definition at line 49 of file trigger_central.h.
TriggerCentral::TriggerCentral | ( | ) |
Definition at line 43 of file trigger_central.cpp.
bool TriggerCentral::checkIfTriggerConfigChanged | ( | ) |
Definition at line 1194 of file trigger_central.cpp.
|
private |
Definition at line 644 of file trigger_central.cpp.
Referenced by handleShaftSignal().
|
inline |
Definition at line 144 of file trigger_central.h.
|
inline |
Definition at line 131 of file trigger_central.h.
Referenced by applyIACposition(), RpmCalculator::checkIfSpinning(), EtbController::checkStatus(), Engine::efiWatchdog(), getAcrState(), RpmCalculator::onSlowCallback(), and FuelPumpController::onSlowCallback().
expected< float > TriggerCentral::getCurrentEnginePhase | ( | efitick_t | nowNt | ) | const |
Definition at line 75 of file trigger_central.cpp.
Referenced by getAcrState(), handleVvtCamSignal(), isToothExpectedNow(), onFastAdcComplete(), and rpmShaftPositionCallback().
int TriggerCentral::getHwEventCounter | ( | int | index | ) | const |
Definition at line 60 of file trigger_central.cpp.
Referenced by canDashboardHaltech(), sendQcBenchEventCounters(), triggerInfo(), and updateTunerStudioState().
|
inline |
Definition at line 127 of file trigger_central.h.
Referenced by engineMovedRecently().
angle_t TriggerCentral::getVVTPosition | ( | uint8_t | bankIndex, |
uint8_t | camIndex | ||
) |
Definition at line 65 of file trigger_central.cpp.
Referenced by HpfpLobe::findNextLobe(), VvtController::observePlant(), populateFrame(), readGppwmChannel(), and updateVvtSensors().
void TriggerCentral::handleShaftSignal | ( | trigger_event_e | signal, |
efitick_t | timestamp | ||
) |
This method is NOT invoked for VR falls.
If we only have a crank position sensor with four stroke, here we are extending crank revolutions with a 360 degree cycle into a four stroke, 720 degrees cycle.
Definition at line 750 of file trigger_central.cpp.
Referenced by handleShaftSignal().
|
private |
Definition at line 687 of file trigger_central.cpp.
Referenced by handleShaftSignal().
bool TriggerCentral::isTriggerConfigChanged | ( | ) |
Definition at line 1202 of file trigger_central.cpp.
bool TriggerCentral::isTriggerDecoderError | ( | ) |
Definition at line 1234 of file trigger_central.cpp.
Referenced by isTriggerErrorNow(), and triggerInfo().
|
inline |
Definition at line 61 of file trigger_central.h.
Referenced by prepareOutputSignals().
void TriggerCentral::resetCounters | ( | ) |
Definition at line 558 of file trigger_central.cpp.
Referenced by resetRunningTriggerCounters().
angle_t TriggerCentral::syncAndReport | ( | int | divider, |
int | remainder | ||
) |
Definition at line 134 of file trigger_central.cpp.
Referenced by adjustCrankPhase().
void TriggerCentral::updateWaveform | ( | ) |
this is only useful while troubleshooting a new trigger shape in the field in very VERY rare circumstances
'initState' instance of TriggerDecoderBase is used only to initialize 'this' TriggerWaveform instance #192 BUG real hardware trigger events could be coming even while we are initializing trigger
Definition at line 1108 of file trigger_central.cpp.
Referenced by Engine::updateTriggerWaveform().
void TriggerCentral::validateCamVvtCounters | ( | ) |
Definition at line 1070 of file trigger_central.cpp.
Referenced by rpmShaftPositionCallback().
angle_t TriggerCentral::currentVVTEventPosition[BANKS_COUNT][CAMS_PER_BANK] |
Definition at line 157 of file trigger_central.h.
Referenced by handleVvtCamSignal().
bool TriggerCentral::directSelfStimulation = false |
See also triggerSimulatorRpm
Definition at line 81 of file trigger_central.h.
Referenced by configureRusefiLuaHooks(), disableTriggerStimulator(), doPeriodicSlowCallback(), emulatorApplyPinState(), enableExternalTriggerStimulator(), enableTriggerStimulator(), hwHandleShaftSignal(), hwHandleVvtCamSignal(), triggerInfo(), and LimpManager::updateState().
uint32_t TriggerCentral::engineCycleEventCount = 0 |
value of 'triggerShape.getLength()' pre-calculating this value is a performance optimization
Definition at line 111 of file trigger_central.h.
Referenced by handleShaftSignal(), and updateWaveform().
|
private |
Definition at line 210 of file trigger_central.h.
Referenced by handleShaftSignal(), and isToothExpectedNow().
bool TriggerCentral::hwTriggerInputEnabled = true |
Definition at line 74 of file trigger_central.h.
Referenced by enableOrDisable(), hwHandleShaftSignal(), hwHandleVvtCamSignal(), and triggerInfo().
InstantRpmCalculator TriggerCentral::instantRpm |
Definition at line 59 of file trigger_central.h.
Referenced by getAdvanceCorrections(), IdleController::onSlowCallback(), PrimaryTriggerDecoder::onTriggerError(), Engine::OnTriggerSynchronizationLost(), rpmShaftPositionCallback(), RpmCalculator::setSpinningUp(), syncAndReport(), and updateTunerStudioState().
bool TriggerCentral::isEngineSnifferEnabled = false |
this is based on engineSnifferRpmThreshold settings and current RPM
Definition at line 196 of file trigger_central.h.
Referenced by TriggerDecoderBase::decodeTriggerEvent(), and Engine::updateSlowSensors().
bool TriggerCentral::isSpinningJustForWatchdog = false |
By the way: 'cranking' means engine is not stopped and the rpm are below crankingRpm 'running' means RPM are above crankingRpm 'spinning' means the engine is not stopped this is set to true each time we register a trigger tooth signal
Definition at line 102 of file trigger_central.h.
Referenced by Engine::efiWatchdog(), and handleShaftSignal().
Timer TriggerCentral::m_lastEventTimer |
Definition at line 191 of file trigger_central.h.
Referenced by configureRusefiLuaHooks(), getSecondsSinceTriggerEvent(), and handleShaftSignal().
|
private |
Definition at line 206 of file trigger_central.h.
Referenced by getCurrentEnginePhase(), handleShaftSignal(), and isToothExpectedNow().
|
private |
Definition at line 204 of file trigger_central.h.
Referenced by getCurrentEnginePhase(), and handleShaftSignal().
float TriggerCentral::mapCamPrevCycleValue = 0 |
Definition at line 104 of file trigger_central.h.
Referenced by decodeMapCam().
TriggerNoiseFilter TriggerCentral::noiseFilter |
Definition at line 148 of file trigger_central.h.
Referenced by handleShaftSignal(), onConfigurationChangeTriggerCallback(), RpmCalculator::setStopped(), and TriggerCentral().
int TriggerCentral::prevChangeAtCycle = 0 |
Definition at line 105 of file trigger_central.h.
Referenced by decodeMapCam().
PrimaryTriggerConfiguration TriggerCentral::primaryTriggerConfiguration |
Definition at line 83 of file trigger_central.h.
Referenced by handleShaftSignal(), Engine::injectEngineReferences(), Engine::periodicSlowCallback(), and updateWaveform().
bool TriggerCentral::triggerConfigChangedOnLastConfigurationChange = false |
true if a recent configuration change has changed any of the trigger settings which we have not adjusted for yet
Definition at line 116 of file trigger_central.h.
Referenced by checkIfTriggerConfigChanged(), isTriggerConfigChanged(), and onConfigurationChangeTriggerCallback().
cyclic_buffer<int> TriggerCentral::triggerErrorDetection |
Definition at line 76 of file trigger_central.h.
Referenced by isTriggerDecoderError(), Engine::OnTriggerSynchronization(), and updateWaveform().
TriggerFormDetails TriggerCentral::triggerFormDetails |
Definition at line 188 of file trigger_central.h.
Referenced by handleShaftSignal(), prepareTriggerShape(), refreshMapAveragingPreCalc(), rpmShaftPositionCallback(), and triggerShapeInfo().
TriggerWaveform TriggerCentral::triggerShape |
Definition at line 167 of file trigger_central.h.
Referenced by engineMovedRecently(), RpmCalculator::getOperationMode(), handleShaftSignal(), handleShaftSignal(), InstantRpmCalculator::movePreSynchTimestamps(), HpfpController::onFastCallback(), Engine::OnTriggerSynchronization(), prepareTriggerShape(), rpmShaftPositionCallback(), InstantRpmCalculator::setLastEventTimeForInstantRpm(), startSimulatedTriggerSignal(), startTriggerInputPins(), triggerInfo(), triggerShapeInfo(), Engine::updateTriggerWaveform(), and updateWaveform().
PrimaryTriggerDecoder TriggerCentral::triggerState |
Definition at line 164 of file trigger_central.h.
Referenced by canDashboardHaltech(), decodeMapCam(), extIonCallback(), getAcrState(), getCurrentIgnitionMode(), handleShaftSignal(), handleVvtCamSignal(), isToothExpectedNow(), isTriggerErrorNow(), Engine::OnTriggerSynchronization(), Engine::OnTriggerSynchronizationLost(), rpmShaftPositionCallback(), SetNextCompositeEntry(), RpmCalculator::setSpinningUp(), syncAndReport(), TriggerCentral(), triggerInfo(), updateDevConsoleState(), LimpManager::updateState(), updateTunerStudioState(), updateWaveform(), and validateCamVvtCounters().
LocalVersionHolder TriggerCentral::triggerVersion |
Definition at line 90 of file trigger_central.h.
Referenced by checkIfTriggerConfigChanged().
int TriggerCentral::vvtEventFallCounter[CAM_INPUTS_COUNT] |
Definition at line 151 of file trigger_central.h.
Referenced by handleVvtCamSignal(), sendQcBenchEventCounters(), triggerInfo(), and updateTunerStudioState().
int TriggerCentral::vvtEventRiseCounter[CAM_INPUTS_COUNT] |
Definition at line 150 of file trigger_central.h.
Referenced by handleVvtCamSignal(), sendQcBenchEventCounters(), triggerInfo(), and updateTunerStudioState().
angle_t TriggerCentral::vvtPosition[BANKS_COUNT][CAMS_PER_BANK] |
Definition at line 161 of file trigger_central.h.
Referenced by getVVTPosition(), and handleVvtCamSignal().
TriggerWaveform TriggerCentral::vvtShape[CAMS_PER_BANK] |
Definition at line 186 of file trigger_central.h.
Referenced by handleVvtCamSignal(), startSimulatedTriggerSignal(), and updateWaveform().
VvtTriggerDecoder TriggerCentral::vvtState[BANKS_COUNT][CAMS_PER_BANK] |
Definition at line 169 of file trigger_central.h.
Referenced by handleVvtCamSignal(), and Engine::OnTriggerSynchronizationLost().
VvtTriggerConfiguration TriggerCentral::vvtTriggerConfiguration = {{"VVT1 ", 0}} |
Definition at line 85 of file trigger_central.h.
Referenced by handleVvtCamSignal(), Engine::injectEngineReferences(), Engine::periodicSlowCallback(), and updateWaveform().