rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
settings.cpp File Reference

Detailed Description

This file is about configuring engine via the human-readable protocol.

Date
Dec 30, 2012
Author
Andrey Belomutskiy, (c) 2012-2020

Definition in file settings.cpp.

Functions

void printSpiState ()
 
void printConfiguration ()
 Prints current engine configuration to human-readable console.
 
static void setIdleSolenoidFrequency (int value)
 
static void setCrankingRpm (int value)
 
static void setAlgorithmInt (int value)
 
static void setFiringOrder (int value)
 
static void setRpmHardLimit (int value)
 
static void setCrankingIACExtra (float percent)
 
static void setCrankingFuel (float fuelMilligram)
 
static void setGlobalTriggerAngleOffset (float value)
 
static void setCrankingTimingAngle (float value)
 
static void setCrankingInjectionMode (int value)
 
static void setInjectionMode (int value)
 
static void setIgnitionMode (int value)
 
static void setIndividualCoilsIgnition ()
 
static void setTriggerType (int value)
 
static void setDebugMode (int value)
 
static void setWholeTimingMap (float value)
 
static void setWholeTimingMapCmd (float value)
 
static brain_pin_e parseBrainPinWithErrorMessage (const char *pinName)
 
static void setIgnitionPin (const char *indexStr, const char *pinName)
 
void readPin (const char *pinName)
 
static void benchSetPinValue (const char *pinName, int bit)
 
static void benchClearPin (const char *pinName)
 
static void benchSetPin (const char *pinName)
 
static void setIndividualPin (const char *pinName, brain_pin_e *targetPin, const char *name)
 
static void setVssPin (const char *pinName)
 
static void setIdlePin (const char *pinName)
 
static void setAlternatorPin (const char *pinName)
 
static void setTriggerInputPin (const char *indexStr, const char *pinName)
 
static void setTriggerSimulatorPin (const char *indexStr, const char *pinName)
 
static void setAnalogInputPin (const char *sensorStr, const char *pinName)
 
static void setLogicInputPin (const char *indexStr, const char *pinName)
 
static void setSpiMode (int index, bool mode)
 
static void enableOrDisable (const char *param, bool isEnabled)
 
static void enable (const char *param)
 
static void disable (const char *param)
 
static void enableSpi (int index)
 
static void disableSpi (int index)
 
static void scheduleStopEngine ()
 
static void getValue (const char *paramStr)
 
static void setScriptCurve1Value (float value)
 
static void setScriptCurve2Value (float value)
 
static void setValue (const char *paramStr, const char *valueStr)
 
void initSettings ()
 
void printDateTime ()
 
void setDateTime (const char *const isoDateTime)
 
void setEngineTypeAndSave (int value)
 
void setEngineType (int value, bool isWriteToFlash)
 

Variables

int waveChartUsedSize
 
WaveChart waveChart
 
bool verboseRxCan = false
 
const command_f_s commandsF []
 
const command_i_s commandsI []
 

Function Documentation

◆ benchClearPin()

static void benchClearPin ( const char pinName)
static

Definition at line 227 of file settings.cpp.

227 {
228 benchSetPinValue(pinName, 0);
229}
static void benchSetPinValue(const char *pinName, int bit)
Definition settings.cpp:215

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ benchSetPin()

static void benchSetPin ( const char pinName)
static

Definition at line 231 of file settings.cpp.

231 {
232 benchSetPinValue(pinName, 1);
233}

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ benchSetPinValue()

static void benchSetPinValue ( const char pinName,
int  bit 
)
static

Definition at line 215 of file settings.cpp.

215 {
217 if (pin == Gpio::Invalid) {
218 return;
219 }
220 efiSetPadModeWithoutOwnershipAcquisition("bench_pin_test", pin, PAL_MODE_OUTPUT_PUSHPULL);
221 // low-level API which does not care about 'qcDirectPinControlMode'
222 palWritePad(getHwPort("write", pin), getHwPin("write", pin), bit);
223 efiPrintf("pin %s set value", hwPortname(pin));
224 readPin(pinName);
225}
@ Invalid
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin)
ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin)
void efiSetPadModeWithoutOwnershipAcquisition(const char *msg, brain_pin_e brainPin, iomode_t mode)
Definition io_pins.cpp:61
const char * hwPortname(brain_pin_e brainPin)
static brain_pin_e parseBrainPinWithErrorMessage(const char *pinName)
Definition settings.cpp:176
void readPin(const char *pinName)
Definition settings.cpp:205
brain_pin_e pin
Definition stm32_adc.cpp:15

Referenced by benchClearPin(), and benchSetPin().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ disable()

static void disable ( const char param)
static

Definition at line 445 of file settings.cpp.

445 {
446 enableOrDisable(param, false);
447}
static void enableOrDisable(const char *param, bool isEnabled)
Definition settings.cpp:366
static tstrWifiInitParam param

Referenced by initSettings(), setupTLE9201(), and setupTLE9201IncludingStepper().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ disableSpi()

