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 timeMs)
 
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)
 
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 223 of file settings.cpp.

223 {
224 benchSetPinValue(pinName, 0);
225}
static void benchSetPinValue(const char *pinName, int bit)
Definition settings.cpp:211

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 227 of file settings.cpp.

227 {
228 benchSetPinValue(pinName, 1);
229}

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 211 of file settings.cpp.

211 {
213 if (pin == Gpio::Invalid) {
214 return;
215 }
216 efiSetPadModeWithoutOwnershipAcquisition("bench_pin_test", pin, PAL_MODE_OUTPUT_PUSHPULL);
217 // low-level API which does not care about 'qcDirectPinControlMode'
218 palWritePad(getHwPort("write", pin), getHwPin("write", pin), bit);
219 efiPrintf("pin %s set value", hwPortname(pin));
220 readPin(pinName);
221}
@ 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:172
void readPin(const char *pinName)
Definition settings.cpp:201
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 443 of file settings.cpp.

443 {
444 enableOrDisable(param, false);
445}
static void enableOrDisable(const char *param, bool isEnabled)
Definition settings.cpp:362
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 451 of file settings.cpp.

451 {
452 setSpiMode(index, false);
453}
static void setSpiMode(int index, bool mode)
Definition settings.cpp:342

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 362 of file settings.cpp.

362 {
363 if (strEqualCaseInsensitive(param, "useTLE8888_cranking_hack")) {
365#if EFI_SHAFT_POSITION_INPUT
366 } else if (strEqualCaseInsensitive(param, CMD_TRIGGER_HW_INPUT)) {
368#endif // EFI_SHAFT_POSITION_INPUT
369 } else if (strEqualCaseInsensitive(param, "verboseTLE8888")) {
371 } else if (strEqualCaseInsensitive(param, "verboseRxCan")) {
372 verboseRxCan = isEnabled;
373 } else if (strEqualCaseInsensitive(param, "verboseCan")) {
374 engineConfiguration->verboseCan = isEnabled;
375 } else if (strEqualCaseInsensitive(param, "verboseCan2")) {
376 engineConfiguration->verboseCan2 = isEnabled;
377 } else if (strEqualCaseInsensitive(param, "verboseIsoTp")) {
379 } else if (strEqualCaseInsensitive(param, "artificialMisfire")) {
381 } else if (strEqualCaseInsensitive(param, "logic_level_trigger")) {
383 } else if (strEqualCaseInsensitive(param, "can_broadcast")) {
385// } else if (strEqualCaseInsensitive(param, "etb_auto")) {
386// engine->etbAutoTune = isEnabled;
387 } else if (strEqualCaseInsensitive(param, "verboseKLine")) {
389 } else if (strEqualCaseInsensitive(param, "stepperidle")) {
391 } else if (strEqualCaseInsensitive(param, "two_wire_wasted_spark")) {
394 } else if (strEqualCaseInsensitive(param, "tpic_advanced_mode")) {
396 } else if (strEqualCaseInsensitive(param, "altcontrol")) {
398 } else if (strEqualCaseInsensitive(param, "sd")) {
400 } else if (strEqualCaseInsensitive(param, CMD_FUNCTIONAL_TEST_MODE)) {
401 engine->isFunctionalTestMode = isEnabled;
402 } else if (strEqualCaseInsensitive(param, "can_read")) {
404 } else if (strEqualCaseInsensitive(param, "can_write")) {
406 } else if (strEqualCaseInsensitive(param, CMD_INJECTION)) {
408 } else if (strEqualCaseInsensitive(param, CMD_PWM)) {
409 engine->isPwmEnabled = isEnabled;
410 } else if (strEqualCaseInsensitive(param, "trigger_details")) {
412 } else if (strEqualCaseInsensitive(param, "vvt_details")) {
414 } else if (strEqualCaseInsensitive(param, "invertCamVVTSignal")) {
416 } else if (strEqualCaseInsensitive(param, CMD_IGNITION)) {
418#if EFI_EMULATE_POSITION_SENSORS
419 } else if (strEqualCaseInsensitive(param, CMD_SELF_STIMULATION)) {
420 if (isEnabled) {
422 } else {
424 }
425 } else if (strEqualCaseInsensitive(param, CMD_EXTERNAL_STIMULATION)) {
426 if (isEnabled) {
428 } else {
430 }
431#endif // EFI_EMULATE_POSITION_SENSORS
432 } else {
433 efiPrintf("unexpected [%s]", param);
434 return; // well, MISRA would not like this 'return' here :(
435 }
436 efiPrintf("[%s] %s", param, isEnabled ? "enabled" : "disabled");
437}
bool isFunctionalTestMode
Definition engine.h:321
bool isPwmEnabled
Definition engine.h:110
TriggerCentral * getTriggerCentral()
Definition engine.cpp:579
static Engine *const engine
Definition engine.h:389
void incrementGlobalConfigurationVersion(const char *msg)
static constexpr engine_configuration_s * engineConfiguration
bool verboseRxCan
Definition settings.cpp:360
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 447 of file settings.cpp.

