sensor_checker: translate pin_diag to OBD codes

This commit is contained in:
Andrey Gusakov 2024-01-03 13:30:13 +03:00 committed by rusefillc
parent 8697d55ba1
commit 5987212d8d
2 changed files with 8 additions and 2 deletions

View File

@ -307,7 +307,9 @@ enum class ObdCode : uint16_t {
//P0259 Injection Pump Fuel Metering Control "B" High (Cam/R
//P0260 Injection Pump Fuel Metering Control "B" Intermittent Injector)
//P0261 Cylinder I Injector Circuit Low
OBD_Injector_Circuit_1_Low = 261,
//P0262 Cylinder I Injector Circuit High
OBD_Injector_Circuit_1_High = 262,
//P0263 Cylinder I Contribution/Balance Fault
//P0264 Cylinder 2 Injector Circuit Low
//P0265 Cylinder 2 Injector Circuit High

View File

@ -128,9 +128,13 @@ static ObdCode getCodeForInjector(int idx, brain_pin_diag_e diag) {
return ObdCode::None;
}
// TODO: do something more intelligent with `diag`?
UNUSED(diag);
if ((diag & PIN_OPEN) || (diag & PIN_SHORT_TO_GND)) {
return (ObdCode)((int)ObdCode::OBD_Injector_Circuit_1_Low + (idx * 3));
} else if ((diag & PIN_SHORT_TO_BAT) || (diag & PIN_OVERLOAD)) {
return (ObdCode)((int)ObdCode::OBD_Injector_Circuit_1_High + (idx * 3));
}
/* else common error code */
return (ObdCode)((int)ObdCode::OBD_Injector_Circuit_1 + idx);
}
#endif // EFI_ENGINE_CONTROL