rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
efi_gpio.cpp File Reference

Detailed Description

EFI-related GPIO code.

Date
Sep 26, 2014
Author
Andrey Belomutskiy, (c) 2012-2020

Definition in file efi_gpio.cpp.

Functions

void initMiscOutputPins ()
 
static void initErrorLed (Gpio led)
 
void initPrimaryPins ()
 
void turnAllPinsOff ()
 

Variables

EnginePins enginePins
 
static const char *const sparkNames []
 
static const char *const trailNames []
 
static const char *const trailShortNames [] = { "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "rA", "rB", "rD" }
 
const charvvtNames []
 
const charlaNames []
 
static const char *const sparkShortNames []
 
static const char *const injectorNames []
 
static const char *const injectorShortNames []
 
static const char *const injectorStage2Names []
 
static const char *const injectorStage2ShortNames []
 
static const char *const auxValveShortNames [] = { "a1", "a2"}
 
static RegisteredOutputPinregisteredOutputHead = nullptr
 
bool verboseMode
 
ioportid_t criticalErrorLedPort
 
ioportmask_t criticalErrorLedPin
 
uint8_t criticalErrorLedState
 

Function Documentation

◆ initErrorLed()

static void initErrorLed ( Gpio  led)
static

Definition at line 834 of file efi_gpio.cpp.

834 {
835 enginePins.errorLedPin.initPin("led: CRITICAL status", led, (LED_PIN_MODE));
836 criticalErrorLedPort = getHwPort("CRITICAL", led);
837 criticalErrorLedPin = getHwPin("CRITICAL", led);
838 criticalErrorLedState = (LED_PIN_MODE == OM_INVERTED) ? 0 : 1;
839}
OutputPin errorLedPin
Definition efi_gpio.h:105
void initPin(const char *msg, brain_pin_e brainPin, pin_output_mode_e outputMode, bool forceInitWithFatalError=false)
Definition efi_gpio.cpp:711
ioportmask_t criticalErrorLedPin
Definition efi_gpio.cpp:830
ioportid_t criticalErrorLedPort
Definition efi_gpio.cpp:829
uint8_t criticalErrorLedState
Definition efi_gpio.cpp:831
EnginePins enginePins
Definition efi_gpio.cpp:24
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin)
ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin)

Referenced by initPrimaryPins().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initMiscOutputPins()

void initMiscOutputPins ( )

Definition at line 690 of file efi_gpio.cpp.

690 {
691#if EFI_GPIO_HARDWARE
692
693#if HAL_USE_SPI
695#endif /* HAL_USE_SPI */
696
697#if EFI_SHAFT_POSITION_INPUT
698 // todo: migrate remaining OutputPin to RegisteredOutputPin in order to get consistent dynamic pin init/deinit
700#endif // EFI_SHAFT_POSITION_INPUT
701
703
704#endif /* EFI_GPIO_HARDWARE */
705}
OutputPin o2heater
Definition efi_gpio.h:99
OutputPin debugTriggerSync
Definition efi_gpio.h:110
OutputPin sdCsPin
Definition efi_gpio.h:124
static constexpr engine_configuration_s * engineConfiguration

Referenced by initHardware().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initPrimaryPins()

void initPrimaryPins ( )

Definition at line 842 of file efi_gpio.cpp.

842 {
843#if EFI_PROD_CODE
844 initErrorLed(LED_CRITICAL_ERROR_BRAIN_PIN);
845
847#endif /* EFI_PROD_CODE */
848}
static void debug()
Definition efi_gpio.cpp:250
void addConsoleAction(const char *token, Void callback)
Register console action without parameters.
static void initErrorLed(Gpio led)
Definition efi_gpio.cpp:834

Referenced by initHardwareNoConfig().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ turnAllPinsOff()

void turnAllPinsOff ( )

This method is part of fatal error handling. The whole method is pretty naive, but that's at least something.

Definition at line 854 of file efi_gpio.cpp.

