diff --git a/firmware/controllers/sensors/map.cpp b/firmware/controllers/sensors/map.cpp index 975130d16d..2f6a8aa82e 100644 --- a/firmware/controllers/sensors/map.cpp +++ b/firmware/controllers/sensors/map.cpp @@ -65,11 +65,11 @@ static FastInterpolation dodgeNeon2003(0.4 /* volts */, 15.34 /* kPa */, 4.5 /* */ static FastInterpolation *mapDecoder; -float decodePressure(float voltage, air_pressure_sensor_config_s * config) { - switch (config->type) { +float decodePressure(float voltage, air_pressure_sensor_config_s * mapConfig DECLARE_ENGINE_PARAMETER_S) { + switch (mapConfig->type) { case MT_CUSTOM: // todo: migrate to 'FastInterpolation customMap' - return interpolate(0, config->valueAt0, 5, config->valueAt5, voltage); + return interpolate(0, mapConfig->valueAt0, 5, mapConfig->valueAt5, voltage); case MT_DENSO183: return denso183.getValue(voltage); case MT_MPX4250: @@ -87,7 +87,7 @@ float decodePressure(float voltage, air_pressure_sensor_config_s * config) { case MT_MPX4100: return mpx4100.getValue(voltage); default: - firmwareError("Unknown MAP type: %d", config->type); + firmwareError("Unknown MAP type: %d", mapConfig->type); return NAN; } } @@ -117,7 +117,7 @@ float getMapByVoltage(float voltage DECLARE_ENGINE_PARAMETER_S) { // todo: migrate to mapDecoder once parameter listeners are ready air_pressure_sensor_config_s * apConfig = &engineConfiguration->map.sensor; - return decodePressure(voltage, apConfig); + return decodePressure(voltage, apConfig PASS_ENGINE_PARAMETER); } /** @@ -138,7 +138,7 @@ bool hasBaroSensor(DECLARE_ENGINE_PARAMETER_F) { float getBaroPressure(DECLARE_ENGINE_PARAMETER_F) { float voltage = getVoltageDivided("baro", engineConfiguration->baroSensor.hwChannel); - return decodePressure(voltage, &engineConfiguration->baroSensor); + return decodePressure(voltage, &engineConfiguration->baroSensor PASS_ENGINE_PARAMETER); } static FastInterpolation *getDecoder(air_pressure_sensor_type_e type) { diff --git a/firmware/controllers/sensors/map.h b/firmware/controllers/sensors/map.h index 607bf3d823..c46387c92b 100644 --- a/firmware/controllers/sensors/map.h +++ b/firmware/controllers/sensors/map.h @@ -21,7 +21,7 @@ bool hasBaroSensor(DECLARE_ENGINE_PARAMETER_F); float getMap(void); float getMapVoltage(void); float getMapByVoltage(float voltage DECLARE_ENGINE_PARAMETER_S); -float decodePressure(float voltage, air_pressure_sensor_config_s * config); +float decodePressure(float voltage, air_pressure_sensor_config_s * mapConfig DECLARE_ENGINE_PARAMETER_S); float validateMap(float mapKPa DECLARE_ENGINE_PARAMETER_S); #endif diff --git a/unit_tests/test_sensors.cpp b/unit_tests/test_sensors.cpp index 34b028b586..a025bbdc2a 100644 --- a/unit_tests/test_sensors.cpp +++ b/unit_tests/test_sensors.cpp @@ -14,16 +14,18 @@ static ThermistorConf tc; static void testMapDecoding(void) { + EngineTestHelper eth(FORD_INLINE_6_1995); + EXPAND_EngineTestHelper; air_pressure_sensor_config_s s; s.type = MT_DENSO183; - assertEqualsM("denso 0 volts", -6.64, decodePressure(0, &s)); - assertEquals(31.244, decodePressure(1, &s)); + assertEqualsM("denso 0 volts", -6.64, decodePressure(0, &s PASS_ENGINE_PARAMETER)); + assertEquals(31.244, decodePressure(1, &s PASS_ENGINE_PARAMETER)); s.type = MT_MPX4250; - assertEqualsM("MPX_4250 0 volts", 8, decodePressure(0, &s)); - assertEquals(58.4, decodePressure(1, &s)); + assertEqualsM("MPX_4250 0 volts", 8, decodePressure(0, &s PASS_ENGINE_PARAMETER)); + assertEquals(58.4, decodePressure(1, &s PASS_ENGINE_PARAMETER)); } void testTps(void) {