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

637 {
638#if EFI_SIMULATOR
639 printf("initSettings\n");
640#endif // EFI_SIMULATOR
641
642 // todo: start saving values into flash right away?
643
644#if EFI_ENGINE_CONTROL
645 // used by HW CI
646 addConsoleAction(CMD_INDIVIDUAL_INJECTION, setIndividualCoilsIgnition);
648 addConsoleActionF("set_whole_timing_map", setWholeTimingMapCmd);
649#endif // EFI_ENGINE_CONTROL
650
652
653 // todo: refactor this - looks like all boolean flags should be controlled with less code duplication
654 addConsoleActionI("enable_spi", enableSpi);
655 addConsoleActionI("disable_spi", disableSpi);
656
657 addConsoleActionS(CMD_ENABLE, enable);
658 addConsoleActionS(CMD_DISABLE, disable);
659
661 addConsoleActionS(CMD_GET, getValue);
662
663#if EFI_PROD_CODE
664 addConsoleActionSS(CMD_IGNITION_PIN, setIgnitionPin);
665 addConsoleActionSS(CMD_TRIGGER_PIN, setTriggerInputPin);
666 addConsoleActionSS(CMD_TRIGGER_SIMULATOR_PIN, setTriggerSimulatorPin);
667
668 addConsoleActionI(CMD_ECU_UNLOCK, unlockEcu);
669
670 addConsoleActionS(CMD_ALTERNATOR_PIN, setAlternatorPin);
671 addConsoleActionS(CMD_IDLE_PIN, setIdlePin);
672
673 addConsoleActionS("bench_clearpin", benchClearPin);
674 addConsoleActionS("bench_setpin", benchSetPin);
675 addConsoleActionS("readpin", readPin);
676 addConsoleAction("hw_qc_mode", [](){
677 setHwQcMode();
678 });
679 addConsoleActionS("bench_set_output_mode", [](const char *pinName){
681 if (pin == Gpio::Invalid) {
682 return;
683 }
684 efiSetPadModeWithoutOwnershipAcquisition("manual-mode", pin, PAL_MODE_OUTPUT_PUSHPULL);
685 });
686
687#if HAL_USE_ADC
689 addConsoleActionSS("set_analog_input_pin", setAnalogInputPin);
690#endif // HAL_USE_ADC
691 addConsoleActionSS(CMD_LOGIC_PIN, setLogicInputPin);
692#endif // EFI_PROD_CODE
693}
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:320
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:453
static brain_pin_e parseBrainPinWithErrorMessage(const char *pinName)
Definition settings.cpp:176
static void enable(const char *param)
Definition settings.cpp:445
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:468
static void disableSpi(int index)
Definition settings.cpp:457
static void setIndividualCoilsIgnition()
Definition settings.cpp:146
static void setValue(const char *paramStr, const char *valueStr)
Definition settings.cpp:561
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:464
static void disable(const char *param)
Definition settings.cpp:449
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 695 of file settings.cpp.

695 {
696#if EFI_RTC
698#else // EFI_RTC
699 efiPrintf("Cannot print time: RTC not supported");
700#endif // EFI_RTC
701}
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 703 of file settings.cpp.

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

739 {
740 {
741#if EFI_PROD_CODE
742 chibios_rt::CriticalSectionLocker csl;
743#endif // EFI_PROD_CODE
744
748
749#if EFI_CONFIGURATION_STORAGE
750 if (isWriteToFlash) {
752 }
753#endif /* EFI_CONFIGURATION_STORAGE */
754 }
756#if EFI_ENGINE_CONTROL && ! EFI_UNIT_TEST
758#endif // ! EFI_UNIT_TEST
759}
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 735 of file settings.cpp.

735 {
736 setEngineType(value, true);
737}
void setEngineType(int value, bool isWriteToFlash)
Definition settings.cpp:739
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.