854 {
855 for (int i = 0; i < MAX_CYLINDER_COUNT; i++) {
856 enginePins.injectors[i].setValue(false);
857 enginePins.coils[i].setValue(false);
859 }
862 enginePins.checkEnginePin.setValue(true); // yes this one can go ON
863#if EFI_PROD_CODE && HW_HELLEN
865#endif
866}
RegisteredOutputPin mainRelay
Definition efi_gpio.h:76
IgnitionOutputPin trailingCoils[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:130
InjectorOutputPin injectors[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:127
RegisteredOutputPin fuelPumpRelay
Definition efi_gpio.h:91
IgnitionOutputPin coils[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:129
RegisteredOutputPin checkEnginePin
Definition efi_gpio.h:118
void setValue(const char *msg, int logicValue, bool isForce=false)
Definition efi_gpio.cpp:604
void hellenDisableEnSilently()
Here is the call graph for this function:

Variable Documentation

◆ auxValveShortNames

const char* const auxValveShortNames[] = { "a1", "a2"}
static

Definition at line 62 of file efi_gpio.cpp.

62{ "a1", "a2"};

Referenced by EnginePins::EnginePins().

◆ criticalErrorLedPin

ioportmask_t criticalErrorLedPin

Definition at line 830 of file efi_gpio.cpp.

Referenced by initErrorLed().

◆ criticalErrorLedPort

ioportid_t criticalErrorLedPort

Definition at line 829 of file efi_gpio.cpp.

Referenced by initErrorLed().

◆ criticalErrorLedState

uint8_t criticalErrorLedState

Definition at line 831 of file efi_gpio.cpp.

Referenced by initErrorLed().

◆ enginePins

EnginePins enginePins

Definition at line 24 of file efi_gpio.cpp.

Referenced by acRelayBench(), applyIACposition(), applyNewHardwareSettings(), auxPlainPinTurnOn(), blink_digits(), canDashboardHaltech(), configureRusefiLuaHooks(), TriggerDecoderBase::decodeTriggerEvent(), disengageStarterIfNeeded(), doRunBenchTestLuaOutput(), doRunFuelInjBench(), doRunSolenoidBench(), doRunSparkBench(), doStartCranking(), Engine::efiWatchdog(), endSimultaneousInjectionOnlyTogglePins(), EnginePins::EnginePins(), errorHandlerWriteReportFile(), fan2Bench(), fanBenchExt(), fireSparkAndPrepareNextSchedule(), firmwareErrorV(), fuelPumpBenchExt(), IdleController::getIdlePosition(), FanControl1::getPin(), FanControl2::getPin(), IdleController::getRunningOpenLoop(), hdAcrBench(), hpfpValveBench(), TachometerModule::init(), SimpleTransmissionController::init(), Generic4TransmissionController::init(), Gm4l6xTransmissionController::init(), initAlternatorCtrl(), initErrorLed(), initMiscOutputPins(), initSpeedometer(), initStatusLeds(), initWarningRunningPins(), isGdiEngine(), Engine::isMainRelayEnabled(), luaDeInitPins(), mainRelayBench(), milBench(), Engine::onEngineHasStopped(), HpfpController::onFastCallback(), AcController::onSlowCallback(), HarleyAcr::onSlowCallback(), MainRelayController::onSlowCallback(), NitrousController::onSlowCallback(), FuelPumpController::onSlowCallback(), VvlController::onSlowCallback(), SensorChecker::onSlowCallback(), Engine::OnTriggerSynchronization(), Engine::periodicSlowCallback(), HpfpController::pinTurnOff(), HpfpController::pinTurnOn(), populateFrame(), prepareCylinderIgnitionSchedule(), printEngineSnifferPinMappings(), resetConfigurationExt(), FuelSchedule::resetOverlapping(), resetPinStats(), HpfpController::scheduleNextCycle(), sendPinStatePackets(), setPinConfigurationOverrides(), Generic4TransmissionController::setTccState(), slowStartStopButtonCallback(), EnginePins::startAuxValves(), startBoostPin(), starterRelayBench(), startHardware(), EnginePins::startIgnitionPins(), EnginePins::startInjectionPins(), startPwm(), startSimultaneousInjection(), EnginePins::stopAuxValves(), EnginePins::stopIgnitionPins(), EnginePins::stopInjectionPins(), turnAllPinsOff(), turnSparkPinHighStartCharging(), InjectionEvent::update(), SimpleTransmissionController::update(), updateFlags(), and updateTunerStudioState().

◆ injectorNames

const char* const injectorNames[]
static
Initial value:
= { "Injector 1", "Injector 2", "Injector 3", "Injector 4", "Injector 5", "Injector 6",
"Injector 7", "Injector 8", "Injector 9", "Injector 10", "Injector 11", "Injector 12"}

Definition at line 50 of file efi_gpio.cpp.

50 { "Injector 1", "Injector 2", "Injector 3", "Injector 4", "Injector 5", "Injector 6",
51 "Injector 7", "Injector 8", "Injector 9", "Injector 10", "Injector 11", "Injector 12"};

Referenced by EnginePins::EnginePins().

◆ injectorShortNames

const char* const injectorShortNames[]
static
Initial value:
= { PROTOCOL_INJ_SHORT_PREFIX "1", PROTOCOL_INJ_SHORT_PREFIX "2", "i3", "i4", "i5", "i6", "i7", "i8",
"i9", "iA", "iB", "iC"}

Definition at line 53 of file efi_gpio.cpp.

53 { PROTOCOL_INJ_SHORT_PREFIX "1", PROTOCOL_INJ_SHORT_PREFIX "2", "i3", "i4", "i5", "i6", "i7", "i8",
54 "i9", "iA", "iB", "iC"};

Referenced by EnginePins::EnginePins().

◆ injectorStage2Names

const char* const injectorStage2Names[]
static
Initial value:
= { "Injector Second Stage 1", "Injector Second Stage 2", "Injector Second Stage 3", "Injector Second Stage 4", "Injector Second Stage 5", "Injector Second Stage 6",
"Injector Second Stage 7", "Injector Second Stage 8", "Injector Second Stage 9", "Injector Second Stage 10", "Injector Second Stage 11", "Injector Second Stage 12"}

Definition at line 56 of file efi_gpio.cpp.

56 { "Injector Second Stage 1", "Injector Second Stage 2", "Injector Second Stage 3", "Injector Second Stage 4", "Injector Second Stage 5", "Injector Second Stage 6",
57 "Injector Second Stage 7", "Injector Second Stage 8", "Injector Second Stage 9", "Injector Second Stage 10", "Injector Second Stage 11", "Injector Second Stage 12"};

Referenced by EnginePins::EnginePins().

◆ injectorStage2ShortNames

const char* const injectorStage2ShortNames[]
static
Initial value:
= { PROTOCOL_INJ_STAGE2_SHORT_PREFIX "1", PROTOCOL_INJ_STAGE2_SHORT_PREFIX "2", "j3", "j4", "j5", "j6", "j7", "j8",
"j9", "jA", "jB", "jC"}

Definition at line 59 of file efi_gpio.cpp.

59 { PROTOCOL_INJ_STAGE2_SHORT_PREFIX "1", PROTOCOL_INJ_STAGE2_SHORT_PREFIX "2", "j3", "j4", "j5", "j6", "j7", "j8",
60 "j9", "jA", "jB", "jC"};

Referenced by EnginePins::EnginePins().

◆ laNames

const char* laNames[]
Initial value:
= {
"input1",
"input2",
"input3",
"input4"}

Definition at line 40 of file efi_gpio.cpp.

40 {
41 "input1",
42 "input2",
43 "input3",
44 "input4"};

Referenced by addEngineSnifferLogicAnalyzerEvent().

◆ registeredOutputHead

RegisteredOutputPin* registeredOutputHead = nullptr
static

◆ sparkNames

const char* const sparkNames[]
static
Initial value:
= { "Coil 1", "Coil 2", "Coil 3", "Coil 4", "Coil 5", "Coil 6", "Coil 7", "Coil 8",
"Coil 9", "Coil 10", "Coil 11", "Coil 12"}

Definition at line 26 of file efi_gpio.cpp.

26 { "Coil 1", "Coil 2", "Coil 3", "Coil 4", "Coil 5", "Coil 6", "Coil 7", "Coil 8",
27 "Coil 9", "Coil 10", "Coil 11", "Coil 12"};

Referenced by EnginePins::EnginePins().

◆ sparkShortNames

const char* const sparkShortNames[]
static
Initial value:
= { PROTOCOL_COIL_SHORT_PREFIX "1", PROTOCOL_COIL_SHORT_PREFIX "2", "c3", "c4", "c5", "c6", "c7", "c8",
"c9", "cA", "cB", "cD"}

Definition at line 47 of file efi_gpio.cpp.

47 { PROTOCOL_COIL_SHORT_PREFIX "1", PROTOCOL_COIL_SHORT_PREFIX "2", "c3", "c4", "c5", "c6", "c7", "c8",
48 "c9", "cA", "cB", "cD"};

Referenced by EnginePins::EnginePins().

◆ trailNames

const char* const trailNames[]
static
Initial value:
= { "Trail 1", "Trail 2", "Trail 3", "Trail 4", "Trail 5", "Trail 6", "Trail 7", "Trail 8",
"Trail 9", "Trail 10", "Trail 11", "Trail 12"}

Definition at line 29 of file efi_gpio.cpp.

29 { "Trail 1", "Trail 2", "Trail 3", "Trail 4", "Trail 5", "Trail 6", "Trail 7", "Trail 8",
30 "Trail 9", "Trail 10", "Trail 11", "Trail 12"};

Referenced by EnginePins::EnginePins().

◆ trailShortNames

const char* const trailShortNames[] = { "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "rA", "rB", "rD" }
static

Definition at line 32 of file efi_gpio.cpp.

32{ "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "rA", "rB", "rD" };

Referenced by EnginePins::EnginePins().

◆ verboseMode

bool verboseMode
extern

◆ vvtNames

const char* vvtNames[]
Initial value:
= {
"VVT1",
"VVT2",
"VVT3",
"VVT4"}

Definition at line 34 of file efi_gpio.cpp.

34 {
35 "VVT1",
36 "VVT2",
37 "VVT3",
38 "VVT4"};

Referenced by addEngineSnifferVvtEvent(), and printEngineSnifferPinMappings().

Go to the source code of this file.