| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | #pragma once | |||
| 2 | ||||
| 3 | class TripOdometer : public EngineModule { | |||
| 4 | public: | |||
| 5 | void onSlowCallback() override; | |||
| 6 | void reset(); | |||
| 7 | ||||
| 8 | void consumeFuel(float grams, efitick_t nowNt); | |||
| 9 | ||||
| 10 | uint32_t getConsumedGrams() const; | |||
| 11 | // in case if integer number of grams moves too slow | |||
| 12 | ✗ | float getConsumedGramsRemainder() const { | ||
| 13 | ✗ | return m_consumedRemainder; | ||
| 14 | } | |||
| 15 | float getConsumptionGramPerSecond() const; | |||
| 16 | uint32_t getDistanceMeters() const; | |||
| 17 | uint32_t getIgnitionOnTime() const; | |||
| 18 | uint32_t getEngineRunTime() const; | |||
| 19 | ||||
| 20 | private: | |||
| 21 | // Fuel consumed | |||
| 22 | uint32_t m_consumedGrams = 0; | |||
| 23 | float m_consumedRemainder = 0; | |||
| 24 | float m_rate = 0; | |||
| 25 | ||||
| 26 | // Distance travelled | |||
| 27 | uint32_t m_distanceMeters = 0; | |||
| 28 | float m_distanceRemainder = 0; | |||
| 29 | ||||
| 30 | // Engine run time and ign on time | |||
| 31 | uint32_t m_slowCallbackCounter = 0; | |||
| 32 | uint32_t m_ignitionOnSeconds = 0; | |||
| 33 | uint32_t m_engineRunningSeconds = 0; | |||
| 34 | ||||
| 35 | Timer m_timer; | |||
| 36 | }; | |||
| 37 |