|
| static void | setupSequentialCallbacks (void) |
| |
| static void | setupPairedCallbacks (void) |
| |
| static void | setupSemiSequentialCallbacks (uint8_t nCylinders, uint8_t inj4cylPairing) |
| |
| static void | setupCallbacks (uint8_t injLayout, uint8_t nCylinders, uint8_t inj4cylPairing) |
| |
| TESTABLE_INLINE_STATIC bool | isAnyFuelScheduleRunning (void) |
| |
| TESTABLE_INLINE_STATIC uint16_t | lookupInjectorAngle (const statuses ¤t) |
| |
| TESTABLE_INLINE_STATIC uint16_t | updatePwAngleCache (uint16_t pw, injectorAngleCalcCache *pCache) |
| |
| TESTABLE_INLINE_STATIC uint16_t | _calculateOpenAngle (const FuelSchedule &schedule, uint16_t pwDegrees, uint16_t injAngle) |
| | Compute the injector open angle for an injection channel.
|
| |
| TESTABLE_INLINE_STATIC uint32_t | calculateInjectorTimeout (const FuelSchedule &schedule, int16_t crankAngle, uint16_t openAngle) |
| | Calculate the time in uS from now to when the injector should be opened.
|
| |
| TESTABLE_INLINE_STATIC void | setFuelChannelSchedule (FuelSchedule &schedule, uint8_t channel, uint16_t crankAngle, byte injChannelMask, uint16_t injAngle, injectorAngleCalcCache *pCache) noexcept |
| |
| TESTABLE_INLINE_STATIC uint16_t | setFuelChannelSchedules (uint16_t crankAngle, byte injChannelMask, uint16_t injAngle) |
| |
| TESTABLE_INLINE_STATIC uint16_t | injectorLimits (uint16_t angle) |
| | Clamp the angle to within [0,CRANK_ANGLE_MAX_INJ)
|
| |
| | BEGIN_LTO_ALWAYS_INLINE (uint16_t) setFuelChannelSchedules(const statuses ¤t) |
| |
| static uint16_t | applyFuelTrim (const table3d6RpmLoad &trimTable, uint16_t pw, const config6 &page6, const statuses ¤t) |
| |
| static void | assignPrimaryPws (const pulseWidths &pulse_widths, const config6 &page6, const statuses ¤t) |
| |
| static void | assignSecondaryPws (const pulseWidths &pulse_widths, const statuses ¤t) |
| |
| static void | zeroAllChannels (void) |
| |
| static void | resetFuelSchedules (void) |
| |
| void | startFuelSchedulers (void) |
| | Start the timers that drive schedulers.
|
| |
| void | stopFuelSchedulers (void) |
| | Stop the timers that drive schedulers.
|
| |
| void | beginInjectorPriming (const statuses ¤t, const config4 &page4) |
| | Start priming the fuel system.
|
| |
| void | closeAllInjectors (void) |
| | Utility function to close all injectors.
|
| |
| TESTABLE_INLINE_STATIC uint16_t | calcAngularCylinderSeparation (const statuses ¤t, const config2 &page2) |
| |
| TESTABLE_INLINE_STATIC uint16_t | getOddfireAngle (const config2 &page2, uint8_t channel) |
| |
| TESTABLE_INLINE_STATIC bool | useEvenFire (const config2 &page2) |
| |
| TESTABLE_INLINE_STATIC uint16_t | getEvenFireAngle (const statuses ¤t, const config2 &page2, uint8_t channel) |
| |
| TESTABLE_INLINE_STATIC uint16_t | calcScheduleAngle (const statuses ¤t, const config2 &page2, uint8_t channel) |
| | Calculate the schedule channel angle. I.e. FuelSchedule::channelDegrees.
|
| |
| static void | setInjectorAngles (const statuses ¤t, const config2 &page2) |
| |
| TESTABLE_STATIC uint8_t | calulateNumSquirts (const statuses ¤t, const config2 &page2) |
| |
| TESTABLE_STATIC uint16_t | calculateMaxInjAngle (const statuses ¤t, const config2 &page2) |
| |
| TESTABLE_INLINE_STATIC uint8_t | calcNumPrimaryInjectors (const statuses ¤t, const config2 &page2) |
| |
| TESTABLE_STATIC uint8_t | calcNumSecondaryInjectors (uint16_t primary, const config2 &page2, const config10 &page10) |
| |
| TESTABLE_STATIC num_injector_t | calcNumInjectors (const statuses ¤t, const config2 &page2, const config10 &page10) |
| |
| static uint8_t | validateInjLayout (uint8_t layout, const config2 &page2) |
| |
| TESTABLE_STATIC void | validateInjectionSetup (config2 &page2, config6 &page6) |
| |
| void | configureFuelSchedules (statuses ¤t, const config2 &page2, const config4 &page4, const config10 &page10) |
| |
| void | initialiseFuelSchedules (statuses ¤t, config2 &page2, const config4 &page4, config6 &page6, config10 &page10, const pinNumbers_t &pins) |
| | Initialise this module.
|
| |
| static bool | isSwitchableConfig (const config2 &page2) |
| |
| TESTABLE_INLINE_STATIC bool | changeToSemiSequentialInjection (const statuses ¤t, const config2 &page2) |
| |
| TESTABLE_INLINE_STATIC bool | changeToFullSequentialInjection (const statuses ¤t, const config2 &page2) |
| |
| static void | changeFuellingToFullSequential (const config2 &page2, const config4 &page4, const config10 &page10, statuses ¤t) |
| |
| static void | changeFuellingToSemiSequential (const config2 &page2, const config4 &page4, const config10 &page10, statuses ¤t) |
| |
| TESTABLE_STATIC void | matchFuelSchedulersToSyncState (const config2 &page2, const config4 &page4, const config10 &page10, statuses ¤t) |
| |
| | BEGIN_LTO_ALWAYS_INLINE (void) applyPwToInjectorChannels(const pulseWidths &pulse_widths |
| |
| | assignPrimaryPws (pulse_widths, page6, current) |
| |
| | assignSecondaryPws (pulse_widths, current) |
| |