From dfcaec7fe1e11d92a8808550c3b5940f3fe802e1 Mon Sep 17 00:00:00 2001 From: Lubos Petrovic Date: Wed, 23 Dec 2020 23:12:58 +0100 Subject: [PATCH] bms ignition --- Board320_240.cpp | 8 ++++---- CarHyundaiIoniq.cpp | 2 +- CarKiaEniro.cpp | 4 +++- CarRenaultZoe.cpp | 4 +++- LiveData.h | 8 ++++++++ 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Board320_240.cpp b/Board320_240.cpp index 5739dc4..c82eb59 100644 --- a/Board320_240.cpp +++ b/Board320_240.cpp @@ -1166,8 +1166,8 @@ void Board320_240::redrawScreen() { // SDCARD recording /*liveData->params.sdcardRecording*/ if (liveData->settings.sdcardEnabled == 1) { - spr.fillCircle((displayScreen == SCREEN_SPEED || displayScreenAutoMode == SCREEN_SPEED) ? 160 : 310, 10, 4, TFT_BLACK); - spr.fillCircle((displayScreen == SCREEN_SPEED || displayScreenAutoMode == SCREEN_SPEED) ? 160 : 310, 10, 3, + spr.fillCircle((displayScreen == SCREEN_SPEED || displayScreenAutoMode == SCREEN_SPEED) ? 140 : 310, 10, 4, TFT_BLACK); + spr.fillCircle((displayScreen == SCREEN_SPEED || displayScreenAutoMode == SCREEN_SPEED) ? 140 : 310, 10, 3, (liveData->params.sdcardInit == 1) ? (liveData->params.sdcardRecording) ? (strlen(liveData->params.sdcardFilename) != 0) ? @@ -1178,12 +1178,12 @@ void Board320_240::redrawScreen() { ); } if (gpsHwUart != NULL && (displayScreen == SCREEN_SPEED || displayScreenAutoMode == SCREEN_SPEED)) { - spr.drawCircle(180, 10, 5, (gps.location.isValid()) ? TFT_GREEN : TFT_RED); + spr.drawCircle(160, 10, 5, (gps.location.isValid()) ? TFT_GREEN : TFT_RED); spr.setTextSize(1); spr.setTextColor((gps.location.isValid()) ? TFT_GREEN : TFT_WHITE, TFT_BLACK); spr.setTextDatum(TL_DATUM); sprintf(tmpStr1, "%d", liveData->params.gpsSat); - spr.drawString(tmpStr1, 194, 2, 2); + spr.drawString(tmpStr1, 174, 2, 2); } diff --git a/CarHyundaiIoniq.cpp b/CarHyundaiIoniq.cpp index a2a945f..f382ffd 100644 --- a/CarHyundaiIoniq.cpp +++ b/CarHyundaiIoniq.cpp @@ -111,7 +111,7 @@ void CarHyundaiIoniq::parseRowMerged() { liveData->params.lastIgnitionOnTime = liveData->params.currentTime; } int32_t secDiff = liveData->params.currentTime - liveData->params.currentTime; - if (liveData->commConnected && secDiff > 30 && secDiff < MONTH_SEC && !liveData->params.ignitionOn) + if (liveData->commConnected && secDiff > 30 && secDiff < MONTH_SEC && !liveData->params.ignitionOn && !liveData->params.chargingOn) liveData->params.automaticShutdownTimer = liveData->params.currentTime; liveData->params.lightInfo = liveData->hexToDecFromResponse(18, 20, 1, false); liveData->params.headLights = (bitRead(liveData->params.lightInfo, 5) == 1); diff --git a/CarKiaEniro.cpp b/CarKiaEniro.cpp index ddd1f46..742c7fe 100644 --- a/CarKiaEniro.cpp +++ b/CarKiaEniro.cpp @@ -129,7 +129,7 @@ void CarKiaEniro::parseRowMerged() { liveData->params.lastIgnitionOnTime = liveData->params.currentTime; } int32_t secDiff = liveData->params.currentTime - liveData->params.currentTime; - if (liveData->commConnected && secDiff > 30 && secDiff < MONTH_SEC && !liveData->params.ignitionOn) + if (liveData->commConnected && secDiff > 30 && secDiff < MONTH_SEC && !liveData->params.ignitionOn && !liveData->params.chargingOn) liveData->params.automaticShutdownTimer = liveData->params.currentTime; liveData->params.lightInfo = liveData->hexToDecFromResponse(18, 20, 1, false); liveData->params.headLights = (bitRead(liveData->params.lightInfo, 5) == 1); @@ -207,6 +207,8 @@ void CarKiaEniro::parseRowMerged() { //liveData->params.batTempC = liveData->hexToDecFromResponse(36, 38, 1, true); //liveData->params.batMaxC = liveData->hexToDecFromResponse(34, 36, 1, true); //liveData->params.batMinC = liveData->hexToDecFromResponse(36, 38, 1, true); + tempByte = liveData->hexToDecFromResponse(106, 108, 1, false); + liveData->params.chargingOn = (bitRead(tempByte, 2) == 1); // This is more accurate than min/max from BMS. It's required to detect kona/eniro cold gates (min 15C is needed > 43kW charging, min 25C is needed > 58kW charging) liveData->params.batMinC = liveData->params.batMaxC = liveData->params.batModuleTempC[0]; diff --git a/CarRenaultZoe.cpp b/CarRenaultZoe.cpp index 30498d9..f0bfca5 100644 --- a/CarRenaultZoe.cpp +++ b/CarRenaultZoe.cpp @@ -108,7 +108,9 @@ void CarRenaultZoe::activateCommandQueue() { // liveData->params.batModuleTempCount = 12; // 24, 12 is display limit - liveData->params.batteryTotalAvailableKWh = 28; + liveData->params.batteryTotalAvailableKWh = 22; + // usable 22, total 26 + // Empty and fill command queue for (int i = 0; i < 300; i++) { diff --git a/LiveData.h b/LiveData.h index ad04119..a2930de 100644 --- a/LiveData.h +++ b/LiveData.h @@ -194,6 +194,14 @@ typedef struct { // ================================= byte gpsHwSerialPort; // 255-off, 0,1,2 - hw serial byte gprsHwSerialPort; // 255-off, 0,1,2 - hw serial + // === settings version 6 + // ================================= + byte serialConsolePort; // 255-off, 0 - hw serial (std) + byte debugLevel; // 0 - info only, 1 - debug communication (BLE/CAN), 2 - debug GSM, 3 - debug SDcard + uint16_t sdcardLogIntervalSec; // every x seconds + uint16_t gprsLogIntervalSec; // every x seconds + + // } SETTINGS_STRUC;