fome-fw/firmware/controllers/sensors/hella_oil_level.h

26 lines
611 B
C
Raw Normal View History

2023-09-06 23:20:14 -07:00
#pragma once
#include "stored_value_sensor.h"
class HellaOilLevelSensor : public StoredValueSensor {
public:
HellaOilLevelSensor(SensorType type) : StoredValueSensor(type, MS2NT(2000)) {}
void init(brain_pin_e pin);
void onEdge(efitick_t nowNt);
2023-09-07 12:27:31 -07:00
void onEdge(efitick_t nowNt, bool value);
2023-09-06 23:20:14 -07:00
private:
brain_pin_e m_pin = Gpio::Unassigned;
// Measures the width of positive pulses (rising -> falling)
Timer m_pulseTimer;
// Measures the time between pulses (rising -> rising)
Timer m_betweenPulseTimer;
enum class NextPulse { None, Temp, Level, Diag };
NextPulse m_nextPulse = NextPulse::None;
};