447 {
448 setSpiMode(index, true);
449}

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 462 of file settings.cpp.

462 {
463
464 {
465 float value = getConfigValueByName(paramStr);
466 if (value != EFI_ERROR_CODE) {
467 efiPrintf("%s value: %.2f", paramStr, value);
468 return;
469 }
470 }
471
472 if (strEqualCaseInsensitive(paramStr, "tps_min")) {
473 efiPrintf("tps_min=%d", engineConfiguration->tpsMin);
474 } else if (strEqualCaseInsensitive(paramStr, "tps_max")) {
475 efiPrintf("tps_max=%d", engineConfiguration->tpsMax);
476 } else if (strEqualCaseInsensitive(paramStr, "global_trigger_offset_angle")) {
477 efiPrintf("global_trigger_offset=%.2f", engineConfiguration->globalTriggerAngleOffset);
478#if EFI_SHAFT_POSITION_INPUT
479 } else if (strEqualCaseInsensitive(paramStr, "trigger_hw_input")) {
480 efiPrintf("trigger_hw_input=%s", boolToString(getTriggerCentral()->hwTriggerInputEnabled));
481#endif // EFI_SHAFT_POSITION_INPUT
482 } else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
484 } else {
485 efiPrintf("Invalid Parameter: %s", paramStr);
486 }
487}
const char * boolToString(bool value)
Definition efilib.cpp:18
void printDateTime()
Definition settings.cpp:689
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 631 of file settings.cpp.

