rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
dynoview.h
Go to the documentation of this file.
1/*
2 * @file dynoview.h
3 *
4 * @date Jan 05, 2025
5 * @author Alexey Ershov, (c) 2012-2025
6 */
7
8#pragma once
9
10void updateDynoView();
11int getDynoviewHP();
13
14struct DynoPoint {
15 int rpm;
16 float time;
17 float tps;
18
19 float engineRps;
20 float axleRps;
21 float vMs;
22 float mph;
23 float distanceM;
24 float aMs2;
25 float forceN;
29 float torqueNm;
31 float hp;
32};
33
34class DynoView {
35public:
36
37 void init();
38 void update();
39 bool onRpm(int rpm, float time, float tps);
40
42 float currentHP;
43
44private:
45
46 void reset();
47
48 static inline void move(uint8_t size, float* data) {
49 for(int i = size - 1; i > 0; --i)
50 {
51 memcpy(&data[i], &data[i - 1], sizeof(float));
52 }
53 }
54
55 static inline float accumulate_window(uint8_t size, const float* data)
56 {
57 float sum = 0.0;
58
59 for(int i = 0; i < size; ++i) {
60 sum += data[size - i - 1];
61 }
62
63 return sum / (float)size;
64 }
65
66 float airDensityKgM3 = 1.225; // 15C
68
69 // SAE corrections
75
78
79 int count = 0;
80 int count_rpm = 0;
81 int prev_rpm = 0;
82
83 static constexpr int dyno_view_window_size = 7;
84 static constexpr int dyno_view_window_size_rpm = 10;
85 static constexpr int dyno_view_tps_min_for_run = 30;
86 static constexpr int dyno_view_rpm_diff_smooth = 30;
87 static constexpr float dyno_view_log_time_smooth_sec = 0.05f;
88 static constexpr int dyno_view_tps_diff_to_reset_run = 10;
89 static constexpr int dyno_view_rpm_fall_to_reset_run = 60;
90
94
95 bool isInitialized = false;
96};
float currentHP
Definition dynoview.h:42
int count_rpm
Definition dynoview.h:80
int count
Definition dynoview.h:79
float saeCorrectionFactor
Definition dynoview.h:74
DynoPoint dynoViewPointPrev
Definition dynoview.h:77
static constexpr int dyno_view_tps_min_for_run
Definition dynoview.h:85
float tail_torque[dyno_view_window_size]
Definition dynoview.h:92
float saeBaroMmhg
Definition dynoview.h:71
static constexpr int dyno_view_window_size_rpm
Definition dynoview.h:84
static constexpr float dyno_view_log_time_smooth_sec
Definition dynoview.h:87
static constexpr int dyno_view_rpm_diff_smooth
Definition dynoview.h:86
uint16_t wheelOverallDiameterMm
Definition dynoview.h:67
float airDensityKgM3
Definition dynoview.h:66
float currentTorque
Definition dynoview.h:41
DynoPoint dynoViewPoint
Definition dynoview.h:76
void reset()
Definition dynoview.cpp:52
static void move(uint8_t size, float *data)
Definition dynoview.h:48
float saeTempCorrectionFactor
Definition dynoview.h:72
float tail_hp[dyno_view_window_size]
Definition dynoview.h:91
bool isInitialized
Definition dynoview.h:95
static constexpr int dyno_view_window_size
Definition dynoview.h:83
bool onRpm(int rpm, float time, float tps)
Definition dynoview.cpp:63
float saeBaroCorrectionFactor
Definition dynoview.h:70
void update()
Definition dynoview.cpp:34
static constexpr int dyno_view_tps_diff_to_reset_run
Definition dynoview.h:88
void init()
Definition dynoview.cpp:14
static constexpr int dyno_view_rpm_fall_to_reset_run
Definition dynoview.h:89
int prev_rpm
Definition dynoview.h:81
float saeVaporPressure
Definition dynoview.h:73
static float accumulate_window(uint8_t size, const float *data)
Definition dynoview.h:55
float tail_rpm[dyno_view_window_size_rpm]
Definition dynoview.h:93
int getDynoviewHP()
Definition dynoview.cpp:164
void updateDynoView()
Definition dynoview.cpp:175
int getDynoviewTorque()
Definition dynoview.cpp:168
float tps
Definition dynoview.h:17
float torqueWheelNm
Definition dynoview.h:28
float torqueNm
Definition dynoview.h:29
float engineRps
Definition dynoview.h:19
float forceDragN
Definition dynoview.h:26
float aMs2
Definition dynoview.h:24
int rpm
Definition dynoview.h:15
float distanceM
Definition dynoview.h:23
float vMs
Definition dynoview.h:21
float hp
Definition dynoview.h:31
float mph
Definition dynoview.h:22
float torqueLbFt
Definition dynoview.h:30
float forceTotalN
Definition dynoview.h:27
float time
Definition dynoview.h:16
float axleRps
Definition dynoview.h:20
float forceN
Definition dynoview.h:25
composite packet size