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 }
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")) {
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)) {
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)) {
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)) {
427 }
else if (strEqualCaseInsensitive(
param, CMD_EXTERNAL_STIMULATION)) {
435 efiPrintf(
"unexpected [%s]",
param);
438 efiPrintf(
"[%s] %s",
param, isEnabled ?
"enabled" :
"disabled");
468 if (value != EFI_ERROR_CODE) {
469 efiPrintf(
"%s value: %.2f", paramStr, value);
474 if (strEqualCaseInsensitive(paramStr,
"tps_min")) {
476 }
else if (strEqualCaseInsensitive(paramStr,
"tps_max")) {
478 }
else if (strEqualCaseInsensitive(paramStr,
"global_trigger_offset_angle")) {
480#if EFI_SHAFT_POSITION_INPUT
481 }
else if (strEqualCaseInsensitive(paramStr,
"trigger_hw_input")) {
484 }
else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
487 efiPrintf(
"Invalid Parameter: %s", paramStr);
510#if EFI_ENGINE_CONTROL
522#if EFI_ENGINE_CONTROL
524 {
"driveWheelRevPerKm", [](
int value) {
557static void setValue(
const char *paramStr,
const char *valueStr) {
558 float valueF = atoff(valueStr);
559 int valueI = atoi(valueStr);
561 const command_f_s *currentF = &
commandsF[0];
563 if (strEqualCaseInsensitive(paramStr, currentF->token)) {
564 currentF->callback(valueF);
570 const command_i_s *currentI = &
commandsI[0];
572 if (strEqualCaseInsensitive(paramStr, currentI->token)) {
573 currentI->callback(valueI);
580 if (strEqualCaseInsensitive(paramStr,
"warning_period")) {
582 }
else if (strEqualCaseInsensitive(paramStr,
"dwell")) {
584 }
else if (strEqualCaseInsensitive(paramStr, CMD_ENGINESNIFFERRPMTHRESHOLD)) {
586#if EFI_EMULATE_POSITION_SENSORS
587 }
else if (strEqualCaseInsensitive(paramStr, CMD_RPM)) {
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")) {
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")) {
615 }
else if (strEqualCaseInsensitive(paramStr, CMD_VSS_PIN)) {
618 }
else if (strEqualCaseInsensitive(paramStr,
"targetvbatt")) {
620 }
else if (strEqualCaseInsensitive(paramStr, CMD_DATE)) {
627 efiPrintf(
"Settings: applying [%s][%f]", paramStr, valueF);
640#if EFI_ENGINE_CONTROL
695 efiPrintf(
"Cannot print time: RTC not supported");
702 if (strlen(isoDateTime) >= 19 && isoDateTime[10] ==
'T') {
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 &&
718 efiPrintf(
"Time is changed to");
723 efiPrintf(
"date_set Date parameter %s is wrong", isoDateTime);
725 efiPrintf(
"Cannot set time: RTC not supported");
738 chibios_rt::CriticalSectionLocker csl;
745#if EFI_CONFIGURATION_STORAGE
746 if (isWriteToFlash) {
752#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_TARGET_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