Output pin init/deinit needs a linked list #1803

This commit is contained in:
rusefillc 2020-11-03 11:01:43 -05:00
parent 4397c1f18b
commit fa49bbd580
1 changed files with 9 additions and 3 deletions

View File

@ -196,6 +196,12 @@ void EnginePins::unregisterPins() {
#endif /* EFI_PROD_CODE */
}
#define initIfPinOrModeChanged(output, name, pin, pinMode) \
if (isPinOrModeChanged(pin, pinMode)) { \
output.initPin(name, CONFIG(pin), &CONFIG(pinMode)); \
}
void EnginePins::startPins(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_ENGINE_CONTROL
startInjectionPins();
@ -206,10 +212,10 @@ void EnginePins::startPins(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
starterControl.initPin("Starter control", CONFIG(starterControlPin));
#endif /* EFI_ENGINE_CONTROL */
mainRelay.initPin("Main relay", CONFIG(mainRelayPin), &CONFIG(mainRelayPinMode));
initIfPinOrModeChanged(mainRelay, "Main relay", mainRelayPin, mainRelayPinMode);
fanRelay.initPin("Fan", CONFIG(fanPin), &CONFIG(fanPinMode));
acRelay.initPin("A/C relay", CONFIG(acRelayPin), &CONFIG(acRelayPinMode));
initIfPinOrModeChanged(fanRelay, "Fan", fanPin, fanPinMode);
initIfPinOrModeChanged(acRelay, "A/C relay", acRelayPin, acRelayPinMode);
// todo: should we move this code closer to the fuel pump logic?
fuelPumpRelay.initPin("Fuel pump", CONFIG(fuelPumpPin), &CONFIG(fuelPumpPinMode));
boostPin.initPin("Boost", CONFIG(boostControlPin));