reduce chance of invalid CAM setting fix #3105

This commit is contained in:
rusefillc 2021-08-03 22:14:22 -04:00
parent 25414ebdad
commit c1275af29c
3 changed files with 18 additions and 0 deletions

View File

@ -798,6 +798,20 @@ bool isTriggerConfigChanged(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
return engine->isTriggerConfigChanged;
}
void validateTriggerInputs(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (CONFIG(triggerInputPins[0]) == GPIO_UNASSIGNED && CONFIG(triggerInputPins[1]) != GPIO_UNASSIGNED) {
firmwareError(OBD_PCM_Processor_Fault, "First trigger channel is missing");
}
if (CONFIG(camInputs[0]) == GPIO_UNASSIGNED && CONFIG(camInputs[1]) != GPIO_UNASSIGNED) {
firmwareError(OBD_PCM_Processor_Fault, "If you only have cam on exhaust please pretend that it's on intake in configuration");
}
if (CONFIG(camInputs[0]) == GPIO_UNASSIGNED && CONFIG(camInputs[2]) != GPIO_UNASSIGNED) {
firmwareError(OBD_PCM_Processor_Fault, "First bank cam input is required if second bank specified");
}
}
void initTriggerCentral() {
strcpy((char*) shaft_signal_msg_index, "x_");

View File

@ -90,6 +90,8 @@ void hwHandleShaftSignal(int signalIndex, bool isRising, efitick_t timestamp DEC
void handleShaftSignal(int signalIndex, bool isRising, efitick_t timestamp DECLARE_ENGINE_PARAMETER_SUFFIX);
void hwHandleVvtCamSignal(trigger_value_e front, efitick_t timestamp, int index DECLARE_ENGINE_PARAMETER_SUFFIX);
void validateTriggerInputs(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void initTriggerCentral();
int isSignalDecoderError(void);

View File

@ -499,6 +499,8 @@ void startHardware(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
startJoystickPins();
#endif /* HAL_USE_PAL && EFI_JOYSTICK */
validateTriggerInputs(PASS_ENGINE_PARAMETER_SIGNATURE);
startTriggerDebugPins(PASS_ENGINE_PARAMETER_SIGNATURE);
startPedalPins(PASS_ENGINE_PARAMETER_SIGNATURE);