17 {
19
20
22
24 float idleVeLoad = load;
25
26#if EFI_IDLE_CONTROL
28
32
37 );
38
39
40
41
42
45 }
46#endif
47
48
51
52 if (postState) {
57 }
58
59
60 if (result.Value == 0) {
61 continue;
62 }
63
64
65
66 ve *= ((100 + result.Value) * 0.01f);
67 }
68
69 if (postState) {
73 }
74
75 return ve * PERCENT_DIV;
76}
float getVeLoadAxis(ve_override_e mode, float passedLoad)
TunerStudioOutputChannels outputChannels
constexpr auto & module()
bool isIdlingOrTaper() const override
virtual SensorResult get() const =0
virtual float getValue(float xColumn, float yRow) const =0
float interpolateClamped(float x1, float y1, float x2, float y2, float x)
static EngineAccessor engine
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
BlendResult calculateBlend(blend_table_s &cfg, float rpm, float load)
@ OBD_PCM_Processor_Fault
bool useSeparateVeForIdle
ve_override_e veOverrideMode
ve_override_e idleVeOverrideMode
int16_t idlePidDeactivationTpsThreshold
scaled_channel< int16_t, 10, 1 > veTableIdleYAxis
scaled_channel< uint16_t, 100, 1 > veTableYAxis
scaled_channel< int16_t, 10, 1 > veBlendParameter[VE_BLEND_COUNT]
scaled_channel< uint8_t, 2, 1 > veBlendBias[VE_BLEND_COUNT]
scaled_channel< int16_t, 10, 1 > veBlendYAxis[VE_BLEND_COUNT]
scaled_channel< int16_t, 100, 1 > veBlendOutput[VE_BLEND_COUNT]
uint8_t idleVeLoadBins[IDLE_VE_SIZE]
scaled_channel< uint8_t, 1, 10 > idleVeRpmBins[IDLE_VE_SIZE_RPM]
scaled_channel< uint16_t, 10, 1 > idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE_RPM]
blend_table_s veBlends[VE_BLEND_COUNT]