diff --git a/firmware/init/init.h b/firmware/init/init.h index adc0508bd0..73a61097c5 100644 --- a/firmware/init/init.h +++ b/firmware/init/init.h @@ -42,6 +42,7 @@ void deinitThermistors(); void deinitFluidPressure(); void deinitLambda(); void deInitFlexSensor(); +void deinitAuxSensors(); void deInitVehicleSpeedSensor(); void deinitTurbochargerSpeedSensor(); void deinitMap(); diff --git a/firmware/init/sensor/init_aux.cpp b/firmware/init/sensor/init_aux.cpp index d919ac8feb..d98b983049 100644 --- a/firmware/init/sensor/init_aux.cpp +++ b/firmware/init/sensor/init_aux.cpp @@ -48,3 +48,10 @@ void initAuxSensors() { sensor.Register(); } } + +void deinitAuxSensors() { + for (size_t i = 0; i < efi::size(engineConfiguration->auxAnalogInputs); i++) { + AdcSubscription::UnsubscribeSensor(auxSensors[i]); + auxSensors[i].unregister(); + } +} diff --git a/firmware/init/sensor/init_sensors.cpp b/firmware/init/sensor/init_sensors.cpp index 98e70df4e1..877430421d 100644 --- a/firmware/init/sensor/init_sensors.cpp +++ b/firmware/init/sensor/init_sensors.cpp @@ -63,26 +63,16 @@ static void deInitAuxDigital() { } void initNewSensors() { - initVbatt(); - initMap(); - initTps(); - initFluidPressure(); - initThermistors(); - initLambda(); - initFlexSensor(); + reconfigureSensors(); + initBaro(); - initAuxSensors(); - initVehicleSpeedSensor(); - initTurbochargerSpeedSensor(); initAuxSpeedSensors(); - initInputShaftSpeedSensor(); #if !EFI_UNIT_TEST initFuelLevel(); initMaf(); #endif - initOldAnalogInputs(); initAuxDigital(); // Init CLI functionality for sensors (mocking) @@ -113,6 +103,7 @@ void stopSensors() { deinitThermistors(); deinitLambda(); deInitFlexSensor(); + deinitAuxSensors(); deInitVehicleSpeedSensor(); deinitTurbochargerSpeedSensor(); deinitAuxSpeedSensors(); @@ -121,13 +112,14 @@ void stopSensors() { } void reconfigureSensors() { + initVbatt(); initMap(); initTps(); initFluidPressure(); - initVbatt(); initThermistors(); initLambda(); initFlexSensor(); + initAuxSensors(); initVehicleSpeedSensor(); initTurbochargerSpeedSensor(); initInputShaftSpeedSensor();