Speeduino
Loading...
Searching...
No Matches
Functions
fuel_calcs.cpp File Reference
#include "fuel_calcs.h"
#include "maths.h"
#include "unit_testing.h"
#include "globals.h"
#include "decoders.h"
#include "units.h"
#include "scheduler_fuel_controller.h"

Functions

TESTABLE_INLINE_STATIC uint16_t calculateRequiredFuel (const config2 &page2, const statuses &current)
 
static uint8_t calcNitrousStagePercent (uint8_t minRPMDiv100, uint8_t maxRPMDiv100, const statuses &current)
 
static uint16_t calcNitrousStagePulseWidth (uint8_t minRPMDiv100, uint8_t maxRPMDiv100, uint8_t adderMinDiv100, uint8_t adderMaxDiv100, const statuses &current)
 
TESTABLE_INLINE_STATIC uint16_t pwApplyNitrous (uint16_t pw, const config10 &page10, const statuses &current)
 
TESTABLE_INLINE_STATIC uint16_t calculatePWLimit (const config2 &page2, const statuses &current)
 
static uint32_t applyMapMode (uint32_t intermediate, const config2 &page2, const statuses &current)
 
static uint32_t applyAFRMultiplier (uint32_t intermediate, const config2 &page2, const config6 &page6, const statuses &current)
 
static uint32_t applyCorrections (uint32_t intermediate, uint16_t corrections)
 
static uint16_t computeInitialPw (uint16_t REQ_FUEL, uint8_t VE)
 
static uint32_t includeOpenTime (uint32_t intermediate, uint16_t injOpen)
 
static uint32_t includeAe (uint32_t intermediate, uint16_t REQ_FUEL, const config2 &page2, const statuses &current)
 
TESTABLE_INLINE_STATIC uint16_t calcPrimaryPulseWidth (uint16_t injOpenTime, const config2 &page2, const config6 &page6, const config10 &page10, const statuses &current)
 
TESTABLE_INLINE_STATIC uint16_t applyPwLimits (uint16_t pw, uint16_t pwLimit, const config10 &page10, const statuses &current)
 
static bool canApplyStaging (const config2 &page2, const config10 &page10)
 
static uint32_t calcTotalStagePw (uint16_t primaryPW, uint16_t injOpenTime, const config10 &page10)
 
static uint32_t calcStagePrimaryPw (uint32_t totalPw, const config10 &page10) noexcept
 
static uint32_t calcStageSecondaryPw (uint32_t totalPw, const config10 &page10) noexcept
 
static pulseWidths applyStagingModeTable (uint16_t primaryPW, uint16_t injOpenTime, const config10 &page10, const statuses &current)
 
static pulseWidths applyStagingModeAuto (uint16_t primaryPW, uint16_t pwLimit, uint16_t injOpenTime, const config10 &page10)
 
TESTABLE_INLINE_STATIC pulseWidths calculateSecondaryPw (uint16_t primaryPw, uint16_t pwLimit, uint16_t injOpenTime, const config2 &page2, const config10 &page10, const statuses &current)
 
TESTABLE_INLINE_STATIC uint16_t calculateOpenTime (const config2 &page2, const statuses &current)
 
pulseWidths computePulseWidths (const config2 &page2, const config6 &page6, const config10 &page10, const statuses &current)
 This function calculates the required pulsewidth time (in µS) given the current tune & system state.
 

Function Documentation

◆ applyAFRMultiplier()

static uint32_t applyAFRMultiplier ( uint32_t  intermediate,
const config2 page2,
const config6 page6,
const statuses current 
)
inlinestatic

◆ applyCorrections()

static uint32_t applyCorrections ( uint32_t  intermediate,
uint16_t  corrections 
)
inlinestatic

◆ applyMapMode()

static uint32_t applyMapMode ( uint32_t  intermediate,
const config2 page2,
const statuses current 
)
inlinestatic

