diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 2b2e122256..98c82aa3ed 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -549,6 +549,8 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setLinearCurve(engineConfiguration->scriptCurve3Bins, 0, 100, 1); setLinearCurve(engineConfiguration->scriptCurve4Bins, 0, 100, 1); + setLinearCurve(engineConfiguration->scriptCurve5Bins, 0, 100, 1); + setLinearCurve(engineConfiguration->scriptCurve6Bins, 0, 100, 1); #if EFI_ENGINE_CONTROL setDefaultWarmupIdleCorrection(PASS_CONFIG_PARAMETER_SIGNATURE); diff --git a/firmware/controllers/core/fsio_impl.cpp b/firmware/controllers/core/fsio_impl.cpp index 9d94f0f436..9516d3f062 100644 --- a/firmware/controllers/core/fsio_impl.cpp +++ b/firmware/controllers/core/fsio_impl.cpp @@ -604,13 +604,21 @@ ValueProvider3D *getFSIOTable(int index) { } } -float getCurveValue(int index, float key) { +float getCurveValue(int index, float key DECLARE_ENGINE_PARAMETER_SUFFIX) { // not great code at all :( switch (index) { default: return interpolate2d(key, engineConfiguration->scriptCurve1Bins, engineConfiguration->scriptCurve1); - case 5: + case 1: + return interpolate2d(key, engineConfiguration->scriptCurve2Bins, engineConfiguration->scriptCurve2); + case 2: + return interpolate2d(key, engineConfiguration->scriptCurve3Bins, engineConfiguration->scriptCurve3); + case 3: + return interpolate2d(key, engineConfiguration->scriptCurve4Bins, engineConfiguration->scriptCurve4); + case 4: return interpolate2d(key, engineConfiguration->scriptCurve5Bins, engineConfiguration->scriptCurve5); + case 5: + return interpolate2d(key, engineConfiguration->scriptCurve6Bins, engineConfiguration->scriptCurve6); } } diff --git a/firmware/controllers/core/fsio_impl.h b/firmware/controllers/core/fsio_impl.h index ff50ce349b..c18b97ca6e 100644 --- a/firmware/controllers/core/fsio_impl.h +++ b/firmware/controllers/core/fsio_impl.h @@ -38,6 +38,6 @@ void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE); void onConfigurationChangeFsioCallback(engine_configuration_s *previousConfiguration DECLARE_ENGINE_PARAMETER_SUFFIX); void runHardcodedFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE); -float getCurveValue(int index, float key); +float getCurveValue(int index, float key DECLARE_ENGINE_PARAMETER_SUFFIX); ValueProvider3D *getFSIOTable(int index);