Support disabling most/all features (#1162)

* this flag did nothing

* guard features properly
This commit is contained in:
Matthew Kennedy 2020-02-26 15:16:35 -08:00 committed by GitHub
parent 6c747ebbbe
commit 397907a06f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 67 additions and 32 deletions

View File

@ -801,8 +801,8 @@ int tunerStudioHandleCrcCommand(ts_channel_s *tsChannel, char *data, int incomin
tsOutputChannels.debugIntField3 = index;
}
#if EFI_PROD_CODE
executeTSCommand(subsystem, index);
#if EFI_PROD_CODE && EFI_ENGINE_CONTROL
executeTSCommand(subsystem, index);
#endif /* EFI_PROD_CODE */
sendOkResponse(tsChannel, TS_CRC);
}

View File

@ -310,7 +310,10 @@ static void printSensors(Logging *log) {
if (hasMapSensor(PASS_ENGINE_PARAMETER_SIGNATURE)) {
reportSensorF(log, GAUGE_NAME_FUEL_VE, "%", engine->engineState.currentBaroCorrectedVE * PERCENT_MULT, 2);
}
#if EFI_SHAFT_POSITION_INPUT
reportSensorF(log, GAUGE_NAME_VVT, "deg", engine->triggerCentral.getVVTPosition(), 1);
#endif
float engineLoad = getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE);
reportSensorF(log, GAUGE_NAME_ENGINE_LOAD, "x", engineLoad, 2);
@ -767,7 +770,9 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
// 136
tsOutputChannels->pedalPosition = hasPedalPositionSensor(PASS_ENGINE_PARAMETER_SIGNATURE) ? getPedalPosition(PASS_ENGINE_PARAMETER_SIGNATURE) : 0;
// 140
#if EFI_ENGINE_CONTROL
tsOutputChannels->injectorDutyCycle = getInjectorDutyCycle(rpm PASS_ENGINE_PARAMETER_SUFFIX);
#endif
// 148
tsOutputChannels->fuelTankLevel = engine->sensors.fuelTankLevel;
// 160
@ -785,8 +790,12 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
// 224
efitimesec_t timeSeconds = getTimeNowSeconds();
tsOutputChannels->timeSeconds = timeSeconds;
#if EFI_SHAFT_POSITION_INPUT
// 248
tsOutputChannels->vvtPosition = engine->triggerCentral.getVVTPosition();
#endif
// 252
tsOutputChannels->engineMode = packEngineMode(PASS_ENGINE_PARAMETER_SIGNATURE);
// 120
@ -817,9 +826,6 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->hasFatalError = hasFirmwareError();
tsOutputChannels->coilDutyCycle = getCoilDutyCycle(rpm PASS_ENGINE_PARAMETER_SUFFIX);
tsOutputChannels->isWarnNow = engine->engineState.warnings.isWarningNow(timeSeconds, true);
#if EFI_HIP_9011
tsOutputChannels->isKnockChipOk = (instance.invalidHip9011ResponsesCount == 0);
@ -894,6 +900,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->brakePedalState = engine->brakePedalState;
tsOutputChannels->acSwitchState = engine->acSwitchState;
#if EFI_ENGINE_CONTROL
// tCharge depends on the previous state, so we should use the stored value.
tsOutputChannels->tCharge = ENGINE(engineState.sd.tCharge);
float timing = engine->engineState.timingAdvance;
@ -903,6 +910,8 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->crankingFuelMs = engine->isCylinderCleanupMode ? 0 : getCrankingFuel(PASS_ENGINE_PARAMETER_SIGNATURE);
tsOutputChannels->chargeAirMass = engine->engineState.sd.airMassInOneCylinder;
tsOutputChannels->coilDutyCycle = getCoilDutyCycle(rpm PASS_ENGINE_PARAMETER_SUFFIX);
#endif // EFI_ENGINE_CONTROL
switch (engineConfiguration->debugMode) {
case DBG_AUX_TEMPERATURE:

View File

@ -28,6 +28,8 @@
#include "idle_thread.h"
#include "allsensors.h"
#if EFI_ENGINE_CONTROL
EXTERN_ENGINE
;
@ -328,3 +330,4 @@ void buildTimingMap(float advanceMax DECLARE_CONFIG_PARAMETER_SUFFIX) {
}
}
#endif // EFI_ENGINE_CONTROL

View File