static void disableSpi ( int  index)
static

Definition at line 453 of file settings.cpp.

453 {
454 setSpiMode(index, false);
455}
static void setSpiMode(int index, bool mode)
Definition settings.cpp:346

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ enable()

static void enable ( const char param)
static

◆ enableOrDisable()

static void enableOrDisable ( const char param,
bool  isEnabled 
)
static

Definition at line 366 of file settings.cpp.

366 {
367 if (strEqualCaseInsensitive(param, "useTLE8888_cranking_hack")) {
369#if EFI_SHAFT_POSITION_INPUT
370 } else if (strEqualCaseInsensitive(param, CMD_TRIGGER_HW_INPUT)) {
372#endif // EFI_SHAFT_POSITION_INPUT
373 } else if (strEqualCaseInsensitive(param, "verboseTLE8888")) {
375 } else if (strEqualCaseInsensitive(param, "verboseRxCan")) {
376 verboseRxCan = isEnabled;
377 } else if (strEqualCaseInsensitive(param, "verboseCan")) {
378 engineConfiguration->verboseCan = isEnabled;
379 } else if (strEqualCaseInsensitive(param, "verboseCan2")) {
380 engineConfiguration->verboseCan2 = isEnabled;
381 } else if (strEqualCaseInsensitive(param, "verboseIsoTp")) {
383 } else if (strEqualCaseInsensitive(param, "artificialMisfire")) {
385 } else if (strEqualCaseInsensitive(param, "logic_level_trigger")) {
387 } else if (strEqualCaseInsensitive(param, "can_broadcast")) {
389// } else if (strEqualCaseInsensitive(param, "etb_auto")) {
390// engine->etbAutoTune = isEnabled;
391 } else if (strEqualCaseInsensitive(param, "verboseKLine")) {
393 } else if (strEqualCaseInsensitive(param, "stepperidle")) {
395 } else if (strEqualCaseInsensitive(param, "two_wire_wasted_spark")) {
398 } else if (strEqualCaseInsensitive(param, "altcontrol")) {
400 } else if (strEqualCaseInsensitive(param, "sd")) {
402 } else if (strEqualCaseInsensitive(param, CMD_FUNCTIONAL_TEST_MODE)) {
403 engine->isFunctionalTestMode = isEnabled;
404 } else if (strEqualCaseInsensitive(param, "can_read")) {
406 } else if (strEqualCaseInsensitive(param, "can_write")) {
408 } else if (strEqualCaseInsensitive(param, CMD_INJECTION)) {
410 } else if (strEqualCaseInsensitive(param, CMD_PWM)) {
411 engine->isPwmEnabled = isEnabled;
412 } else if (strEqualCaseInsensitive(param, "trigger_details")) {
414 } else if (strEqualCaseInsensitive(param, "vvt_details")) {
416 } else if (strEqualCaseInsensitive(param, "invertCamVVTSignal")) {
418 } else if (strEqualCaseInsensitive(param, CMD_IGNITION)) {
420#if EFI_EMULATE_POSITION_SENSORS
421 } else if (strEqualCaseInsensitive(param, CMD_SELF_STIMULATION)) {
422 if (isEnabled) {
424 } else {
426 }
427 } else if (strEqualCaseInsensitive(param, CMD_EXTERNAL_STIMULATION)) {
428 if (isEnabled) {
430 } else {
432 }
433#endif // EFI_EMULATE_POSITION_SENSORS
434 } else {
435 efiPrintf("unexpected [%s]", param);
436 return; // well, MISRA would not like this 'return' here :(
437 }
438 efiPrintf("[%s] %s", param, isEnabled ? "enabled" : "disabled");
439}
bool isFunctionalTestMode
Definition engine.h:340
bool isPwmEnabled
Definition engine.h:117
TriggerCentral * getTriggerCentral()
Definition engine.cpp:590
static EngineAccessor engine
Definition engine.h:413
void incrementGlobalConfigurationVersion(const char *msg)
static constexpr engine_configuration_s * engineConfiguration
bool verboseRxCan
Definition settings.cpp:364
void disableTriggerStimulator()
void enableExternalTriggerStimulator()
void enableTriggerStimulator(bool incGlobalConfiguration)

Referenced by disable(), and enable().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ enableSpi()

static void enableSpi ( int  index)
static

Definition at line 449 of file settings.cpp.

449 {
450 setSpiMode(index, true);
451}

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getValue()

static void getValue ( const char paramStr)
static

Definition at line 464 of file settings.cpp.

