From 536ccb4001baf86d7a18a0e16c19ed72f83ce062 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Mon, 28 Mar 2022 23:30:37 -0400 Subject: [PATCH] reducing code duplication --- firmware/controllers/sensors/frequency_sensor.cpp | 10 ++++++++++ firmware/controllers/sensors/frequency_sensor.h | 1 + firmware/init/sensor/init_flex.cpp | 11 +---------- .../init/sensor/init_turbocharger_speed_sensor.cpp | 14 ++------------ firmware/init/sensor/init_vehicle_speed_sensor.cpp | 14 ++------------ 5 files changed, 16 insertions(+), 34 deletions(-) diff --git a/firmware/controllers/sensors/frequency_sensor.cpp b/firmware/controllers/sensors/frequency_sensor.cpp index ede8ce6402..b084977767 100644 --- a/firmware/controllers/sensors/frequency_sensor.cpp +++ b/firmware/controllers/sensors/frequency_sensor.cpp @@ -13,6 +13,16 @@ static void freqSensorExtiCallback(void* arg, efitick_t nowNt) { reinterpret_cast(arg)->onEdge(nowNt); } +void FrequencySensor::initIfValid(brain_pin_e pin, SensorConverter &converter) { + if (!isBrainPinValid(pin)) { + return; + } + setFunction(converter); + init(pin); + init(pin); + Register(); +} + void FrequencySensor::init(brain_pin_e pin) { m_pin = pin; diff --git a/firmware/controllers/sensors/frequency_sensor.h b/firmware/controllers/sensors/frequency_sensor.h index ef984efeee..8ef0a72a6e 100644 --- a/firmware/controllers/sensors/frequency_sensor.h +++ b/firmware/controllers/sensors/frequency_sensor.h @@ -11,6 +11,7 @@ public: } void init(brain_pin_e pin); + void initIfValid(brain_pin_e pin, SensorConverter &converter); void deInit(); void onEdge(efitick_t nowNt); diff --git a/firmware/init/sensor/init_flex.cpp b/firmware/init/sensor/init_flex.cpp index 3953509e07..6f66bf757b 100644 --- a/firmware/init/sensor/init_flex.cpp +++ b/firmware/init/sensor/init_flex.cpp @@ -11,16 +11,7 @@ static FlexConverter converter; // https://rusefi.com/forum/viewtopic.php?p=37452&sid=829804c90d5b2e1fecd1b900cf1b1811#p37452 void initFlexSensor() { - auto pin = engineConfiguration->flexSensorPin; - - // Nothing to do if no sensor configured - if (!isBrainPinValid(pin)) { - return; - } - - flexSensor.setFunction(converter); - flexSensor.init(pin); - flexSensor.Register(); + flexSensor.initIfValid(engineConfiguration->flexSensorPin, converter); } void deInitFlexSensor() { diff --git a/firmware/init/sensor/init_turbocharger_speed_sensor.cpp b/firmware/init/sensor/init_turbocharger_speed_sensor.cpp index 7fc3c15ed1..2aa792894e 100644 --- a/firmware/init/sensor/init_turbocharger_speed_sensor.cpp +++ b/firmware/init/sensor/init_turbocharger_speed_sensor.cpp @@ -10,19 +10,9 @@ static TurbochargerSpeedConverter turbochargerSpeedConverter; void initTurbochargerSpeedSensor() { - - auto pin = engineConfiguration->turboSpeedSensorInputPin; - - // Nothing to do if no sensor configured - if (!isBrainPinValid(pin)) { - return; - } - - turbochargerSpeedSensor.setFunction(turbochargerSpeedConverter); - turbochargerSpeedSensor.init(pin); - turbochargerSpeedSensor.Register(); + turbochargerSpeedSensor.initIfValid(engineConfiguration->turboSpeedSensorInputPin, turbochargerSpeedConverter); } void deinitTurbochargerSpeedSensor() { turbochargerSpeedSensor.deInit(); -} \ No newline at end of file +} diff --git a/firmware/init/sensor/init_vehicle_speed_sensor.cpp b/firmware/init/sensor/init_vehicle_speed_sensor.cpp index 2073b12ba6..b2a90a5614 100644 --- a/firmware/init/sensor/init_vehicle_speed_sensor.cpp +++ b/firmware/init/sensor/init_vehicle_speed_sensor.cpp @@ -9,19 +9,9 @@ static FrequencySensor vehicleSpeedSensor(SensorType::VehicleSpeed, MS2NT(500), static VehicleSpeedConverter vehicleSpeedConverter; void initVehicleSpeedSensor() { - - auto pin = engineConfiguration->vehicleSpeedSensorInputPin; - - // Nothing to do if no sensor configured - if (!isBrainPinValid(pin)) { - return; - } - - vehicleSpeedSensor.setFunction(vehicleSpeedConverter); - vehicleSpeedSensor.init(pin); - vehicleSpeedSensor.Register(); + vehicleSpeedSensor.initIfValid(engineConfiguration->vehicleSpeedSensorInputPin, vehicleSpeedConverter); } void deInitVehicleSpeedSensor() { vehicleSpeedSensor.deInit(); -} \ No newline at end of file +}