From e063aa492a9cde5ddc5b167f9e81c3a23ba30e2e Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 22 May 2020 16:45:13 -0400 Subject: [PATCH] build and board info into critical error message --- firmware/config/boards/microrusefi/board.mk | 2 +- firmware/controllers/core/error_handling.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/firmware/config/boards/microrusefi/board.mk b/firmware/config/boards/microrusefi/board.mk index 71ee27c342..afbb98067e 100644 --- a/firmware/config/boards/microrusefi/board.mk +++ b/firmware/config/boards/microrusefi/board.mk @@ -36,5 +36,5 @@ EFI_CONSOLE_TTL_PINS = -DEFI_CONSOLE_TX_BRAIN_PIN=GPIOG_14 -DEFI_CONSOLE_RX_BRAI # Add them all together -DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DFIRMWARE_ID=\"microRusEfi\" $(DEFAULT_ENGINE_TYPE) $(LED_CRITICAL_ERROR_BRAIN_PIN) $(EFI_CONSOLE_TTL_PINS) +DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DFIRMWARE_ID=\"microRusEFI\" $(DEFAULT_ENGINE_TYPE) $(LED_CRITICAL_ERROR_BRAIN_PIN) $(EFI_CONSOLE_TTL_PINS) diff --git a/firmware/controllers/core/error_handling.cpp b/firmware/controllers/core/error_handling.cpp index b1e33c08c7..c4150f353b 100644 --- a/firmware/controllers/core/error_handling.cpp +++ b/firmware/controllers/core/error_handling.cpp @@ -253,6 +253,13 @@ void firmwareError(obd_code_e code, const char *fmt, ...) { // todo: reuse warning buffer helper method errorState.firmwareErrorMessageStream.buffer[errorState.firmwareErrorMessageStream.eos] = 0; // need to terminate explicitly } + int size = strlen((char*)criticalErrorMessageBuffer); + static char versionBuffer[32]; + chsnprintf(versionBuffer, sizeof(versionBuffer), " %d@%s", getRusEfiVersion(), FIRMWARE_ID); + + if (size + strlen(versionBuffer) < sizeof(criticalErrorMessageBuffer)) { + strcpy((char*)(criticalErrorMessageBuffer) + size, versionBuffer); + } #else printf("firmwareError [%s]\r\n", fmt);