464 {
465
466 {
467 float value = getConfigValueByName(paramStr);
468 if (value != EFI_ERROR_CODE) {
469 efiPrintf("%s value: %.2f", paramStr, value);
470 return;
471 }
472 }
473
474 if (strEqualCaseInsensitive(paramStr, "tps_min")) {
475 efiPrintf("tps_min=%d", engineConfiguration->tpsMin);
476 } else if (strEqualCaseInsensitive(paramStr, "tps_max")) {
477 efiPrintf("tps_max=%d", engineConfiguration->tpsMax);
478 } else if (strEqualCaseInsensitive(paramStr, "global_trigger_offset_angle")) {
479 efiPrintf("global_trigger_offset=%.2f", engineConfiguration->globalTriggerAngleOffset);
480#if EFI_SHAFT_POSITION_INPUT
481 } else if (strEqualCaseInsensitive(paramStr, "trigger_hw_input")) {
482 efiPrintf("trigger_hw_input=%s", boolToString(getTriggerCentral()->hwTriggerInputEnabled));
483#endif // EFI_SHAFT_POSITION_INPUT
484 } else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
486 } else {
487 efiPrintf("Invalid Parameter: %s", paramStr);
488 }
489}
const char * boolToString(bool value)
Definition efilib.cpp:19
void printDateTime()
Definition settings.cpp:691
float getConfigValueByName(const char *name)

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initSettings()

void initSettings ( )

Definition at line 633 of file settings.cpp.

633 {
634#if EFI_SIMULATOR
635 printf("initSettings\n");
636#endif // EFI_SIMULATOR
637
638 // todo: start saving values into flash right away?
639
640#if EFI_ENGINE_CONTROL
641 // used by HW CI
642 addConsoleAction(CMD_INDIVIDUAL_INJECTION, setIndividualCoilsIgnition);
644 addConsoleActionF("set_whole_timing_map", setWholeTimingMapCmd);
645#endif // EFI_ENGINE_CONTROL
646
648
649 // todo: refactor this - looks like all boolean flags should be controlled with less code duplication
650 addConsoleActionI("enable_spi", enableSpi);
651 addConsoleActionI("disable_spi", disableSpi);
652
653 addConsoleActionS(CMD_ENABLE, enable);
654 addConsoleActionS(CMD_DISABLE, disable);
655
657 addConsoleActionS(CMD_GET, getValue);
658
659#if EFI_PROD_CODE
660 addConsoleActionSS(CMD_IGNITION_PIN, setIgnitionPin);
661 addConsoleActionSS(CMD_TRIGGER_PIN, setTriggerInputPin);
662 addConsoleActionSS(CMD_TRIGGER_SIMULATOR_PIN, setTriggerSimulatorPin);
663
664 addConsoleActionI(CMD_ECU_UNLOCK, unlockEcu);
665
666 addConsoleActionS(CMD_ALTERNATOR_PIN, setAlternatorPin);
667 addConsoleActionS(CMD_IDLE_PIN, setIdlePin);
668
669 addConsoleActionS("bench_clearpin", benchClearPin);
670 addConsoleActionS("bench_setpin", benchSetPin);
671 addConsoleActionS("readpin", readPin);
672 addConsoleAction("hw_qc_mode", [](){
673 setHwQcMode();
674 });
675 addConsoleActionS("bench_set_output_mode", [](const char *pinName){
677 if (pin == Gpio::Invalid) {
678 return;
679 }
680 efiSetPadModeWithoutOwnershipAcquisition("manual-mode", pin, PAL_MODE_OUTPUT_PUSHPULL);
681 });
682
683#if HAL_USE_ADC
685 addConsoleActionSS("set_analog_input_pin", setAnalogInputPin);
686#endif // HAL_USE_ADC
687 addConsoleActionSS(CMD_LOGIC_PIN, setLogicInputPin);
688#endif // EFI_PROD_CODE
689}
void printFullAdcReport(void)
void setHwQcMode()
void addConsoleActionF(const char *token, VoidFloat callback)
void addConsoleActionS(const char *token, VoidCharPtr callback)
void addConsoleAction(const char *token, Void callback)
Register console action without parameters.
void addConsoleActionSS(const char *token, VoidCharPtrCharPtr callback)
void addConsoleActionI(const char *token, VoidInt callback)
Register a console command with one Integer parameter.
void(* Void)(void)
void unlockEcu(int password)
Definition engine2.cpp:319
static void enableSpi(int index)
Definition settings.cpp:449
static void enable(const char *param)
Definition settings.cpp:441
static void setIgnitionPin(const char *indexStr, const char *pinName)
Definition settings.cpp:190
static void benchSetPin(const char *pinName)
Definition settings.cpp:231
static void getValue(const char *paramStr)
Definition settings.cpp:464
static void disableSpi(int index)
Definition settings.cpp:453
static void setIndividualCoilsIgnition()
Definition settings.cpp:146
static void setValue(const char *paramStr, const char *valueStr)
Definition settings.cpp:557
static void setAlternatorPin(const char *pinName)
Definition settings.cpp:255
static void benchClearPin(const char *pinName)
Definition settings.cpp:227
void printConfiguration()
Prints current engine configuration to human-readable console.
Definition settings.cpp:57
static void setWholeTimingMapCmd(float value)
Definition settings.cpp:166
static void setTriggerSimulatorPin(const char *indexStr, const char *pinName)
Definition settings.cpp:278
static void setTriggerInputPin(const char *indexStr, const char *pinName)
Definition settings.cpp:265
static void setAnalogInputPin(const char *sensorStr, const char *pinName)
Definition settings.cpp:294
static void setIdlePin(const char *pinName)
Definition settings.cpp:251
static void setLogicInputPin(const char *indexStr, const char *pinName)
Definition settings.cpp:330
static void scheduleStopEngine()
Definition settings.cpp:460
static void disable(const char *param)
Definition settings.cpp:445
printf("\n")

