rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
electronic_throttle.h
Go to the documentation of this file.
1/**
2 * @file electronic_throttle.h
3 *
4 * @date Dec 7, 2013
5 * @author Andrey Belomutskiy, (c) 2012-2020
6 */
7
8#pragma once
9
11#include "rusefi_types.h"
13
15void doInitElectronicThrottle(bool isStartupInit);
16
19void setEtbLuaAdjustment(percent_t adjustment);
22
23void blinkEtbErrorCodes(bool blinkPhase);
24
25// same plug as 18919 AM810 but have different calibrations
27
28void setBoschVAGETB();
29
33
37
38void etbAutocal(dc_function_e function, bool reportToTs = true);
39EtbStatus etbGetState(size_t throttleIndex);
40
41float getSanitizedPedal();
42
43enum class EtbState : uint8_t {
44 Uninitialized, // 0
45 Autotune, // 1
46 NoMotor, // 2
47 NotEbt, // 3
48 LimpProhibited, // 4
49 Paused, // 5
50 NoOutput, // 6
51 Active, // 7
52 NoPedal, // 8
53 FailFast, // 9
54 InInit, // 10
55 SuccessfulInit, // 11
56};
57
58class DcMotor;
59struct pid_s;
60class ValueProvider3D;
61struct pid_state_s;
62
63class IEtbController : public ClosedLoopController<percent_t, percent_t> {
64public:
65 // Initialize the throttle.
66 // returns true if the throttle was initialized, false otherwise.
67 virtual bool init(dc_function_e function, DcMotor *motor, pid_s *pidParameters, const ValueProvider3D* pedalMap) = 0;
68 virtual void reset(const char *reason) = 0;
69 virtual void setIdlePosition(percent_t pos) = 0;
70 virtual void setWastegatePosition(percent_t pos) = 0;
71 virtual void update() = 0;
72 virtual void autoCalibrateTps(bool reportToTs = true) { (void)reportToTs; }
73 virtual bool isEtbMode() const = 0;
74
75 virtual const pid_state_s& getPidState() const = 0;
76 virtual float getCurrentTarget() const = 0;
77 virtual void setLuaAdjustment(percent_t adjustment) = 0;
78};
Brushed or brushless DC motor interface.
Definition dc_motor.h:20
virtual void setIdlePosition(percent_t pos)=0
virtual bool isEtbMode() const =0
virtual float getCurrentTarget() const =0
virtual void autoCalibrateTps(bool reportToTs=true)
virtual bool init(dc_function_e function, DcMotor *motor, pid_s *pidParameters, const ValueProvider3D *pedalMap)=0
virtual void update()=0
virtual void setWastegatePosition(percent_t pos)=0
virtual const pid_state_s & getPidState() const =0
virtual void reset(const char *reason)=0
virtual void setLuaAdjustment(percent_t adjustment)=0
void setDefaultEtbParameters()
void setToyota89281_33010_pedal_position_sensor()
void initElectronicThrottle()
void setHitachiEtbCalibration()
void setEtbIdlePosition(percent_t pos)
void setEtbLuaAdjustment(percent_t adjustment)
void setEtbWastegatePosition(percent_t pos)
void onConfigurationChangeElectronicThrottleCallback(engine_configuration_s *previousConfiguration)
void blinkEtbErrorCodes(bool blinkPhase)
EtbStatus etbGetState(size_t throttleIndex)
void unregisterEtbPins()
@ SuccessfulInit
@ LimpProhibited
void setProteusHitachiEtbDefaults()
float getSanitizedPedal()
void etbAutocal(dc_function_e function, bool reportToTs=true)
void setEwgLuaAdjustment(percent_t pos)
void setBoschVAGETB()
void doInitElectronicThrottle(bool isStartupInit)
void setBoschVNH2SP30Curve()
void setDefaultEtbBiasCurve()
Main engine configuration data structure.
EtbStatus
dc_function_e
float percent_t