Staged injection support; use two sets of injectors on the same engine #5247

wire up pins for second stage injectors
This commit is contained in:
Matthew Kennedy 2024-01-05 18:43:50 -05:00 committed by rusefillc
parent 393bdbd9f7
commit 37727d4278
5 changed files with 13 additions and 3 deletions

View File

@ -142,6 +142,7 @@ static void printEngineSnifferPinMappings() {
printOutPin(enginePins.coils[i].getShortName(), engineConfiguration->ignitionPins[i]);
printOutPin(enginePins.trailingCoils[i].getShortName(), engineConfiguration->trailingCoilPins[i]);
printOutPin(enginePins.injectors[i].getShortName(), engineConfiguration->injectionPins[i]);
printOutPin(enginePins.injectorsStage2[i].getShortName(), engineConfiguration->injectionPinsStage2[i]);
}
for (int i = 0; i < AUX_DIGITAL_VALVE_COUNT;i++) {
printOutPin(enginePins.auxValve[i].getShortName(), engineConfiguration->auxValves[i]);

View File

@ -48,6 +48,7 @@ private:
public:
// TODO: this should be private
InjectorOutputPin *outputs[MAX_WIRES_COUNT];
InjectorOutputPin *outputsStage2[MAX_WIRES_COUNT];
float injectionStartAngle = 0;
};

View File

@ -186,7 +186,7 @@ EnginePins::EnginePins() :
enginePins.injectors[i].shortName = injectorShortNames[i];
enginePins.injectorsStage2[i].injectorIndex = i;
// enginePins.injectorsStage2[i].setName(injectorStage2Names[i]);
enginePins.injectorsStage2[i].setName(injectorStage2Names[i]);
enginePins.injectorsStage2[i].shortName = injectorStage2ShortNames[i];
}
@ -286,7 +286,7 @@ void EnginePins::stopIgnitionPins() {
void EnginePins::stopInjectionPins() {
for (int i = 0; i < MAX_CYLINDER_COUNT; i++) {
unregisterOutputIfPinOrModeChanged(enginePins.injectors[i], injectionPins[i], injectionPinMode);
// unregisterOutputIfPinOrModeChanged(enginePins.injectorsStage2[i], injectionPinsStage2[i], injectionPinMode);
unregisterOutputIfPinOrModeChanged(enginePins.injectorsStage2[i], injectionPinsStage2[i], injectionPinMode);
}
}
@ -343,6 +343,12 @@ void EnginePins::startInjectionPins() {
output->initPin(output->getName(), engineConfiguration->injectionPinsStage2[i],
engineConfiguration->injectionPinMode);
}
output = &enginePins.injectorsStage2[i];
if (isPinOrModeChanged(injectionPinsStage2[i], injectionPinMode)) {
output->initPin(output->getName(), engineConfiguration->injectionPinsStage2[i],
engineConfiguration->injectionPinMode);
}
}
#endif /* EFI_PROD_CODE */
}

View File

@ -20,6 +20,8 @@ public class NameUtil {
return "Coil #" + name.substring(1);
if (name.charAt(0) == Fields.PROTOCOL_INJ1_SHORT_NAME.charAt(0))
return "Injector #" + name.substring(1);
if (name.charAt(0) == Fields.PROTOCOL_INJ1_STAGE2_SHORT_NAME.charAt(0))
return "Injector Second Stage #" + name.substring(1);
return name;
}
}

View File

@ -288,7 +288,7 @@ public class EngineSnifferPanel {
signalBody = Color.darkGray;
} else if (name.startsWith("HIP")) {
signalBody = Color.white;
} else if (name.startsWith("i")) {
} else if (name.startsWith("i") || name.startsWith("j")) {
// injection
signalBody = Color.green;
} else if (name.startsWith("map")) {