diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index fd42b19611..33fe8c0f3c 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -322,7 +322,7 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { //engineConfiguration->fuelAlgorithm = LM_ALPHA_N; // I want to start with a simple Alpha-N setFuelLoadBin(0, 100 PASS_ENGINE_PARAMETER_SUFFIX); - setTableBin2(config->ignitionLoadBins, IGN_LOAD_COUNT, 20, 120, 1); + setLinearCurve(config->ignitionLoadBins, IGN_LOAD_COUNT, 20, 120, 1); setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); diff --git a/firmware/config/engines/ford_festiva.cpp b/firmware/config/engines/ford_festiva.cpp index e3efdcc1b2..4353cb6378 100644 --- a/firmware/config/engines/ford_festiva.cpp +++ b/firmware/config/engines/ford_festiva.cpp @@ -146,7 +146,7 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // set cranking_fuel 9 engineConfiguration->cranking.baseFuel = 9; - setTableBin2(config->ignitionLoadBins, IGN_LOAD_COUNT, 20, 105, 5); + setLinearCurve(config->ignitionLoadBins, IGN_LOAD_COUNT, 20, 105, 5); setWholeTimingTable(10 PASS_ENGINE_PARAMETER_SUFFIX); // set_whole_fuel_map 5 setWholeFuelMap(5 PASS_ENGINE_PARAMETER_SUFFIX); diff --git a/firmware/config/engines/sachs.cpp b/firmware/config/engines/sachs.cpp index 96bb3a5be4..2dfabd3726 100644 --- a/firmware/config/engines/sachs.cpp +++ b/firmware/config/engines/sachs.cpp @@ -83,8 +83,8 @@ void setSachs(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // todo: extract a method? figure out something smarter setFuelRpmBin(800, 15000 PASS_ENGINE_PARAMETER_SUFFIX); setTimingRpmBin(800, 15000 PASS_ENGINE_PARAMETER_SUFFIX); - setTableBin2(config->veRpmBins, FUEL_RPM_COUNT, 15000, 7000, 1); - setTableBin2(config->afrRpmBins, FUEL_RPM_COUNT, 15000, 7000, 1); + setLinearCurve(config->veRpmBins, FUEL_RPM_COUNT, 15000, 7000, 1); + setLinearCurve(config->afrRpmBins, FUEL_RPM_COUNT, 15000, 7000, 1); engineConfiguration->hasFrequencyReportingMapSensor = true; boardConfiguration->frequencyReportingMapInputPin = GPIOC_6; diff --git a/firmware/controllers/algo/advance_map.cpp b/firmware/controllers/algo/advance_map.cpp index f60df47a85..0b7523850e 100644 --- a/firmware/controllers/algo/advance_map.cpp +++ b/firmware/controllers/algo/advance_map.cpp @@ -139,7 +139,7 @@ angle_t getAdvance(int rpm, float engineLoad DECLARE_ENGINE_PARAMETER_SUFFIX) { } void setDefaultIatTimingCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - setTableBin2(config->ignitionIatCorrLoadBins, IGN_LOAD_COUNT, -40, 110, 1); + setLinearCurve(config->ignitionIatCorrLoadBins, IGN_LOAD_COUNT, -40, 110, 1); memcpy(config->ignitionIatCorrRpmBins, iatTimingRpmBins, sizeof(iatTimingRpmBins)); copyTimingTable(defaultIatTiming, config->ignitionIatCorrTable); } diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 14b90d1a81..cfc9ea437f 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -189,7 +189,7 @@ void setConstantDwell(floatms_t dwellMs DECLARE_ENGINE_PARAMETER_SUFFIX) { for (int i = 0; i < DWELL_CURVE_SIZE; i++) { engineConfiguration->sparkDwellRpmBins[i] = 1000 * i; } - setTableBin2(engineConfiguration->sparkDwellValues, DWELL_CURVE_SIZE, dwellMs, dwellMs, 0.01); + setLinearCurve(engineConfiguration->sparkDwellValues, DWELL_CURVE_SIZE, dwellMs, dwellMs, 0.01); } void setAfrMap(afr_table_t table, float value) { @@ -221,9 +221,9 @@ void setWholeIgnitionIatCorr(float value DECLARE_ENGINE_PARAMETER_SUFFIX) { } void setFuelTablesLoadBin(float minValue, float maxValue DECLARE_ENGINE_PARAMETER_SUFFIX) { - setTableBin2(config->injPhaseLoadBins, FUEL_LOAD_COUNT, minValue, maxValue, 1); - setTableBin2(config->veLoadBins, FUEL_LOAD_COUNT, minValue, maxValue, 1); - setTableBin2(config->afrLoadBins, FUEL_LOAD_COUNT, minValue, maxValue, 1); + setLinearCurve(config->injPhaseLoadBins, FUEL_LOAD_COUNT, minValue, maxValue, 1); + setLinearCurve(config->veLoadBins, FUEL_LOAD_COUNT, minValue, maxValue, 1); + setLinearCurve(config->afrLoadBins, FUEL_LOAD_COUNT, minValue, maxValue, 1); } void setTimingMap(ignition_table_t map, float value) { @@ -474,8 +474,8 @@ static void setDefaultWarmupFuelEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) { } static void setDefaultCrankingSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - setTableBin2(engineConfiguration->crankingTpsCoef, CRANKING_CURVE_SIZE, 1, 1, 1); - setTableBin2(engineConfiguration->crankingTpsBins, CRANKING_CURVE_SIZE, 0, 100, 1); + setLinearCurve(engineConfiguration->crankingTpsCoef, CRANKING_CURVE_SIZE, 1, 1, 1); + setLinearCurve(engineConfiguration->crankingTpsBins, CRANKING_CURVE_SIZE, 0, 100, 1); config->crankingFuelCoef[0] = 5; // base cranking fuel adjustment coefficient config->crankingFuelBins[0] = -20; // temperature in C @@ -557,8 +557,8 @@ static void setCanDefaults(DECLARE_ENGINE_PARAMETER_SIGNATURE) { } void setTargetRpmCurve(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) { - setTableBin2(engineConfiguration->cltIdleRpmBins, DWELL_CURVE_SIZE, -40, 90, 0); - setTableBin2(engineConfiguration->cltIdleRpm, DWELL_CURVE_SIZE, rpm, rpm, 0); + setLinearCurve(engineConfiguration->cltIdleRpmBins, DWELL_CURVE_SIZE, -40, 90, 0); + setLinearCurve(engineConfiguration->cltIdleRpm, DWELL_CURVE_SIZE, rpm, rpm, 0); } /** @@ -616,17 +616,17 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->alternatorControl.minValue = 10; engineConfiguration->alternatorControl.maxValue = 90; - setTableBin2(engineConfiguration->cltTimingBins, CLT_TIMING_CURVE_SIZE, -40, 120, 1); - setTableBin2(engineConfiguration->cltTimingExtra, CLT_TIMING_CURVE_SIZE, 0, 0, 1); + setLinearCurve(engineConfiguration->cltTimingBins, CLT_TIMING_CURVE_SIZE, -40, 120, 1); + setLinearCurve(engineConfiguration->cltTimingExtra, CLT_TIMING_CURVE_SIZE, 0, 0, 1); - setTableBin2(engineConfiguration->fsioCurve1Bins, FSIO_CURVE_16, 0, 100, 1); - setTableBin2(engineConfiguration->fsioCurve1, FSIO_CURVE_16, 0, 100, 1); + setLinearCurve(engineConfiguration->fsioCurve1Bins, FSIO_CURVE_16, 0, 100, 1); + setLinearCurve(engineConfiguration->fsioCurve1, FSIO_CURVE_16, 0, 100, 1); - setTableBin2(engineConfiguration->fsioCurve2Bins, FSIO_CURVE_16, 0, 100, 1); - setTableBin2(engineConfiguration->fsioCurve2, FSIO_CURVE_16, 30, 170, 1); + setLinearCurve(engineConfiguration->fsioCurve2Bins, FSIO_CURVE_16, 0, 100, 1); + setLinearCurve(engineConfiguration->fsioCurve2, FSIO_CURVE_16, 30, 170, 1); - setTableBin2(engineConfiguration->fsioCurve3Bins, FSIO_CURVE_8, 0, 100, 1); - setTableBin2(engineConfiguration->fsioCurve4Bins, FSIO_CURVE_8, 0, 100, 1); + setLinearCurve(engineConfiguration->fsioCurve3Bins, FSIO_CURVE_8, 0, 100, 1); + setLinearCurve(engineConfiguration->fsioCurve4Bins, FSIO_CURVE_8, 0, 100, 1); setDefaultWarmupIdleCorrection(PASS_ENGINE_PARAMETER_SIGNATURE); @@ -645,10 +645,10 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setTimingLoadBin(1.2, 4.4 PASS_ENGINE_PARAMETER_SUFFIX); setTimingRpmBin(800, 7000 PASS_ENGINE_PARAMETER_SUFFIX); - setTableBin2(engineConfiguration->map.samplingAngleBins, MAP_ANGLE_SIZE, 800, 7000, 1); - setTableBin2(engineConfiguration->map.samplingAngle, MAP_ANGLE_SIZE, 100, 130, 1); - setTableBin2(engineConfiguration->map.samplingWindowBins, MAP_ANGLE_SIZE, 800, 7000, 1); - setTableBin2(engineConfiguration->map.samplingWindow, MAP_ANGLE_SIZE, 50, 50, 1); + setLinearCurve(engineConfiguration->map.samplingAngleBins, MAP_ANGLE_SIZE, 800, 7000, 1); + setLinearCurve(engineConfiguration->map.samplingAngle, MAP_ANGLE_SIZE, 100, 130, 1); + setLinearCurve(engineConfiguration->map.samplingWindowBins, MAP_ANGLE_SIZE, 800, 7000, 1); + setLinearCurve(engineConfiguration->map.samplingWindow, MAP_ANGLE_SIZE, 50, 50, 1); // set_whole_timing_map 3 setWholeFuelMap(3 PASS_ENGINE_PARAMETER_SUFFIX); @@ -661,19 +661,19 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setFuelTablesLoadBin(10, 160 PASS_ENGINE_PARAMETER_SUFFIX); setDefaultIatTimingCorrection(PASS_ENGINE_PARAMETER_SIGNATURE); - setTableBin2(engineConfiguration->mapAccelTaperBins, FSIO_TABLE_8, 0, 32, 4); - setTableBin2(engineConfiguration->mapAccelTaperMult, FSIO_TABLE_8, 1, 1, 1); + setLinearCurve(engineConfiguration->mapAccelTaperBins, FSIO_TABLE_8, 0, 32, 4); + setLinearCurve(engineConfiguration->mapAccelTaperMult, FSIO_TABLE_8, 1, 1, 1); - setTableBin2(config->tpsTpsAccelFromRpmBins, FSIO_TABLE_8, 0, 100, 10); - setTableBin2(config->tpsTpsAccelToRpmBins, FSIO_TABLE_8, 0, 100, 10); + setLinearCurve(config->tpsTpsAccelFromRpmBins, FSIO_TABLE_8, 0, 100, 10); + setLinearCurve(config->tpsTpsAccelToRpmBins, FSIO_TABLE_8, 0, 100, 10); - setTableBin2(config->fsioTable1LoadBins, FSIO_TABLE_8, 20, 120, 10); + setLinearCurve(config->fsioTable1LoadBins, FSIO_TABLE_8, 20, 120, 10); setRpmTableBin(config->fsioTable1RpmBins, FSIO_TABLE_8); - setTableBin2(config->fsioTable2LoadBins, FSIO_TABLE_8, 20, 120, 10); + setLinearCurve(config->fsioTable2LoadBins, FSIO_TABLE_8, 20, 120, 10); setRpmTableBin(config->fsioTable2RpmBins, FSIO_TABLE_8); - setTableBin2(config->fsioTable3LoadBins, FSIO_TABLE_8, 20, 120, 10); + setLinearCurve(config->fsioTable3LoadBins, FSIO_TABLE_8, 20, 120, 10); setRpmTableBin(config->fsioTable3RpmBins, FSIO_TABLE_8); - setTableBin2(config->fsioTable4LoadBins, FSIO_TABLE_8, 20, 120, 10); + setLinearCurve(config->fsioTable4LoadBins, FSIO_TABLE_8, 20, 120, 10); setRpmTableBin(config->fsioTable4RpmBins, FSIO_TABLE_8); initEngineNoiseTable(PASS_ENGINE_PARAMETER_SIGNATURE); diff --git a/firmware/controllers/core/table_helper.cpp b/firmware/controllers/core/table_helper.cpp index 140bf94e6a..8153880857 100644 --- a/firmware/controllers/core/table_helper.cpp +++ b/firmware/controllers/core/table_helper.cpp @@ -10,7 +10,7 @@ #include "efilib.h" #include "interpolation.h" -void setTableBin2(float array[], int size, float from, float to, float precision) { +void setLinearCurve(float array[], int size, float from, float to, float precision) { for (int i = 0; i < size; i++) { float value = interpolateMsg("setTable", 0, from, size - 1, to, i); /** @@ -29,7 +29,7 @@ void setRpmBin(float array[], int size, float idleRpm, float topRpm) { } void setTableBin(float array[], int size, float from, float to) { - setTableBin2(array, size, from, to, 0.01); + setLinearCurve(array, size, from, to, 0.01); } /** diff --git a/firmware/controllers/core/table_helper.h b/firmware/controllers/core/table_helper.h index 386db87b21..c45d761710 100644 --- a/firmware/controllers/core/table_helper.h +++ b/firmware/controllers/core/table_helper.h @@ -151,7 +151,7 @@ void setTableBin(float array[], int size, float from, float to); #define setArrayValues(array, size, value) setTableBin(array, size, value, value) -void setTableBin2(float array[], int size, float from, float to, float precision); +void setLinearCurve(float array[], int size, float from, float to, float precision); void setRpmTableBin(float array[], int size); #endif /* TABLE_HELPER_H_ */ diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index 826aad6b14..aa35430a45 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -539,7 +539,7 @@ void setAlgorithm(engine_load_mode_e algo DECLARE_ENGINE_PARAMETER_SUFFIX) { if (algo == LM_ALPHA_N) { setTimingLoadBin(20, 120 PASS_ENGINE_PARAMETER_SUFFIX); } else if (algo == LM_SPEED_DENSITY) { - setTableBin2(config->ignitionLoadBins, IGN_LOAD_COUNT, 20, 120, 3); + setLinearCurve(config->ignitionLoadBins, IGN_LOAD_COUNT, 20, 120, 3); buildTimingMap(35 PASS_ENGINE_PARAMETER_SUFFIX); } } diff --git a/firmware/controllers/math/speed_density.cpp b/firmware/controllers/math/speed_density.cpp index 54c8d795b0..9c4e8a9cd9 100644 --- a/firmware/controllers/math/speed_density.cpp +++ b/firmware/controllers/math/speed_density.cpp @@ -131,14 +131,14 @@ void setDefaultVETable(DECLARE_ENGINE_PARAMETER_SIGNATURE) { veMap.setAll(80); // setRpmTableBin(engineConfiguration->ve2RpmBins, FUEL_RPM_COUNT); -// setTableBin2(engineConfiguration->ve2LoadBins, FUEL_LOAD_COUNT, 10, 300, 1); +// setLinearCurve(engineConfiguration->ve2LoadBins, FUEL_LOAD_COUNT, 10, 300, 1); // ve2Map.setAll(0.81); setRpmTableBin(config->afrRpmBins, FUEL_RPM_COUNT); afrMap.setAll(14.7); setRpmTableBin(engineConfiguration->baroCorrRpmBins, BARO_CORR_SIZE); - setTableBin2(engineConfiguration->baroCorrPressureBins, BARO_CORR_SIZE, 75, 105, 1); + setLinearCurve(engineConfiguration->baroCorrPressureBins, BARO_CORR_SIZE, 75, 105, 1); memcpy(engineConfiguration->baroCorrTable, default_baro_corr, sizeof(default_baro_corr)); } diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index b243afec4a..4f0cca1d64 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -1102,11 +1102,11 @@ static void getValue(const char *paramStr) { } static void setFsioCurve1Value(float value) { - setTableBin2(engineConfiguration->fsioCurve1, FSIO_CURVE_16, value, value, 1); + setLinearCurve(engineConfiguration->fsioCurve1, FSIO_CURVE_16, value, value, 1); } static void setFsioCurve2Value(float value) { - setTableBin2(engineConfiguration->fsioCurve2, FSIO_CURVE_16, value, value, 1); + setLinearCurve(engineConfiguration->fsioCurve2, FSIO_CURVE_16, value, value, 1); } typedef struct {