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 |
|
|
|
|