631 {
632#if EFI_SIMULATOR
633 printf("initSettings\n");
634#endif // EFI_SIMULATOR
635
636 // todo: start saving values into flash right away?
637
638#if EFI_ENGINE_CONTROL
639 // used by HW CI
640 addConsoleAction(CMD_INDIVIDUAL_INJECTION, setIndividualCoilsIgnition);
642 addConsoleActionF("set_whole_timing_map", setWholeTimingMapCmd);
643#endif // EFI_ENGINE_CONTROL
644
646
647 // todo: refactor this - looks like all boolean flags should be controlled with less code duplication
648 addConsoleActionI("enable_spi", enableSpi);
649 addConsoleActionI("disable_spi", disableSpi);
650
651 addConsoleActionS(CMD_ENABLE, enable);
652 addConsoleActionS(CMD_DISABLE, disable);
653
655 addConsoleActionS(CMD_GET, getValue);
656
657#if EFI_PROD_CODE
658 addConsoleActionSS(CMD_IGNITION_PIN, setIgnitionPin);
659 addConsoleActionSS(CMD_TRIGGER_PIN, setTriggerInputPin);
660 addConsoleActionSS(CMD_TRIGGER_SIMULATOR_PIN, setTriggerSimulatorPin);
661
662 addConsoleActionI(CMD_ECU_UNLOCK, unlockEcu);
663
664 addConsoleActionS(CMD_ALTERNATOR_PIN, setAlternatorPin);
665 addConsoleActionS(CMD_IDLE_PIN, setIdlePin);
666
667 addConsoleActionS("bench_clearpin", benchClearPin);
668 addConsoleActionS("bench_setpin", benchSetPin);
669 addConsoleActionS("readpin", readPin);
670 addConsoleAction("hw_qc_mode", [](){
671 setHwQcMode();
672 });
673 addConsoleActionS("bench_set_output_mode", [](const char *pinName){
675 if (pin == Gpio::Invalid) {
676 return;
677 }
678 efiSetPadModeWithoutOwnershipAcquisition("manual-mode", pin, PAL_MODE_OUTPUT_PUSHPULL);
679 });
680
681#if HAL_USE_ADC
683 addConsoleActionSS("set_analog_input_pin", setAnalogInputPin);
684#endif // HAL_USE_ADC
685 addConsoleActionSS(CMD_LOGIC_PIN, setLogicInputPin);
686#endif // EFI_PROD_CODE
687}
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:269
static void enableSpi(int index)
Definition settings.cpp:447
static void enable(const char *param)
Definition settings.cpp:439
static void setIgnitionPin(const char *indexStr, const char *pinName)
Definition settings.cpp:186
static void benchSetPin(const char *pinName)
Definition settings.cpp:227
static void getValue(const char *paramStr)
Definition settings.cpp:462
static void disableSpi(int index)
Definition settings.cpp:451
static void setIndividualCoilsIgnition()
Definition settings.cpp:142
static void setValue(const char *paramStr, const char *valueStr)
Definition settings.cpp:555
static void setAlternatorPin(const char *pinName)
Definition settings.cpp:251
static void benchClearPin(const char *pinName)
Definition settings.cpp:223
void printConfiguration()
Prints current engine configuration to human-readable console.
Definition settings.cpp:55
void scheduleStopEngine()
Definition settings.cpp:458
static void setWholeTimingMapCmd(float value)
Definition settings.cpp:162
static void setTriggerSimulatorPin(const char *indexStr, const char *pinName)
Definition settings.cpp:274
static void setTriggerInputPin(const char *indexStr, const char *pinName)
Definition settings.cpp:261
static void setAnalogInputPin(const char *sensorStr, const char *pinName)
Definition settings.cpp:290
static void setIdlePin(const char *pinName)
Definition settings.cpp:247
static void setLogicInputPin(const char *indexStr, const char *pinName)
Definition settings.cpp:326
static void disable(const char *param)
Definition settings.cpp:443
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 172 of file settings.cpp.

172 {
173 brain_pin_e pin = parseBrainPin(pinName);
174 if (pin == Gpio::Invalid) {
175 efiPrintf("invalid pin name [%s]", pinName);
176 }
177 return pin;
178}
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 55 of file settings.cpp.

55 {
56
57 efiPrintf("Template %s/%d trigger %s/%s/%d", getEngine_type_e(engineConfiguration->engineType),
61
62 efiPrintf("configurationVersion=%d", engine->getGlobalConfigurationVersion());
63
64#if EFI_PROD_CODE
66#endif // EFI_PROD_CODE
67}
const char * getEngine_load_mode_e(engine_load_mode_e value)
const char * getEngine_type_e(engine_type_e value)
const char * getTrigger_type_e(trigger_type_e value)
int getGlobalConfigurationVersion(void) const
Definition engine.cpp:286
void printSpiState()
Definition settings.cpp:44

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 689 of file settings.cpp.

689 {
690#if EFI_RTC
692#else // EFI_RTC
693 efiPrintf("Cannot print time: RTC not supported");
694#endif // EFI_RTC
695}
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 201 of file settings.cpp.

201 {
203 if (pin == Gpio::Invalid) {
204 return;
205 }
206 int physicalValue = palReadPad(getHwPort("read", pin), getHwPin("read", pin));
207 efiPrintf("pin %s value %d", hwPortname(pin), physicalValue);
208}

Referenced by benchSetPinValue(), and initSettings().

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

◆ scheduleStopEngine()

void scheduleStopEngine ( )

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

Definition at line 458 of file settings.cpp.

458 {
460}
void doScheduleStopEngine()

Referenced by executeTSCommand(), initSettings(), and Engine::isInShutdownMode().

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 85 of file settings.cpp.

85 {
88}
void setAlgorithm(engine_load_mode_e algo)
engine_load_mode_e
Here is the call graph for this function:

◆ setAlternatorPin()

static void setAlternatorPin ( const char pinName)
static

Definition at line 251 of file settings.cpp.

251 {
253}
static void setIndividualPin(const char *pinName, brain_pin_e *targetPin, const char *name)
Definition settings.cpp:231

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 290 of file settings.cpp.

290 {
292 if (pin == Gpio::Invalid) {
293 return;
294 }
296 if (channel == EFI_ADC_ERROR) {
297 efiPrintf("Error with [%s]", pinName);
298 return;
299 }
300 if (strEqual("map", sensorStr)) {
302 efiPrintf("setting MAP to %s/%d", pinName, channel);
303 } else if (strEqual("pps", sensorStr)) {
305 efiPrintf("setting PPS to %s/%d", pinName, channel);
306 } else if (strEqual("afr", sensorStr)) {
308 efiPrintf("setting AFR to %s/%d", pinName, channel);
309 } else if (strEqual("clt", sensorStr)) {
311 efiPrintf("setting CLT to %s/%d", pinName, channel);
312 } else if (strEqual("iat", sensorStr)) {
314 efiPrintf("setting IAT to %s/%d", pinName, channel);
315 } else if (strEqual("tps", sensorStr)) {
317 efiPrintf("setting TPS1 to %s/%d", pinName, channel);
318 } else if (strEqual("tps2", sensorStr)) {
320 efiPrintf("setting TPS2 to %s/%d", pinName, channel);
321 }
323}
uint16_t channel
Definition adc_inputs.h:105
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  timeMs)
static