Referenced by commonInitEngineController().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseBrainPinWithErrorMessage()

static brain_pin_e parseBrainPinWithErrorMessage ( const char pinName)
static

Definition at line 176 of file settings.cpp.

176 {
177 brain_pin_e pin = parseBrainPin(pinName);
178 if (pin == Gpio::Invalid) {
179 efiPrintf("invalid pin name [%s]", pinName);
180 }
181 return pin;
182}
brain_pin_e parseBrainPin(const char *str)

Referenced by benchSetPinValue(), initSettings(), readPin(), setAnalogInputPin(), setIgnitionPin(), setIndividualPin(), setLogicInputPin(), setTriggerInputPin(), and setTriggerSimulatorPin().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printConfiguration()

void printConfiguration ( )

Prints current engine configuration to human-readable console.

Definition at line 57 of file settings.cpp.

57 {
58
59 efiPrintf("Template %s/%d trigger %s/%s/%d", getEngine_type_e(engineConfiguration->engineType),
63
64 efiPrintf("configurationVersion=%d", engine->getGlobalConfigurationVersion());
65
66#if EFI_PROD_CODE
68#endif // EFI_PROD_CODE
69}
const char * getEngine_type_e(engine_type_e value)
const char * getTrigger_type_e(trigger_type_e value)
int getGlobalConfigurationVersion() const
Definition engine.cpp:289
constexpr char const * Enum2String(T const e)
void printSpiState()
Definition settings.cpp:46

Referenced by initSettings(), setAlgorithmInt(), setCrankingInjectionMode(), setCrankingRpm(), setCrankingTimingAngle(), setEngineType(), setFiringOrder(), setGlobalTriggerAngleOffset(), setInjectionMode(), setRpmHardLimit(), and setTriggerType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printDateTime()

void printDateTime ( )

Definition at line 691 of file settings.cpp.

691 {
692#if EFI_RTC
694#else // EFI_RTC
695 efiPrintf("Cannot print time: RTC not supported");
696#endif // EFI_RTC
697}
void printRtcDateTime()

Referenced by getValue(), and initRtc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printSpiState()

void printSpiState ( )

◆ readPin()

void readPin ( const char pinName)

Definition at line 205 of file settings.cpp.

205 {
207 if (pin == Gpio::Invalid) {
208 return;
209 }
210 int physicalValue = palReadPad(getHwPort("read", pin), getHwPin("read", pin));
211 efiPrintf("pin %s value %d", hwPortname(pin), physicalValue);
212}

Referenced by benchSetPinValue(), and initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scheduleStopEngine()

static void scheduleStopEngine ( )
static

See 'LimpManager::isEngineStop' for code which actually stops engine

Definition at line 460 of file settings.cpp.

460 {
462}
void doScheduleStopEngine(StopRequestedReason reason)

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setAlgorithmInt()

static void setAlgorithmInt ( int  value)
static

this method is used in console - it also prints current configuration

Definition at line 87 of file settings.cpp.

87 {
88 setAlgorithm((engine_load_mode_e) value);
90}
void setAlgorithm(engine_load_mode_e algo)
Here is the call graph for this function:

◆ setAlternatorPin()

static void setAlternatorPin ( const char pinName)
static

Definition at line 255 of file settings.cpp.

255 {
257}
static void setIndividualPin(const char *pinName, brain_pin_e *targetPin, const char *name)
Definition settings.cpp:235

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setAnalogInputPin()

static void setAnalogInputPin ( const char sensorStr,
const char pinName 
)
static

Definition at line 294 of file settings.cpp.

294 {
296 if (pin == Gpio::Invalid) {
297 return;
298 }
300 if (channel == EFI_ADC_ERROR) {
301 efiPrintf("Error with [%s]", pinName);
302 return;
303 }
304 if (strEqual("map", sensorStr)) {
306 efiPrintf("setting MAP to %s/%d", pinName, channel);
307 } else if (strEqual("pps", sensorStr)) {
309 efiPrintf("setting PPS to %s/%d", pinName, channel);
310 } else if (strEqual("afr", sensorStr)) {
312 efiPrintf("setting AFR to %s/%d", pinName, channel);
313 } else if (strEqual("clt", sensorStr)) {
315 efiPrintf("setting CLT to %s/%d", pinName, channel);
316 } else if (strEqual("iat", sensorStr)) {
318 efiPrintf("setting IAT to %s/%d", pinName, channel);
319 } else if (strEqual("tps", sensorStr)) {
321 efiPrintf("setting TPS1 to %s/%d", pinName, channel);
322 } else if (strEqual("tps2", sensorStr)) {
324 efiPrintf("setting TPS2 to %s/%d", pinName, channel);
325 }
327}
uint16_t channel
Definition adc_inputs.h:104
adc_channel_e getAdcChannel(brain_pin_e pin)

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setCrankingFuel()

static void setCrankingFuel ( float  fuelMilligram)
static

Definition at line 109 of file settings.cpp.

109 {
110 setTable(config->crankingCycleBaseFuel, fuelMilligram);
111 efiPrintf("cranking_fuel %.2f", fuelMilligram);
112}
static constexpr persistent_config_s * config
float crankingCycleBaseFuel[CRANKING_CYCLE_CLT_SIZE][CRANKING_CURVE_SIZE]
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
Here is the call graph for this function:

◆ setCrankingIACExtra()

static void setCrankingIACExtra ( float  percent)
static

Definition at line 102 of file settings.cpp.

102 {
103 for (uint8_t i = 0; i < CLT_CRANKING_CURVE_SIZE; i++) {
104 config->cltCrankingCorr[i] = percent;
105 }
106 efiPrintf("cranking_iac %.2f", percent);
107}

◆ setCrankingInjectionMode()

static void setCrankingInjectionMode ( int  value)
static

Definition at line 126 of file settings.cpp.

Here is the call graph for this function:

◆ setCrankingRpm()

static void setCrankingRpm ( int  value)
static

Definition at line 79 of file settings.cpp.

Here is the call graph for this function:

◆ setCrankingTimingAngle()

static void setCrankingTimingAngle ( float  value)
static

Definition at line 120 of file settings.cpp.

Here is the call graph for this function:

◆ setDateTime()

void setDateTime ( const char *const  isoDateTime)

Definition at line 699 of file settings.cpp.

699 {
700#if EFI_RTC
702 if (strlen(isoDateTime) >= 19 && isoDateTime[10] == 'T') {
703 efidatetime_t dateTime;
704 dateTime.year = atoi(isoDateTime);
705 dateTime.month = atoi(isoDateTime + 5);
706 dateTime.day = atoi(isoDateTime + 8);
707 dateTime.hour = atoi(isoDateTime + 11);
708 dateTime.minute = atoi(isoDateTime + 14);
709 dateTime.second = atoi(isoDateTime + 17);
710 if (dateTime.year != ATOI_ERROR_CODE &&
711 dateTime.month >= 1 && dateTime.month <= 12 &&
712 dateTime.day >= 1 && dateTime.day <= 31 &&
713 dateTime.hour <= 23 &&
714 dateTime.minute <= 59 &&
715 dateTime.second <= 59) {
716 // doesn't concern about leap years or seconds; ChibiOS doesn't support (added) leap seconds anyway
717 setRtcDateTime(&dateTime);
718 efiPrintf("Time is changed to");
720 return;
721 }
722 }
723 efiPrintf("date_set Date parameter %s is wrong", isoDateTime);
724#else // EFI_RTC
725 efiPrintf("Cannot set time: RTC not supported");
726#endif // EFI_RTC
727}
void setRtcDateTime(efidatetime_t const *const dateTime)
uint32_t year

Referenced by setValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDebugMode()

static void setDebugMode ( int  value)
static

Definition at line 158 of file settings.cpp.

◆ setEngineType()

void setEngineType ( int  value,
bool  isWriteToFlash 
)

Definition at line 735 of file settings.cpp.

735 {
736 {
737#if EFI_PROD_CODE
738 chibios_rt::CriticalSectionLocker csl;
739#endif // EFI_PROD_CODE
740
744
745#if EFI_CONFIGURATION_STORAGE
746 if (isWriteToFlash) {
748 }
749#endif /* EFI_CONFIGURATION_STORAGE */
750 }
752#if EFI_ENGINE_CONTROL && ! EFI_UNIT_TEST
754#endif // ! EFI_UNIT_TEST
755}
void resetEngineSnifferIfInTestMode()
Definition engine.cpp:53
void resetConfigurationExt(configuration_callback_t boardCallback, engine_type_e engineType)
engine_type_e
void writeToFlashNow()

Referenced by applyPreset(), processCanQcBenchTest(), and setEngineTypeAndSave().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setEngineTypeAndSave()

void setEngineTypeAndSave ( int  value)

Definition at line 731 of file settings.cpp.

731 {
732 setEngineType(value, true);
733}
void setEngineType(int value, bool isWriteToFlash)
Definition settings.cpp:735
Here is the call graph for this function:

◆ setFiringOrder()

static void setFiringOrder ( int  value)
static

Definition at line 92 of file settings.cpp.

Here is the call graph for this function:

◆ setGlobalTriggerAngleOffset()

static void setGlobalTriggerAngleOffset ( float  value)
static

Definition at line 114 of file settings.cpp.

Here is the call graph for this function:

◆ setIdlePin()

static void setIdlePin ( const char pinName)
static

Definition at line 251 of file settings.cpp.

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setIdleSolenoidFrequency()

static void setIdleSolenoidFrequency ( int  value)
static

Definition at line 72 of file settings.cpp.

Here is the call graph for this function:

◆ setIgnitionMode()

static void setIgnitionMode ( int  value)
static

Definition at line 138 of file settings.cpp.

138 {
139#if EFI_ENGINE_CONTROL
143#endif // EFI_ENGINE_CONTROL
144}
void prepareOutputSignals()
ignition_mode_e

Referenced by setIndividualCoilsIgnition().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setIgnitionPin()

static void setIgnitionPin ( const char indexStr,
const char pinName 
)
static

For example: set_ignition_pin 1 PD7 todo: this method counts index from 1 while at least 'set_trigger_input_pin' counts from 0. todo: make things consistent

Definition at line 190 of file settings.cpp.

190 {
191 int index = atoi(indexStr) - 1; // convert from human index into software index
192 if (index < 0 || index >= MAX_CYLINDER_COUNT)
193 return;
195 if (pin == Gpio::Invalid) {
196 return;
197 }
198 efiPrintf("setting ignition pin[%d] to %s please save&restart", index, hwPortname(pin));
201}

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setIndividualCoilsIgnition()

static void setIndividualCoilsIgnition ( )
static

Definition at line 146 of file settings.cpp.

146 {
147 setIgnitionMode((int)IM_INDIVIDUAL_COILS);
148}
static void setIgnitionMode(int value)
Definition settings.cpp:138

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setIndividualPin()

static void setIndividualPin ( const char pinName,
brain_pin_e targetPin,
const char name 
)
static

Definition at line 235 of file settings.cpp.

235 {
237 if (pin == Gpio::Invalid) {
238 return;
239 }
240 efiPrintf("setting %s pin to %s please save&restart", name, hwPortname(pin));
241 *targetPin = pin;
243}

Referenced by setAlternatorPin(), setIdlePin(), and setVssPin().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setInjectionMode()

static void setInjectionMode ( int  value)
static

Definition at line 132 of file settings.cpp.

Here is the call graph for this function:

◆ setLogicInputPin()

static void setLogicInputPin ( const char indexStr,
const char pinName 
)
static

Definition at line 330 of file settings.cpp.

330 {
331 int index = atoi(indexStr);
332 if (index < 0 || index > 2) {
333 return;
334 }
336 if (pin == Gpio::Invalid) {
337 return;
338 }
339 efiPrintf("setting logic input pin[%d] to %s please save&restart", index, hwPortname(pin));
342}
brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setRpmHardLimit()

static void setRpmHardLimit ( int  value)
static

Definition at line 97 of file settings.cpp.

Here is the call graph for this function:

◆ setScriptCurve1Value()

static void setScriptCurve1Value ( float  value)
static

Definition at line 491 of file settings.cpp.

491 {
492 setLinearCurve(config->scriptCurve1, value, value, 1);
493}
void setLinearCurve(TValue(&array)[TSize], float from, float to, float precision=0.01f)
Here is the call graph for this function:

◆ setScriptCurve2Value()

static void setScriptCurve2Value ( float  value)
static

Definition at line 495 of file settings.cpp.

495 {
496 setLinearCurve(config->scriptCurve2, value, value, 1);
497}
Here is the call graph for this function:

◆ setSpiMode()

static void setSpiMode ( int  index,
bool  mode 
)
static

Definition at line 346 of file settings.cpp.

346 {
347 switch (index) {
348 case 1:
350 break;
351 case 2:
353 break;
354 case 3:
356 break;
357 default:
358 efiPrintf("invalid spi index %d", index);
359 return;
360 }
362}

Referenced by disableSpi(), and enableSpi().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTriggerInputPin()

static void setTriggerInputPin ( const char indexStr,
const char pinName 
)
static

For example: set_trigger_input_pin 0 PA5 todo: this method counts index from 0 while at least 'set_ignition_pin' counts from 1. todo: make things consistent

Definition at line 265 of file settings.cpp.

265 {
266 int index = atoi(indexStr);
267 if (index < 0 || index > 2)
268 return;
270 if (pin == Gpio::Invalid) {
271 return;
272 }
273 efiPrintf("setting trigger pin[%d] to %s please save&restart", index, hwPortname(pin));
276}
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTriggerSimulatorPin()

static void setTriggerSimulatorPin ( const char indexStr,
const char pinName 
)
static

Definition at line 278 of file settings.cpp.

278 {
279 int index = atoi(indexStr);
280 if (index < 0 || index >= TRIGGER_SIMULATOR_PIN_COUNT)
281 return;
283 if (pin == Gpio::Invalid) {
284 return;
285 }
286 efiPrintf("setting trigger simulator pin[%d] to %s please save&restart", index, hwPortname(pin));
289}

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTriggerType()

static void setTriggerType ( int  value)
static

Definition at line 150 of file settings.cpp.

150 {
154 efiPrintf("Do you need to also invoke set operation_mode X?");
156}
trigger_type_e
Here is the call graph for this function:

◆ setValue()

static void setValue ( const char paramStr,
const char valueStr 
)
static

Definition at line 557 of file settings.cpp.

557 {
558 float valueF = atoff(valueStr);
559 int valueI = atoi(valueStr);
560
561 const command_f_s *currentF = &commandsF[0];
562 while (currentF < commandsF + sizeof(commandsF)/sizeof(commandsF[0])) {
563 if (strEqualCaseInsensitive(paramStr, currentF->token)) {
564 currentF->callback(valueF);
565 return;
566 }
567 currentF++;
568 }
569
570 const command_i_s *currentI = &commandsI[0];
571 while (currentI < commandsI + sizeof(commandsI)/sizeof(commandsI[0])) {
572 if (strEqualCaseInsensitive(paramStr, currentI->token)) {
573 currentI->callback(valueI);
574 return;
575 }
576 currentI++;
577 }
578
579
580 if (strEqualCaseInsensitive(paramStr, "warning_period")) {
582 } else if (strEqualCaseInsensitive(paramStr, "dwell")) {
583 setConstantDwell(valueF);
584 } else if (strEqualCaseInsensitive(paramStr, CMD_ENGINESNIFFERRPMTHRESHOLD)) {
586#if EFI_EMULATE_POSITION_SENSORS
587 } else if (strEqualCaseInsensitive(paramStr, CMD_RPM)) {
588 setTriggerEmulatorRPM(valueI);
589#endif // EFI_EMULATE_POSITION_SENSORS
590 } else if (strEqualCaseInsensitive(paramStr, "mc33_hvolt")) {
592 } else if (strEqualCaseInsensitive(paramStr, "mc33_i_peak")) {
594 } else if (strEqualCaseInsensitive(paramStr, "mc33_i_hold")) {
596 } else if (strEqualCaseInsensitive(paramStr, "mc33_t_max_boost")) {
598 } else if (strEqualCaseInsensitive(paramStr, "mc33_t_peak_off")) {
600 } else if (strEqualCaseInsensitive(paramStr, "vvt_offset")) {
601 engineConfiguration->vvtOffsets[0] = valueF;
602 } else if (strEqualCaseInsensitive(paramStr, "vvt_mode")) {
604 } else if (strEqualCaseInsensitive(paramStr, "wwaeTau")) {
606 } else if (strEqualCaseInsensitive(paramStr, "wwaeBeta")) {
608 } else if (strEqualCaseInsensitive(paramStr, "benchTestOffTime")) {
610 } else if (strEqualCaseInsensitive(paramStr, "benchTestCount")) {
612 } else if (strEqualCaseInsensitive(paramStr, "cranking_dwell")) {
614#if EFI_PROD_CODE
615 } else if (strEqualCaseInsensitive(paramStr, CMD_VSS_PIN)) {
616 setVssPin(valueStr);
617#endif // EFI_PROD_CODE
618 } else if (strEqualCaseInsensitive(paramStr, "targetvbatt")) {
620 } else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
621 // rusEfi console invokes this method with timestamp in local timezone
622 setDateTime(valueStr);
623 }
624
625 bool isGoodName = setConfigValueByName(paramStr, valueF);
626 if (isGoodName) {
627 efiPrintf("Settings: applying [%s][%f]", paramStr, valueF);
628 }
629
631}
void setConstantDwell(floatms_t dwellMs)
Sets the same dwell time across the whole getRpm() range set dwell X.
vvt_mode_e
const command_i_s commandsI[]
Definition settings.cpp:521
const command_f_s commandsF[]
Definition settings.cpp:509
static void setVssPin(const char *pinName)
Definition settings.cpp:246
void setDateTime(const char *const isoDateTime)
Definition settings.cpp:699
scaled_channel< int16_t, 10, 1 > alternatorVoltageTargetTable[ALTERNATOR_VOLTAGE_TARGET_SIZE][ALTERNATOR_VOLTAGE_TARGET_SIZE]
void setTriggerEmulatorRPM(int rpm)
bool setConfigValueByName(const char *name, float value)

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setVssPin()

