diff --git a/firmware/controllers/actuators/boost_control.cpp b/firmware/controllers/actuators/boost_control.cpp index ef0596de8d..8411706ba5 100644 --- a/firmware/controllers/actuators/boost_control.cpp +++ b/firmware/controllers/actuators/boost_control.cpp @@ -277,8 +277,8 @@ void initBoostCtrl() { #endif // Set up open & closed loop tables - boostMapOpen.init(config->boostTableOpenLoop, config->boostTpsBins, config->boostRpmBins); - boostMapClosed.init(config->boostTableClosedLoop, config->boostTpsBins, config->boostRpmBins); + boostMapOpen.initTable(config->boostTableOpenLoop, config->boostRpmBins, config->boostTpsBins); + boostMapClosed.initTable(config->boostTableClosedLoop, config->boostRpmBins, config->boostTpsBins); // Set up boost controller instance engine->module().unmock().init(&boostPwmControl, &boostMapOpen, &boostMapClosed, &engineConfiguration->boostPid); diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index 7524286b94..680fcb6ce4 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -1033,9 +1033,9 @@ void initElectronicThrottle() { #endif /* EFI_PROD_CODE */ - pedal2tpsMap.init(config->pedalToTpsTable, config->pedalToTpsPedalBins, config->pedalToTpsRpmBins); - throttle2TrimTable.init(config->throttle2TrimTable, config->throttle2TrimTpsBins, config->throttle2TrimRpmBins); - tcEtbDropTable.init(engineConfiguration->tractionControlEtbDrop, engineConfiguration->tractionControlSpeedBins, engineConfiguration->tractionControlSlipBins); + pedal2tpsMap.initTable(config->pedalToTpsTable, config->pedalToTpsRpmBins, config->pedalToTpsPedalBins); + throttle2TrimTable.initTable(config->throttle2TrimTable, config->throttle2TrimRpmBins, config->throttle2TrimTpsBins); + tcEtbDropTable.initTable(engineConfiguration->tractionControlEtbDrop, engineConfiguration->tractionControlSlipBins, engineConfiguration->tractionControlSpeedBins); doInitElectronicThrottle(); } diff --git a/firmware/controllers/actuators/gppwm/gppwm.cpp b/firmware/controllers/actuators/gppwm/gppwm.cpp index 6c4a69d3ab..eb46eb9858 100644 --- a/firmware/controllers/actuators/gppwm/gppwm.cpp +++ b/firmware/controllers/actuators/gppwm/gppwm.cpp @@ -46,7 +46,7 @@ void initGpPwm() { } // Set up this channel's lookup table - tables[i]->init(cfg.table, cfg.loadBins, cfg.rpmBins); + tables[i]->initTable(cfg.table, cfg.rpmBins, cfg.loadBins); // Finally configure the channel channels[i].init(usePwm, &outputs[i], &pins[i], tables[i], &cfg); diff --git a/firmware/controllers/actuators/vvt.cpp b/firmware/controllers/actuators/vvt.cpp index a83da82240..bc186133ed 100644 --- a/firmware/controllers/actuators/vvt.cpp +++ b/firmware/controllers/actuators/vvt.cpp @@ -99,7 +99,7 @@ expected VvtController::getClosedLoop(angle_t target, angle_t observa // "retard" means that additional solenoid duty makes indicated VVT position more negative bool isInverted = shouldInvertVvt(m_cam); m_pid.setErrorAmplification(isInverted ? -1.0f : 1.0f); - + float retVal = m_pid.getOutput(target, observation); #if EFI_TUNER_STUDIO @@ -184,10 +184,8 @@ void initVvtActuators() { engineConfiguration->vvtControlMinRpm = engineConfiguration->cranking.rpm; } - vvtTable1.init(config->vvtTable1, config->vvtTable1LoadBins, - config->vvtTable1RpmBins); - vvtTable2.init(config->vvtTable2, config->vvtTable2LoadBins, - config->vvtTable2RpmBins); + vvtTable1.initTable(config->vvtTable1, config->vvtTable1RpmBins, config->vvtTable1LoadBins); + vvtTable2.initTable(config->vvtTable2, config->vvtTable2RpmBins, config->vvtTable2LoadBins); engine->module()->init(&vvtTable1, &vvtPwms[0]); diff --git a/firmware/controllers/algo/accel_enrichment.cpp b/firmware/controllers/algo/accel_enrichment.cpp index 047ebf48ba..4a8ddee0e8 100644 --- a/firmware/controllers/algo/accel_enrichment.cpp +++ b/firmware/controllers/algo/accel_enrichment.cpp @@ -235,7 +235,7 @@ void updateAccelParameters() { void initAccelEnrichment() { - tpsTpsMap.init(config->tpsTpsAccelTable, config->tpsTpsAccelFromRpmBins, config->tpsTpsAccelToRpmBins); + tpsTpsMap.initTable(config->tpsTpsAccelTable, config->tpsTpsAccelToRpmBins, config->tpsTpsAccelFromRpmBins); #if ! EFI_UNIT_TEST diff --git a/firmware/controllers/algo/advance_map.cpp b/firmware/controllers/algo/advance_map.cpp index ad53429140..d8bf198c11 100644 --- a/firmware/controllers/algo/advance_map.cpp +++ b/firmware/controllers/algo/advance_map.cpp @@ -252,7 +252,7 @@ size_t getMultiSparkCount(int rpm) { } void initIgnitionAdvanceControl() { - tcTimingDropTable.init(engineConfiguration->tractionControlTimingDrop, engineConfiguration->tractionControlSpeedBins, engineConfiguration->tractionControlSlipBins); + tcTimingDropTable.initTable(engineConfiguration->tractionControlTimingDrop, engineConfiguration->tractionControlSlipBins, engineConfiguration->tractionControlSpeedBins); } #endif // EFI_ENGINE_CONTROL diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index 045feba47d..b7075bcf49 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -344,7 +344,7 @@ float getInjectionMass(int rpm) { * is to prepare the fuel map data structure for 3d interpolation */ void initFuelMap() { - mapEstimationTable.init(config->mapEstimateTable, config->mapEstimateTpsBins, config->mapEstimateRpmBins); + mapEstimationTable.initTable(config->mapEstimateTable, config->mapEstimateRpmBins, config->mapEstimateTpsBins); } /** diff --git a/firmware/controllers/engine_cycle/knock_controller.cpp b/firmware/controllers/engine_cycle/knock_controller.cpp index 3131449646..c2122b98ee 100644 --- a/firmware/controllers/engine_cycle/knock_controller.cpp +++ b/firmware/controllers/engine_cycle/knock_controller.cpp @@ -14,7 +14,7 @@ void KnockController::onConfigurationChange(engine_configuration_s const * previousConfig) { KnockControllerBase::onConfigurationChange(previousConfig); - m_maxRetardTable.init(config->maxKnockRetardTable, config->maxKnockRetardRpmBins, config->maxKnockRetardLoadBins); + m_maxRetardTable.initTable(config->maxKnockRetardTable, config->maxKnockRetardLoadBins, config->maxKnockRetardRpmBins); } int getCylinderKnockBank(uint8_t cylinderNumber) { diff --git a/firmware/controllers/lua/script_impl.cpp b/firmware/controllers/lua/script_impl.cpp index 3d36e7011f..8dd0f22d7b 100644 --- a/firmware/controllers/lua/script_impl.cpp +++ b/firmware/controllers/lua/script_impl.cpp @@ -83,12 +83,8 @@ float getCurveValue(int index, float key) { } void initScriptImpl() { - scriptTable1.init(config->scriptTable1, config->scriptTable1LoadBins, - config->scriptTable1RpmBins); - scriptTable2.init(config->scriptTable2, config->scriptTable2LoadBins, - config->scriptTable2RpmBins); - scriptTable3.init(config->scriptTable3, config->scriptTable3LoadBins, - config->scriptTable3RpmBins); - scriptTable4.init(config->scriptTable4, config->scriptTable4LoadBins, - config->scriptTable4RpmBins); + scriptTable1.initTable(config->scriptTable1, config->scriptTable1RpmBins, config->scriptTable1LoadBins); + scriptTable2.initTable(config->scriptTable2, config->scriptTable2RpmBins, config->scriptTable2LoadBins); + scriptTable3.initTable(config->scriptTable3, config->scriptTable3RpmBins, config->scriptTable3LoadBins); + scriptTable4.initTable(config->scriptTable4, config->scriptTable4RpmBins, config->scriptTable4LoadBins); } diff --git a/firmware/controllers/math/speed_density.cpp b/firmware/controllers/math/speed_density.cpp index 77c4851934..7e979282cc 100644 --- a/firmware/controllers/math/speed_density.cpp +++ b/firmware/controllers/math/speed_density.cpp @@ -115,5 +115,5 @@ temperature_t IFuelComputer::getTCharge(int rpm, float tps) { } void initSpeedDensity() { - veMap.init(config->veTable, config->veLoadBins, config->veRpmBins); + veMap.initTable(config->veTable, config->veRpmBins, config->veLoadBins); } diff --git a/firmware/util/containers/table_helper.h b/firmware/util/containers/table_helper.h index 3141d44050..0960cb166f 100644 --- a/firmware/util/containers/table_helper.h +++ b/firmware/util/containers/table_helper.h @@ -29,9 +29,9 @@ public: template class Map3D : public ValueProvider3D { public: - template - void init(TValueInit (&table)[TRowNum][TColNum], - const TRowInit (&rowBins)[TRowNum], const TXColumnInit (&columnBins)[TColNum]) { + template + void initTable(TValueInit (&table)[TRowNum][TColNum], + const TXColumnInit (&columnBins)[TColNum], const TRowInit (&rowBins)[TRowNum]) { // This splits out here so that we don't need one overload of init per possible combination of table/rows/columns types/dimensions // Overload resolution figures out the correct versions of the functions below to call, some of which have assertions about what's allowed initValues(table); diff --git a/unit_tests/test_basic_math/test_interpolation_3d.cpp b/unit_tests/test_basic_math/test_interpolation_3d.cpp index 944a9744b6..73dcce0a10 100644 --- a/unit_tests/test_basic_math/test_interpolation_3d.cpp +++ b/unit_tests/test_basic_math/test_interpolation_3d.cpp @@ -39,23 +39,23 @@ static float getValue(float rpm, float maf) { Map3D x1; // note "5, 4" above // note "map[4][5], Bins[4], rpm[5] below - x1.init(map, mafBins, rpmBins); + x1.initTable(map, rpmBins, mafBins); float result1 = x1.getValue(rpm, maf); Map3D x2; - x2.init(map, mafBinsScaledInt, rpmBins); + x2.initTable(map, rpmBins, mafBinsScaledInt); float result2 = x2.getValue(rpm, maf); EXPECT_NEAR_M4(result1, result2); Map3D x3; - x3.init(map, mafBinsScaledByte, rpmBins); + x3.initTable(map, rpmBins, mafBinsScaledByte); float result3 = x3.getValue(rpm, maf); EXPECT_NEAR_M4(result1, result3); Map3D x4; - x4.init(map, mafBins, rpmBinsScaledByte); + x4.initTable(map, rpmBinsScaledByte, mafBins); float result4 = x4.getValue(rpm, maf); EXPECT_NEAR_M4(result1, result4); @@ -68,7 +68,7 @@ static float getValue(float rpm, float maf) { // Test with values stored in scaled bytes Map3D x6; - x6.init(mapScaledChannel, mafBins, rpmBins); + x6.initTable(mapScaledChannel, rpmBins, mafBins); float result6 = x6.getValue(rpm, maf); EXPECT_NEAR(result1, result6, 1e-3);