Definition at line 105 of file settings.cpp.

◆ setCrankingIACExtra()

static void setCrankingIACExtra ( float  percent)
static

Definition at line 100 of file settings.cpp.

100 {
102 efiPrintf("cranking_iac %.2f", percent);
103}

◆ setCrankingInjectionMode()

static void setCrankingInjectionMode ( int  value)
static

Definition at line 122 of file settings.cpp.

Here is the call graph for this function:

◆ setCrankingRpm()

static void setCrankingRpm ( int  value)
static

Definition at line 77 of file settings.cpp.

Here is the call graph for this function:

◆ setCrankingTimingAngle()

static void setCrankingTimingAngle ( float  value)
static

Definition at line 116 of file settings.cpp.

Here is the call graph for this function:

◆ setDateTime()

void setDateTime ( const char *const  isoDateTime)

Definition at line 697 of file settings.cpp.

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

◆ setEngineType()

void setEngineType ( int  value,
bool  isWriteToFlash 
)

Definition at line 733 of file settings.cpp.

733 {
734 {
735#if EFI_PROD_CODE
736 chibios_rt::CriticalSectionLocker csl;
737#endif // EFI_PROD_CODE
738
742
743#if EFI_CONFIGURATION_STORAGE
744 if (isWriteToFlash) {
746 }
747#endif /* EFI_CONFIGURATION_STORAGE */
748 }
750#if EFI_ENGINE_CONTROL && ! EFI_UNIT_TEST
752#endif // ! EFI_UNIT_TEST
753}
void resetEngineSnifferIfInTestMode()
Definition engine.cpp:57
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 729 of file settings.cpp.

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

◆ setFiringOrder()

static void setFiringOrder ( int  value)
static

Definition at line 90 of file settings.cpp.

Here is the call graph for this function:

◆ setGlobalTriggerAngleOffset()

static void setGlobalTriggerAngleOffset ( float  value)
static

Definition at line 110 of file settings.cpp.

Here is the call graph for this function:

◆ setIdlePin()

static void setIdlePin ( const char pinName)
static

Definition at line 247 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 70 of file settings.cpp.

Here is the call graph for this function:

◆ setIgnitionMode()

static void setIgnitionMode ( int  value)
static

Definition at line 134 of file settings.cpp.

134 {
135#if EFI_ENGINE_CONTROL
139#endif // EFI_ENGINE_CONTROL
140}
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 186 of file settings.cpp.

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

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 142 of file settings.cpp.

142 {
143 setIgnitionMode((int)IM_INDIVIDUAL_COILS);
144}
static void setIgnitionMode(int value)
Definition settings.cpp:134

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 231 of file settings.cpp.

231 {
233 if (pin == Gpio::Invalid) {
234 return;
235 }
236 efiPrintf("setting %s pin to %s please save&restart", name, hwPortname(pin));
237 *targetPin = pin;
239}

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 128 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 326 of file settings.cpp.

