From d4a2ab4c56b4a0d7027b6f96017b9c1f70b51bb9 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sat, 27 Sep 2014 14:03:45 -0500 Subject: [PATCH] auto-sync --- firmware/console/status_loop.cpp | 1 + firmware/controllers/algo/fuel_math.cpp | 23 ---------------------- firmware/controllers/algo/io_pins.h | 2 -- firmware/controllers/lcd_controller.cpp | 1 + firmware/controllers/system/efiGpio.cpp | 26 +++++++++++++++++++++++++ firmware/controllers/system/efiGpio.h | 3 +++ firmware/hw_layer/io_pins.c | 4 ---- unit_tests/test_fuel_map.cpp | 2 +- 8 files changed, 32 insertions(+), 30 deletions(-) diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 4d2af41a0b..2e618c3dd9 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -36,6 +36,7 @@ #include "trigger_central.h" #include "engine_state.h" #include "io_pins.h" +#include "efiGpio.h" #include "mmc_card.h" #include "console_io.h" #include "malfunction_central.h" diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index d11f65291c..9872dd3f7e 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -169,26 +169,3 @@ float getStartingFuel(float coolantTemperature) { engineConfiguration->crankingSettings.coolantTempMaxC, engineConfiguration->crankingSettings.fuelAtMaxTempMs, coolantTemperature); } - -/** - * @return 0 for OM_DEFAULT and OM_OPENDRAIN - */ - -inline static int getElectricalValue0(pin_output_mode_e mode) { - return mode == OM_INVERTED || mode == OM_OPENDRAIN_INVERTED; -} - -/** - * @return 1 for OM_DEFAULT and OM_OPENDRAIN - */ -inline static int getElectricalValue1(pin_output_mode_e mode) { - return mode == OM_DEFAULT || mode == OM_OPENDRAIN; -} - -// todo: this method is here for unit test visibility. todo: move to a bette place! -int getElectricalValue(int logicalValue, pin_output_mode_e mode) { - efiAssert(mode <= OM_OPENDRAIN_INVERTED, "invalid pin_output_mode_e", -1); - - return logicalValue ? getElectricalValue1(mode) : getElectricalValue0(mode); -} - diff --git a/firmware/controllers/algo/io_pins.h b/firmware/controllers/algo/io_pins.h index 5742892e2c..87bd49d226 100644 --- a/firmware/controllers/algo/io_pins.h +++ b/firmware/controllers/algo/io_pins.h @@ -133,8 +133,6 @@ io_pin_e getPinByName(const char *name); void turnOutputPinOn(io_pin_e pin); void turnOutputPinOff(io_pin_e pin); void setOutputPinValue(io_pin_e pin, int logicValue); -int getElectricalValue(int logicalValue, pin_output_mode_e mode); -int getOutputPinValue(io_pin_e pin); void setDefaultPinState(io_pin_e pin, pin_output_mode_e *defaultState); void outputPinRegisterExt2(const char *msg, io_pin_e ioPin, brain_pin_e brainPin, pin_output_mode_e *outputMode); diff --git a/firmware/controllers/lcd_controller.cpp b/firmware/controllers/lcd_controller.cpp index f6086acf49..6dca705391 100644 --- a/firmware/controllers/lcd_controller.cpp +++ b/firmware/controllers/lcd_controller.cpp @@ -14,6 +14,7 @@ #include "engine.h" #include "rtc_helper.h" #include "io_pins.h" +#include "efiGpio.h" extern Engine engine; extern engine_configuration_s *engineConfiguration; diff --git a/firmware/controllers/system/efiGpio.cpp b/firmware/controllers/system/efiGpio.cpp index 34a124c4cf..c91656e7dd 100644 --- a/firmware/controllers/system/efiGpio.cpp +++ b/firmware/controllers/system/efiGpio.cpp @@ -12,7 +12,33 @@ // todo: clean this mess, this should become 'static'/private OutputPin outputs[IO_PIN_COUNT]; +int getOutputPinValue(io_pin_e pin) { + return getLogicPinValue(&outputs[pin]); +} int getLogicPinValue(OutputPin * outputPin) { return outputPin->currentLogicValue; } + +/** + * @return 0 for OM_DEFAULT and OM_OPENDRAIN + */ + +inline static int getElectricalValue0(pin_output_mode_e mode) { + return mode == OM_INVERTED || mode == OM_OPENDRAIN_INVERTED; +} + +/** + * @return 1 for OM_DEFAULT and OM_OPENDRAIN + */ +inline static int getElectricalValue1(pin_output_mode_e mode) { + return mode == OM_DEFAULT || mode == OM_OPENDRAIN; +} + +// todo: this method is here for unit test visibility. todo: move to a bette place! +int getElectricalValue(int logicalValue, pin_output_mode_e mode) { + efiAssert(mode <= OM_OPENDRAIN_INVERTED, "invalid pin_output_mode_e", -1); + + return logicalValue ? getElectricalValue1(mode) : getElectricalValue0(mode); +} + diff --git a/firmware/controllers/system/efiGpio.h b/firmware/controllers/system/efiGpio.h index 790ce2ce4d..e2e97dc242 100644 --- a/firmware/controllers/system/efiGpio.h +++ b/firmware/controllers/system/efiGpio.h @@ -8,6 +8,7 @@ #define EFIGPIO_H_ #include "main.h" +#include "io_pins.h" /** * @brief Single output pin reference and state @@ -30,6 +31,8 @@ extern "C" #endif /* __cplusplus */ int getLogicPinValue(OutputPin * outputPin); +int getOutputPinValue(io_pin_e pin); +int getElectricalValue(int logicalValue, pin_output_mode_e mode); #ifdef __cplusplus } diff --git a/firmware/hw_layer/io_pins.c b/firmware/hw_layer/io_pins.c index 3080293040..e6d2d8a194 100644 --- a/firmware/hw_layer/io_pins.c +++ b/firmware/hw_layer/io_pins.c @@ -68,10 +68,6 @@ void setOutputPinValue(io_pin_e pin, int logicValue) { setPinValue(&outputs[pin], getElectricalValue(logicValue, mode), logicValue); } -int getOutputPinValue(io_pin_e pin) { - return getLogicPinValue(&outputs[pin]); -} - void setDefaultPinState(io_pin_e pin, pin_output_mode_e *outputMode) { pin_output_mode_e mode = *outputMode; assertOMode(mode); diff --git a/unit_tests/test_fuel_map.cpp b/unit_tests/test_fuel_map.cpp index cb45ee8cb7..3bdbaa29a1 100644 --- a/unit_tests/test_fuel_map.cpp +++ b/unit_tests/test_fuel_map.cpp @@ -16,10 +16,10 @@ #include "ec2.h" #include "trigger_decoder.h" #include "engine_test_helper.h" +#include "efiGpio.h" extern float testMafValue; - extern engine_configuration_s *engineConfiguration; extern engine_configuration2_s *engineConfiguration2;