diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index cc240e87ba..2681eff6ca 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -53,6 +53,7 @@ #include "binary_logging.h" #include "buffered_writer.h" #include "dynoview.h" +#include "frequency_sensor.h" extern bool main_loop_started; @@ -782,6 +783,10 @@ void updateTunerStudioState() { #endif tsOutputChannels->turboSpeed = Sensor::getOrZero(SensorType::TurbochargerSpeed); + extern FrequencySensor inputShaftSpeedSensor; + tsOutputChannels->issEdgeCounter = inputShaftSpeedSensor.eventCounter; + extern FrequencySensor vehicleSpeedSensor; + tsOutputChannels->vssEdgeCounter = vehicleSpeedSensor.eventCounter; #if HW_CHECK_MODE tsOutputChannels->hasCriticalError = 1; diff --git a/firmware/controllers/sensors/frequency_sensor.cpp b/firmware/controllers/sensors/frequency_sensor.cpp index 888bbb9501..2f2241d346 100644 --- a/firmware/controllers/sensors/frequency_sensor.cpp +++ b/firmware/controllers/sensors/frequency_sensor.cpp @@ -53,6 +53,7 @@ void FrequencySensor::deInit() { } void FrequencySensor::onEdge(efitick_t nowNt) { + eventCounter++; float frequency = 1 / m_edgeTimer.getElapsedSecondsAndReset(nowNt); frequency = m_filter.filter(frequency); diff --git a/firmware/controllers/sensors/frequency_sensor.h b/firmware/controllers/sensors/frequency_sensor.h index 691a4ec9d6..fde566df8e 100644 --- a/firmware/controllers/sensors/frequency_sensor.h +++ b/firmware/controllers/sensors/frequency_sensor.h @@ -1,3 +1,6 @@ +/** + * @file frequency_sensor.h + */ #include "functional_sensor.h" #include "timer.h" #include "biquad.h" @@ -13,6 +16,7 @@ public: void onEdge(efitick_t nowNt); + int eventCounter = 0; private: Timer m_edgeTimer; brain_pin_e m_pin = Gpio::Unassigned; diff --git a/firmware/init/sensor/init_input_shaft_speed_sensor.cpp b/firmware/init/sensor/init_input_shaft_speed_sensor.cpp index 55044157c6..07744b223e 100644 --- a/firmware/init/sensor/init_input_shaft_speed_sensor.cpp +++ b/firmware/init/sensor/init_input_shaft_speed_sensor.cpp @@ -4,7 +4,7 @@ #include "frequency_sensor.h" #include "input_shaft_speed_converter.h" -static FrequencySensor inputShaftSpeedSensor(SensorType::InputShaftSpeed, MS2NT(500)); +FrequencySensor inputShaftSpeedSensor(SensorType::InputShaftSpeed, MS2NT(500)); static InputShaftSpeedConverter inputSpeedConverter; void initInputShaftSpeedSensor() { diff --git a/firmware/init/sensor/init_vehicle_speed_sensor.cpp b/firmware/init/sensor/init_vehicle_speed_sensor.cpp index 04ea6601aa..f64beff3db 100644 --- a/firmware/init/sensor/init_vehicle_speed_sensor.cpp +++ b/firmware/init/sensor/init_vehicle_speed_sensor.cpp @@ -5,7 +5,7 @@ #include "vehicle_speed_converter.h" // 0.05 filter parameter means averaging over ~20 sensor teeth -static FrequencySensor vehicleSpeedSensor(SensorType::VehicleSpeed, MS2NT(500)); +FrequencySensor vehicleSpeedSensor(SensorType::VehicleSpeed, MS2NT(500)); static VehicleSpeedConverter vehicleSpeedConverter; void initVehicleSpeedSensor() {