rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions
settings.h 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.h.

Functions

void initSettings ()
 
void printSpiState ()
 
void printConfiguration ()
 Prints current engine configuration to human-readable console.
 
bool isHwQcMode ()
 
void setHwQcMode ()
 
void setEngineTypeAndSave (int value)
 
void setEngineType (int value, bool isWriteToFlash=true)
 
void readPin (const char *pinName)
 
void printDateTime ()
 
void setDateTime (const char *const isoDateTime)
 

Function Documentation

◆ 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)
@ Invalid
void unlockEcu(int password)
Definition engine2.cpp:319
void efiSetPadModeWithoutOwnershipAcquisition(const char *msg, brain_pin_e brainPin, iomode_t mode)
Definition io_pins.cpp:61
static void enableSpi(int index)
Definition settings.cpp:449
static brain_pin_e parseBrainPinWithErrorMessage(const char *pinName)
Definition settings.cpp:176
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
void readPin(const char *pinName)
Definition settings.cpp:205
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
brain_pin_e pin
Definition stm32_adc.cpp:15
printf("\n")

Referenced by commonInitEngineController().

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

◆ isHwQcMode()

bool isHwQcMode ( )

Definition at line 40 of file can_bench_test.cpp.

40 {
41#if EFI_PROD_CODE
43#else
44 return false;
45#endif // EFI_PROD_CODE
46}
static bool qcDirectPinControlMode

Referenced by CanWrite::PeriodicTask(), and OutputPin::setValue().

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
static EngineAccessor engine
Definition engine.h:413
static constexpr engine_configuration_s * engineConfiguration
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}
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin)
ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin)
const char * hwPortname(brain_pin_e brainPin)

Referenced by benchSetPinValue(), and initSettings().

Here is the call graph for this function:
Here is the caller 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:

◆ setEngineType()

void setEngineType ( int  value,
bool  isWriteToFlash = true 
)

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 incrementGlobalConfigurationVersion(const char *msg)
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:

◆ setHwQcMode()

void setHwQcMode ( )

Definition at line 48 of file can_bench_test.cpp.

48 {
49#if EFI_PROD_CODE
51#if HW_HELLEN
52 if (!getHellenBoardEnabled()) {
53 hellenEnableEn("HW QC");
54 }
55#endif // HW_HELLEN
56#endif // EFI_PROD_CODE
57}
void hellenEnableEn(const char *msg)
bool getHellenBoardEnabled()

Referenced by initSettings(), processCanQcBenchTest(), and qcSetEtbState().

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

Go to the source code of this file.