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