rusefi/firmware/controllers/core/le_functions.cpp

71 lines
2.4 KiB
C++
Raw Normal View History

2014-10-05 11:03:00 -07:00
/**
* @file le_functions.cpp
*
* @date Oct 5, 2014
* @author Andrey Belomutskiy, (c) 2012-2014
*/
#include "main.h"
#include "le_functions.h"
#include "allsensors.h"
2014-10-06 00:03:15 -07:00
#include "rpm_calculator.h"
2014-11-16 17:03:13 -08:00
#include "efiGpio.h"
2014-10-05 11:03:00 -07:00
2014-11-17 12:03:37 -08:00
//extern LENameOrdinalPair * LE_FIRST;
2014-10-05 14:03:04 -07:00
2014-11-17 12:03:37 -08:00
/**
* Here we define all rusEfi-specific methods
*/
2014-10-05 14:03:04 -07:00
static LENameOrdinalPair leRpm(LE_METHOD_RPM, "rpm");
2014-10-06 00:03:15 -07:00
static LENameOrdinalPair leTps(LE_METHOD_TPS, "tps");
static LENameOrdinalPair leMaf(LE_METHOD_MAF, "maf");
2014-11-06 10:04:30 -08:00
static LENameOrdinalPair leVBatt(LE_METHOD_VBATT, "vbatt");
2014-10-05 14:03:04 -07:00
static LENameOrdinalPair leFan(LE_METHOD_FAN, "fan");
static LENameOrdinalPair leCoolant(LE_METHOD_COOLANT, "coolant");
2014-11-28 20:03:26 -08:00
static LENameOrdinalPair leAcToggle(LE_METHOD_AC_TOGGLE, "ac_on_switch");
2014-10-05 14:03:04 -07:00
static LENameOrdinalPair leFanOnSetting(LE_METHOD_FAN_ON_SETTING, "fan_on_setting");
static LENameOrdinalPair leFanOffSetting(LE_METHOD_FAN_OFF_SETTING, "fan_off_setting");
2014-10-06 02:03:01 -07:00
static LENameOrdinalPair leTimeSinceBoot(LE_METHOD_TIME_SINCE_BOOT, "time_since_boot");
2014-12-05 19:04:09 -08:00
static LENameOrdinalPair leFsioSsetting(LE_METHOD_FSIO_SETTING, "fsio_setting");
2014-10-05 14:03:04 -07:00
2014-10-05 11:03:00 -07:00
#if EFI_PROD_CODE || EFI_SIMULATOR
2014-12-05 19:04:09 -08:00
float getLEValue(Engine *engine, calc_stack_t *s, le_action_e action) {
2014-10-09 00:02:51 -07:00
efiAssert(engine!=NULL, "getLEValue", NAN);
switch (action) {
2014-11-16 17:03:13 -08:00
case LE_METHOD_FAN:
return getOutputPinValue(FAN_RELAY);
2014-11-26 20:03:05 -08:00
case LE_METHOD_AC_TOGGLE:
return getAcToggle(engine);
2014-10-05 11:03:00 -07:00
case LE_METHOD_COOLANT:
2014-10-31 12:03:00 -07:00
return getCoolantTemperature(engine);
2014-10-06 00:03:15 -07:00
case LE_METHOD_INTAKE_AIR:
2014-10-31 12:03:00 -07:00
return getIntakeAirTemperature(engine);
2014-10-06 00:03:15 -07:00
case LE_METHOD_RPM:
2014-11-11 13:05:09 -08:00
return engine->rpmCalculator.rpm();
2014-10-06 00:03:15 -07:00
case LE_METHOD_TIME_SINCE_BOOT:
return getTimeNowSeconds();
2014-11-06 10:04:30 -08:00
case LE_METHOD_FAN_OFF_SETTING:
return engine->engineConfiguration->fanOffTemperature;
case LE_METHOD_FAN_ON_SETTING:
return engine->engineConfiguration->fanOnTemperature;
case LE_METHOD_VBATT:
return getVBatt(engine->engineConfiguration);
2014-10-05 11:03:00 -07:00
default:
2014-12-06 12:04:01 -08:00
firmwareError("FSIO unexpected %d", action);
2014-10-05 12:03:09 -07:00
return NAN;
2014-10-05 11:03:00 -07:00
}
}
#endif
2014-12-06 08:03:50 -08:00
2014-12-07 15:03:08 -08:00
void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp, int freq) {
2014-12-06 08:03:50 -08:00
board_configuration_s *boardConfiguration = &engineConfiguration->bc;
boardConfiguration->fsioPins[index] = pin;
strcpy(boardConfiguration->le_formulas[index], exp);
2014-12-07 15:03:08 -08:00
boardConfiguration->fsioFrequency[index] = freq;
}
void setFsio(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp) {
setFsioExt(engineConfiguration, index, pin, exp, 0);
2014-12-06 08:03:50 -08:00
}