326 {
327 int index = atoi(indexStr);
328 if (index < 0 || index > 2) {
329 return;
330 }
332 if (pin == Gpio::Invalid) {
333 return;
334 }
335 efiPrintf("setting logic input pin[%d] to %s please save&restart", index, hwPortname(pin));
338}
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 95 of file settings.cpp.

Here is the call graph for this function:

◆ setScriptCurve1Value()

static void setScriptCurve1Value ( float  value)
static

Definition at line 489 of file settings.cpp.

489 {
490 setLinearCurve(config->scriptCurve1, value, value, 1);
491}
static constexpr persistent_config_s * config
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 493 of file settings.cpp.

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

◆ setSpiMode()

static void setSpiMode ( int  index,
bool  mode 
)
static

Definition at line 342 of file settings.cpp.

342 {
343 switch (index) {
344 case 1:
346 break;
347 case 2:
349 break;
350 case 3:
352 break;
353 default:
354 efiPrintf("invalid spi index %d", index);
355 return;
356 }
358}

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 261 of file settings.cpp.

261 {
262 int index = atoi(indexStr);
263 if (index < 0 || index > 2)
264 return;
266 if (pin == Gpio::Invalid) {
267 return;
268 }
269 efiPrintf("setting trigger pin[%d] to %s please save&restart", index, hwPortname(pin));
272}
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 274 of file settings.cpp.

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

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 146 of file settings.cpp.

146 {
150 efiPrintf("Do you need to also invoke set operation_mode X?");
152}
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 555 of file settings.cpp.

555 {
556 float valueF = atoff(valueStr);
557 int valueI = atoi(valueStr);
558
559 const command_f_s *currentF = &commandsF[0];
560 while (currentF < commandsF + sizeof(commandsF)/sizeof(commandsF[0])) {
561 if (strEqualCaseInsensitive(paramStr, currentF->token)) {
562 currentF->callback(valueF);
563 return;
564 }
565 currentF++;
566 }
567
568 const command_i_s *currentI = &commandsI[0];
569 while (currentI < commandsI + sizeof(commandsI)/sizeof(commandsI[0])) {
570 if (strEqualCaseInsensitive(paramStr, currentI->token)) {
571 currentI->callback(valueI);
572 return;
573 }
574 currentI++;
575 }
576
577
578 if (strEqualCaseInsensitive(paramStr, "warning_period")) {
580 } else if (strEqualCaseInsensitive(paramStr, "dwell")) {
581 setConstantDwell(valueF);
582 } else if (strEqualCaseInsensitive(paramStr, CMD_ENGINESNIFFERRPMTHRESHOLD)) {
584#if EFI_EMULATE_POSITION_SENSORS
585 } else if (strEqualCaseInsensitive(paramStr, CMD_RPM)) {
586 setTriggerEmulatorRPM(valueI);
587#endif // EFI_EMULATE_POSITION_SENSORS
588 } else if (strEqualCaseInsensitive(paramStr, "mc33_hvolt")) {
590 } else if (strEqualCaseInsensitive(paramStr, "mc33_i_peak")) {
592 } else if (strEqualCaseInsensitive(paramStr, "mc33_i_hold")) {
594 } else if (strEqualCaseInsensitive(paramStr, "mc33_t_max_boost")) {
596 } else if (strEqualCaseInsensitive(paramStr, "mc33_t_peak_off")) {
598 } else if (strEqualCaseInsensitive(paramStr, "vvt_offset")) {
599 engineConfiguration->vvtOffsets[0] = valueF;
600 } else if (strEqualCaseInsensitive(paramStr, "vvt_mode")) {
602 } else if (strEqualCaseInsensitive(paramStr, "wwaeTau")) {
604 } else if (strEqualCaseInsensitive(paramStr, "wwaeBeta")) {
606 } else if (strEqualCaseInsensitive(paramStr, "benchTestOffTime")) {
608 } else if (strEqualCaseInsensitive(paramStr, "benchTestCount")) {
610 } else if (strEqualCaseInsensitive(paramStr, "cranking_dwell")) {
612#if EFI_PROD_CODE
613 } else if (strEqualCaseInsensitive(paramStr, CMD_VSS_PIN)) {
614 setVssPin(valueStr);
615#endif // EFI_PROD_CODE
616 } else if (strEqualCaseInsensitive(paramStr, "targetvbatt")) {
618 } else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
619 // rusEfi console invokes this method with timestamp in local timezone
620 setDateTime(valueStr);
621 }
622
623 bool isGoodName = setConfigValueByName(paramStr, valueF);
624 if (isGoodName) {
625 efiPrintf("Settings: applying [%s][%f]", paramStr, valueF);
626 }
627
629}
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:519
const command_f_s commandsF[]
Definition settings.cpp:507
static void setVssPin(const char *pinName)
Definition settings.cpp:242
void setDateTime(const char *const isoDateTime)
Definition settings.cpp:697
scaled_channel< int16_t, 10, 1 > alternatorVoltageTargetTable[ALTERNATOR_VOLTAGE_TARGET_SIZE][ALTERNATOR_VOLTAGE_TARGET_SIZE]
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
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 242 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 158 of file settings.cpp.

