diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index 6eff7ee366..09cbcdcb3d 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -264,6 +264,11 @@ void EtbController::PeriodicTask() { #endif /* EFI_TUNER_STUDIO */ } + if (cisnan(targetPosition)) { + // this could happen while changing settings + warning(CUSTOM_ERR_ETB_TARGET, "target"); + return; + } engine->engineState.etbFeedForward = interpolate2d("etbb", targetPosition, engineConfiguration->etbBiasBins, engineConfiguration->etbBiasValues); etbPid.iTermMin = engineConfiguration->etb_iTermMin; diff --git a/firmware/controllers/algo/obd_error_codes.h b/firmware/controllers/algo/obd_error_codes.h index 0c16c24ad7..e5ade9f1ab 100644 --- a/firmware/controllers/algo/obd_error_codes.h +++ b/firmware/controllers/algo/obd_error_codes.h @@ -2026,14 +2026,14 @@ typedef enum { CUSTOM_ERR_6665 = 6665, CUSTOM_ERR_6666 = 6666, CUSTOM_ERR_ADCANCE_CALC_ANGLE = 6667, - CUSTOM_ERR_6668 = 6668, + CUSTOM_ERR_ETB_TARGET = 6668, CUSTOM_ERR_6669 = 6669, CUSTOM_ERR_6670 = 6670, - CUSTOM_ERR_6671 = 6671, - CUSTOM_ERR_6672 = 6672, - CUSTOM_ERR_6673 = 6673, - CUSTOM_ERR_6674 = 6674, + CUSTOM_STACK_ADC_6671 = 6671, + CUSTOM_ICU_DRIVER = 6672, + CUSTOM_ICU_DRIVER_STATE = 6673, + CUSTOM_STACK_SPI = 6674, CUSTOM_ERR_6675 = 6675, CUSTOM_ERR_6676 = 6676, CUSTOM_IH_STACK = 6677, diff --git a/firmware/hw_layer/adc_inputs.cpp b/firmware/hw_layer/adc_inputs.cpp index 9f938792fe..e4c1a87953 100644 --- a/firmware/hw_layer/adc_inputs.cpp +++ b/firmware/hw_layer/adc_inputs.cpp @@ -468,7 +468,7 @@ static void adc_callback_slow(ADCDriver *adcp, adcsample_t *buffer, size_t n) { if (adcp->state == ADC_COMPLETE) { slowAdc.invalidateSamplesCache(); - efiAssertVoid(CUSTOM_ERR_6671, getCurrentRemainingStack() > 128, "lowstck#9c"); + efiAssertVoid(CUSTOM_STACK_ADC_6671, getCurrentRemainingStack() > 128, "lowstck#9c"); /* Calculates the average values from the ADC samples.*/ for (int i = 0; i < slowAdc.size(); i++) { diff --git a/firmware/hw_layer/digital_input_icu.cpp b/firmware/hw_layer/digital_input_icu.cpp index 81b8b33bdb..153ff58f00 100644 --- a/firmware/hw_layer/digital_input_icu.cpp +++ b/firmware/hw_layer/digital_input_icu.cpp @@ -281,8 +281,8 @@ void startInputDriver(const char *msg, /*nullable*/digital_input_s *hw, bool isA } wave_icucfg.channel = getInputCaptureChannel(hw->brainPin); efiIcuStart(msg, driver, &wave_icucfg); - efiAssertVoid(CUSTOM_ERR_6672, driver != NULL, "di: driver is NULL"); - efiAssertVoid(CUSTOM_ERR_6673, driver->state == ICU_READY, "di: driver not ready"); + efiAssertVoid(CUSTOM_ICU_DRIVER, driver != NULL, "di: driver is NULL"); + efiAssertVoid(CUSTOM_ICU_DRIVER_STATE, driver->state == ICU_READY, "di: driver not ready"); icuStartCapture(driver); // this would change state from READY to WAITING icuEnableNotifications(driver); } diff --git a/firmware/hw_layer/hardware.cpp b/firmware/hw_layer/hardware.cpp index 19ec970629..fc94bb0599 100644 --- a/firmware/hw_layer/hardware.cpp +++ b/firmware/hw_layer/hardware.cpp @@ -93,7 +93,7 @@ bool rtcWorks = true; */ void lockSpi(spi_device_e device) { UNUSED(device); - efiAssertVoid(CUSTOM_ERR_6674, getCurrentRemainingStack() > 128, "lockSpi"); + efiAssertVoid(CUSTOM_STACK_SPI, getCurrentRemainingStack() > 128, "lockSpi"); // todo: different locks for different SPI devices! chMtxLock(&spiMtx); } diff --git a/firmware/hw_layer/pin_repository.cpp b/firmware/hw_layer/pin_repository.cpp index 770689f157..7d18ff32f9 100644 --- a/firmware/hw_layer/pin_repository.cpp +++ b/firmware/hw_layer/pin_repository.cpp @@ -197,8 +197,7 @@ bool brain_pin_markUsed(brain_pin_e brainPin, const char *msg) { * See also brain_pin_markUsed() */ -void brain_pin_markUnused(brain_pin_e brainPin) -{ +void brain_pin_markUnused(brain_pin_e brainPin) { int index; if (!initialized) {