From 37652510e49fa41bc1699029a05c9730775a1cb0 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sun, 3 May 2015 09:09:31 -0400 Subject: [PATCH] auto-sync --- firmware/config/engines/dodge_ram.cpp | 14 ++++++++++++++ firmware/controllers/injector_central.cpp | 10 ++++++---- firmware/controllers/settings.cpp | 22 ++++++++++------------ 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/firmware/config/engines/dodge_ram.cpp b/firmware/config/engines/dodge_ram.cpp index b99fcdb556..32f3631974 100644 --- a/firmware/config/engines/dodge_ram.cpp +++ b/firmware/config/engines/dodge_ram.cpp @@ -26,5 +26,19 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_F) { boardConfiguration->triggerInputPins[0] = GPIOC_6; boardConfiguration->triggerInputPins[1] = GPIOA_5; + boardConfiguration->injectionPins[0] = GPIOD_3; + boardConfiguration->injectionPins[1] = GPIOE_2; + boardConfiguration->injectionPins[2] = GPIOE_3; + boardConfiguration->injectionPins[3] = GPIOE_4; + boardConfiguration->injectionPins[4] = GPIOD_5; + boardConfiguration->injectionPins[5] = GPIOB_7; + boardConfiguration->injectionPins[6] = GPIOB_8; + boardConfiguration->injectionPins[7] = GPIOB_9; + + boardConfiguration->ignitionPins[0] = GPIOC_9; + + boardConfiguration->mainRelayPin = GPIOE_5; + boardConfiguration->fuelPumpPin = GPIOE_6; + engineConfiguration->vbattAdcChannel = EFI_ADC_NONE; // todo: conflict with what? } diff --git a/firmware/controllers/injector_central.cpp b/firmware/controllers/injector_central.cpp index 6ab6ecc842..9043248412 100644 --- a/firmware/controllers/injector_central.cpp +++ b/firmware/controllers/injector_central.cpp @@ -90,22 +90,24 @@ static void runBench(brain_pin_e brainPin, OutputPin *output, float delayMs, flo int delaySt = (int) (delayMs * CH_FREQUENCY / 1000); int onTimeSt = (int) (onTimeMs * CH_FREQUENCY / 1000); int offTimeSt = (int) (offTimeMs * CH_FREQUENCY / 1000); - if (delaySt <=0) { + if (delaySt < 0) { scheduleMsg(&logger, "Invalid delay %f", delayMs); return; } - if (onTimeSt <=0) { + if (onTimeSt <= 0) { scheduleMsg(&logger, "Invalid onTime %f", onTimeMs); return; } - if (offTimeSt <=0) { + if (offTimeSt <= 0) { scheduleMsg(&logger, "Invalid offTime %f", offTimeMs); return; } scheduleMsg(&logger, "Running bench: ON_TIME=%f ms OFF_TIME=%fms Counter=%d", onTimeMs, offTimeMs, count); scheduleMsg(&logger, "output on %s", hwPortname(brainPin)); - chThdSleep(delaySt); + if (delaySt != 0) { + chThdSleep(delaySt); + } isRunningBench = true; for (int i = 0; i < count; i++) { diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 082d129896..10326cd328 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -604,18 +604,6 @@ static void setIgnitionPin(const char *indexStr, const char *pinName) { boardConfiguration->ignitionPins[index] = pin; } -// set_idle_pin none -static void setIdlePin(const char *pinName) { - brain_pin_e pin = parseBrainPin(pinName); - // todo: extract method - code duplication with other 'set_xxx_pin' methods? - if (pin == GPIO_INVALID) { - scheduleMsg(&logger, "invalid pin name [%s]", pinName); - return; - } - scheduleMsg(&logger, "setting idleValve pin to %s please save&restart", hwPortname(pin)); - boardConfiguration->idle.solenoidPin = pin; -} - static void setIndividualPin(const char *pinName, brain_pin_e *targetPin, const char *name) { brain_pin_e pin = parseBrainPin(pinName); if (pin == GPIO_INVALID) { @@ -626,6 +614,15 @@ static void setIndividualPin(const char *pinName, brain_pin_e *targetPin, const *targetPin = pin; } +// set_idle_pin none +static void setIdlePin(const char *pinName) { + setIndividualPin(pinName, &boardConfiguration->idle.solenoidPin, "idle"); +} + +static void setMainRelayPin(const char *pinName) { + setIndividualPin(pinName, &boardConfiguration->mainRelayPin, "main relay"); +} + static void setACPin(const char *pinName) { setIndividualPin(pinName, &boardConfiguration->acRelayPin, "A/C"); } @@ -1009,6 +1006,7 @@ void initSettings(engine_configuration_s *engineConfiguration) { addConsoleActionS("set_fuel_pump_pin", setFuelPumpPin); addConsoleActionS("set_ac_pin", setACPin); addConsoleActionS("set_idle_pin", setIdlePin); + addConsoleActionS("set_main_relay_pin", setMainRelayPin); addConsoleActionSS("set", setValue);