rusefi/unit_tests/tests/util/test_engine_configuration.h

81 lines
4.2 KiB
C++

//
// Created by kifir on 11/4/24.
//
#pragma once
#include "batt_lag_corr_curve.h"
class TestEngineConfiguration {
public:
static TestEngineConfiguration& getInstance();
// Launch Control Settings
void configureLaunchControlEnabled(std::optional<bool> launchControlEnabled);
void configureLaunchActivationMode(std::optional<launchActivationMode_e> launchActivationMode);
void configureLaunchSpeedThreshold(std::optional<int> launchSpeedThreshold);
void configureLaunchRpm(std::optional<int> launchRpm);
void configureLaunchRpmWindow(std::optional<int> launchRpmWindow);
void configureLaunchCorrectionsEndRpm(std::optional<int> launchCorrectionsEndRpm);
void configureIgnitionRetardEnable(std::optional<bool> ignitionRetardEnable);
void configureIgnitionRetard(std::optional<float> ignitionRetard);
void configureSmoothRetardMode(std::optional<bool> smoothRetardMode);
void configureEnableIgnitionCut(std::optional<bool> enableIgnitionCut);
void configureInitialIgnitionCutPercent(std::optional<int> initialIgnitionCut);
void configureFinalIgnitionCutPercentBeforeLaunch(std::optional<int> finalIgnitionCutBeforeLaunch);
// Shift Torque Reduction (Flat Shift)
void configureTorqueReductionEnabled(std::optional<bool> isTorqueReductionEnabled);
void configureTorqueReductionActivationMode(std::optional<torqueReductionActivationMode_e> activationMode);
void configureTorqueReductionTriggerPin(std::optional<switch_input_pin_e> pin);
void configureTorqueReductionButtonInverted(std::optional<bool> pinInverted);
void configureLaunchActivatePin(std::optional<switch_input_pin_e> pin);
void configureLaunchActivateInverted(std::optional<bool> pinInverted);
void configureLimitTorqueReductionTime(std::optional<bool> limitTorqueReductionTime);
void configureTorqueReductionTime(std::optional<float> timeout);
void configureTorqueReductionArmingRpm(std::optional<float> armingRpm);
void configureTorqueReductionArmingApp(std::optional<float> armingApp);
void configureTorqueReductionIgnitionCut(std::optional<int8_t> ignitionCut);
void configureTorqueReductionIgnitionRetard(std::optional<int8_t> ignitionRetard);
void configureFuelPressureSensorMode(std::optional<fuel_pressure_sensor_mode_e> fuelPressureSensorMode);
// Injector
void configureInjectorFlow(std::optional<float> flow);
void configureInjectorBattLagCorr(std::optional<BattLagCorrCurve> battLagCorr);
void configureInjectorFlowAsMassFlow(std::optional<bool> injectorFlowAsMassFlow);
void configureFuelReferencePressure(std::optional<float> fuelReferencePressure);
void configureInjectorCompensationMode(std::optional<injector_compensation_mode_e> injectorCompensationMode);
// Secondary Injector
void configureInjectorSecondaryFlow(std::optional<float> flow);
void configureInjectorSecondaryBattLagCorr(std::optional<BattLagCorrCurve> battLagCorr);
void configureSecondaryInjectorFuelReferencePressure(std::optional<float> secondaryInjectorFuelReferencePressure);
void configureSecondaryInjectorCompensationMode(
std::optional<injector_compensation_mode_e> secondaryInjectorCompensationMode
);
// Staged injection
void configureEnableStagedInjection(std::optional<bool> isStagedInjectionEnabled);
// Nitrous control
void configureNitrousControlEnabled(std::optional<bool> nitrousControlEnabled);
void configureNitrousControlArmingMethod(std::optional<nitrous_arming_method_e> armingMethod);
void configureNitrousControlTriggerPin(std::optional<switch_input_pin_e> triggerPin);
void configureNitrousControlTriggerPinInverted(std::optional<bool> triggerPinInverted);
void configureNitrousControlTriggerPinMode(std::optional<pin_input_mode_e> triggerPinMode);
void configureNitrousLuaGauge(std::optional<lua_gauge_e> luaGauge);
void configureNitrousLuaGaugeMeaning(std::optional<lua_gauge_meaning_e> luaGaugeMeaning);
void configureNitrousLuaGaugeArmingValue(std::optional<float> luaGaugeArmingValue);
void configureNitrousMinimumTps(std::optional<int> nitrousMinimumTps);
void configureNitrousMinimumClt(std::optional<uint8_t> nitrousMinimumClt);
private:
TestEngineConfiguration();
static TestEngineConfiguration instance;
};