From 69f754bfbdf0bb4543b93955a6b4e4b664eb5d6c Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Sun, 6 Dec 2020 14:00:30 -0600 Subject: [PATCH] don't duplicate sensor error logic (#2032) Co-authored-by: Matthew Kennedy --- firmware/controllers/sensors/sensor.cpp | 4 +--- firmware/init/sensor/init_fluid_pressure.cpp | 8 ++------ firmware/init/sensor/init_lambda.cpp | 4 +--- firmware/init/sensor/init_thermistors.cpp | 7 ++----- firmware/init/sensor/init_tps.cpp | 15 +++------------ unit_tests/tests/sensor/basic_sensor.cpp | 3 ++- 6 files changed, 11 insertions(+), 30 deletions(-) diff --git a/firmware/controllers/sensors/sensor.cpp b/firmware/controllers/sensors/sensor.cpp index 7c6597bce2..957ed1ee93 100644 --- a/firmware/controllers/sensors/sensor.cpp +++ b/firmware/controllers/sensors/sensor.cpp @@ -69,9 +69,7 @@ public: // If there's somebody already here - a consumer tried to double-register a sensor if (m_sensor) { // This sensor has already been registered. Don't re-register it. - #if ! EFI_UNIT_TEST - firmwareError(CUSTOM_OBD_26, "Duplicate registration for %s sensor", sensor->getSensorName()); - #endif + firmwareError(CUSTOM_OBD_26, "Duplicate registration for sensor \"%s\"", sensor->getSensorName()); return false; } else { // Put the sensor in the registry diff --git a/firmware/init/sensor/init_fluid_pressure.cpp b/firmware/init/sensor/init_fluid_pressure.cpp index 2c8b96fbc5..0846bad956 100644 --- a/firmware/init/sensor/init_fluid_pressure.cpp +++ b/firmware/init/sensor/init_fluid_pressure.cpp @@ -48,9 +48,7 @@ static void initFluidPressure(LinearFunc& func, FunctionalSensor& sensor, const AdcSubscription::SubscribeSensor(sensor, channel, bandwidth); - if (!sensor.Register()) { - firmwareError(CUSTOM_INVALID_TPS_SETTING, "Duplicate registration for sensor \"%s\"", sensor.getSensorName()); - } + sensor.Register(); } void initOilPressure(DECLARE_CONFIG_PARAMETER_SIGNATURE) { @@ -64,9 +62,7 @@ void initOilPressure(DECLARE_CONFIG_PARAMETER_SIGNATURE) { : SensorType::FuelPressureLow ); - if (!injectorPressure.Register()) { - firmwareError(OBD_PCM_Processor_Fault, "Duplicate sensor registration"); - } + injectorPressure.Register(); } void reconfigureOilPressure(DECLARE_CONFIG_PARAMETER_SIGNATURE) { diff --git a/firmware/init/sensor/init_lambda.cpp b/firmware/init/sensor/init_lambda.cpp index 5fd0fb4b22..e9b029fbc5 100644 --- a/firmware/init/sensor/init_lambda.cpp +++ b/firmware/init/sensor/init_lambda.cpp @@ -39,7 +39,5 @@ void initLambda(DECLARE_ENGINE_PARAMETER_SIGNATURE) { } #endif - if (!lambdaSensor.Register()) { - warning(OBD_PCM_Processor_Fault, "Duplicate lambda sensor registration, ignoring"); - } + lambdaSensor.Register(); } diff --git a/firmware/init/sensor/init_thermistors.cpp b/firmware/init/sensor/init_thermistors.cpp index cac8c67e51..b9a80169e3 100644 --- a/firmware/init/sensor/init_thermistors.cpp +++ b/firmware/init/sensor/init_thermistors.cpp @@ -60,12 +60,9 @@ static void configureTempSensor(FunctionalSensor &sensor, configTherm(sensor, p, config, isLinear); - AdcSubscription::SubscribeSensor(sensor, channel, 2); - // Register & subscribe - if (!sensor.Register()) { - // uhh? - } + AdcSubscription::SubscribeSensor(sensor, channel, 2); + sensor.Register(); } void initThermistors(DECLARE_CONFIG_PARAMETER_SIGNATURE) { diff --git a/firmware/init/sensor/init_tps.cpp b/firmware/init/sensor/init_tps.cpp index 467357d2ba..f893c92279 100644 --- a/firmware/init/sensor/init_tps.cpp +++ b/firmware/init/sensor/init_tps.cpp @@ -80,12 +80,7 @@ static bool initTpsFunc(LinearFunc& func, FunctionalSensor& sensor, adc_channel_ AdcSubscription::SubscribeSensor(sensor, channel, 200); - if (!sensor.Register()) { - firmwareError(CUSTOM_INVALID_TPS_SETTING, "Duplicate registration for sensor \"%s\"", sensor.getSensorName()); - return false; - } - - return true; + return sensor.Register(); } static void initTpsFuncAndRedund(RedundantSensor& redund, LinearFunc& func, FunctionalSensor& sensor, adc_channel_e channel, float closed, float open, float min, float max) { @@ -93,9 +88,7 @@ static void initTpsFuncAndRedund(RedundantSensor& redund, LinearFunc& func, Func redund.configure(5.0f, !hasSecond); - if (!redund.Register()) { - firmwareError(CUSTOM_INVALID_TPS_SETTING, "Duplicate registration for sensor \"%s\"", redund.getSensorName()); - } + redund.Register(); } void initTps(DECLARE_CONFIG_PARAMETER_SIGNATURE) { @@ -122,9 +115,7 @@ void initTps(DECLARE_CONFIG_PARAMETER_SIGNATURE) { driverIntent.setProxiedSensor(SensorType::Tps1); } - if (!driverIntent.Register()) { - firmwareError(CUSTOM_INVALID_TPS_SETTING, "Duplicate registration for driver acc intent sensor"); - } + driverIntent.Register(); } void reconfigureTps(DECLARE_CONFIG_PARAMETER_SIGNATURE) { diff --git a/unit_tests/tests/sensor/basic_sensor.cpp b/unit_tests/tests/sensor/basic_sensor.cpp index 796605b29a..f55ccbe66f 100644 --- a/unit_tests/tests/sensor/basic_sensor.cpp +++ b/unit_tests/tests/sensor/basic_sensor.cpp @@ -1,5 +1,6 @@ #include "mock/mock_sensor.h" #include "stored_value_sensor.h" +#include "unit_test_framework.h" #include @@ -49,7 +50,7 @@ TEST_F(SensorBasic, DoubleRegister) { // And then do it again! MockSensor dut2(SensorType::Tps1); - EXPECT_FALSE(dut2.Register()); + EXPECT_FATAL_ERROR(dut2.Register()); // Make sure that we get the first DUT back - not the second auto shouldBeDut = Sensor::getSensorOfType(SensorType::Tps1);