◆ applyPwLimits()

TESTABLE_INLINE_STATIC uint16_t applyPwLimits ( uint16_t  pw,
uint16_t  pwLimit,
const config10 page10,
const statuses current 
)

◆ applyStagingModeAuto()

static pulseWidths applyStagingModeAuto ( uint16_t  primaryPW,
uint16_t  pwLimit,
uint16_t  injOpenTime,
const config10 page10 
)
inlinestatic

◆ applyStagingModeTable()

static pulseWidths applyStagingModeTable ( uint16_t  primaryPW,
uint16_t  injOpenTime,
const config10 page10,
const statuses current 
)
inlinestatic

◆ calcNitrousStagePercent()

static uint8_t calcNitrousStagePercent ( uint8_t  minRPMDiv100,
uint8_t  maxRPMDiv100,
const statuses current 
)
inlinestatic

◆ calcNitrousStagePulseWidth()

static uint16_t calcNitrousStagePulseWidth ( uint8_t  minRPMDiv100,
uint8_t  maxRPMDiv100,
uint8_t  adderMinDiv100,
uint8_t  adderMaxDiv100,
const statuses current 
)
inlinestatic

◆ calcPrimaryPulseWidth()

TESTABLE_INLINE_STATIC uint16_t calcPrimaryPulseWidth ( uint16_t  injOpenTime,
const config2 page2,
const config6 page6,
const config10 page10,
const statuses current 
)

◆ calcStagePrimaryPw()

static uint32_t calcStagePrimaryPw ( uint32_t  totalPw,
const config10 page10 
)
inlinestaticnoexcept

◆ calcStageSecondaryPw()

static uint32_t calcStageSecondaryPw ( uint32_t  totalPw,
const config10 page10 
)
inlinestaticnoexcept

◆ calcTotalStagePw()

static uint32_t calcTotalStagePw ( uint16_t  primaryPW,
uint16_t  injOpenTime,
const config10 page10 
)
inlinestatic

◆ calculateOpenTime()

TESTABLE_INLINE_STATIC uint16_t calculateOpenTime ( const config2 page2,
const statuses current 
)

◆ calculatePWLimit()

TESTABLE_INLINE_STATIC uint16_t calculatePWLimit ( const config2 page2,
const statuses current 
)

◆ calculateRequiredFuel()

TESTABLE_INLINE_STATIC uint16_t calculateRequiredFuel ( const config2 page2,
const statuses current 
)

◆ calculateSecondaryPw()

TESTABLE_INLINE_STATIC pulseWidths calculateSecondaryPw ( uint16_t  primaryPw,
uint16_t  pwLimit,
uint16_t  injOpenTime,
const config2 page2,
const config10 page10,
const statuses current 
)

◆ canApplyStaging()

static bool canApplyStaging ( const config2 page2,
const config10 page10 
)
inlinestatic

◆ computeInitialPw()

static uint16_t computeInitialPw ( uint16_t  REQ_FUEL,
uint8_t  VE 
)
inlinestatic

◆ computePulseWidths()

pulseWidths computePulseWidths ( const config2 page2,
const config6 page6,
const config10 page10,
const statuses current 
)

This function calculates the required pulsewidth time (in µS) given the current tune & system state.

Parameters
page2Tune settings
page6Tune settings
page10Tune settings
currentCurrent system state
Returns
pulseWidths The primary and secondary injector pulse width in uS

◆ includeAe()

static uint32_t includeAe ( uint32_t  intermediate,
uint16_t  REQ_FUEL,
const config2 page2,
const statuses current 
)
inlinestatic

◆ includeOpenTime()

static uint32_t includeOpenTime ( uint32_t  intermediate,
uint16_t  injOpen 
)
inlinestatic

◆ pwApplyNitrous()

TESTABLE_INLINE_STATIC uint16_t pwApplyNitrous ( uint16_t  pw,
const config10 page10,
const statuses current 
)