342 {
343#if EFI_PROD_CODE
345
346 return;
347 }
348
349
351 return;
352 }
353
354 bool hasAnyEtbWastegate = false;
355
358 }
359
360
362 return;
363 }
364#endif
365
366
373
374
376 &boostPwmControl,
377 &boostMapOpen,
378 &boostMapClosed,
379 boostCltCorr,
380 boostIatCorr,
381 boostCltAdder,
382 boostIatAdder,
384 );
385
386#if !EFI_UNIT_TEST
388#endif
389}
void init(IPwm *const pmw, const ValueProvider3D *const openLoopMap, const ValueProvider3D *const closedLoopTargetMap, const ValueProvider2D &cltMultiplierProvider, const ValueProvider2D &iatMultiplierProvider, const ValueProvider2D &cltAdderProvider, const ValueProvider2D &iatAdderProvider, pid_s *const pidParams)
constexpr auto & module()
static EngineAccessor engine
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
bool isBrainPinValid(brain_pin_e brainPin)
output_pin_e boostControlPin
dc_function_e etbFunctions[ETB_COUNT]
bool isBoostControlEnabled
float iatBoostCorr[BOOST_CURVE_SIZE]
float cltBoostCorr[BOOST_CURVE_SIZE]
float cltBoostAdderBins[BOOST_CURVE_SIZE]
float iatBoostAdder[BOOST_CURVE_SIZE]
uint16_t boostOpenLoopLoadBins[BOOST_LOAD_COUNT]
float iatBoostAdderBins[BOOST_CURVE_SIZE]
scaled_channel< uint8_t, 1, 100 > boostRpmBins[BOOST_RPM_COUNT]
float cltBoostAdder[BOOST_CURVE_SIZE]
scaled_channel< uint8_t, 1, 2 > boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]
float cltBoostCorrBins[BOOST_CURVE_SIZE]
scaled_channel< uint8_t, 2, 1 > boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]
float iatBoostCorrBins[BOOST_CURVE_SIZE]
uint16_t boostClosedLoopLoadBins[BOOST_LOAD_COUNT]