static void setVssPin ( const char pinName)
static

Definition at line 246 of file settings.cpp.

Referenced by setValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setWholeTimingMap()

static void setWholeTimingMap ( float  value)
static

Definition at line 162 of file settings.cpp.

162 {
164}
scaled_channel< int16_t, 10, 1 > ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]

Referenced by setWholeTimingMapCmd().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setWholeTimingMapCmd()

static void setWholeTimingMapCmd ( float  value)
static

Definition at line 166 of file settings.cpp.

166 {
167 efiPrintf("Setting whole timing advance map to %.2f", value);
168 setWholeTimingMap(value);
170}
static void setWholeTimingMap(float value)
Definition settings.cpp:162

Referenced by initSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ commandsF

const command_f_s commandsF[]
Initial value:
= {
#if EFI_ENGINE_CONTROL
{"global_trigger_offset_angle", setGlobalTriggerAngleOffset},
{"cranking_fuel", setCrankingFuel},
{"cranking_iac", setCrankingIACExtra},
{"cranking_timing_angle", setCrankingTimingAngle},
{"flat_injector_lag", setFlatInjectorLag},
#endif
{"script_curve_1_value", setScriptCurve1Value},
{"script_curve_2_value", setScriptCurve2Value},
}
void setFlatInjectorLag(float value)
static void setCrankingIACExtra(float percent)
Definition settings.cpp:102
static void setScriptCurve1Value(float value)
Definition settings.cpp:491
static void setCrankingFuel(float fuelMilligram)
Definition settings.cpp:109
static void setCrankingTimingAngle(float value)
Definition settings.cpp:120
static void setScriptCurve2Value(float value)
Definition settings.cpp:495
static void setGlobalTriggerAngleOffset(float value)
Definition settings.cpp:114