158 {
160}
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 162 of file settings.cpp.

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

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:100
static void setScriptCurve1Value(float value)
Definition settings.cpp:489
static void setCrankingTimingAngle(float value)
Definition settings.cpp:116
static void setScriptCurve2Value(float value)
Definition settings.cpp:493
static void setCrankingFuel(float timeMs)
Definition settings.cpp:105
static void setGlobalTriggerAngleOffset(float value)
Definition settings.cpp:110

Definition at line 507 of file settings.cpp.

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

Referenced by setValue().

◆ commandsI

const command_i_s commandsI[]

Definition at line 519 of file settings.cpp.

519 {
520#if EFI_ENGINE_CONTROL
521 {"ignition_mode", setIgnitionMode},
522 {"driveWheelRevPerKm", [](int value) {
524 }},
525 {"cranking_rpm", setCrankingRpm},
526 {"cranking_injection_mode", setCrankingInjectionMode},
527 {"injection_mode", setInjectionMode},
528 {CMD_ENGINE_TYPE, setEngineTypeAndSave},
529 {"rpm_hard_limit", setRpmHardLimit},
530 {"firing_order", setFiringOrder},
531 {"algorithm", setAlgorithmInt},
532 {"debug_mode", setDebugMode},
533 {"trigger_type", setTriggerType},
534 // used by HW CI
535 {"idle_solenoid_freq", setIdleSolenoidFrequency},
536#endif // EFI_ENGINE_CONTROL
537#if EFI_PROD_CODE
538#if EFI_BOR_LEVEL
539 {"bor", setBor},
540#endif // EFI_BOR_LEVEL
541#if EFI_CAN_SUPPORT
542 {"can_mode", setCanType},
543 {"can_vss", setCanVss},
544#endif // EFI_CAN_SUPPORT
545#if EFI_IDLE_CONTROL
546 {"idle_position", setManualIdleValvePosition},
547 {"idle_rpm", setTargetIdleRpm},
548#endif // EFI_IDLE_CONTROL
549#endif // EFI_PROD_CODE
550
551 // {"", },
552 // {"", },
553};
void setCanType(int type)
Definition can_hw.cpp:109
void setCanVss(int type)
Definition can_vss.cpp:225
void setBor(int borValue)
Definition hardware.cpp:434
void setTargetIdleRpm(int value)
void setManualIdleValvePosition(int positionPercent)
static void setFiringOrder(int value)
Definition settings.cpp:90
static void setIdleSolenoidFrequency(int value)
Definition settings.cpp:70
static void setTriggerType(int value)
Definition settings.cpp:146
static void setInjectionMode(int value)
Definition settings.cpp:128
static void setCrankingRpm(int value)
Definition settings.cpp:77
static void setDebugMode(int value)
Definition settings.cpp:154
void setEngineTypeAndSave(int value)
Definition settings.cpp:729
static void setCrankingInjectionMode(int value)
Definition settings.cpp:122
static void setAlgorithmInt(int value)
Definition settings.cpp:85
static void setRpmHardLimit(int value)
Definition settings.cpp:95

Referenced by setValue().

◆ verboseRxCan

bool verboseRxCan = false

Definition at line 360 of file settings.cpp.

Referenced by enableOrDisable(), and processCanRxMessage().

◆ waveChart

WaveChart waveChart
extern

Definition at line 33 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.