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 pickEtbOrStepper();
24
25void blinkEtbErrorCodes(bool blinkPhase);
26
27// same plug as 18919 AM810 but have different calibrations
29
30void setBoschVAGETB();
31
35
39
40void etbAutocal(dc_function_e function, bool reportToTs = true);
41EtbStatus etbGetState(size_t throttleIndex);
42
43float getSanitizedPedal();
44
45enum class EtbState : uint8_t {
46 Uninitialized, // 0
47 Autotune, // 1
48 NoMotor, // 2
49 NotEbt, // 3
50 LimpProhibited, // 4
51 Paused, // 5
52 NoOutput, // 6
53 Active, // 7
54 NoPedal, // 8
55 FailFast, // 9
56 InInit, // 10
57 SuccessfulInit, // 11
58};
59
60class DcMotor;
61struct pid_s;
62class ValueProvider3D;
63struct pid_state_s;
64
65class IEtbController : public ClosedLoopController<percent_t, percent_t> {
66public:
67 // Initialize the throttle.
68 // returns true if the throttle was initialized, false otherwise.
69 virtual bool init(dc_function_e function, DcMotor *motor, pid_s *pidParameters, const ValueProvider3D* pedalMap) = 0;
70 virtual void reset(const char *reason) = 0;
71 virtual void setIdlePosition(percent_t pos) = 0;
72 virtual void setWastegatePosition(percent_t pos) = 0;
73 virtual void update() = 0;
74 virtual void autoCalibrateTps(bool reportToTs = true) { (void)reportToTs; }
75 virtual bool isEtbMode() const = 0;
76
77 virtual const pid_state_s& getPidState() const = 0;
78 virtual float getCurrentTarget() const = 0;
79 virtual void setLuaAdjustment(percent_t adjustment) = 0;
80};
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 pickEtbOrStepper()
void setDefaultEtbBiasCurve()
Main engine configuration data structure.
EtbStatus
dc_function_e
float percent_t