17 {
19
20
22
24
25#if EFI_IDLE_CONTROL
27
31
36 );
37
38
39
40
41
44 }
45#endif
46
47
50
51 if (postState) {
56 }
57
58
59 if (result.Value == 0) {
60 continue;
61 }
62
63
64
65 ve *= ((100 + result.Value) * 0.01f);
66 }
67
68 if (postState) {
71 }
72
73 return ve * PERCENT_DIV;
74}
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< 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]
scaled_channel< uint8_t, 1, 10 > idleVeRpmBins[IDLE_VE_SIZE]
uint8_t idleVeLoadBins[IDLE_VE_SIZE]
blend_table_s veBlends[VE_BLEND_COUNT]
scaled_channel< uint16_t, 10, 1 > idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]