fixing simulator build

This commit is contained in:
rusefi 2018-12-24 08:37:25 -05:00
parent 85d14d714e
commit d49cbac9cd
1 changed files with 18 additions and 14 deletions

View File

@ -17,6 +17,7 @@
#include "allsensors.h" #include "allsensors.h"
#include "rpm_calculator.h" #include "rpm_calculator.h"
#include "efiGpio.h" #include "efiGpio.h"
#include "pwm_generator_logic.h"
/** /**
* in case of zero frequency pin is operating as simple on/off. '1' for ON and '0' for OFF * in case of zero frequency pin is operating as simple on/off. '1' for ON and '0' for OFF
@ -93,8 +94,8 @@ static LEElement * mainRelayLogic;
EXTERN_ENGINE EXTERN_ENGINE
; ;
#if EFI_PROD_CODE || EFI_SIMULATOR
static Logging *logger; static Logging *logger;
#if EFI_PROD_CODE || EFI_SIMULATOR
float getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) { float getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) {
efiAssert(CUSTOM_ERR_ASSERT, engine!=NULL, "getLEValue", NAN); efiAssert(CUSTOM_ERR_ASSERT, engine!=NULL, "getLEValue", NAN);
@ -260,13 +261,11 @@ void onConfigurationChangeFsioCallback(engine_configuration_s *previousConfigura
#endif #endif
} }
#if EFI_PROD_CODE || defined(__DOXYGEN__)
static SimplePwm fsioPwm[FSIO_COMMAND_COUNT] CCM_OPTIONAL;
static LECalculator calc; static LECalculator calc;
extern LEElement * fsioLogics[FSIO_COMMAND_COUNT]; extern LEElement * fsioLogics[FSIO_COMMAND_COUNT];
static SimplePwm fsioPwm[FSIO_COMMAND_COUNT] CCM_OPTIONAL;
// that's crazy, but what's an alternative? we need const char *, a shared buffer would not work for pin repository // that's crazy, but what's an alternative? we need const char *, a shared buffer would not work for pin repository
static const char *getGpioPinName(int index) { static const char *getGpioPinName(int index) {
switch (index) { switch (index) {
@ -369,10 +368,12 @@ static const char * action2String(le_action_e action) {
return buffer; return buffer;
} }
static void setPinState(const char * msg, OutputPin *pin, LEElement *element) { static void setPinState(const char * msg, OutputPin *pin, LEElement *element DECLARE_ENGINE_PARAMETER_SUFFIX) {
#if EFI_PROD_CODE
if (isRunningBenchTest()) { if (isRunningBenchTest()) {
return; // let's not mess with bench testing return; // let's not mess with bench testing
} }
#endif /* EFI_PROD_CODE */
if (element == NULL) { if (element == NULL) {
warning(CUSTOM_FSIO_INVALID_EXPRESSION, "invalid expression for %s", msg); warning(CUSTOM_FSIO_INVALID_EXPRESSION, "invalid expression for %s", msg);
@ -390,6 +391,8 @@ static void setPinState(const char * msg, OutputPin *pin, LEElement *element) {
} }
} }
#if EFI_PROD_CODE || defined(__DOXYGEN__)
static void setFsioFrequency(int index, int frequency) { static void setFsioFrequency(int index, int frequency) {
index--; index--;
if (index < 0 || index >= FSIO_COMMAND_COUNT) { if (index < 0 || index >= FSIO_COMMAND_COUNT) {
@ -403,6 +406,7 @@ static void setFsioFrequency(int index, int frequency) {
scheduleMsg(logger, "Setting FSIO frequency %dHz on #%d@%s", frequency, index + 1, hwPortname(boardConfiguration->fsioOutputPins[index])); scheduleMsg(logger, "Setting FSIO frequency %dHz on #%d@%s", frequency, index + 1, hwPortname(boardConfiguration->fsioOutputPins[index]));
} }
} }
#endif /* EFI_PROD_CODE */
static void useFsioForServo(int servoIndex DECLARE_ENGINE_PARAMETER_SUFFIX) { static void useFsioForServo(int servoIndex DECLARE_ENGINE_PARAMETER_SUFFIX) {
LEElement * element = fsioLogics[8 - 1 + servoIndex]; LEElement * element = fsioLogics[8 - 1 + servoIndex];
@ -414,7 +418,6 @@ static void useFsioForServo(int servoIndex DECLARE_ENGINE_PARAMETER_SUFFIX) {
} }
} }
/** /**
* this method should be invoked periodically to calculate FSIO and toggle corresponding FSIO outputs * this method should be invoked periodically to calculate FSIO and toggle corresponding FSIO outputs
*/ */
@ -425,13 +428,13 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_FUEL_PUMP || defined(__DOXYGEN__) #if EFI_FUEL_PUMP || defined(__DOXYGEN__)
if (boardConfiguration->fuelPumpPin != GPIO_UNASSIGNED) { if (boardConfiguration->fuelPumpPin != GPIO_UNASSIGNED) {
setPinState("pump", &enginePins.fuelPumpRelay, fuelPumpLogic); setPinState("pump", &enginePins.fuelPumpRelay, fuelPumpLogic PASS_ENGINE_PARAMETER_SUFFIX);
} }
#endif /* EFI_FUEL_PUMP */ #endif /* EFI_FUEL_PUMP */
#if EFI_MAIN_RELAY_CONTROL || defined(__DOXYGEN__) #if EFI_MAIN_RELAY_CONTROL || defined(__DOXYGEN__)
if (boardConfiguration->mainRelayPin != GPIO_UNASSIGNED) if (boardConfiguration->mainRelayPin != GPIO_UNASSIGNED)
setPinState("main_relay", &enginePins.mainRelay, mainRelayLogic); setPinState("main_relay", &enginePins.mainRelay, mainRelayLogic PASS_ENGINE_PARAMETER_SUFFIX);
#else /* EFI_MAIN_RELAY_CONTROL */ #else /* EFI_MAIN_RELAY_CONTROL */
/** /**
* main relay is always on if ECU is on, that's a good enough initial implementation * main relay is always on if ECU is on, that's a good enough initial implementation
@ -445,18 +448,18 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
* todo: convert to FSIO? * todo: convert to FSIO?
* open question if heater should be ON during cranking * open question if heater should be ON during cranking
*/ */
enginePins.o2heater.setValue(engine->rpmCalculator.isRunning()); enginePins.o2heater.setValue(engine->rpmCalculator.isRunning(PASS_ENGINE_PARAMETER_SIGNATURE));
if (boardConfiguration->acRelayPin != GPIO_UNASSIGNED) { if (boardConfiguration->acRelayPin != GPIO_UNASSIGNED) {
setPinState("A/C", &enginePins.acRelay, acRelayLogic); setPinState("A/C", &enginePins.acRelay, acRelayLogic PASS_ENGINE_PARAMETER_SUFFIX);
} }
// if (boardConfiguration->alternatorControlPin != GPIO_UNASSIGNED) { // if (boardConfiguration->alternatorControlPin != GPIO_UNASSIGNED) {
// setPinState("alternator", &enginePins.alternatorField, alternatorLogic, engine); // setPinState("alternator", &enginePins.alternatorField, alternatorLogic, engine PASS_ENGINE_PARAMETER_SUFFIX);
// } // }
if (boardConfiguration->fanPin != GPIO_UNASSIGNED) { if (boardConfiguration->fanPin != GPIO_UNASSIGNED) {
setPinState("fan", &enginePins.fanRelay, radiatorFanLogic); setPinState("fan", &enginePins.fanRelay, radiatorFanLogic PASS_ENGINE_PARAMETER_SUFFIX);
} }
if (engineConfiguration->useFSIO15ForIdleRpmAdjustment) { if (engineConfiguration->useFSIO15ForIdleRpmAdjustment) {
@ -497,7 +500,6 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
} }
#endif /* EFI_PROD_CODE */
static void showFsio(const char *msg, LEElement *element) { static void showFsio(const char *msg, LEElement *element) {
#if EFI_PROD_CODE || EFI_SIMULATOR #if EFI_PROD_CODE || EFI_SIMULATOR
@ -653,7 +655,9 @@ void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
addConsoleActionSS("set_fsio_pid_output_pin", (VoidCharPtrCharPtr) setFsioPidOutputPin); addConsoleActionSS("set_fsio_pid_output_pin", (VoidCharPtrCharPtr) setFsioPidOutputPin);
addConsoleActionSS("set_fsio_output_pin", (VoidCharPtrCharPtr) setFsioOutputPin); addConsoleActionSS("set_fsio_output_pin", (VoidCharPtrCharPtr) setFsioOutputPin);
#if EFI_PROD_CODE || defined(__DOXYGEN__)
addConsoleActionII("set_fsio_output_frequency", (VoidIntInt) setFsioFrequency); addConsoleActionII("set_fsio_output_frequency", (VoidIntInt) setFsioFrequency);
#endif
addConsoleActionSS("set_fsio_digital_input_pin", (VoidCharPtrCharPtr) setFsioDigitalInputPin); addConsoleActionSS("set_fsio_digital_input_pin", (VoidCharPtrCharPtr) setFsioDigitalInputPin);
addConsoleActionSS("set_fsio_analog_input_pin", (VoidCharPtrCharPtr) setFsioAnalogInputPin); addConsoleActionSS("set_fsio_analog_input_pin", (VoidCharPtrCharPtr) setFsioAnalogInputPin);