confusing Map3D API fix #6139
This commit is contained in:
parent
20972847de
commit
3096db5c72
|
@ -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<BoostController>().unmock().init(&boostPwmControl, &boostMapOpen, &boostMapClosed, &engineConfiguration->boostPid);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<VvtController1>()->init(&vvtTable1, &vvtPwms[0]);
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -29,9 +29,9 @@ public:
|
|||
template<int TColNum, int TRowNum, typename TValue, typename TXColumn, typename TRow>
|
||||
class Map3D : public ValueProvider3D {
|
||||
public:
|
||||
template <typename TValueInit, typename TRowInit, typename TXColumnInit>
|
||||
void init(TValueInit (&table)[TRowNum][TColNum],
|
||||
const TRowInit (&rowBins)[TRowNum], const TXColumnInit (&columnBins)[TColNum]) {
|
||||
template <typename TValueInit, typename TXColumnInit, typename TRowInit>
|
||||
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);
|
||||
|
|
|
@ -39,23 +39,23 @@ static float getValue(float rpm, float maf) {
|
|||
Map3D<RPM_COUNT, VALUE_COUNT, float, float, float> 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<RPM_COUNT, VALUE_COUNT, float, float, int> x2;
|
||||
x2.init(map, mafBinsScaledInt, rpmBins);
|
||||
x2.initTable(map, rpmBins, mafBinsScaledInt);
|
||||
float result2 = x2.getValue(rpm, maf);
|
||||
EXPECT_NEAR_M4(result1, result2);
|
||||
|
||||
|
||||
Map3D<RPM_COUNT, VALUE_COUNT, float, float, uint8_t> x3;
|
||||
x3.init(map, mafBinsScaledByte, rpmBins);
|
||||
x3.initTable(map, rpmBins, mafBinsScaledByte);
|
||||
float result3 = x3.getValue(rpm, maf);
|
||||
EXPECT_NEAR_M4(result1, result3);
|
||||
|
||||
Map3D<RPM_COUNT, VALUE_COUNT, float, uint8_t, float> 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<RPM_COUNT, VALUE_COUNT, uint32_t, float, float> x6;
|
||||
x6.init(mapScaledChannel, mafBins, rpmBins);
|
||||
x6.initTable(mapScaledChannel, rpmBins, mafBins);
|
||||
float result6 = x6.getValue(rpm, maf);
|
||||
EXPECT_NEAR(result1, result6, 1e-3);
|
||||
|
||||
|
|
Loading…
Reference in New Issue