@ -243,6 +243,7 @@ void Engine::preCalculate(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#endif
}
#if EFI_SHAFT_POSITION_INPUT
void Engine::OnTriggerStateDecodingError() {
Engine *engine = this;
EXPAND_Engine;
@ -340,7 +341,7 @@ void Engine::OnTriggerSyncronization(bool wasSynchronized) {
}
}
#endif
void Engine::setConfig(persistent_config_s *config) {
this->config = config;
@ -487,11 +488,13 @@ void Engine::periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineState.periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE);
#if EFI_ENGINE_CONTROL
engine->m.beforeFuelCalc = getTimeNowLowerNt();
int rpm = GET_RPM();
ENGINE(injectionDuration) = getInjectionDuration(rpm PASS_ENGINE_PARAMETER_SUFFIX);
engine->m.fuelCalcTime = getTimeNowLowerNt() - engine->m.beforeFuelCalc;
#endif
}
void doScheduleStopEngine(DECLARE_ENGINE_PARAMETER_SIGNATURE) {

View File

@ -58,11 +58,13 @@ public:
cyclic_buffer<int> triggerErrorDetection;
#if EFI_SHAFT_POSITION_INPUT
void OnTriggerStateDecodingError();
void OnTriggerStateProperState(efitick_t nowNt) override;
void OnTriggerSyncronization(bool wasSynchronized) override;
void OnTriggerInvalidIndex(int currentIndex) override;
void OnTriggerSynchronizationLost() override;
#endif
void setConfig(persistent_config_s *config);
injection_mode_e getCurrentInjectionMode(DECLARE_ENGINE_PARAMETER_SIGNATURE);

View File

@ -247,7 +247,7 @@ percent_t getInjectorDutyCycle(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
floatms_t getInjectionDuration(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
ScopePerf perf(PE::GetInjectionDuration);
#if EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT
#if EFI_SHAFT_POSITION_INPUT
bool isCranking = ENGINE(rpmCalculator).isCranking(PASS_ENGINE_PARAMETER_SIGNATURE);
injection_mode_e mode = isCranking ?
engineConfiguration->crankingInjectionMode :

View File

@ -135,9 +135,11 @@ float getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) {
return getRealMaf(PASS_ENGINE_PARAMETER_SIGNATURE);
case LE_METHOD_MAP:
return getMap(PASS_ENGINE_PARAMETER_SIGNATURE);
#if EFI_SHAFT_POSITION_INPUT
case LE_METHOD_INTAKE_VVT:
case LE_METHOD_EXHAUST_VVT:
return engine->triggerCentral.getVVTPosition();
#endif
case LE_METHOD_TIME_SINCE_BOOT:
return getTimeNowSeconds();

View File

@ -101,9 +101,11 @@
EXTERN_ENGINE;
void initDataStructures(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#if EFI_ENGINE_CONTROL
initFuelMap(PASS_ENGINE_PARAMETER_SIGNATURE);
initTimingMap(PASS_ENGINE_PARAMETER_SIGNATURE);
initSpeedDensity(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif // EFI_ENGINE_CONTROL
}
static void mostCommonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
@ -194,7 +196,11 @@ class EngineStateBlinkingTask : public PeriodicTimerController {
void PeriodicTask() override {
counter++;
#if EFI_SHAFT_POSITION_INPUT
bool is_running = ENGINE(rpmCalculator).isRunning(PASS_ENGINE_PARAMETER_SIGNATURE);
#else
bool is_running = false;
#endif
if (is_running) {
// blink in running mode

View File

@ -13,6 +13,8 @@
#include "event_queue.h"
#include "perf_trace.h"
#if EFI_ENGINE_CONTROL
#if EFI_TUNER_STUDIO
#include "tunerstudio_configuration.h"
#endif /* EFI_TUNER_STUDIO */
@ -495,3 +497,5 @@ percent_t getCoilDutyCycle(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
floatms_t engineCycleDuration = getCrankshaftRevolutionTimeMs(rpm) * (engine->getOperationMode(PASS_ENGINE_PARAMETER_SIGNATURE) == TWO_STROKE ? 1 : 2);
return 100 * totalPerCycle / engineCycleDuration;
}
#endif // EFI_ENGINE_CONTROL

View File

@ -94,7 +94,10 @@ void writeToFlashNow(void) {
scheduleMsg(logger, "Flashing failed");
}
assertEngineReference();
#if EFI_SHAFT_POSITION_INPUT
resetMaxValues();
#endif
}
static bool isValidCrc(persistent_config_container_s *state) {

View File

@ -520,8 +520,6 @@ void prepareOutputSignals(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
TRIGGER_WAVEFORM(prepareShape());
}
#endif /* EFI_ENGINE_CONTROL */
void setFuelRpmBin(float from, float to DECLARE_CONFIG_PARAMETER_SUFFIX) {
setLinearCurve(config->fuelRpmBins, from, to);
}
@ -554,3 +552,5 @@ void setAlgorithm(engine_load_mode_e algo DECLARE_CONFIG_PARAMETER_SUFFIX) {
void setFlatInjectorLag(float value DECLARE_CONFIG_PARAMETER_SUFFIX) {
setArrayValues(engineConfiguration->injector.battLagCorr, value);
}
#endif /* EFI_ENGINE_CONTROL */

View File

@ -227,10 +227,12 @@ static void printMAPInfo(void) {
if (engineConfiguration->hasFrequencyReportingMapSensor) {
scheduleMsg(logger, "instant value=%.2fHz @ %s", mapFreq, hwPortname(CONFIG(frequencyReportingMapInputPin)));
} else {
#if EFI_MAP_AVERAGING
scheduleMsg(logger, "map type=%d/%s MAP=%.2fkPa mapMinBufferLength=%d", engineConfiguration->map.sensor.type,
getAir_pressure_sensor_type_e(engineConfiguration->map.sensor.type),
getMap(),
mapMinBufferLength);
#endif // EFI_MAP_AVERAGING
adc_channel_e mapAdc = engineConfiguration->map.sensor.hwChannel;
static char pinNameBuffer[16];

View File

@ -134,22 +134,14 @@ const char* getConfigurationName(engine_type_e engineType) {
switch (engineType) {
case DEFAULT_FRANKENSO:
return "DEFAULT_FRANKENSO";
#if EFI_SUPPORT_DODGE_NEON
case DODGE_NEON_1995:
return "Neon95";
#endif /* EFI_SUPPORT_DODGE_NEON */
#if EFI_SUPPORT_FORD_ASPIRE
case FORD_ASPIRE_1996:
return "Aspire";
#endif /* EFI_SUPPORT_FORD_ASPIRE */
#if EFI_SUPPORT_FORD_FIESTA
case FORD_FIESTA:
return "Fiesta";
#endif /* EFI_SUPPORT_FORD_FIESTA */
#if EFI_SUPPORT_NISSAN_PRIMERA
case NISSAN_PRIMERA:
return "Primera";
#endif /* EFI_SUPPORT_NISSAN_PRIMERA */
case HONDA_ACCORD_CD:
return "Accord3";
case HONDA_ACCORD_CD_TWO_WIRES:
@ -1051,7 +1043,6 @@ const plain_get_integer_s getI_plain[] = {
{"warning_period", (int*)&engineConfiguration->warningPeriod},
{"hard_limit", &engineConfiguration->rpmHardLimit},
// {"firing_order", setFiringOrder},
// {"algorithm", setAlgorithmInt},
// {"injection_pin_mode", setInjectionPinMode},
// {"ignition_pin_mode", setIgnitionPinMode},
// {"idle_pin_mode", setIdlePinMode},
@ -1169,7 +1160,8 @@ typedef struct {
} command_f_s;
const command_f_s commandsF[] = {
#if EFI_ENGINE_CONTROL && EFI_ENABLE_MOCK_ADC
#if EFI_ENGINE_CONTROL
#if EFI_ENABLE_MOCK_ADC
{MOCK_IAT_COMMAND, setMockIatVoltage},
{MOCK_PPS_POSITION_COMMAND, setMockThrottlePedalPosition},
{MOCK_PPS_VOLTAGE_COMMAND, setMockThrottlePedalSensorVoltage},
@ -1179,9 +1171,7 @@ const command_f_s commandsF[] = {
{MOCK_MAP_COMMAND, setMockMapVoltage},
{"mock_vbatt_voltage", setMockVBattVoltage},
{MOCK_CLT_COMMAND, setMockCltVoltage},
#endif /* EFI_ENGINE_CONTROL && EFI_ENABLE_MOCK_ADC */
{"fsio_curve_1_value", setFsioCurve1Value},
{"fsio_curve_2_value", setFsioCurve2Value},
#endif // EFI_ENABLE_MOCK_ADC
{"ignition_offset", setIgnitionOffset},
{"injection_offset", setInjectionOffset},
{"global_trigger_offset_angle", setGlobalTriggerAngleOffset},
@ -1199,6 +1189,9 @@ const command_f_s commandsF[] = {
{"engine_decel_threshold", setDecelThr},
{"engine_decel_multiplier", setDecelMult},
{"flat_injector_lag", setFlatInjectorLag},
#endif // EFI_ENGINE_CONTROL
{"fsio_curve_1_value", setFsioCurve1Value},
{"fsio_curve_2_value", setFsioCurve2Value},
#if EFI_PROD_CODE
#if EFI_VEHICLE_SPEED
{"mock_vehicle_speed", setMockVehicleSpeed},
@ -1236,6 +1229,7 @@ static void setTpsErrorDetectionTooHigh(int v) {
const command_i_s commandsI[] = {{"ignition_mode", setIgnitionMode},
{"call_from_pitstop", setCallFromPitStop},
#if EFI_ENGINE_CONTROL
{"cranking_rpm", setCrankingRpm},
{"cranking_injection_mode", setCrankingInjectionMode},
{"injection_mode", setInjectionMode},
@ -1259,6 +1253,7 @@ const command_i_s commandsI[] = {{"ignition_mode", setIgnitionMode},
{"idle_solenoid_freq", setIdleSolenoidFrequency},
{"tps_accel_len", setTpsAccelLen},
{"engine_load_accel_len", setEngineLoadAccelLen},
#endif // EFI_ENGINE_CONTROL
#if EFI_PROD_CODE
{"bor", setBor},
#if EFI_CAN_SUPPORT
@ -1408,10 +1403,6 @@ void initSettings(void) {
addConsoleActionII("set_toothed_wheel", setToothedWheel);
// flat curve - constant injector lag regardless of voltage
addConsoleActionF("set_flat_injector_lag", setFlatInjectorLag);
addConsoleActionFF("set_injector_lag", setInjectorLag);
addConsoleActionFF("set_fan", setFanSetting);

View File

@ -14,12 +14,13 @@
class TriggerState;
class TriggerStateListener {
public:
virtual void OnTriggerStateProperState(efitick_t nowNt) = 0;
virtual void OnTriggerSyncronization(bool wasSynchronized) = 0;
virtual void OnTriggerInvalidIndex(int currentIndex) = 0;
virtual void OnTriggerSynchronizationLost() = 0;
struct TriggerStateListener {
#if EFI_SHAFT_POSITION_INPUT
virtual void OnTriggerStateProperState(efitick_t nowNt) = 0;
virtual void OnTriggerSyncronization(bool wasSynchronized) = 0;
virtual void OnTriggerInvalidIndex(int currentIndex) = 0;
virtual void OnTriggerSynchronizationLost() = 0;
#endif
};
typedef void (*TriggerStateCallback)(TriggerState *);

View File

@ -79,7 +79,11 @@ void WaveReader::onFallEvent() {
efitick_t width = nowUs - widthEventTimeUs;
last_wave_high_widthUs = width;
#if EFI_SHAFT_POSITION_INPUT
int revolutionCounter = getRevolutionCounter();
#else
int revolutionCounter = 0;
#endif
totalOnTimeAccumulatorUs += width;
if (currentRevolutionCounter != revolutionCounter) {
@ -227,7 +231,9 @@ void initWaveAnalyzer(Logging *sharedLogger) {
initWave(PROTOCOL_WA_CHANNEL_3, 2);
initWave(PROTOCOL_WA_CHANNEL_4, 3);
#if EFI_SHAFT_POSITION_INPUT
addTriggerEventListener(waTriggerEventListener, "wave analyzer", engine);
#endif
addConsoleAction("waveinfo", showWaveInfo);

View File

@ -182,8 +182,11 @@ void initPinRepository(void) {
initialized = true;
addConsoleAction(CMD_PINS, reportPins);
#if (BOARD_TLE8888_COUNT > 0)
addConsoleAction("tle8888", tle8888_dump_regs);
addConsoleAction("tle8888init", requestTLE8888initialization);
#endif
}
bool brain_pin_is_onchip(brain_pin_e brainPin)