Definition at line 509 of file settings.cpp.

509 {
510#if EFI_ENGINE_CONTROL
511 {"global_trigger_offset_angle", setGlobalTriggerAngleOffset},
512 {"cranking_fuel", setCrankingFuel},
513 {"cranking_iac", setCrankingIACExtra},
514 {"cranking_timing_angle", setCrankingTimingAngle},
515 {"flat_injector_lag", setFlatInjectorLag},
516#endif // EFI_ENGINE_CONTROL
517 {"script_curve_1_value", setScriptCurve1Value},
518 {"script_curve_2_value", setScriptCurve2Value},
519};

Referenced by setValue().

◆ commandsI

const command_i_s commandsI[]

Definition at line 521 of file settings.cpp.

521 {
522#if EFI_ENGINE_CONTROL
523 {"ignition_mode", setIgnitionMode},
524 {"driveWheelRevPerKm", [](int value) {
526 }},
527 {"cranking_rpm", setCrankingRpm},
528 {"cranking_injection_mode", setCrankingInjectionMode},
529 {"injection_mode", setInjectionMode},
530 {CMD_ENGINE_TYPE, setEngineTypeAndSave},
531 {"rpm_hard_limit", setRpmHardLimit},
532 {"firing_order", setFiringOrder},
533 {"algorithm", setAlgorithmInt},
534 {"debug_mode", setDebugMode},
535 {"trigger_type", setTriggerType},
536 // used by HW CI
537 {"idle_solenoid_freq", setIdleSolenoidFrequency},
538#endif // EFI_ENGINE_CONTROL
539#if EFI_PROD_CODE
540#if EFI_BOR_LEVEL
541 {"bor", setBor},
542#endif // EFI_BOR_LEVEL
543#if EFI_CAN_SUPPORT
544 {"can_mode", setCanType},
545 {"can_vss", setCanVss},
546#endif // EFI_CAN_SUPPORT
547#if EFI_IDLE_CONTROL
548 {"idle_position", setManualIdleValvePosition},
549 {"idle_rpm", setTargetIdleRpm},
550#endif // EFI_IDLE_CONTROL
551#endif // EFI_PROD_CODE
552
553 // {"", },
554 // {"", },
555};
void setCanType(int type)
Definition can_hw.cpp:109
void setCanVss(int type)
Definition can_vss.cpp:221
void setBor(int borValue)
Definition hardware.cpp:409
void setTargetIdleRpm(int value)
void setManualIdleValvePosition(int positionPercent)
static void setFiringOrder(int value)
Definition settings.cpp:92
static void setIdleSolenoidFrequency(int value)
Definition settings.cpp:72
static void setTriggerType(int value)
Definition settings.cpp:150
static void setInjectionMode(int value)
Definition settings.cpp:132
static void setCrankingRpm(int value)
Definition settings.cpp:79
static void setDebugMode(int value)
Definition settings.cpp:158
void setEngineTypeAndSave(int value)
Definition settings.cpp:731
static void setCrankingInjectionMode(int value)
Definition settings.cpp:126
static void setAlgorithmInt(int value)
Definition settings.cpp:87
static void setRpmHardLimit(int value)
Definition settings.cpp:97

Referenced by setValue().

◆ verboseRxCan

bool verboseRxCan = false

Definition at line 364 of file settings.cpp.

Referenced by enableOrDisable(), and processCanRxMessage().

◆ waveChart

WaveChart waveChart
extern

Definition at line 32 of file trigger_central.cpp.

◆ waveChartUsedSize

int waveChartUsedSize
extern

Definition at line 60 of file engine_sniffer.cpp.

Go to the source code of this file.