30#if EFI_ELECTRONIC_THROTTLE_BODY
34#if EFI_CONFIGURATION_STORAGE
44using namespace rusefi::stringutil;
47 efiPrintf(
"spi 1=%s/2=%s/3=%s/4=%s",
103 for (uint8_t i = 0; i < CLT_CRANKING_CURVE_SIZE; i++) {
106 efiPrintf(
"cranking_iac %.2f", percent);
111 efiPrintf(
"cranking_fuel %.2f", fuelMilligram);
139#if EFI_ENGINE_CONTROL
154 efiPrintf(
"Do you need to also invoke set operation_mode X?");
167 efiPrintf(
"Setting whole timing advance map to %.2f", value);
179 efiPrintf(
"invalid pin name [%s]", pinName);
191 int index = atoi(indexStr) - 1;
192 if (index < 0 || index >= MAX_CYLINDER_COUNT)
198 efiPrintf(
"setting ignition pin[%d] to %s please save&restart", index,
hwPortname(
pin));
211 efiPrintf(
"pin %s value %d",
hwPortname(
pin), physicalValue);
240 efiPrintf(
"setting %s pin to %s please save&restart", name,
hwPortname(
pin));
266 int index = atoi(indexStr);
267 if (index < 0 || index > 2)
273 efiPrintf(
"setting trigger pin[%d] to %s please save&restart", index,
hwPortname(
pin));
279 int index = atoi(indexStr);
280 if (index < 0 || index >= TRIGGER_SIMULATOR_PIN_COUNT)
286 efiPrintf(
"setting trigger simulator pin[%d] to %s please save&restart", index,
hwPortname(
pin));
300 if (
channel == EFI_ADC_ERROR) {
301 efiPrintf(
"Error with [%s]", pinName);
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);
331 int index = atoi(indexStr);
332 if (index < 0 || index > 2) {
339 efiPrintf(
"setting logic input pin[%d] to %s please save&restart", index,
hwPortname(
pin));
358 efiPrintf(
"invalid spi index %d", index);
367 if (strEqualCaseInsensitive(
param,
"useTLE8888_cranking_hack")) {
369#if EFI_SHAFT_POSITION_INPUT
370 }
else if (strEqualCaseInsensitive(
param, CMD_TRIGGER_HW_INPUT)) {
373 }
else if (strEqualCaseInsensitive(
param,
"verboseTLE8888")) {
375 }
else if (strEqualCaseInsensitive(
param,
"verboseRxCan")) {
377 }
else if (strEqualCaseInsensitive(
param,
"verboseCan")) {
379 }
else if (strEqualCaseInsensitive(
param,
"verboseCan2")) {
381#if (EFI_CAN_BUS_COUNT >= 3)
382 }
else if (strEqualCaseInsensitive(
param,
"verboseCan3")) {
385 }
else if (strEqualCaseInsensitive(
param,
"verboseIsoTp")) {
387 }
else if (strEqualCaseInsensitive(
param,
"artificialMisfire")) {
389 }
else if (strEqualCaseInsensitive(
param,
"logic_level_trigger")) {
391 }
else if (strEqualCaseInsensitive(
param,
"can_broadcast")) {
395 }
else if (strEqualCaseInsensitive(
param,
"verboseKLine")) {
397 }
else if (strEqualCaseInsensitive(
param,
"stepperidle")) {
399 }
else if (strEqualCaseInsensitive(
param,
"two_wire_wasted_spark")) {
402 }
else if (strEqualCaseInsensitive(
param,
"altcontrol")) {
404 }
else if (strEqualCaseInsensitive(
param,
"sd")) {
406 }
else if (strEqualCaseInsensitive(
param, CMD_FUNCTIONAL_TEST_MODE)) {
408 }
else if (strEqualCaseInsensitive(
param,
"can_read")) {
410 }
else if (strEqualCaseInsensitive(
param,
"can_write")) {
412 }
else if (strEqualCaseInsensitive(
param, CMD_INJECTION)) {
414 }
else if (strEqualCaseInsensitive(
param, CMD_PWM)) {
416 }
else if (strEqualCaseInsensitive(
param,
"trigger_details")) {
418 }
else if (strEqualCaseInsensitive(
param,
"vvt_details")) {
420 }
else if (strEqualCaseInsensitive(
param,
"invertCamVVTSignal")) {
422 }
else if (strEqualCaseInsensitive(
param, CMD_IGNITION)) {
424#if EFI_EMULATE_POSITION_SENSORS
425 }
else if (strEqualCaseInsensitive(
param, CMD_SELF_STIMULATION)) {
431 }
else if (strEqualCaseInsensitive(
param, CMD_EXTERNAL_STIMULATION)) {
439 efiPrintf(
"unexpected [%s]",
param);
442 efiPrintf(
"[%s] %s",
param, isEnabled ?
"enabled" :
"disabled");
472 if (value != EFI_ERROR_CODE) {
473 efiPrintf(
"%s value: %.2f", paramStr, value);
478 if (strEqualCaseInsensitive(paramStr,
"tps_min")) {
480 }
else if (strEqualCaseInsensitive(paramStr,
"tps_max")) {
482 }
else if (strEqualCaseInsensitive(paramStr,
"global_trigger_offset_angle")) {
484#if EFI_SHAFT_POSITION_INPUT
485 }
else if (strEqualCaseInsensitive(paramStr,
"trigger_hw_input")) {
488 }
else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
491 efiPrintf(
"Invalid Parameter: %s", paramStr);
514#if EFI_ENGINE_CONTROL
526#if EFI_ENGINE_CONTROL
528 {
"driveWheelRevPerKm", [](
int value) {
561static void setValue(
const char *paramStr,
const char *valueStr) {
562 float valueF = atoff(valueStr);
563 int valueI = atoi(valueStr);
565 const command_f_s *currentF = &
commandsF[0];
567 if (strEqualCaseInsensitive(paramStr, currentF->token)) {
568 currentF->callback(valueF);
574 const command_i_s *currentI = &
commandsI[0];
576 if (strEqualCaseInsensitive(paramStr, currentI->token)) {
577 currentI->callback(valueI);
584 if (strEqualCaseInsensitive(paramStr,
"warning_period")) {
586 }
else if (strEqualCaseInsensitive(paramStr,
"dwell")) {
588 }
else if (strEqualCaseInsensitive(paramStr, CMD_ENGINESNIFFERRPMTHRESHOLD)) {
590#if EFI_EMULATE_POSITION_SENSORS
591 }
else if (strEqualCaseInsensitive(paramStr, CMD_RPM)) {
594 }
else if (strEqualCaseInsensitive(paramStr,
"mc33_hvolt")) {
596 }
else if (strEqualCaseInsensitive(paramStr,
"mc33_i_peak")) {
598 }
else if (strEqualCaseInsensitive(paramStr,
"mc33_i_hold")) {
600 }
else if (strEqualCaseInsensitive(paramStr,
"mc33_t_max_boost")) {
602 }
else if (strEqualCaseInsensitive(paramStr,
"mc33_t_peak_off")) {
604 }
else if (strEqualCaseInsensitive(paramStr,
"vvt_offset")) {
606 }
else if (strEqualCaseInsensitive(paramStr,
"vvt_mode")) {
608 }
else if (strEqualCaseInsensitive(paramStr,
"wwaeTau")) {
610 }
else if (strEqualCaseInsensitive(paramStr,
"wwaeBeta")) {
612 }
else if (strEqualCaseInsensitive(paramStr,
"benchTestOffTime")) {
614 }
else if (strEqualCaseInsensitive(paramStr,
"benchTestCount")) {
616 }
else if (strEqualCaseInsensitive(paramStr,
"cranking_dwell")) {
619 }
else if (strEqualCaseInsensitive(paramStr, CMD_VSS_PIN)) {
622 }
else if (strEqualCaseInsensitive(paramStr,
"targetvbatt")) {
624 }
else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
631 efiPrintf(
"Settings: applying [%s][%f]", paramStr, valueF);
644#if EFI_ENGINE_CONTROL
699 efiPrintf(
"Cannot print time: RTC not supported");
706 if (strlen(isoDateTime) >= 19 && isoDateTime[10] ==
'T') {
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 &&
722 efiPrintf(
"Time is changed to");
727 efiPrintf(
"date_set Date parameter %s is wrong", isoDateTime);
729 efiPrintf(
"Cannot set time: RTC not supported");
742 chibios_rt::CriticalSectionLocker csl;
749#if EFI_CONFIGURATION_STORAGE
750 if (isWriteToFlash) {
756#if EFI_ENGINE_CONTROL && ! EFI_UNIT_TEST
const char * getEngine_type_e(engine_type_e value)
const char * getTrigger_type_e(trigger_type_e value)
void setCanType(int type)
int getGlobalConfigurationVersion() const
bool isFunctionalTestMode
void resetEngineSnifferIfInTestMode()
bool hwTriggerInputEnabled
rusEfi console sniffer data buffer
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.
adc_channel_e getAdcChannel(brain_pin_e pin)
ioportid_t getHwPort(const char *msg, brain_pin_e brainPin)
brain_pin_e parseBrainPin(const char *str)
ioportmask_t getHwPin(const char *msg, brain_pin_e brainPin)
Console package entry point header.
const char * boolToString(bool value)
TriggerCentral * getTriggerCentral()
static EngineAccessor engine
void unlockEcu(int password)
void prepareOutputSignals()
void setConstantDwell(floatms_t dwellMs)
Sets the same dwell time across the whole getRpm() range set dwell X.
void incrementGlobalConfigurationVersion(const char *msg)
void resetConfigurationExt(configuration_callback_t boardCallback, engine_type_e engineType)
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
void setAlgorithm(engine_load_mode_e algo)
void setFlatInjectorLag(float value)
rusEfi console wave sniffer
void setBor(int borValue)
Idle Valve Control thread.
void setTargetIdleRpm(int value)
void setManualIdleValvePosition(int positionPercent)
void efiSetPadModeWithoutOwnershipAcquisition(const char *msg, brain_pin_e brainPin, iomode_t mode)
const char * hwPortname(brain_pin_e brainPin)
void setRtcDateTime(efidatetime_t const *const dateTime)
const command_i_s commandsI[]
static void benchSetPinValue(const char *pinName, int bit)
static void setWholeTimingMap(float value)
static void enableSpi(int index)
static void setCrankingIACExtra(float percent)
static void setIndividualPin(const char *pinName, brain_pin_e *targetPin, const char *name)
static void setScriptCurve1Value(float value)
const command_f_s commandsF[]
static void setCrankingFuel(float fuelMilligram)
static brain_pin_e parseBrainPinWithErrorMessage(const char *pinName)
static void enable(const char *param)
static void setIgnitionPin(const char *indexStr, const char *pinName)
static void benchSetPin(const char *pinName)
static void setFiringOrder(int value)
static void setSpiMode(int index, bool mode)
static void getValue(const char *paramStr)
static void disableSpi(int index)
static void setIdleSolenoidFrequency(int value)
static void setTriggerType(int value)
static void setIndividualCoilsIgnition()
static void setCrankingTimingAngle(float value)
static void setInjectionMode(int value)
static void setValue(const char *paramStr, const char *valueStr)
static void setIgnitionMode(int value)
static void setScriptCurve2Value(float value)
static void setCrankingRpm(int value)
static void setDebugMode(int value)
static void setAlternatorPin(const char *pinName)
void setEngineType(int value, bool isWriteToFlash)
void readPin(const char *pinName)
static void benchClearPin(const char *pinName)
void printConfiguration()
Prints current engine configuration to human-readable console.
static void setWholeTimingMapCmd(float value)
static void setVssPin(const char *pinName)
static void setTriggerSimulatorPin(const char *indexStr, const char *pinName)
static void setTriggerInputPin(const char *indexStr, const char *pinName)
void setEngineTypeAndSave(int value)
static void setCrankingInjectionMode(int value)
static void setAnalogInputPin(const char *sensorStr, const char *pinName)
static void setAlgorithmInt(int value)
static void setIdlePin(const char *pinName)
static void enableOrDisable(const char *param, bool isEnabled)
static void setGlobalTriggerAngleOffset(float value)
static void setLogicInputPin(const char *indexStr, const char *pinName)
static void scheduleStopEngine()
static void disable(const char *param)
void setDateTime(const char *const isoDateTime)
static void setRpmHardLimit(int value)
void doScheduleStopEngine(StopRequestedReason reason)
air_pressure_sensor_config_s sensor
adc_channel_e tps1_1AdcChannel
angle_t globalTriggerAngleOffset
bool isAlternatorControlEnabled
engine_load_mode_e fuelAlgorithm
bool twoWireBatchIgnition
brain_input_pin_e vehicleSpeedSensorInputPin
angle_t crankingTimingAngle
Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]
bool verboseTriggerSynchDetails
ignition_mode_e ignitionMode
cranking_parameters_s cranking
float ignitionDwellForCrankingMs
vvt_mode_e vvtMode[CAMS_PER_BANK]
brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]
bool useTLE8888_cranking_hack
bool displayLogicLevelsInEngineSniffer
scaled_channel< uint16_t, 10, 1 > benchTestOffTime
injection_mode_e crankingInjectionMode
uint16_t engineSnifferRpmThreshold
uint16_t mc33_t_max_boost
float vvtOffsets[CAM_INPUTS_COUNT]
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]
firing_order_e firingOrder
output_pin_e alternatorControlPin
injection_mode_e injectionMode
output_pin_e ignitionPins[MAX_CYLINDER_COUNT]
adc_channel_e tps2_1AdcChannel
bool artificialTestMisfire
adc_channel_e throttlePedalPositionAdcChannel
float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]
float crankingCycleBaseFuel[CRANKING_CYCLE_CLT_SIZE][CRANKING_CURVE_SIZE]
float scriptCurve1[SCRIPT_CURVE_16]
scaled_channel< int16_t, 10, 1 > alternatorVoltageTargetTable[ALTERNATOR_VOLTAGE_TARGET_SIZE][ALTERNATOR_VOLTAGE_RPM_SIZE]
scaled_channel< int16_t, 10, 1 > ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]
float scriptCurve2[SCRIPT_CURVE_16]
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
void setLinearCurve(TValue(&array)[TSize], float from, float to, float precision=0.01f)
void disableTriggerStimulator()
void setTriggerEmulatorRPM(int rpm)
void enableExternalTriggerStimulator()
void enableTriggerStimulator(bool incGlobalConfiguration)
bool setConfigValueByName(const char *name, float value)
float getConfigValueByName(const char *name)
static tstrWifiInitParam param