From a2deca0f20ade19e79ce9170c4ae079d4b63dbb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20=C3=96ster?= Date: Sun, 3 Nov 2024 19:36:52 +0200 Subject: [PATCH] Added info to webserver incase challenge failed --- Software/src/battery/NISSAN-LEAF-BATTERY.cpp | 3 ++- Software/src/datalayer/datalayer_extended.h | 3 +++ Software/src/devboard/webserver/advanced_battery_html.cpp | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Software/src/battery/NISSAN-LEAF-BATTERY.cpp b/Software/src/battery/NISSAN-LEAF-BATTERY.cpp index 7c48fe37..5c39dfd9 100644 --- a/Software/src/battery/NISSAN-LEAF-BATTERY.cpp +++ b/Software/src/battery/NISSAN-LEAF-BATTERY.cpp @@ -354,6 +354,7 @@ void update_values_battery() { /* This function maps all the values fetched via ((solvedChallenge[7] << 24) | (solvedChallenge[6] << 16) | (solvedChallenge[5] << 8) | solvedChallenge[4]); datalayer_extended.nissanleaf.SolvedChallengeLSB = ((solvedChallenge[3] << 24) | (solvedChallenge[2] << 16) | (solvedChallenge[1] << 8) | solvedChallenge[0]); + datalayer_extended.nissanleaf.challengeFailed = challengeFailed; // Update requests from webserver datalayer if (datalayer_extended.nissanleaf.UserRequestSOHreset) { @@ -1287,7 +1288,7 @@ uint16_t Temp_fromRAW_to_F(uint16_t temperature) { //This function feels horrib } void clearSOH(void) { - + challengeFailed = false; stop_battery_query = true; hold_off_with_polling_10seconds = 10; // Active battery polling is paused for 100 seconds diff --git a/Software/src/datalayer/datalayer_extended.h b/Software/src/datalayer/datalayer_extended.h index fb4df944..626cd8db 100644 --- a/Software/src/datalayer/datalayer_extended.h +++ b/Software/src/datalayer/datalayer_extended.h @@ -201,6 +201,9 @@ typedef struct { /** bool */ /** User requesting SOH reset via WebUI*/ bool UserRequestSOHreset = false; + /** bool */ + /** True if the crypto challenge response from BMS is signalling a failed attempt*/ + bool challengeFailed = false; /** uint32_t */ /** Cryptographic challenge to be solved */ uint32_t CryptoChallenge = 0; diff --git a/Software/src/devboard/webserver/advanced_battery_html.cpp b/Software/src/devboard/webserver/advanced_battery_html.cpp index 40b86f01..d15654b8 100644 --- a/Software/src/devboard/webserver/advanced_battery_html.cpp +++ b/Software/src/devboard/webserver/advanced_battery_html.cpp @@ -296,6 +296,7 @@ String advanced_battery_processor(const String& var) { content += "

CryptoChallenge: " + String(datalayer_extended.nissanleaf.CryptoChallenge) + "

"; content += "

SolvedChallenge: " + String(datalayer_extended.nissanleaf.SolvedChallengeMSB) + String(datalayer_extended.nissanleaf.SolvedChallengeLSB) + "

"; + content += "

Challenge failed: " + String(datalayer_extended.nissanleaf.challengeFailed) + "

"; #endif #if !defined(TESLA_BATTERY) && !defined(NISSAN_LEAF_BATTERY) && !defined(BMW_I3_BATTERY) && \