diff --git a/firmware/console/binary/tunerstudio_configuration.h b/firmware/console/binary/tunerstudio_configuration.h index 35ce11b038..47bdfdfb4d 100644 --- a/firmware/console/binary/tunerstudio_configuration.h +++ b/firmware/console/binary/tunerstudio_configuration.h @@ -85,6 +85,7 @@ typedef struct { unsigned int hasFatalError : 1; // bit 6 unsigned int isWarnNow : 1; // bit 7 unsigned int isCltBroken : 1; // bit 8 + unsigned int isKnockChipOk : 1; // bit 9 int tsConfigVersion; // 84 egt_values_s egtValues; // 88 float unusedOffset104; // 104 diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 15d226131a..2a0bd40f46 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -653,7 +653,7 @@ static void lcdThread(void *arg) { #if EFI_HIP_9011 || defined(__DOXYGEN__) extern int correctResponsesCount; -extern int invalidResponsesCount; +extern int invalidHip9011ResponsesCount; #endif /* EFI_HIP_9011 */ #if EFI_TUNER_STUDIO || defined(__DOXYGEN__) @@ -734,6 +734,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ tsOutputChannels->isWarnNow = isWarningNow(now, true); tsOutputChannels->isCltBroken = engine->isCltBroken; + tsOutputChannels->isKnockChipOk = (invalidHip9011ResponsesCount == 0); switch (engineConfiguration->debugMode) { case DBG_STATUS: @@ -794,7 +795,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ #if EFI_HIP_9011 || defined(__DOXYGEN__) case DBG_KNOCK: tsOutputChannels->debugIntField1 = correctResponsesCount; - tsOutputChannels->debugIntField2 = invalidResponsesCount; + tsOutputChannels->debugIntField2 = invalidHip9011ResponsesCount; break; #endif /* EFI_HIP_9011 */ #if EFI_CJ125 || defined(__DOXYGEN__) diff --git a/firmware/hw_layer/HIP9011.cpp b/firmware/hw_layer/HIP9011.cpp index 522fb70db3..5b44e088ed 100644 --- a/firmware/hw_layer/HIP9011.cpp +++ b/firmware/hw_layer/HIP9011.cpp @@ -68,7 +68,7 @@ static float hipValueMax = 0; static unsigned char tx_buff[1]; static unsigned char rx_buff[1]; int correctResponsesCount = 0; -int invalidResponsesCount = 0; +int invalidHip9011ResponsesCount = 0; static char pinNameBuffer[16]; static float currentAngleWindowWidth; @@ -104,7 +104,7 @@ static void checkResponse(void) { if (tx_buff[0] == rx_buff[0]) { correctResponsesCount++; } else { - invalidResponsesCount++; + invalidHip9011ResponsesCount++; } } @@ -149,12 +149,12 @@ static void showHipInfo(void) { currentIntergratorIndex, engineConfiguration->knockVThreshold, engine->knockCount, engineConfiguration->maxKnockSubDeg); - const char * msg = invalidResponsesCount > 0 ? "NOT GOOD" : "ok"; + const char * msg = invalidHip9011ResponsesCount > 0 ? "NOT GOOD" : "ok"; scheduleMsg(logger, "spi=%s IntHold@%s/%d response count=%d incorrect response=%d %s", getSpi_device_e(engineConfiguration->hip9011SpiDevice), hwPortname(boardConfiguration->hip9011IntHoldPin), boardConfiguration->hip9011IntHoldPinMode, - correctResponsesCount, invalidResponsesCount, + correctResponsesCount, invalidHip9011ResponsesCount, msg); scheduleMsg(logger, "CS@%s updateCount=%d", hwPortname(boardConfiguration->hip9011CsPin), settingUpdateCount);