// // Warning: don't edit - generated by generate_ecu_code.pl processing ../dev/sme_i1.json: SME 07: Battery management electronics // This generated code makes it easier to process CANBUS messages from the SME ecu in a BMW i3 // case I3_PID_SME_ALTERUNG_INNENWIDERSTAND_TS: { // 0x6334 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALTERUNG_INNENWIDERSTAND_TS", 4); break; } unsigned long STAT_ALTERUNG_INNENWIDERSTAND_WERT = (RXBUF_UINT32(0)); // Aging of the internal resistance in percent: Internal resistance of the storage tank when new is related to // the current value of the internal resistance (R_neu / R_akt) * 100 (100% = new condition, decreases with // aging) / Alterung des Innenwiderstands in Prozent: Innenwiderstand des Speichers im Neuzustand auf den // aktuellen Wert des Innenwiderstands bezogen (R_neu /R_akt) *100 (100% = Neuzustand, sinkt mit Alterung) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_INNENWIDERSTAND_TS", "STAT_ALTERUNG_INNENWIDERSTAND_WERT", STAT_ALTERUNG_INNENWIDERSTAND_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ALTERUNG_KAPAZITAET_TS: { // 0x6335 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALTERUNG_KAPAZITAET_TS", 4); break; } unsigned long STAT_ALTERUNG_KAPAZITAET_WERT = (RXBUF_UINT32(0)); // Remaining capacity of the memory / Restkapazitaet des Speichers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_TS", "STAT_ALTERUNG_KAPAZITAET_WERT", STAT_ALTERUNG_KAPAZITAET_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME__ST_SYM_MODUS: { // 0x6516 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME__ST_SYM_MODUS", 1); break; } unsigned char STAT_SYM_MODUS = (RXBUF_UCHAR(0)); // Status of the balancing / Status der Symmetrierung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "_ST_SYM_MODUS", "STAT_SYM_MODUS", STAT_SYM_MODUS, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME__UEBERLAST_ZAHELER: { // 0x651D if (datalen < 16) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME__UEBERLAST_ZAHELER", 16); break; } unsigned short STAT_OVERLOAD_K1_WERT = (RXBUF_UINT(0)); // Overload counter contactor K1 / Überlastzähler Schütz K1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_K1_WERT", STAT_OVERLOAD_K1_WERT, ""); unsigned short STAT_OVERLOAD_K2_WERT = (RXBUF_UINT(2)); // Overload counter contactor K2 / Überlastzähler Schütz K2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_K2_WERT", STAT_OVERLOAD_K2_WERT, ""); unsigned short STAT_OVERLOAD_K3_WERT = (RXBUF_UINT(4)); // Overload counter contactor K3 / Überlastzähler Schütz K3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_K3_WERT", STAT_OVERLOAD_K3_WERT, ""); unsigned short STAT_OVERLOAD_COOLING_VALVE_WERT = (RXBUF_UINT(6)); // Overload counter cooling valve / Überlastzähler Kühlventil ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_COOLING_VALVE_WERT", STAT_OVERLOAD_COOLING_VALVE_WERT, ""); unsigned short STAT_OVERLOAD_CSC_SUPPLY_WERT = (RXBUF_UINT(8)); // Overload counter CSC supply / Überlastzähler CSC Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_CSC_SUPPLY_WERT", STAT_OVERLOAD_CSC_SUPPLY_WERT, ""); unsigned short STAT_OVERLOAD_ISENS_WERT = (RXBUF_UINT(10)); // Overload counter current sensor / Überlastzähler Stromsensor ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_ISENS_WERT", STAT_OVERLOAD_ISENS_WERT, ""); unsigned short STAT_OVERLOAD_COOLING_PUMP_WERT = (RXBUF_UINT(12)); // Coolant pump overload counter / Überlastzähler Kühlmittelpumpe ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_COOLING_PUMP_WERT", STAT_OVERLOAD_COOLING_PUMP_WERT, ""); unsigned short STAT_OVERLOAD_HEATING_WERT = (RXBUF_UINT(14)); // Overload counter heating / Überlastzähler Heizung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "_UEBERLAST_ZAHELER", "STAT_OVERLOAD_HEATING_WERT", STAT_OVERLOAD_HEATING_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME__STATUS_UEBERNAHME_KAPATEST_NV: { // 0x6526 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME__STATUS_UEBERNAHME_KAPATEST_NV", 1); break; } unsigned char STAT_UEBERNAHME_KAPATEST_NV = (RXBUF_UCHAR(0)); // Current setting of the transfer of the results of a capacity test to the SoH_C estimator (0: no transfer, 1: // transfer (standard)) / Aktuelle Einstellung der Ergebnisübertragung eines Kapazitätstests in den // SoH_C-Schätzer (0: keine Übernahme, 1: Übernahme (standard)) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "_STATUS_UEBERNAHME_KAPATEST_NV", "STAT_UEBERNAHME_KAPATEST_NV", STAT_UEBERNAHME_KAPATEST_NV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ISOLATIONSWIDERSTAND_KOMMUNIKATION: { // 0xAD5E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ISOLATIONSWIDERSTAND_KOMMUNIKATION", 1); break; } unsigned char STAT_KOMMUNIKATION_AVL_ISRE = (RXBUF_UCHAR(0)); // Current send status AVL_ISRE (0 = signal is not sent, 1 = signal is sent on the vehicle bus) / Aktueller // Sendestatus AVL_ISRE (0 = Signal wird nicht gesendet, 1 = Signal wird auf Fahrzeugbus gesendet) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISOLATIONSWIDERSTAND_KOMMUNIKATION", "STAT_KOMMUNIKATION_AVL_ISRE", STAT_KOMMUNIKATION_AVL_ISRE, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ISOLATION: { // 0xAD61 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ISOLATION", 2); break; } unsigned char STAT_MESSUNG_ERFOLGREICH = (RXBUF_UCHAR(0)); // Current state of insulation measurement / aktueller Zustand Isolationsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISOLATION", "STAT_MESSUNG_ERFOLGREICH", STAT_MESSUNG_ERFOLGREICH, "\"0-n\""); unsigned char STAT_MESSUNG_ISOLATIONSFEHLER = (RXBUF_UCHAR(1)); // current state of the insulation fault / aktueller Zustand des Isolationsfehlers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISOLATION", "STAT_MESSUNG_ISOLATIONSFEHLER", STAT_MESSUNG_ISOLATIONSFEHLER, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KAPAZITAET_BESTIMMUNG: { // 0xAD66 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KAPAZITAET_BESTIMMUNG", 2); break; } unsigned char STAT_KAPAZITAET_WERT = (RXBUF_UCHAR(0)); // Estimated capacity value in% (value range 0-100%) based on nominal capacity / Kapazitätsschätzwert in % // (Wertebereich 0-100%) bezogen auf Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "KAPAZITAET_BESTIMMUNG", "STAT_KAPAZITAET_WERT", STAT_KAPAZITAET_WERT, "\"%\""); unsigned char STAT_AKTUELLER_ZUSTAND_NR = (RXBUF_UCHAR(1)); // Return Determination is running, successful or ended with an error / Rückgabe Ermittlung läuft, erfolgreich // oder mit Fehler beendet ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "KAPAZITAET_BESTIMMUNG", "STAT_AKTUELLER_ZUSTAND_NR", STAT_AKTUELLER_ZUSTAND_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HEIZUNG: { // 0xAD6A if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HEIZUNG", 1); break; } unsigned char STAT_HEIZUNG_AKTIV_NR = (RXBUF_UCHAR(0)); // State of the heating / Zustand der Heizung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HEIZUNG", "STAT_HEIZUNG_AKTIV_NR", STAT_HEIZUNG_AKTIV_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SYMMETRIERUNG: { // 0xAD6B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SYMMETRIERUNG", 1); break; } unsigned char STAT_SYM = (RXBUF_UCHAR(0)); // Status of the balancing / Status der Symmetrierung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SYMMETRIERUNG", "STAT_SYM", STAT_SYM, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HEIZUNG_FUNKTION: { // 0xAD73 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HEIZUNG_FUNKTION", 1); break; } unsigned char STAT_HEIZUNG_FUNKTION_NR = (RXBUF_UCHAR(0)); // Result of the functional heating diagnosis / Ergebniss der funktionalen Heizungsdiagnose ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HEIZUNG_FUNKTION", "STAT_HEIZUNG_FUNKTION_NR", STAT_HEIZUNG_FUNKTION_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_SOC_REKALIBRIERUNG: { // 0xD4C5 if (datalen < 255) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_SOC_REKALIBRIERUNG", 255); break; } unsigned char STAT_GRUND_REKAL_1 = (RXBUF_UCHAR(0)); // Reason for SOC recalibration-1 / Grund der SOC Rekaibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_GRUND_REKAL_1", STAT_GRUND_REKAL_1, "\"0-n\""); unsigned long STAT_ZEITPUNKT_REKAL_1_WERT = (RXBUF_UINT32(1)); // Time (SME time) of recalibration-1 / Zeitpunkt (SME-Zeit) der Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_ZEITPUNKT_REKAL_1_WERT", STAT_ZEITPUNKT_REKAL_1_WERT, "\"s\""); unsigned long STAT_HVOFFTIME_REKAL_1_WERT = (RXBUF_UINT32(5)); // Duration during which the shooters were last open-1 / Dauer, während die Schütze letzmalig geöffnet waren-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_HVOFFTIME_REKAL_1_WERT", STAT_HVOFFTIME_REKAL_1_WERT, "\"s\""); char STAT_TEMP_MESS_MEAN_VOR_1_WERT = (RXBUF_SCHAR(9)); // Average measuring temperature at HVS level BEFORE recalibration-1 / Mittlere Messtemperatur auf HVS-Ebene VOR // Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_VOR_1_WERT", STAT_TEMP_MESS_MEAN_VOR_1_WERT, "\"°C\""); char STAT_TEMP_MESS_MEAN_NACH_1_WERT = (RXBUF_SCHAR(10)); // Mean measurement temperature at HVS level AFTER recalibration-1 / Mittlere Messtemperatur auf HVS-Ebene NACH // Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_NACH_1_WERT", STAT_TEMP_MESS_MEAN_NACH_1_WERT, "\"°C\""); float STAT_UCEL_MIN_1_WERT = (RXBUF_UINT(11)/1000.0f); // Minimum measured cell voltage. If OCV reached == U_init SONST == Uakt-1 / Minimale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MIN_1_WERT", STAT_UCEL_MIN_1_WERT, "\"V\""); float STAT_UCEL_MAX_1_WERT = (RXBUF_UINT(13)/1000.0f); // Maximum measured cell voltage. If OCV reached == U_init SONST == Uakt-1 / Maximale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MAX_1_WERT", STAT_UCEL_MAX_1_WERT, "\"V\""); float STAT_UCEL_MEAN_1_WERT = (RXBUF_UINT(15)/1000.0f); // Mean measured cell voltage. If OCV reached == U_init SONST == Uakt-1 / Mittlere gemessene Zellspannung. Wenn // OCV reached == U_init SONST == Uakt-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MEAN_1_WERT", STAT_UCEL_MEAN_1_WERT, "\"V\""); float STAT_SOC_MIN_NENN_VOR_1_WERT = (RXBUF_UINT(17)/100.0f); // Minimum nominal SOC BEFORE recalibration-1 / Minimaler NennSOC VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_VOR_1_WERT", STAT_SOC_MIN_NENN_VOR_1_WERT, "\"%\""); float STAT_SOC_MAX_NENN_VOR_1_WERT = (RXBUF_UINT(19)/100.0f); // Maximum nominal SOC BEFORE recalibration-1 / Maximaler NennSOC VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_VOR_1_WERT", STAT_SOC_MAX_NENN_VOR_1_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_VOR_1_WERT = (RXBUF_UINT(21)/100.0f); // Average nominal SOC BEFORE recalibration -1 / Mittlerer NennSOC VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_VOR_1_WERT", STAT_SOC_MEAN_NENN_VOR_1_WERT, "\"%\""); float STAT_SOC_MIN_NENN_NACH_1_WERT = (RXBUF_UINT(23)/100.0f); // Minimum nominal SOC AFTER recalibration-1 / Minimaler NennSOC NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_NACH_1_WERT", STAT_SOC_MIN_NENN_NACH_1_WERT, "\"%\""); float STAT_SOC_MAX_NENN_NACH_1_WERT = (RXBUF_UINT(25)/100.0f); // Maximum nominal SOC AFTER recalibration-1 / Maximaler NennSOC NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_NACH_1_WERT", STAT_SOC_MAX_NENN_NACH_1_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_NACH_1_WERT = (RXBUF_UINT(27)/100.0f); // Average nominal SOC AFTER recalibration -1 / Mittlerer NennSOC NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_NACH_1_WERT", STAT_SOC_MEAN_NENN_NACH_1_WERT, "\"%\""); float STAT_SOC_MIN_AKT_VOR_1_WERT = (RXBUF_UINT(29)/100.0f); // Minimum AktSOC BEFORE recalibration-1 / Minimaler AktSOC VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_VOR_1_WERT", STAT_SOC_MIN_AKT_VOR_1_WERT, "\"%\""); float STAT_SOC_MAX_AKT_VOR_1_WERT = (RXBUF_UINT(31)/100.0f); // Maximum AktSOC BEFORE recalibration-1 / Maximaler AktSOC VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_VOR_1_WERT", STAT_SOC_MAX_AKT_VOR_1_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_VOR_1_WERT = (RXBUF_UINT(33)/100.0f); // Mean ActSOC BEFORE recalibration-1 / Mittlerer AktSOC VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_VOR_1_WERT", STAT_SOC_MEAN_AKT_VOR_1_WERT, "\"%\""); float STAT_SOC_MIN_AKT_NACH_1_WERT = (RXBUF_UINT(35)/100.0f); // Minimum AktSOC AFTER recalibration-1 / Minimaler AktSOC NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_NACH_1_WERT", STAT_SOC_MIN_AKT_NACH_1_WERT, "\"%\""); float STAT_SOC_MAX_AKT_NACH_1_WERT = (RXBUF_UINT(37)/100.0f); // Maximum AktSOC AFTER recalibration-1 / Maximaler AktSOC NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_NACH_1_WERT", STAT_SOC_MAX_AKT_NACH_1_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_NACH_1_WERT = (RXBUF_UINT(39)/100.0f); // Mean ActSOC AFTER recalibration -1 / Mittlerer AktSOC NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_NACH_1_WERT", STAT_SOC_MEAN_AKT_NACH_1_WERT, "\"%\""); float STAT_SOH_MIN_1_WERT = (RXBUF_UINT(41)/100.0f); // Minimum SOH at the time of recalibration-1 / Minimaler SOH zum Zeitpunkt der Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MIN_1_WERT", STAT_SOH_MIN_1_WERT, "\"%\""); float STAT_SOH_MAX_1_WERT = (RXBUF_UINT(43)/100.0f); // Maximum SOH at the time of recalibration-1 / Maximaler SOH zum Zeitpunkt der Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MAX_1_WERT", STAT_SOH_MAX_1_WERT, "\"%\""); float STAT_SOH_MEAN_1_WERT = (RXBUF_UINT(45)/100.0f); // Mean SOH at the time of recalibration-1 / Mittlerer SOH zum Zeitpunkt der Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MEAN_1_WERT", STAT_SOH_MEAN_1_WERT, "\"%\""); float STAT_SOC_BAND_VOR_1_WERT = (RXBUF_UINT(47)/100.0f); // SOC bandwidth BEFORE recalibration-1 / SOC Bandbreite VOR Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_VOR_1_WERT", STAT_SOC_BAND_VOR_1_WERT, "\"%\""); float STAT_SOC_BAND_NACH_1_WERT = (RXBUF_UINT(49)/100.0f); // SOC bandwidth AFTER recalibration-1 / SOC Bandbreite NACH Rekalibrierung-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_NACH_1_WERT", STAT_SOC_BAND_NACH_1_WERT, "\"%\""); unsigned char STAT_GRUND_REKAL_2 = (RXBUF_UCHAR(51)); // Reason for SOC recalibration-2 / Grund der SOC Rekaibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_GRUND_REKAL_2", STAT_GRUND_REKAL_2, "\"0-n\""); unsigned long STAT_ZEITPUNKT_REKAL_2_WERT = (RXBUF_UINT32(52)); // Time (SME time) of recalibration-2 / Zeitpunkt (SME-Zeit) der Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_ZEITPUNKT_REKAL_2_WERT", STAT_ZEITPUNKT_REKAL_2_WERT, "\"s\""); unsigned long STAT_HVOFFTIME_REKAL_2_WERT = (RXBUF_UINT32(56)); // Duration while the shooters were open for the last time-2 / Dauer, während die Schütze letzmalig geöffnet // waren-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_HVOFFTIME_REKAL_2_WERT", STAT_HVOFFTIME_REKAL_2_WERT, "\"s\""); char STAT_TEMP_MESS_MEAN_VOR_2_WERT = (RXBUF_SCHAR(60)); // Average measuring temperature at HVS level BEFORE recalibration-2 / Mittlere Messtemperatur auf HVS-Ebene VOR // Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_VOR_2_WERT", STAT_TEMP_MESS_MEAN_VOR_2_WERT, "\"°C\""); char STAT_TEMP_MESS_MEAN_NACH_2_WERT = (RXBUF_SCHAR(61)); // Mean measurement temperature at HVS level AFTER recalibration-2 / Mittlere Messtemperatur auf HVS-Ebene NACH // Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_NACH_2_WERT", STAT_TEMP_MESS_MEAN_NACH_2_WERT, "\"°C\""); float STAT_UCEL_MIN_2_WERT = (RXBUF_UINT(62)/1000.0f); // Minimum measured cell voltage. If OCV reached == U_init SONST == Uakt-2 / Minimale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MIN_2_WERT", STAT_UCEL_MIN_2_WERT, "\"V\""); float STAT_UCEL_MAX_2_WERT = (RXBUF_UINT(64)/1000.0f); // Maximum measured cell voltage. If OCV reached == U_init SONST == Uakt-2 / Maximale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MAX_2_WERT", STAT_UCEL_MAX_2_WERT, "\"V\""); float STAT_UCEL_MEAN_2_WERT = (RXBUF_UINT(66)/1000.0f); // Mean measured cell voltage. If OCV reached == U_init SONST == Uakt-2 / Mittlere gemessene Zellspannung. Wenn // OCV reached == U_init SONST == Uakt-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MEAN_2_WERT", STAT_UCEL_MEAN_2_WERT, "\"V\""); float STAT_SOC_MIN_NENN_VOR_2_WERT = (RXBUF_UINT(68)/100.0f); // Minimum nominal SOC BEFORE recalibration-2 / Minimaler NennSOC VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_VOR_2_WERT", STAT_SOC_MIN_NENN_VOR_2_WERT, "\"%\""); float STAT_SOC_MAX_NENN_VOR_2_WERT = (RXBUF_UINT(70)/100.0f); // Maximum nominal SOC BEFORE recalibration-2 / Maximaler NennSOC VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_VOR_2_WERT", STAT_SOC_MAX_NENN_VOR_2_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_VOR_2_WERT = (RXBUF_UINT(72)/100.0f); // Average nominal SOC BEFORE recalibration-2 / Mittlerer NennSOC VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_VOR_2_WERT", STAT_SOC_MEAN_NENN_VOR_2_WERT, "\"%\""); float STAT_SOC_MIN_NENN_NACH_2_WERT = (RXBUF_UINT(74)/100.0f); // Minimum nominal SOC AFTER recalibration-2 / Minimaler NennSOC NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_NACH_2_WERT", STAT_SOC_MIN_NENN_NACH_2_WERT, "\"%\""); float STAT_SOC_MAX_NENN_NACH_2_WERT = (RXBUF_UINT(76)/100.0f); // Maximum nominal SOC AFTER recalibration-2 / Maximaler NennSOC NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_NACH_2_WERT", STAT_SOC_MAX_NENN_NACH_2_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_NACH_2_WERT = (RXBUF_UINT(78)/100.0f); // Average nominal SOC AFTER recalibration-2 / Mittlerer NennSOC NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_NACH_2_WERT", STAT_SOC_MEAN_NENN_NACH_2_WERT, "\"%\""); float STAT_SOC_MIN_AKT_VOR_2_WERT = (RXBUF_UINT(80)/100.0f); // Minimum AktSOC BEFORE recalibration-2 / Minimaler AktSOC VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_VOR_2_WERT", STAT_SOC_MIN_AKT_VOR_2_WERT, "\"%\""); float STAT_SOC_MAX_AKT_VOR_2_WERT = (RXBUF_UINT(82)/100.0f); // Maximum AktSOC BEFORE recalibration-2 / Maximaler AktSOC VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_VOR_2_WERT", STAT_SOC_MAX_AKT_VOR_2_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_VOR_2_WERT = (RXBUF_UINT(84)/100.0f); // Mean ActSOC BEFORE recalibration-2 / Mittlerer AktSOC VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_VOR_2_WERT", STAT_SOC_MEAN_AKT_VOR_2_WERT, "\"%\""); float STAT_SOC_MIN_AKT_NACH_2_WERT = (RXBUF_UINT(86)/100.0f); // Minimum AktSOC AFTER recalibration-2 / Minimaler AktSOC NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_NACH_2_WERT", STAT_SOC_MIN_AKT_NACH_2_WERT, "\"%\""); float STAT_SOC_MAX_AKT_NACH_2_WERT = (RXBUF_UINT(88)/100.0f); // Maximum AktSOC AFTER recalibration-2 / Maximaler AktSOC NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_NACH_2_WERT", STAT_SOC_MAX_AKT_NACH_2_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_NACH_2_WERT = (RXBUF_UINT(90)/100.0f); // Mean ActSOC AFTER recalibration-2 / Mittlerer AktSOC NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_NACH_2_WERT", STAT_SOC_MEAN_AKT_NACH_2_WERT, "\"%\""); float STAT_SOH_MIN_2_WERT = (RXBUF_UINT(92)/100.0f); // Minimum SOH at the time of recalibration-2 / Minimaler SOH zum Zeitpunkt der Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MIN_2_WERT", STAT_SOH_MIN_2_WERT, "\"%\""); float STAT_SOH_MAX_2_WERT = (RXBUF_UINT(94)/100.0f); // Maximum SOH at the time of recalibration-2 / Maximaler SOH zum Zeitpunkt der Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MAX_2_WERT", STAT_SOH_MAX_2_WERT, "\"%\""); float STAT_SOH_MEAN_2_WERT = (RXBUF_UINT(96)/100.0f); // Mean SOH at the time of recalibration-2 / Mittlerer SOH zum Zeitpunkt der Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MEAN_2_WERT", STAT_SOH_MEAN_2_WERT, "\"%\""); float STAT_SOC_BAND_VOR_2_WERT = (RXBUF_UINT(98)/100.0f); // SOC bandwidth BEFORE recalibration-2 / SOC Bandbreite VOR Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_VOR_2_WERT", STAT_SOC_BAND_VOR_2_WERT, "\"%\""); float STAT_SOC_BAND_NACH_2_WERT = (RXBUF_UINT(100)/100.0f); // SOC bandwidth AFTER recalibration-2 / SOC Bandbreite NACH Rekalibrierung-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_NACH_2_WERT", STAT_SOC_BAND_NACH_2_WERT, "\"%\""); unsigned char STAT_GRUND_REKAL_3 = (RXBUF_UCHAR(102)); // Reason for SOC recalibration-3 / Grund der SOC Rekaibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_GRUND_REKAL_3", STAT_GRUND_REKAL_3, "\"0-n\""); unsigned long STAT_ZEITPUNKT_REKAL_3_WERT = (RXBUF_UINT32(103)); // Time (SME time) of recalibration-3 / Zeitpunkt (SME-Zeit) der Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_ZEITPUNKT_REKAL_3_WERT", STAT_ZEITPUNKT_REKAL_3_WERT, "\"s\""); unsigned long STAT_HVOFFTIME_REKAL_3_WERT = (RXBUF_UINT32(107)); // Duration while the shooters were open for the last time -3 / Dauer, während die Schütze letzmalig geöffnet // waren-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_HVOFFTIME_REKAL_3_WERT", STAT_HVOFFTIME_REKAL_3_WERT, "\"s\""); char STAT_TEMP_MESS_MEAN_VOR_3_WERT = (RXBUF_SCHAR(111)); // Average measuring temperature at HVS level BEFORE recalibration-3 / Mittlere Messtemperatur auf HVS-Ebene VOR // Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_VOR_3_WERT", STAT_TEMP_MESS_MEAN_VOR_3_WERT, "\"°C\""); char STAT_TEMP_MESS_MEAN_NACH_3_WERT = (RXBUF_SCHAR(112)); // Average measurement temperature at HVS level AFTER recalibration-3 / Mittlere Messtemperatur auf HVS-Ebene // NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_NACH_3_WERT", STAT_TEMP_MESS_MEAN_NACH_3_WERT, "\"°C\""); float STAT_UCEL_MIN_3_WERT = (RXBUF_UINT(113)/1000.0f); // Minimum measured cell voltage. If OCV reached == U_init SONST == Uakt-3 / Minimale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MIN_3_WERT", STAT_UCEL_MIN_3_WERT, "\"V\""); float STAT_UCEL_MAX_3_WERT = (RXBUF_UINT(115)/1000.0f); // Maximum measured cell voltage. If OCV reached == U_init SONST == Uakt-3 / Maximale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MAX_3_WERT", STAT_UCEL_MAX_3_WERT, "\"V\""); float STAT_UCEL_MEAN_3_WERT = (RXBUF_UINT(117)/1000.0f); // Mean measured cell voltage. If OCV reached == U_init SONST == Uakt-3 / Mittlere gemessene Zellspannung. Wenn // OCV reached == U_init SONST == Uakt-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MEAN_3_WERT", STAT_UCEL_MEAN_3_WERT, "\"V\""); float STAT_SOC_MIN_NENN_VOR_3_WERT = (RXBUF_UINT(119)/100.0f); // Minimum nominal SOC BEFORE recalibration -3 / Minimaler NennSOC VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_VOR_3_WERT", STAT_SOC_MIN_NENN_VOR_3_WERT, "\"%\""); float STAT_SOC_MAX_NENN_VOR_3_WERT = (RXBUF_UINT(121)/100.0f); // Maximum nominal SOC BEFORE recalibration -3 / Maximaler NennSOC VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_VOR_3_WERT", STAT_SOC_MAX_NENN_VOR_3_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_VOR_3_WERT = (RXBUF_UINT(123)/100.0f); // Average nominal SOC BEFORE recalibration -3 / Mittlerer NennSOC VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_VOR_3_WERT", STAT_SOC_MEAN_NENN_VOR_3_WERT, "\"%\""); float STAT_SOC_MIN_NENN_NACH_3_WERT = (RXBUF_UINT(125)/100.0f); // Minimum nominal SOC AFTER recalibration -3 / Minimaler NennSOC NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_NACH_3_WERT", STAT_SOC_MIN_NENN_NACH_3_WERT, "\"%\""); float STAT_SOC_MAX_NENN_NACH_3_WERT = (RXBUF_UINT(127)/100.0f); // Maximum nominal SOC AFTER recalibration -3 / Maximaler NennSOC NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_NACH_3_WERT", STAT_SOC_MAX_NENN_NACH_3_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_NACH_3_WERT = (RXBUF_UINT(129)/100.0f); // Average nominal SOC AFTER recalibration -3 / Mittlerer NennSOC NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_NACH_3_WERT", STAT_SOC_MEAN_NENN_NACH_3_WERT, "\"%\""); float STAT_SOC_MIN_AKT_VOR_3_WERT = (RXBUF_UINT(131)/100.0f); // Minimum AktSOC BEFORE recalibration-3 / Minimaler AktSOC VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_VOR_3_WERT", STAT_SOC_MIN_AKT_VOR_3_WERT, "\"%\""); float STAT_SOC_MAX_AKT_VOR_3_WERT = (RXBUF_UINT(133)/100.0f); // Maximum AktSOC BEFORE recalibration -3 / Maximaler AktSOC VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_VOR_3_WERT", STAT_SOC_MAX_AKT_VOR_3_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_VOR_3_WERT = (RXBUF_UINT(135)/100.0f); // Mean ActSOC BEFORE recalibration -3 / Mittlerer AktSOC VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_VOR_3_WERT", STAT_SOC_MEAN_AKT_VOR_3_WERT, "\"%\""); float STAT_SOC_MIN_AKT_NACH_3_WERT = (RXBUF_UINT(137)/100.0f); // Minimum AktSOC AFTER recalibration-3 / Minimaler AktSOC NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_NACH_3_WERT", STAT_SOC_MIN_AKT_NACH_3_WERT, "\"%\""); float STAT_SOC_MAX_AKT_NACH_3_WERT = (RXBUF_UINT(139)/100.0f); // Maximum AktSOC AFTER recalibration -3 / Maximaler AktSOC NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_NACH_3_WERT", STAT_SOC_MAX_AKT_NACH_3_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_NACH_3_WERT = (RXBUF_UINT(141)/100.0f); // Mean ActSOC AFTER recalibration -3 / Mittlerer AktSOC NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_NACH_3_WERT", STAT_SOC_MEAN_AKT_NACH_3_WERT, "\"%\""); float STAT_SOH_MIN_3_WERT = (RXBUF_UINT(143)/100.0f); // Minimum SOH at the time of recalibration -3 / Minimaler SOH zum Zeitpunkt der Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MIN_3_WERT", STAT_SOH_MIN_3_WERT, "\"%\""); float STAT_SOH_MAX_3_WERT = (RXBUF_UINT(145)/100.0f); // Maximum SOH at the time of recalibration -3 / Maximaler SOH zum Zeitpunkt der Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MAX_3_WERT", STAT_SOH_MAX_3_WERT, "\"%\""); float STAT_SOH_MEAN_3_WERT = (RXBUF_UINT(147)/100.0f); // Mean SOH at the time of recalibration -3 / Mittlerer SOH zum Zeitpunkt der Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MEAN_3_WERT", STAT_SOH_MEAN_3_WERT, "\"%\""); float STAT_SOC_BAND_VOR_3_WERT = (RXBUF_UINT(149)/100.0f); // SOC bandwidth BEFORE recalibration-3 / SOC Bandbreite VOR Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_VOR_3_WERT", STAT_SOC_BAND_VOR_3_WERT, "\"%\""); float STAT_SOC_BAND_NACH_3_WERT = (RXBUF_UINT(151)/100.0f); // SOC bandwidth AFTER recalibration-3 / SOC Bandbreite NACH Rekalibrierung-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_NACH_3_WERT", STAT_SOC_BAND_NACH_3_WERT, "\"%\""); unsigned char STAT_GRUND_REKAL_4 = (RXBUF_UCHAR(153)); // Reason for SOC recalibration-4 / Grund der SOC Rekaibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_GRUND_REKAL_4", STAT_GRUND_REKAL_4, "\"0-n\""); unsigned long STAT_ZEITPUNKT_REKAL_4_WERT = (RXBUF_UINT32(154)); // Time (SME time) of recalibration-4 / Zeitpunkt (SME-Zeit) der Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_ZEITPUNKT_REKAL_4_WERT", STAT_ZEITPUNKT_REKAL_4_WERT, "\"s\""); unsigned long STAT_HVOFFTIME_REKAL_4_WERT = (RXBUF_UINT32(158)); // Duration while the shooters were open for the last time-4 / Dauer, während die Schütze letzmalig geöffnet // waren-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_HVOFFTIME_REKAL_4_WERT", STAT_HVOFFTIME_REKAL_4_WERT, "\"s\""); char STAT_TEMP_MESS_MEAN_VOR_4_WERT = (RXBUF_SCHAR(162)); // Average measuring temperature at HVS level BEFORE recalibration-4 / Mittlere Messtemperatur auf HVS-Ebene VOR // Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_VOR_4_WERT", STAT_TEMP_MESS_MEAN_VOR_4_WERT, "\"°C\""); char STAT_TEMP_MESS_MEAN_NACH_4_WERT = (RXBUF_SCHAR(163)); // Mean measurement temperature at HVS level AFTER recalibration-4 / Mittlere Messtemperatur auf HVS-Ebene NACH // Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_NACH_4_WERT", STAT_TEMP_MESS_MEAN_NACH_4_WERT, "\"°C\""); float STAT_UCEL_MIN_4_WERT = (RXBUF_UINT(164)/1000.0f); // Minimum measured cell voltage. If OCV reached == U_init SONST == Uakt-4 / Minimale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MIN_4_WERT", STAT_UCEL_MIN_4_WERT, "\"V\""); float STAT_UCEL_MAX_4_WERT = (RXBUF_UINT(166)/1000.0f); // Maximum measured cell voltage. If OCV reached == U_init SONST == Uakt-4 / Maximale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MAX_4_WERT", STAT_UCEL_MAX_4_WERT, "\"V\""); float STAT_UCEL_MEAN_4_WERT = (RXBUF_UINT(168)/1000.0f); // Mean measured cell voltage. If OCV reached == U_init SONST == Uakt-4 / Mittlere gemessene Zellspannung. Wenn // OCV reached == U_init SONST == Uakt-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MEAN_4_WERT", STAT_UCEL_MEAN_4_WERT, "\"V\""); float STAT_SOC_MIN_NENN_VOR_4_WERT = (RXBUF_UINT(170)/100.0f); // Minimum nominal SOC BEFORE recalibration-4 / Minimaler NennSOC VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_VOR_4_WERT", STAT_SOC_MIN_NENN_VOR_4_WERT, "\"%\""); float STAT_SOC_MAX_NENN_VOR_4_WERT = (RXBUF_UINT(172)/100.0f); // Maximum nominal SOC BEFORE recalibration -4 / Maximaler NennSOC VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_VOR_4_WERT", STAT_SOC_MAX_NENN_VOR_4_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_VOR_4_WERT = (RXBUF_UINT(174)/100.0f); // Average nominal SOC BEFORE recalibration-4 / Mittlerer NennSOC VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_VOR_4_WERT", STAT_SOC_MEAN_NENN_VOR_4_WERT, "\"%\""); float STAT_SOC_MIN_NENN_NACH_4_WERT = (RXBUF_UINT(176)/100.0f); // Minimum nominal SOC AFTER recalibration-4 / Minimaler NennSOC NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_NACH_4_WERT", STAT_SOC_MIN_NENN_NACH_4_WERT, "\"%\""); float STAT_SOC_MAX_NENN_NACH_4_WERT = (RXBUF_UINT(178)/100.0f); // Maximum nominal SOC AFTER recalibration -4 / Maximaler NennSOC NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_NACH_4_WERT", STAT_SOC_MAX_NENN_NACH_4_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_NACH_4_WERT = (RXBUF_UINT(180)/100.0f); // Average nominal SOC AFTER recalibration -4 / Mittlerer NennSOC NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_NACH_4_WERT", STAT_SOC_MEAN_NENN_NACH_4_WERT, "\"%\""); float STAT_SOC_MIN_AKT_VOR_4_WERT = (RXBUF_UINT(182)/100.0f); // Minimum AktSOC BEFORE recalibration-4 / Minimaler AktSOC VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_VOR_4_WERT", STAT_SOC_MIN_AKT_VOR_4_WERT, "\"%\""); float STAT_SOC_MAX_AKT_VOR_4_WERT = (RXBUF_UINT(184)/100.0f); // Maximum AktSOC BEFORE recalibration -4 / Maximaler AktSOC VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_VOR_4_WERT", STAT_SOC_MAX_AKT_VOR_4_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_VOR_4_WERT = (RXBUF_UINT(186)/100.0f); // Mean ActSOC BEFORE recalibration -4 / Mittlerer AktSOC VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_VOR_4_WERT", STAT_SOC_MEAN_AKT_VOR_4_WERT, "\"%\""); float STAT_SOC_MIN_AKT_NACH_4_WERT = (RXBUF_UINT(188)/100.0f); // Minimum AktSOC AFTER recalibration-4 / Minimaler AktSOC NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_NACH_4_WERT", STAT_SOC_MIN_AKT_NACH_4_WERT, "\"%\""); float STAT_SOC_MAX_AKT_NACH_4_WERT = (RXBUF_UINT(190)/100.0f); // Maximum AktSOC AFTER recalibration -4 / Maximaler AktSOC NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_NACH_4_WERT", STAT_SOC_MAX_AKT_NACH_4_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_NACH_4_WERT = (RXBUF_UINT(192)/100.0f); // Mean ActSOC AFTER recalibration -4 / Mittlerer AktSOC NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_NACH_4_WERT", STAT_SOC_MEAN_AKT_NACH_4_WERT, "\"%\""); float STAT_SOH_MIN_4_WERT = (RXBUF_UINT(194)/100.0f); // Minimum SOH at the time of recalibration -4 / Minimaler SOH zum Zeitpunkt der Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MIN_4_WERT", STAT_SOH_MIN_4_WERT, "\"%\""); float STAT_SOH_MAX_4_WERT = (RXBUF_UINT(196)/100.0f); // Maximum SOH at the time of recalibration-4 / Maximaler SOH zum Zeitpunkt der Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MAX_4_WERT", STAT_SOH_MAX_4_WERT, "\"%\""); float STAT_SOH_MEAN_4_WERT = (RXBUF_UINT(198)/100.0f); // Mean SOH at the time of recalibration -4 / Mittlerer SOH zum Zeitpunkt der Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MEAN_4_WERT", STAT_SOH_MEAN_4_WERT, "\"%\""); float STAT_SOC_BAND_VOR_4_WERT = (RXBUF_UINT(200)/100.0f); // SOC bandwidth BEFORE recalibration-4 / SOC Bandbreite VOR Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_VOR_4_WERT", STAT_SOC_BAND_VOR_4_WERT, "\"%\""); float STAT_SOC_BAND_NACH_4_WERT = (RXBUF_UINT(202)/100.0f); // SOC bandwidth AFTER recalibration-4 / SOC Bandbreite NACH Rekalibrierung-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_NACH_4_WERT", STAT_SOC_BAND_NACH_4_WERT, "\"%\""); unsigned char STAT_GRUND_REKAL_5 = (RXBUF_UCHAR(204)); // Reason for SOC recalibration-5 / Grund der SOC Rekaibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_GRUND_REKAL_5", STAT_GRUND_REKAL_5, "\"0-n\""); unsigned long STAT_ZEITPUNKT_REKAL_5_WERT = (RXBUF_UINT32(205)); // Time (SME time) of the recalibration-5 / Zeitpunkt (SME-Zeit) der Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_ZEITPUNKT_REKAL_5_WERT", STAT_ZEITPUNKT_REKAL_5_WERT, "\"s\""); unsigned long STAT_HVOFFTIME_REKAL_5_WERT = (RXBUF_UINT32(209)); // Duration while the shooters were open for the last time -5 / Dauer, während die Schütze letzmalig geöffnet // waren-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_HVOFFTIME_REKAL_5_WERT", STAT_HVOFFTIME_REKAL_5_WERT, "\"s\""); char STAT_TEMP_MESS_MEAN_VOR_5_WERT = (RXBUF_SCHAR(213)); // Average measuring temperature at HVS level BEFORE recalibration-5 / Mittlere Messtemperatur auf HVS-Ebene VOR // Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_VOR_5_WERT", STAT_TEMP_MESS_MEAN_VOR_5_WERT, "\"°C\""); char STAT_TEMP_MESS_MEAN_NACH_5_WERT = (RXBUF_SCHAR(214)); // Mean measurement temperature at HVS level AFTER recalibration-5 / Mittlere Messtemperatur auf HVS-Ebene NACH // Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_TEMP_MESS_MEAN_NACH_5_WERT", STAT_TEMP_MESS_MEAN_NACH_5_WERT, "\"°C\""); float STAT_UCEL_MIN_5_WERT = (RXBUF_UINT(215)/1000.0f); // Minimum measured cell voltage. If OCV reached == U_init SONST == Uakt-5 / Minimale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MIN_5_WERT", STAT_UCEL_MIN_5_WERT, "\"V\""); float STAT_UCEL_MAX_5_WERT = (RXBUF_UINT(217)/1000.0f); // Maximum measured cell voltage. If OCV reached == U_init SONST == Uakt-5 / Maximale gemessene Zellspannung. // Wenn OCV reached == U_init SONST == Uakt-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MAX_5_WERT", STAT_UCEL_MAX_5_WERT, "\"V\""); float STAT_UCEL_MEAN_5_WERT = (RXBUF_UINT(219)/1000.0f); // Mean measured cell voltage. If OCV reached == U_init SONST == Uakt-5 / Mittlere gemessene Zellspannung. Wenn // OCV reached == U_init SONST == Uakt-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_UCEL_MEAN_5_WERT", STAT_UCEL_MEAN_5_WERT, "\"V\""); float STAT_SOC_MIN_NENN_VOR_5_WERT = (RXBUF_UINT(221)/100.0f); // Minimum nominal SOC BEFORE recalibration -5 / Minimaler NennSOC VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_VOR_5_WERT", STAT_SOC_MIN_NENN_VOR_5_WERT, "\"%\""); float STAT_SOC_MAX_NENN_VOR_5_WERT = (RXBUF_UINT(223)/100.0f); // Maximum nominal SOC BEFORE recalibration -5 / Maximaler NennSOC VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_VOR_5_WERT", STAT_SOC_MAX_NENN_VOR_5_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_VOR_5_WERT = (RXBUF_UINT(225)/100.0f); // Average nominal SOC BEFORE recalibration -5 / Mittlerer NennSOC VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_VOR_5_WERT", STAT_SOC_MEAN_NENN_VOR_5_WERT, "\"%\""); float STAT_SOC_MIN_NENN_NACH_5_WERT = (RXBUF_UINT(227)/100.0f); // Minimum nominal SOC AFTER recalibration -5 / Minimaler NennSOC NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_NENN_NACH_5_WERT", STAT_SOC_MIN_NENN_NACH_5_WERT, "\"%\""); float STAT_SOC_MAX_NENN_NACH_5_WERT = (RXBUF_UINT(229)/100.0f); // Maximum nominal SOC AFTER recalibration -5 / Maximaler NennSOC NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_NENN_NACH_5_WERT", STAT_SOC_MAX_NENN_NACH_5_WERT, "\"%\""); float STAT_SOC_MEAN_NENN_NACH_5_WERT = (RXBUF_UINT(231)/100.0f); // Average nominal SOC AFTER recalibration -5 / Mittlerer NennSOC NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_NENN_NACH_5_WERT", STAT_SOC_MEAN_NENN_NACH_5_WERT, "\"%\""); float STAT_SOC_MIN_AKT_VOR_5_WERT = (RXBUF_UINT(233)/100.0f); // Minimum AktSOC BEFORE recalibration -5 / Minimaler AktSOC VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_VOR_5_WERT", STAT_SOC_MIN_AKT_VOR_5_WERT, "\"%\""); float STAT_SOC_MAX_AKT_VOR_5_WERT = (RXBUF_UINT(235)/100.0f); // Maximum AktSOC BEFORE recalibration -5 / Maximaler AktSOC VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_VOR_5_WERT", STAT_SOC_MAX_AKT_VOR_5_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_VOR_5_WERT = (RXBUF_UINT(237)/100.0f); // Mean ActSOC BEFORE recalibration -5 / Mittlerer AktSOC VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_VOR_5_WERT", STAT_SOC_MEAN_AKT_VOR_5_WERT, "\"%\""); float STAT_SOC_MIN_AKT_NACH_5_WERT = (RXBUF_UINT(239)/100.0f); // Minimum AktSOC AFTER recalibration -5 / Minimaler AktSOC NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MIN_AKT_NACH_5_WERT", STAT_SOC_MIN_AKT_NACH_5_WERT, "\"%\""); float STAT_SOC_MAX_AKT_NACH_5_WERT = (RXBUF_UINT(241)/100.0f); // Maximum AktSOC AFTER recalibration -5 / Maximaler AktSOC NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MAX_AKT_NACH_5_WERT", STAT_SOC_MAX_AKT_NACH_5_WERT, "\"%\""); float STAT_SOC_MEAN_AKT_NACH_5_WERT = (RXBUF_UINT(243)/100.0f); // Mean ActSOC AFTER recalibration -5 / Mittlerer AktSOC NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_MEAN_AKT_NACH_5_WERT", STAT_SOC_MEAN_AKT_NACH_5_WERT, "\"%\""); float STAT_SOH_MIN_5_WERT = (RXBUF_UINT(245)/100.0f); // Minimum SOH at the time of recalibration -5 / Minimaler SOH zum Zeitpunkt der Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MIN_5_WERT", STAT_SOH_MIN_5_WERT, "\"%\""); float STAT_SOH_MAX_5_WERT = (RXBUF_UINT(247)/100.0f); // Maximum SOH at the time of recalibration -5 / Maximaler SOH zum Zeitpunkt der Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MAX_5_WERT", STAT_SOH_MAX_5_WERT, "\"%\""); float STAT_SOH_MEAN_5_WERT = (RXBUF_UINT(249)/100.0f); // Mean SOH at the time of recalibration -5 / Mittlerer SOH zum Zeitpunkt der Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOH_MEAN_5_WERT", STAT_SOH_MEAN_5_WERT, "\"%\""); float STAT_SOC_BAND_VOR_5_WERT = (RXBUF_UINT(251)/100.0f); // SOC bandwidth BEFORE recalibration -5 / SOC Bandbreite VOR Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_VOR_5_WERT", STAT_SOC_BAND_VOR_5_WERT, "\"%\""); float STAT_SOC_BAND_NACH_5_WERT = (RXBUF_UINT(253)/100.0f); // SOC bandwidth AFTER recalibration-5 / SOC Bandbreite NACH Rekalibrierung-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_REKALIBRIERUNG", "STAT_SOC_BAND_NACH_5_WERT", STAT_SOC_BAND_NACH_5_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SOC_GUETE: { // 0xD4C7 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SOC_GUETE", 1); break; } unsigned char STAT_SOC_GUETE_WERT = (RXBUF_UCHAR(0)); // Reading out the current SOC quality value based on the SOC estimate (1 == best quality,> 30 == worst quality) // / Auslesen des aktuellen SOC Gütewertes auf Basis der SOC Schätzung (1 == beste Güte, >30 == schlechteste // Güte ) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_GUETE", "STAT_SOC_GUETE_WERT", STAT_SOC_GUETE_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_SOC_GUETE: { // 0xD4C8 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_SOC_GUETE", 20); break; } unsigned long STAT_HIS_SOC_GUETE_1_WERT = (RXBUF_UINT32(0)); // Length of stay of the SOC quality value in the class: 0 <= GW <3 / Aufenthaltsdauer des SOC Gütewertes in der // Klasse: 0 <= GW < 3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_GUETE", "STAT_HIS_SOC_GUETE_1_WERT", STAT_HIS_SOC_GUETE_1_WERT, ""); unsigned long STAT_HIS_SOC_GUETE_2_WERT = (RXBUF_UINT32(4)); // Duration of the SOC quality value in the class: 3 <= GW <7 / Aufenthaltsdauer des SOC Gütewertes in der // Klasse: 3 <= GW < 7 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_GUETE", "STAT_HIS_SOC_GUETE_2_WERT", STAT_HIS_SOC_GUETE_2_WERT, ""); unsigned long STAT_HIS_SOC_GUETE_3_WERT = (RXBUF_UINT32(8)); // Duration of the SOC quality value in the class: 7 <= GW <20 / Aufenthaltsdauer des SOC Gütewertes in der // Klasse: 7 <= GW < 20 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_GUETE", "STAT_HIS_SOC_GUETE_3_WERT", STAT_HIS_SOC_GUETE_3_WERT, ""); unsigned long STAT_HIS_SOC_GUETE_4_WERT = (RXBUF_UINT32(12)); // Duration of the SOC quality value in the class: 20 <= GW <30 / Aufenthaltsdauer des SOC Gütewertes in der // Klasse: 20 <= GW < 30 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_GUETE", "STAT_HIS_SOC_GUETE_4_WERT", STAT_HIS_SOC_GUETE_4_WERT, ""); unsigned long STAT_HIS_SOC_GUETE_5_WERT = (RXBUF_UINT32(16)); // Duration of the SOC quality value in the class: GW> 30 / Aufenthaltsdauer des SOC Gütewertes in der Klasse: // GW > 30 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_GUETE", "STAT_HIS_SOC_GUETE_5_WERT", STAT_HIS_SOC_GUETE_5_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ANZAHL_OCV_SOC_REKAL: { // 0xD4C9 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ANZAHL_OCV_SOC_REKAL", 4); break; } unsigned long STAT_ANZAHL_OCV_SOC_REKAL_WERT = (RXBUF_UINT32(0)); // Number of OCV-SOC recalibrations / Anzahl der OCV-SOC Rekalibrierungen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ANZAHL_OCV_SOC_REKAL", "STAT_ANZAHL_OCV_SOC_REKAL_WERT", STAT_ANZAHL_OCV_SOC_REKAL_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ANZAHL_LADEENDE_REKAL: { // 0xD4CA if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ANZAHL_LADEENDE_REKAL", 4); break; } unsigned long STAT_ANZAHL_LADEENDE_REKAL_WERT = (RXBUF_UINT32(0)); // Number of SoC recalibrations at the end of charging / Anzahl der SoC Rekalibrierungen am Ladeende ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ANZAHL_LADEENDE_REKAL", "STAT_ANZAHL_LADEENDE_REKAL_WERT", STAT_ANZAHL_LADEENDE_REKAL_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_SOC_VOLLADEENDE: { // 0xD4CB if (datalen < 50) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_SOC_VOLLADEENDE", 50); break; } float STAT_SOC_MIN_NENN_1_WERT = (RXBUF_UINT(0)/100.0f); // Minimum nominal SOC after U / I full charge end-1 / Minimaler NennSOC nach U/I Vollladeende-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_1_WERT", STAT_SOC_MIN_NENN_1_WERT, "\"%\""); float STAT_SOC_MIN_NENN_WENN_VOLL_1_WERT = (RXBUF_UINT(2)/100.0f); // Forecast value of the minimum nominal SOC after U / I full charge end-1 / Prognosewert des minimalen NennSOC // nach U/I Vollladeende-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_WENN_VOLL_1_WERT", STAT_SOC_MIN_NENN_WENN_VOLL_1_WERT, "\"%\""); float STAT_SOC_MAX_AKT_1_WERT = (RXBUF_UINT(4)/100.0f); // Maximum AktSOC after U / I full charge end-1 / Maximaler AktSOC nach U/I Vollladeende-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_1_WERT", STAT_SOC_MAX_AKT_1_WERT, "\"%\""); float STAT_SOC_MAX_AKT_WENN_VOLL_1_WERT = (RXBUF_UINT(6)/100.0f); // Forecast value of the maximum AktSOC after U / I full charge end-1 / Prognosewert des maximalen AktSOC nach // U/I Vollladeende-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_WENN_VOLL_1_WERT", STAT_SOC_MAX_AKT_WENN_VOLL_1_WERT, "\"%\""); char STAT_TEMP_LADEBEGINN_1_WERT = (RXBUF_SCHAR(8)); // Average measurement temperature at HVS level at start of charging -1 / Mittlere Messtemperatur auf HVS-Ebene // zu Ladebeginn-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEBEGINN_1_WERT", STAT_TEMP_LADEBEGINN_1_WERT, "\"°C\""); char STAT_TEMP_LADEENDE_1_WERT = (RXBUF_SCHAR(9)); // Average measurement temperature at HVS level at the end of charging-1 / Mittlere Messtemperatur auf HVS-Ebene // zu Ladeende-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEENDE_1_WERT", STAT_TEMP_LADEENDE_1_WERT, "\"°C\""); float STAT_SOC_MIN_NENN_2_WERT = (RXBUF_UINT(10)/100.0f); // Minimum nominal SOC after U / I full charge end-2 / Minimaler NennSOC nach U/I Vollladeende-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_2_WERT", STAT_SOC_MIN_NENN_2_WERT, "\"%\""); float STAT_SOC_MIN_NENN_WENN_VOLL_2_WERT = (RXBUF_UINT(12)/100.0f); // Forecast value of the minimum nominal SOC after U / I full charge end-2 / Prognosewert des minimalen NennSOC // nach U/I Vollladeende-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_WENN_VOLL_2_WERT", STAT_SOC_MIN_NENN_WENN_VOLL_2_WERT, "\"%\""); float STAT_SOC_MAX_AKT_2_WERT = (RXBUF_UINT(14)/100.0f); // Maximum AktSOC after U / I full charge end-2 / Maximaler AktSOC nach U/I Vollladeende-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_2_WERT", STAT_SOC_MAX_AKT_2_WERT, "\"%\""); float STAT_SOC_MAX_AKT_WENN_VOLL_2_WERT = (RXBUF_UINT(16)/100.0f); // Forecast value of the maximum AktSOC after U / I full charge end-2 / Prognosewert des maximalen AktSOC nach // U/I Vollladeende-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_WENN_VOLL_2_WERT", STAT_SOC_MAX_AKT_WENN_VOLL_2_WERT, "\"%\""); char STAT_TEMP_LADEBEGINN_2_WERT = (RXBUF_SCHAR(18)); // Average measurement temperature at HVS level at the start of charging-2 / Mittlere Messtemperatur auf // HVS-Ebene zu Ladebeginn-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEBEGINN_2_WERT", STAT_TEMP_LADEBEGINN_2_WERT, "\"°C\""); char STAT_TEMP_LADEENDE_2_WERT = (RXBUF_SCHAR(19)); // Average measurement temperature at HVS level at the end of charging-2 / Mittlere Messtemperatur auf HVS-Ebene // zu Ladeende-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEENDE_2_WERT", STAT_TEMP_LADEENDE_2_WERT, "\"°C\""); float STAT_SOC_MIN_NENN_3_WERT = (RXBUF_UINT(20)/100.0f); // Minimum nominal SOC after U / I full charge end-3 / Minimaler NennSOC nach U/I Vollladeende-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_3_WERT", STAT_SOC_MIN_NENN_3_WERT, "\"%\""); float STAT_SOC_MIN_NENN_WENN_VOLL_3_WERT = (RXBUF_UINT(22)/100.0f); // Forecast value of the minimum nominal SOC after U / I full charge end-3 / Prognosewert des minimalen NennSOC // nach U/I Vollladeende-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_WENN_VOLL_3_WERT", STAT_SOC_MIN_NENN_WENN_VOLL_3_WERT, "\"%\""); float STAT_SOC_MAX_AKT_3_WERT = (RXBUF_UINT(24)/100.0f); // Maximum AktSOC after U / I full charge end-3 / Maximaler AktSOC nach U/I Vollladeende-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_3_WERT", STAT_SOC_MAX_AKT_3_WERT, "\"%\""); float STAT_SOC_MAX_AKT_WENN_VOLL_3_WERT = (RXBUF_UINT(26)/100.0f); // Forecast value of the maximum AktSOC after U / I full charge end-3 / Prognosewert des maximalen AktSOC nach // U/I Vollladeende-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_WENN_VOLL_3_WERT", STAT_SOC_MAX_AKT_WENN_VOLL_3_WERT, "\"%\""); char STAT_TEMP_LADEBEGINN_3_WERT = (RXBUF_SCHAR(28)); // Average measurement temperature at HVS level at the start of charging -3 / Mittlere Messtemperatur auf // HVS-Ebene zu Ladebeginn-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEBEGINN_3_WERT", STAT_TEMP_LADEBEGINN_3_WERT, "\"°C\""); char STAT_TEMP_LADEENDE_3_WERT = (RXBUF_SCHAR(29)); // Average measuring temperature at HVS level at the end of charging -3 / Mittlere Messtemperatur auf HVS-Ebene // zu Ladeende-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEENDE_3_WERT", STAT_TEMP_LADEENDE_3_WERT, "\"°C\""); float STAT_SOC_MIN_NENN_4_WERT = (RXBUF_UINT(30)/100.0f); // Minimum nominal SOC after U / I full charge end-4 / Minimaler NennSOC nach U/I Vollladeende-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_4_WERT", STAT_SOC_MIN_NENN_4_WERT, "\"%\""); float STAT_SOC_MIN_NENN_WENN_VOLL_4_WERT = (RXBUF_UINT(32)/100.0f); // Forecast value of the minimum nominal SOC after U / I full charge end-4 / Prognosewert des minimalen NennSOC // nach U/I Vollladeende-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_WENN_VOLL_4_WERT", STAT_SOC_MIN_NENN_WENN_VOLL_4_WERT, "\"%\""); float STAT_SOC_MAX_AKT_4_WERT = (RXBUF_UINT(34)/100.0f); // Maximum AktSOC after U / I full charge end-4 / Maximaler AktSOC nach U/I Vollladeende-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_4_WERT", STAT_SOC_MAX_AKT_4_WERT, "\"%\""); float STAT_SOC_MAX_AKT_WENN_VOLL_4_WERT = (RXBUF_UINT(36)/100.0f); // Forecast value of the maximum AktSOC after U / I full charge end-4 / Prognosewert des maximalen AktSOC nach // U/I Vollladeende-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_WENN_VOLL_4_WERT", STAT_SOC_MAX_AKT_WENN_VOLL_4_WERT, "\"%\""); char STAT_TEMP_LADEBEGINN_4_WERT = (RXBUF_SCHAR(38)); // Average measurement temperature at HVS level at the start of charging -4 / Mittlere Messtemperatur auf // HVS-Ebene zu Ladebeginn-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEBEGINN_4_WERT", STAT_TEMP_LADEBEGINN_4_WERT, "\"°C\""); char STAT_TEMP_LADEENDE_4_WERT = (RXBUF_SCHAR(39)); // Average measurement temperature at HVS level at the end of charging-4 / Mittlere Messtemperatur auf HVS-Ebene // zu Ladeende-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEENDE_4_WERT", STAT_TEMP_LADEENDE_4_WERT, "\"°C\""); float STAT_SOC_MIN_NENN_5_WERT = (RXBUF_UINT(40)/100.0f); // Minimum nominal SOC after U / I full charge end-5 / Minimaler NennSOC nach U/I Vollladeende-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_5_WERT", STAT_SOC_MIN_NENN_5_WERT, "\"%\""); float STAT_SOC_MIN_NENN_WENN_VOLL_5_WERT = (RXBUF_UINT(42)/100.0f); // Forecast value of the minimum nominal SOC after U / I full charge end-5 / Prognosewert des minimalen NennSOC // nach U/I Vollladeende-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MIN_NENN_WENN_VOLL_5_WERT", STAT_SOC_MIN_NENN_WENN_VOLL_5_WERT, "\"%\""); float STAT_SOC_MAX_AKT_5_WERT = (RXBUF_UINT(44)/100.0f); // Maximum AktSOC after U / I full charge end-5 / Maximaler AktSOC nach U/I Vollladeende-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_5_WERT", STAT_SOC_MAX_AKT_5_WERT, "\"%\""); float STAT_SOC_MAX_AKT_WENN_VOLL_5_WERT = (RXBUF_UINT(46)/100.0f); // Forecast value of the maximum AktSOC after U / I full charge end-5 / Prognosewert des maximalen AktSOC nach // U/I Vollladeende-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_SOC_MAX_AKT_WENN_VOLL_5_WERT", STAT_SOC_MAX_AKT_WENN_VOLL_5_WERT, "\"%\""); char STAT_TEMP_LADEBEGINN_5_WERT = (RXBUF_SCHAR(48)); // Average measurement temperature at HVS level at the start of charging -5 / Mittlere Messtemperatur auf // HVS-Ebene zu Ladebeginn-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEBEGINN_5_WERT", STAT_TEMP_LADEBEGINN_5_WERT, "\"°C\""); char STAT_TEMP_LADEENDE_5_WERT = (RXBUF_SCHAR(49)); // Average measuring temperature at HVS level at the end of charging -5 / Mittlere Messtemperatur auf HVS-Ebene // zu Ladeende-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOC_VOLLADEENDE", "STAT_TEMP_LADEENDE_5_WERT", STAT_TEMP_LADEENDE_5_WERT, "\"°C\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KUEHLDAUER_HVB: { // 0xD4CC if (datalen < 9) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KUEHLDAUER_HVB", 9); break; } unsigned char STAT_KUEHLDAUER_MAX_WERT = (RXBUF_UCHAR(0)); // Predefined maximum cooling duration [tmax] (project-specific) / Vordefinierte maximale Kühldauer [tmax] // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "KUEHLDAUER_HVB", "STAT_KUEHLDAUER_MAX_WERT", STAT_KUEHLDAUER_MAX_WERT, "\"min\""); unsigned short STAT_KUEHLDAUER_1_WERT = (RXBUF_UINT(1)); // Number of duration class: 0 tmax / Anzahl Dauerklasse: t > tmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "KUEHLDAUER_HVB", "STAT_KUEHLDAUER_4_WERT", STAT_KUEHLDAUER_4_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_LADUNGSVERLUST_ZELLE: { // 0xD67F if (datalen < 22) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_LADUNGSVERLUST_ZELLE", 22); break; } float STAT_SOC_MIN_NENN_01_WERT = (RXBUF_UINT(0)/10.0f); // Minimum charge level of all cells based on nominal capacity / Minimaler Ladezustand aller Zellen bezogen auf // Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_SOC_MIN_NENN_01_WERT", STAT_SOC_MIN_NENN_01_WERT, "\"%\""); float STAT_DIFF_SOC_01_WERT = (RXBUF_UINT(2)/10.0f); // Difference between the average and minimum charge status of all cells based on nominal capacity / Differenz // zwischen dem mittleren und minimalen Ladezsustand aller Zellen bezogen auf Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_DIFF_SOC_01_WERT", STAT_DIFF_SOC_01_WERT, "\"%\""); float STAT_SOC_MIN_NENN_02_WERT = (RXBUF_UINT(4)/10.0f); // Minimum charge level of all cells based on nominal capacity / Minimaler Ladezustand aller Zellen bezogen auf // Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_SOC_MIN_NENN_02_WERT", STAT_SOC_MIN_NENN_02_WERT, "\"%\""); float STAT_DIFF_SOC_02_WERT = (RXBUF_UINT(6)/10.0f); // Difference between the average and minimum charge status of all cells based on nominal capacity / Differenz // zwischen dem mittleren und minimalen Ladezsustand aller Zellen bezogen auf Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_DIFF_SOC_02_WERT", STAT_DIFF_SOC_02_WERT, "\"%\""); float STAT_SOC_MIN_NENN_03_WERT = (RXBUF_UINT(8)/10.0f); // Minimum charge level of all cells based on nominal capacity / Minimaler Ladezustand aller Zellen bezogen auf // Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_SOC_MIN_NENN_03_WERT", STAT_SOC_MIN_NENN_03_WERT, "\"%\""); float STAT_DIFF_SOC_03_WERT = (RXBUF_UINT(10)/10.0f); // Difference between the average and minimum charge status of all cells based on nominal capacity / Differenz // zwischen dem mittleren und minimalen Ladezsustand aller Zellen bezogen auf Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_DIFF_SOC_03_WERT", STAT_DIFF_SOC_03_WERT, "\"%\""); float STAT_SOC_MIN_NENN_04_WERT = (RXBUF_UINT(12)/10.0f); // Minimum charge level of all cells based on nominal capacity / Minimaler Ladezustand aller Zellen bezogen auf // Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_SOC_MIN_NENN_04_WERT", STAT_SOC_MIN_NENN_04_WERT, "\"%\""); float STAT_DIFF_SOC_04_WERT = (RXBUF_UINT(14)/10.0f); // Difference between the average and minimum charge status of all cells based on nominal capacity / Differenz // zwischen dem mittleren und minimalen Ladezsustand aller Zellen bezogen auf Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_DIFF_SOC_04_WERT", STAT_DIFF_SOC_04_WERT, "\"%\""); float STAT_SOC_MIN_NENN_05_WERT = (RXBUF_UINT(16)/10.0f); // Minimum charge level of all cells based on nominal capacity / Minimaler Ladezustand aller Zellen bezogen auf // Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_SOC_MIN_NENN_05_WERT", STAT_SOC_MIN_NENN_05_WERT, "\"%\""); float STAT_DIFF_SOC_05_WERT = (RXBUF_UINT(18)/10.0f); // Difference between the average and minimum charge status of all cells based on nominal capacity / Differenz // zwischen dem mittleren und minimalen Ladezsustand aller Zellen bezogen auf Nennkapazität ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_DIFF_SOC_05_WERT", STAT_DIFF_SOC_05_WERT, "\"%\""); unsigned char STAT_ID_ZELLE_SOC_MIN_WERT = (RXBUF_UCHAR(20)); // ID of the cell with the smallest SoC_min_nenn / ID der Zelle mit kleinstem SoC_min_nenn ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_ID_ZELLE_SOC_MIN_WERT", STAT_ID_ZELLE_SOC_MIN_WERT, ""); unsigned char STAT_COUNTER_RG_WERT = (RXBUF_UCHAR(21)); // Counter of how often the ring buffer has been written to since the last reset / Zähler, wie oft der // Ringspeicher seit dem letzten Reset beschrieben wurde ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADUNGSVERLUST_ZELLE", "STAT_COUNTER_RG_WERT", STAT_COUNTER_RG_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_STATUS_MIN_KAPAZITAET_MOD: { // 0xD681 if (datalen < 12) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_STATUS_MIN_KAPAZITAET_MOD", 12); break; } unsigned char STAT_MIN_KAPA_MOD_01_WERT = (RXBUF_UCHAR(0)); // Minimum capacity in percent of MODULE 01 / Minimale Kapazität in Prozent von MODUL 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_01_WERT", STAT_MIN_KAPA_MOD_01_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_02_WERT = (RXBUF_UCHAR(1)); // Minimum capacity in percent of MODULE 02 / Minimale Kapazität in Prozent von MODUL 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_02_WERT", STAT_MIN_KAPA_MOD_02_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_03_WERT = (RXBUF_UCHAR(2)); // Minimum capacity in percent of MODULE 03 / Minimale Kapazität in Prozent von MODUL 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_03_WERT", STAT_MIN_KAPA_MOD_03_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_04_WERT = (RXBUF_UCHAR(3)); // Minimum capacity in percent of MODULE 04 / Minimale Kapazität in Prozent von MODUL 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_04_WERT", STAT_MIN_KAPA_MOD_04_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_05_WERT = (RXBUF_UCHAR(4)); // Minimum capacity in percent of MODULE 05 / Minimale Kapazität in Prozent von MODUL 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_05_WERT", STAT_MIN_KAPA_MOD_05_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_06_WERT = (RXBUF_UCHAR(5)); // Minimum capacity in percent of MODULE 06 / Minimale Kapazität in Prozent von MODUL 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_06_WERT", STAT_MIN_KAPA_MOD_06_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_07_WERT = (RXBUF_UCHAR(6)); // Minimum capacity in percent of MODULE 07 / Minimale Kapazität in Prozent von MODUL 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_07_WERT", STAT_MIN_KAPA_MOD_07_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_08_WERT = (RXBUF_UCHAR(7)); // Minimum capacity in percent of MODULE 08 / Minimale Kapazität in Prozent von MODUL 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_08_WERT", STAT_MIN_KAPA_MOD_08_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_09_WERT = (RXBUF_UCHAR(8)); // Minimum capacity in percent of MODULE 09 / Minimale Kapazität in Prozent von MODUL 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_09_WERT", STAT_MIN_KAPA_MOD_09_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_10_WERT = (RXBUF_UCHAR(9)); // Minimum capacity in percent of MODULE 10 / Minimale Kapazität in Prozent von MODUL 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_10_WERT", STAT_MIN_KAPA_MOD_10_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_11_WERT = (RXBUF_UCHAR(10)); // Minimum capacity in percent of MODULE 11 / Minimale Kapazität in Prozent von MODUL 11 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_11_WERT", STAT_MIN_KAPA_MOD_11_WERT, "\"%\""); unsigned char STAT_MIN_KAPA_MOD_12_WERT = (RXBUF_UCHAR(11)); // Minimum capacity in percent of MODULE 12 / Minimale Kapazität in Prozent von MODUL 12 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "STATUS_MIN_KAPAZITAET_MOD", "STAT_MIN_KAPA_MOD_12_WERT", STAT_MIN_KAPA_MOD_12_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_ISO_MESS_TRG: { // 0xD6C7 if (datalen < 15) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_ISO_MESS_TRG", 15); break; } unsigned short STAT_R_ISO_TRG_01_WERT = (RXBUF_UINT(0)); // R_iso_ges [kOhm] VALUE 01 / R_iso_ges [kOhm] WERT 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_TRG_01_WERT", STAT_R_ISO_TRG_01_WERT, "\"kOhm\""); unsigned char STAT_R_ISO_QAL_TRG_01_WERT = (RXBUF_UCHAR(2)); // R_iso_ges QUAL 01 / R_iso_ges QUAL 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_QAL_TRG_01_WERT", STAT_R_ISO_QAL_TRG_01_WERT, ""); unsigned short STAT_R_ISO_TRG_02_WERT = (RXBUF_UINT(3)); // R_iso_ges [kOhm] VALUE 02 / R_iso_ges [kOhm] WERT 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_TRG_02_WERT", STAT_R_ISO_TRG_02_WERT, "\"kOhm\""); unsigned char STAT_R_ISO_QAL_TRG_02_WERT = (RXBUF_UCHAR(5)); // R_iso_ges QUAL 02 / R_iso_ges QUAL 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_QAL_TRG_02_WERT", STAT_R_ISO_QAL_TRG_02_WERT, ""); unsigned short STAT_R_ISO_TRG_03_WERT = (RXBUF_UINT(6)); // R_iso_ges [kOhm] VALUE 03 / R_iso_ges [kOhm] WERT 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_TRG_03_WERT", STAT_R_ISO_TRG_03_WERT, "\"kOhm\""); unsigned char STAT_R_ISO_QAL_TRG_03_WERT = (RXBUF_UCHAR(8)); // R_iso_ges QUAL 03 / R_iso_ges QUAL 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_QAL_TRG_03_WERT", STAT_R_ISO_QAL_TRG_03_WERT, ""); unsigned short STAT_R_ISO_TRG_04_WERT = (RXBUF_UINT(9)); // R_iso_ges [kOhm] VALUE 04 / R_iso_ges [kOhm] WERT 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_TRG_04_WERT", STAT_R_ISO_TRG_04_WERT, "\"kOhm\""); unsigned char STAT_R_ISO_QAL_TRG_04_WERT = (RXBUF_UCHAR(11)); // R_iso_ges QUAL 04 / R_iso_ges QUAL 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_QAL_TRG_04_WERT", STAT_R_ISO_QAL_TRG_04_WERT, ""); unsigned short STAT_R_ISO_TRG_05_WERT = (RXBUF_UINT(12)); // R_iso_ges [kOhm] VALUE 05 / R_iso_ges [kOhm] WERT 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_TRG_05_WERT", STAT_R_ISO_TRG_05_WERT, "\"kOhm\""); unsigned char STAT_R_ISO_QAL_TRG_05_WERT = (RXBUF_UCHAR(14)); // R_iso_ges QUAL 05 / R_iso_ges QUAL 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG", "STAT_R_ISO_QAL_TRG_05_WERT", STAT_R_ISO_QAL_TRG_05_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_ISO_MESS_STD_IO_NIO: { // 0xD6C8 if (datalen < 70) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_ISO_MESS_STD_IO_NIO", 70); break; } unsigned long STAT_STD_KM_ISO_01_WERT = (RXBUF_UINT32(0)); // Mileage when the error threshold is below / exceeded in the R_iso standard measurement [km] 01 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_01_WERT", STAT_STD_KM_ISO_01_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_01_WERT = (RXBUF_UINT(4)); // R_iso_Value when the error threshold is below / exceeded in the R_iso standard measurement [kOhm] 01 / // R_iso_Wert bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_01_WERT", STAT_STD_R_ISO_01_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_01_WERT = (RXBUF_UCHAR(6)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 01 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_01_WERT", STAT_STD_R_ISO_QAL_01_WERT, ""); unsigned long STAT_STD_KM_ISO_02_WERT = (RXBUF_UINT32(7)); // Mileage reading when the error threshold of the R_iso standard measurement is below / exceeded [km] 02 / // km-Stand bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_02_WERT", STAT_STD_KM_ISO_02_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_02_WERT = (RXBUF_UINT(11)); // R_iso_Wert if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 02 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_02_WERT", STAT_STD_R_ISO_02_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_02_WERT = (RXBUF_UCHAR(13)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 02 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_02_WERT", STAT_STD_R_ISO_QAL_02_WERT, ""); unsigned long STAT_STD_KM_ISO_03_WERT = (RXBUF_UINT32(14)); // Mileage in case of failure threshold of the R_iso standard measurement [km] 03 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_03_WERT", STAT_STD_KM_ISO_03_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_03_WERT = (RXBUF_UINT(18)); // R_iso_Wert if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 03 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_03_WERT", STAT_STD_R_ISO_03_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_03_WERT = (RXBUF_UCHAR(20)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 03 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_03_WERT", STAT_STD_R_ISO_QAL_03_WERT, ""); unsigned long STAT_STD_KM_ISO_04_WERT = (RXBUF_UINT32(21)); // Mileage when the error threshold is below / exceeded in the R_iso standard measurement [km] 04 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_04_WERT", STAT_STD_KM_ISO_04_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_04_WERT = (RXBUF_UINT(25)); // R_iso_Value when the error threshold falls below / exceeds the R_iso standard measurement [kOhm] 04 / // R_iso_Wert bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_04_WERT", STAT_STD_R_ISO_04_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_04_WERT = (RXBUF_UCHAR(27)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 04 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_04_WERT", STAT_STD_R_ISO_QAL_04_WERT, ""); unsigned long STAT_STD_KM_ISO_05_WERT = (RXBUF_UINT32(28)); // Mileage in case of failure threshold of the R_iso standard measurement [km] 05 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_05_WERT", STAT_STD_KM_ISO_05_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_05_WERT = (RXBUF_UINT(32)); // R_iso_Value if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 05 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_05_WERT", STAT_STD_R_ISO_05_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_05_WERT = (RXBUF_UCHAR(34)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 05 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_05_WERT", STAT_STD_R_ISO_QAL_05_WERT, ""); unsigned long STAT_STD_KM_ISO_06_WERT = (RXBUF_UINT32(35)); // Mileage when the error threshold is below / exceeded in the R_iso standard measurement [km] 06 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_06_WERT", STAT_STD_KM_ISO_06_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_06_WERT = (RXBUF_UINT(39)); // R_iso_Wert if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 06 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_06_WERT", STAT_STD_R_ISO_06_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_06_WERT = (RXBUF_UCHAR(41)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 06 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_06_WERT", STAT_STD_R_ISO_QAL_06_WERT, ""); unsigned long STAT_STD_KM_ISO_07_WERT = (RXBUF_UINT32(42)); // Mileage in case of failure threshold of the R_iso standard measurement [km] 07 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_07_WERT", STAT_STD_KM_ISO_07_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_07_WERT = (RXBUF_UINT(46)); // R_iso_Value if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 07 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_07_WERT", STAT_STD_R_ISO_07_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_07_WERT = (RXBUF_UCHAR(48)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 07 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_07_WERT", STAT_STD_R_ISO_QAL_07_WERT, ""); unsigned long STAT_STD_KM_ISO_08_WERT = (RXBUF_UINT32(49)); // Mileage in case of failure threshold of the R_iso standard measurement [km] 08 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_08_WERT", STAT_STD_KM_ISO_08_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_08_WERT = (RXBUF_UINT(53)); // R_iso_Wert if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 08 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_08_WERT", STAT_STD_R_ISO_08_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_08_WERT = (RXBUF_UCHAR(55)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 08 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_08_WERT", STAT_STD_R_ISO_QAL_08_WERT, ""); unsigned long STAT_STD_KM_ISO_09_WERT = (RXBUF_UINT32(56)); // Mileage in case of failure threshold of the R_iso standard measurement [km] 09 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_09_WERT", STAT_STD_KM_ISO_09_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_09_WERT = (RXBUF_UINT(60)); // R_iso_Value when the error threshold of the R_iso standard measurement is below / exceeded [kOhm] 09 / // R_iso_Wert bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_09_WERT", STAT_STD_R_ISO_09_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_09_WERT = (RXBUF_UCHAR(62)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 09 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_09_WERT", STAT_STD_R_ISO_QAL_09_WERT, ""); unsigned long STAT_STD_KM_ISO_10_WERT = (RXBUF_UINT32(63)); // Mileage when the error threshold is exceeded or not reached in the R_iso standard measurement [km] 10 / // km-Stand bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [km] 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_KM_ISO_10_WERT", STAT_STD_KM_ISO_10_WERT, "\"km\""); unsigned short STAT_STD_R_ISO_10_WERT = (RXBUF_UINT(67)); // R_iso_Wert if the R_iso standard measurement falls below / exceeds the error threshold [kOhm] 10 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [kOhm] 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_10_WERT", STAT_STD_R_ISO_10_WERT, "\"kOhm\""); unsigned char STAT_STD_R_ISO_QAL_10_WERT = (RXBUF_UCHAR(69)); // R_iso_Qual if the R_iso standard measurement falls below / exceeds the error threshold [-] 10 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Standardmessung [-] 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_STD_IO_NIO", "STAT_STD_R_ISO_QAL_10_WERT", STAT_STD_R_ISO_QAL_10_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_ISO_MESS_TRG_IO_NIO: { // 0xD6C9 if (datalen < 70) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_ISO_MESS_TRG_IO_NIO", 70); break; } unsigned long STAT_TRG_KM_ISO_01_WERT = (RXBUF_UINT32(0)); // Mileage when the error threshold is below / exceeded in the R_iso lag measurement [km] 01 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_01_WERT", STAT_TRG_KM_ISO_01_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_01_WERT = (RXBUF_UINT(4)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 01 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_01_WERT", STAT_TRG_R_ISO_01_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_01_WERT = (RXBUF_UCHAR(6)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 01 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 01 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_01_WERT", STAT_TRG_R_ISO_QAL_01_WERT, ""); unsigned long STAT_TRG_KM_ISO_02_WERT = (RXBUF_UINT32(7)); // Mileage in case of error threshold under / overrun of the R_iso follow-up measurement [km] 02 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_02_WERT", STAT_TRG_KM_ISO_02_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_02_WERT = (RXBUF_UINT(11)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 02 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_02_WERT", STAT_TRG_R_ISO_02_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_02_WERT = (RXBUF_UCHAR(13)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 02 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 02 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_02_WERT", STAT_TRG_R_ISO_QAL_02_WERT, ""); unsigned long STAT_TRG_KM_ISO_03_WERT = (RXBUF_UINT32(14)); // Mileage when the error threshold is below / exceeded in the R_iso lag measurement [km] 03 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_03_WERT", STAT_TRG_KM_ISO_03_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_03_WERT = (RXBUF_UINT(18)); // R_iso_Value when the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 03 / R_iso_Wert // bei Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_03_WERT", STAT_TRG_R_ISO_03_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_03_WERT = (RXBUF_UCHAR(20)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 03 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 03 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_03_WERT", STAT_TRG_R_ISO_QAL_03_WERT, ""); unsigned long STAT_TRG_KM_ISO_04_WERT = (RXBUF_UINT32(21)); // Mileage in case of error threshold under / overrun of the R_iso lag measurement [km] 04 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_04_WERT", STAT_TRG_KM_ISO_04_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_04_WERT = (RXBUF_UINT(25)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 04 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_04_WERT", STAT_TRG_R_ISO_04_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_04_WERT = (RXBUF_UCHAR(27)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 04 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 04 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_04_WERT", STAT_TRG_R_ISO_QAL_04_WERT, ""); unsigned long STAT_TRG_KM_ISO_05_WERT = (RXBUF_UINT32(28)); // Mileage when the error threshold is below / exceeded in the R_iso lag measurement [km] 05 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_05_WERT", STAT_TRG_KM_ISO_05_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_05_WERT = (RXBUF_UINT(32)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 05 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_05_WERT", STAT_TRG_R_ISO_05_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_05_WERT = (RXBUF_UCHAR(34)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 05 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 05 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_05_WERT", STAT_TRG_R_ISO_QAL_05_WERT, ""); unsigned long STAT_TRG_KM_ISO_06_WERT = (RXBUF_UINT32(35)); // Mileage in case of error threshold under / overrun of the R_iso follow-up measurement [km] 06 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_06_WERT", STAT_TRG_KM_ISO_06_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_06_WERT = (RXBUF_UINT(39)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 06 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_06_WERT", STAT_TRG_R_ISO_06_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_06_WERT = (RXBUF_UCHAR(41)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 06 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 06 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_06_WERT", STAT_TRG_R_ISO_QAL_06_WERT, ""); unsigned long STAT_TRG_KM_ISO_07_WERT = (RXBUF_UINT32(42)); // Mileage in case of error threshold under / overrun of the R_iso follow-up measurement [km] 07 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_07_WERT", STAT_TRG_KM_ISO_07_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_07_WERT = (RXBUF_UINT(46)); // R_iso_Wert when the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 07 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_07_WERT", STAT_TRG_R_ISO_07_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_07_WERT = (RXBUF_UCHAR(48)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 07 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 07 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_07_WERT", STAT_TRG_R_ISO_QAL_07_WERT, ""); unsigned long STAT_TRG_KM_ISO_08_WERT = (RXBUF_UINT32(49)); // Mileage when the error threshold is below / exceeded in the R_iso follow-up measurement [km] 08 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_08_WERT", STAT_TRG_KM_ISO_08_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_08_WERT = (RXBUF_UINT(53)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 08 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_08_WERT", STAT_TRG_R_ISO_08_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_08_WERT = (RXBUF_UCHAR(55)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 08 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 08 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_08_WERT", STAT_TRG_R_ISO_QAL_08_WERT, ""); unsigned long STAT_TRG_KM_ISO_09_WERT = (RXBUF_UINT32(56)); // Mileage in case of error threshold under / overrun of the R_iso follow-up measurement [km] 09 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_09_WERT", STAT_TRG_KM_ISO_09_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_09_WERT = (RXBUF_UINT(60)); // R_iso_Wert if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 09 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_09_WERT", STAT_TRG_R_ISO_09_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_09_WERT = (RXBUF_UCHAR(62)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 09 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 09 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_09_WERT", STAT_TRG_R_ISO_QAL_09_WERT, ""); unsigned long STAT_TRG_KM_ISO_10_WERT = (RXBUF_UINT32(63)); // Mileage in case of failure threshold of the R_iso follow-up measurement [km] 10 / km-Stand bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [km] 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_KM_ISO_10_WERT", STAT_TRG_KM_ISO_10_WERT, "\"km\""); unsigned short STAT_TRG_R_ISO_10_WERT = (RXBUF_UINT(67)); // R_iso_Value if the R_iso lag measurement falls below / exceeds the error threshold [kOhm] 10 / R_iso_Wert bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [kOhm] 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_10_WERT", STAT_TRG_R_ISO_10_WERT, "\"kOhm\""); unsigned char STAT_TRG_R_ISO_QAL_10_WERT = (RXBUF_UCHAR(69)); // R_iso_Qual if the R_iso lag measurement falls below / exceeds the error threshold [-] 10 / R_iso_Qual bei // Fehlerschwellenunter-/-überschreitung der R_iso Nachlaufmessung [-] 10 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ISO_MESS_TRG_IO_NIO", "STAT_TRG_R_ISO_QAL_10_WERT", STAT_TRG_R_ISO_QAL_10_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ISODIAG_INPUT_ISTWERTE: { // 0xD6CA if (datalen < 15) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ISODIAG_INPUT_ISTWERTE", 15); break; } float STAT_INPUT_ISO_01_WERT = (RXBUF_UINT(0)/100.0f); // LI: Ubat01 [V] / LI: Ubat01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_01_WERT", STAT_INPUT_ISO_01_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_02_WERT = (RXBUF_UCHAR(2)); // LI: Ubat01_QUAL / LI: Ubat01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_02_WERT", STAT_INPUT_ISO_02_WERT, ""); float STAT_INPUT_ISO_03_WERT = (RXBUF_UINT(3)/100.0f); // LI: Ubat02 [V] / LI: Ubat02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_03_WERT", STAT_INPUT_ISO_03_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_04_WERT = (RXBUF_UCHAR(5)); // LI: Ubat02_QUAL / LI: Ubat02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_04_WERT", STAT_INPUT_ISO_04_WERT, ""); float STAT_INPUT_ISO_05_WERT = (RXBUF_UINT(6)/100.0f); // LI: Uiso01 [V] / LI: Uiso01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_05_WERT", STAT_INPUT_ISO_05_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_06_WERT = (RXBUF_UCHAR(8)); // LI: Uiso01_QUAL / LI: Uiso01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_06_WERT", STAT_INPUT_ISO_06_WERT, ""); float STAT_INPUT_ISO_07_WERT = (RXBUF_UINT(9)/100.0f); // LI: Uiso02 [V] / LI: Uiso02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_07_WERT", STAT_INPUT_ISO_07_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_08_WERT = (RXBUF_UCHAR(11)); // LI: Uiso02_QUAL / LI: Uiso02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_08_WERT", STAT_INPUT_ISO_08_WERT, ""); float STAT_INPUT_ISO_09_WERT = (RXBUF_UINT(12)/100.0f); // LI: Uoffset [V] / LI: Uoffset [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_09_WERT", STAT_INPUT_ISO_09_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_10_WERT = (RXBUF_UCHAR(14)); // LI: Uoffset_QUAL / LI: Uoffset_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISODIAG_INPUT_ISTWERTE", "STAT_INPUT_ISO_10_WERT", STAT_INPUT_ISO_10_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ISO_ERR_STD_FZ1_2: { // 0xD6CB if (datalen < 52) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ISO_ERR_STD_FZ1_2", 52); break; } unsigned long STAT_FEHLERZAEHLER_STD_WERT = (RXBUF_UINT32(0)); // LI: Counter of all errors that have occurred in the standard measurement / LI: Zähler aller aufgetretenen // Fehler der Standardmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_FEHLERZAEHLER_STD_WERT", STAT_FEHLERZAEHLER_STD_WERT, ""); float STAT_INPUT_ISO_STD_FZ1_01_WERT = (RXBUF_UINT(4)/100.0f); // LI: first error time Ubat01 [V] / LI: erstmaliger Fehlerzeitpunkt Ubat01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_01_WERT", STAT_INPUT_ISO_STD_FZ1_01_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ1_02_WERT = (RXBUF_UCHAR(6)); // LI: first error time Ubat01_QUAL / LI: erstmaliger Fehlerzeitpunkt Ubat01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_02_WERT", STAT_INPUT_ISO_STD_FZ1_02_WERT, ""); float STAT_INPUT_ISO_STD_FZ1_03_WERT = (RXBUF_UINT(7)/100.0f); // LI: first error time Ubat02 [V] / LI: erstmaliger Fehlerzeitpunkt Ubat02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_03_WERT", STAT_INPUT_ISO_STD_FZ1_03_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ1_04_WERT = (RXBUF_UCHAR(9)); // LI: first error time Ubat02_QUAL / LI: erstmaliger Fehlerzeitpunkt Ubat02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_04_WERT", STAT_INPUT_ISO_STD_FZ1_04_WERT, ""); float STAT_INPUT_ISO_STD_FZ1_05_WERT = (RXBUF_UINT(10)/100.0f); // LI: first error time Uiso01 [V] / LI: erstmaliger Fehlerzeitpunkt Uiso01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_05_WERT", STAT_INPUT_ISO_STD_FZ1_05_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ1_06_WERT = (RXBUF_UCHAR(12)); // LI: first time error Uiso01_QUAL / LI: erstmaliger Fehlerzeitpunkt Uiso01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_06_WERT", STAT_INPUT_ISO_STD_FZ1_06_WERT, ""); float STAT_INPUT_ISO_STD_FZ1_07_WERT = (RXBUF_UINT(13)/100.0f); // LI: first failure time Uiso02 [V] / LI: erstmaliger Fehlerzeitpunkt Uiso02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_07_WERT", STAT_INPUT_ISO_STD_FZ1_07_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ1_08_WERT = (RXBUF_UCHAR(15)); // LI: first time error Uiso02_QUAL / LI: erstmaliger Fehlerzeitpunkt Uiso02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_08_WERT", STAT_INPUT_ISO_STD_FZ1_08_WERT, ""); float STAT_INPUT_ISO_STD_FZ1_09_WERT = (RXBUF_UINT(16)/100.0f); // LI: first error time Uoffset [V] / LI: erstmaliger Fehlerzeitpunkt Uoffset [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_09_WERT", STAT_INPUT_ISO_STD_FZ1_09_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ1_10_WERT = (RXBUF_UCHAR(18)); // LI: first time error Uoffset_QUAL / LI: erstmaliger Fehlerzeitpunkt Uoffset_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_10_WERT", STAT_INPUT_ISO_STD_FZ1_10_WERT, ""); unsigned short STAT_INPUT_ISO_STD_FZ1_11_WERT = (RXBUF_UINT(19)); // LI: first error time R_iso_ges [kOhm] / LI: erstmaliger Fehlerzeitpunkt R_iso_ges [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_11_WERT", STAT_INPUT_ISO_STD_FZ1_11_WERT, "\"kOhm\""); unsigned char STAT_INPUT_ISO_STD_FZ1_12_WERT = (RXBUF_UCHAR(21)); // LI: first error time R_iso_gesQUAL / LI: erstmaliger Fehlerzeitpunkt R_iso_gesQUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_12_WERT", STAT_INPUT_ISO_STD_FZ1_12_WERT, ""); unsigned short STAT_INPUT_ISO_STD_FZ1_13_WERT = (RXBUF_UINT(22)); // LI: first error time R_iso_plus [kOhm] / LI: erstmaliger Fehlerzeitpunkt R_iso_plus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_13_WERT", STAT_INPUT_ISO_STD_FZ1_13_WERT, "\"kOhm\""); float STAT_INPUT_ISO_STD_FZ1_14_WERT = (RXBUF_UCHAR(24)/100.0f); // LI: first error time R_iso_plus_QUAL / LI: erstmaliger Fehlerzeitpunkt R_iso_plus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_14_WERT", STAT_INPUT_ISO_STD_FZ1_14_WERT, ""); unsigned short STAT_INPUT_ISO_STD_FZ1_15_WERT = (RXBUF_UINT(25)); // LI: first error time R_iso_minus [kOhm] / LI: erstmaliger Fehlerzeitpunkt R_iso_minus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_15_WERT", STAT_INPUT_ISO_STD_FZ1_15_WERT, "\"kOhm\""); float STAT_INPUT_ISO_STD_FZ1_16_WERT = (RXBUF_UCHAR(27)/100.0f); // LI: first error time R_iso_minus_QUAL / LI: erstmaliger Fehlerzeitpunkt R_iso_minus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ1_16_WERT", STAT_INPUT_ISO_STD_FZ1_16_WERT, ""); float STAT_INPUT_ISO_STD_FZ2_01_WERT = (RXBUF_UINT(28)/100.0f); // LI: last error time Ubat01 [V] / LI: letztmaliger Fehlerzeitpunkt Ubat01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_01_WERT", STAT_INPUT_ISO_STD_FZ2_01_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ2_02_WERT = (RXBUF_UCHAR(30)); // LI: last time the error occurred Ubat01_QUAL / LI: letztmaliger Fehlerzeitpunkt Ubat01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_02_WERT", STAT_INPUT_ISO_STD_FZ2_02_WERT, ""); float STAT_INPUT_ISO_STD_FZ2_03_WERT = (RXBUF_UINT(31)/100.0f); // LI: last error time Ubat02 [V] / LI: letztmaliger Fehlerzeitpunkt Ubat02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_03_WERT", STAT_INPUT_ISO_STD_FZ2_03_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ2_04_WERT = (RXBUF_UCHAR(33)); // LI: last time the error occurred Ubat02_QUAL / LI: letztmaliger Fehlerzeitpunkt Ubat02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_04_WERT", STAT_INPUT_ISO_STD_FZ2_04_WERT, ""); float STAT_INPUT_ISO_STD_FZ2_05_WERT = (RXBUF_UINT(34)/100.0f); // LI: last time the error occurred Uiso01 [V] / LI: letztmaliger Fehlerzeitpunkt Uiso01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_05_WERT", STAT_INPUT_ISO_STD_FZ2_05_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ2_06_WERT = (RXBUF_UCHAR(36)); // LI: last time the error occurred Uiso01_QUAL / LI: letztmaliger Fehlerzeitpunkt Uiso01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_06_WERT", STAT_INPUT_ISO_STD_FZ2_06_WERT, ""); float STAT_INPUT_ISO_STD_FZ2_07_WERT = (RXBUF_UINT(37)/100.0f); // LI: last error time Uiso02 [V] / LI: letztmaliger Fehlerzeitpunkt Uiso02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_07_WERT", STAT_INPUT_ISO_STD_FZ2_07_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ2_08_WERT = (RXBUF_UCHAR(39)); // LI: last time the error occurred Uiso02_QUAL / LI: letztmaliger Fehlerzeitpunkt Uiso02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_08_WERT", STAT_INPUT_ISO_STD_FZ2_08_WERT, ""); float STAT_INPUT_ISO_STD_FZ2_09_WERT = (RXBUF_UINT(40)/100.0f); // LI: last error time Uoffset [V] / LI: letztmaliger Fehlerzeitpunkt Uoffset [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_09_WERT", STAT_INPUT_ISO_STD_FZ2_09_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_STD_FZ2_10_WERT = (RXBUF_UCHAR(42)); // LI: last time the error occurred Uoffset_QUAL / LI: letztmaliger Fehlerzeitpunkt Uoffset_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_10_WERT", STAT_INPUT_ISO_STD_FZ2_10_WERT, ""); unsigned short STAT_INPUT_ISO_STD_FZ2_11_WERT = (RXBUF_UINT(43)); // LI: last time the error occurred R_iso_ges [kOhm] / LI: letztmaliger Fehlerzeitpunkt R_iso_ges [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_11_WERT", STAT_INPUT_ISO_STD_FZ2_11_WERT, "\"kOhm\""); unsigned char STAT_INPUT_ISO_STD_FZ2_12_WERT = (RXBUF_UCHAR(45)); // LI: last time the error occurred R_iso_gesQUAL / LI: letztmaliger Fehlerzeitpunkt R_iso_gesQUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_12_WERT", STAT_INPUT_ISO_STD_FZ2_12_WERT, ""); unsigned short STAT_INPUT_ISO_STD_FZ2_13_WERT = (RXBUF_UINT(46)); // LI: last time the error occurred R_iso_plus [kOhm] / LI: letztmaliger Fehlerzeitpunkt R_iso_plus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_13_WERT", STAT_INPUT_ISO_STD_FZ2_13_WERT, "\"kOhm\""); float STAT_INPUT_ISO_STD_FZ2_14_WERT = (RXBUF_UCHAR(48)/100.0f); // LI: last time the error occurred R_iso_plus_QUAL / LI: letztmaliger Fehlerzeitpunkt R_iso_plus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_14_WERT", STAT_INPUT_ISO_STD_FZ2_14_WERT, ""); unsigned short STAT_INPUT_ISO_STD_FZ2_15_WERT = (RXBUF_UINT(49)); // LI: last time the error occurred R_iso_minus [kOhm] / LI: letztmaliger Fehlerzeitpunkt R_iso_minus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_15_WERT", STAT_INPUT_ISO_STD_FZ2_15_WERT, "\"kOhm\""); float STAT_INPUT_ISO_STD_FZ2_16_WERT = (RXBUF_UCHAR(51)/100.0f); // LI: last time the error occurred R_iso_minus_QUAL / LI: letztmaliger Fehlerzeitpunkt R_iso_minus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_STD_FZ1_2", "STAT_INPUT_ISO_STD_FZ2_16_WERT", STAT_INPUT_ISO_STD_FZ2_16_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_SOH_KAPATEST: { // 0xD6CC if (datalen < 51) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_SOH_KAPATEST", 51); break; } float STAT_SOH_C_MIN_ERG_TEST_1_WERT = (RXBUF_UINT(0)/100.0f); // Minimum SoH_C (on the memory level) as the result of the first capacity test / Minimaler SoH_C (auf // Speicherebene) als Ergebnis des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MIN_ERG_TEST_1_WERT", STAT_SOH_C_MIN_ERG_TEST_1_WERT, "\"%\""); float STAT_SOH_C_MIN_VOR_TEST_1_WERT = (RXBUF_UINT(2)/100.0f); // Minimum SoH_C BEFORE the first capacity test / Minimaler SoH_C VOR erstem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MIN_VOR_TEST_1_WERT", STAT_SOH_C_MIN_VOR_TEST_1_WERT, "\"%\""); float STAT_SOH_C_MAX_VOR_TEST_1_WERT = (RXBUF_UINT(4)/100.0f); // Maximum SoH_C BEFORE the first capacity test / Maximaler SoH_C VOR erstem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MAX_VOR_TEST_1_WERT", STAT_SOH_C_MAX_VOR_TEST_1_WERT, "\"%\""); float STAT_SOH_C_AVG_VOR_TEST_1_WERT = (RXBUF_UINT(6)/100.0f); // Mean SoH_C BEFORE the first capacity test / Mittlerer SoH_C VOR erstem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_AVG_VOR_TEST_1_WERT", STAT_SOH_C_AVG_VOR_TEST_1_WERT, "\"%\""); char STAT_TEMP_VOR_TEST_1_WERT = (RXBUF_SCHAR(8)); // Average measured temperature at HVS level BEFORE the first capacity test / Mittlere gemessene Temperatur auf // HVS-Ebene VOR erstem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST", "STAT_TEMP_VOR_TEST_1_WERT", STAT_TEMP_VOR_TEST_1_WERT, "\"°C\""); float STAT_MAX_DELTA_U_CELL_1_WERT = (RXBUF_UINT(9)/1000.0f); // Maximum voltage delta of the cells BEFORE the first capacity test From I levels I15 / SP15: 18-03-i420; I01 / // SE09: 17-11-i400; F56 / SE14: 19-11-i310 the following applies: Asymmetry potential as the voltage difference // between the cell that was most deeply discharged during the first capacity test and Ucel_max at full charge / // Maximales Spannungsdelta der Zellen VOR erstem Kapazitätstest Ab den I-Stufen I15/SP15: 18-03-i420; I01/SE09: // 17-11-i400; F56/SE14: 19-11-i310 gilt: Asymmetrie-Potential als Spannungsdifferenz der während des ersten // Kapazitätstests am tiefsten entladenen Zelle zu Ucel_max im Volllademoment ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_MAX_DELTA_U_CELL_1_WERT", STAT_MAX_DELTA_U_CELL_1_WERT, "\"V\""); float STAT_MAX_DELTA_SOC_NENN_1_WERT = (RXBUF_UINT(11)/100.0f); // Maximum SoC delta of the cells BEFORE the first capacity test From I levels I15 / SP15: 18-03-i420; I01 / // SE09: 17-11-i400; F56 / SE14: 19-11-i310 applies: Asymmetry potential as SoC_Nenn-Percent value, which was // determined during the first capacity test. / Maximales SoC-Delta der Zellen VOR erstem Kapazitätstest Ab den // I-Stufen I15/SP15: 18-03-i420; I01/SE09: 17-11-i400; F56/SE14: 19-11-i310 gilt: Asymmetrie-Potential als // SoC_Nenn-Prozent-Wert, der während des ersten Kapazitätstests ermittelt wurde. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_MAX_DELTA_SOC_NENN_1_WERT", STAT_MAX_DELTA_SOC_NENN_1_WERT, "\"%\""); unsigned long STAT_ZEITPUNKT_TEST_1_WERT = (RXBUF_UINT32(13)); // Point in time (SME time) at the end of the first capacity test / Zeitpunkt (SME-Zeit) am Ende des ersten // Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOH_KAPATEST", "STAT_ZEITPUNKT_TEST_1_WERT", STAT_ZEITPUNKT_TEST_1_WERT, "\"s\""); float STAT_SOH_C_MIN_ERG_TEST_2_WERT = (RXBUF_UINT(17)/100.0f); // Minimum SoH_C (on the memory level) as the result of the second capacity test / Minimaler SoH_C (auf // Speicherebene) als Ergebnis des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MIN_ERG_TEST_2_WERT", STAT_SOH_C_MIN_ERG_TEST_2_WERT, "\"%\""); float STAT_SOH_C_MIN_VOR_TEST_2_WERT = (RXBUF_UINT(19)/100.0f); // Minimum SoH_C BEFORE the second capacity test / Minimaler SoH_C VOR zweitem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MIN_VOR_TEST_2_WERT", STAT_SOH_C_MIN_VOR_TEST_2_WERT, "\"%\""); float STAT_SOH_C_MAX_VOR_TEST_2_WERT = (RXBUF_UINT(21)/100.0f); // Maximum SoH_C BEFORE the second capacity test / Maximaler SoH_C VOR zweitem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MAX_VOR_TEST_2_WERT", STAT_SOH_C_MAX_VOR_TEST_2_WERT, "\"%\""); float STAT_SOH_C_AVG_VOR_TEST_2_WERT = (RXBUF_UINT(23)/100.0f); // Mean SoH_C BEFORE second capacity test / Mittlerer SoH_C VOR zweitem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_AVG_VOR_TEST_2_WERT", STAT_SOH_C_AVG_VOR_TEST_2_WERT, "\"%\""); char STAT_TEMP_VOR_TEST_2_WERT = (RXBUF_SCHAR(25)); // Average measured temperature at HVS level BEFORE the second capacity test / Mittlere gemessene Temperatur auf // HVS-Ebene VOR zweitem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST", "STAT_TEMP_VOR_TEST_2_WERT", STAT_TEMP_VOR_TEST_2_WERT, "\"°C\""); float STAT_MAX_DELTA_U_CELL_2_WERT = (RXBUF_UINT(26)/1000.0f); // Maximum voltage delta of the cells BEFORE the second capacity test From I levels I15 / SP15: 18-03-i420; I01 / // SE09: 17-11-i400; F56 / SE14: 19-11-i310 the following applies: Asymmetry potential as the voltage difference // between the deepest cell discharged during the second capacity test and Ucel_max when fully charged / // Maximales Spannungsdelta der Zellen VOR zweitem Kapazitätstest Ab den I-Stufen I15/SP15: 18-03-i420; // I01/SE09: 17-11-i400; F56/SE14: 19-11-i310 gilt: Asymmetrie-Potential als Spannungsdifferenz der während des // zweiten Kapazitätstests am tiefsten entladenen Zelle zu Ucel_max im Volllademoment ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_MAX_DELTA_U_CELL_2_WERT", STAT_MAX_DELTA_U_CELL_2_WERT, "\"V\""); float STAT_MAX_DELTA_SOC_NENN_2_WERT = (RXBUF_UINT(28)/100.0f); // Maximum SoC delta of the cells BEFORE the second capacity test From I levels I15 / SP15: 18-03-i420; I01 / // SE09: 17-11-i400; F56 / SE14: 19-11-i310 applies: Asymmetry potential as SoC_Nenn-Percent value, which was // determined during the second capacity test. / Maximales SoC-Delta der Zellen VOR zweitem Kapazitätstest Ab den // I-Stufen I15/SP15: 18-03-i420; I01/SE09: 17-11-i400; F56/SE14: 19-11-i310 gilt: Asymmetrie-Potential als // SoC_Nenn-Prozent-Wert, der während des zweiten Kapazitätstests ermittelt wurde. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_MAX_DELTA_SOC_NENN_2_WERT", STAT_MAX_DELTA_SOC_NENN_2_WERT, "\"%\""); unsigned long STAT_ZEITPUNKT_TEST_2_WERT = (RXBUF_UINT32(30)); // Point in time (SME time) at the end of the second capacity test / Zeitpunkt (SME-Zeit) am Ende des zweiten // Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOH_KAPATEST", "STAT_ZEITPUNKT_TEST_2_WERT", STAT_ZEITPUNKT_TEST_2_WERT, "\"s\""); float STAT_SOH_C_MIN_ERG_TEST_3_WERT = (RXBUF_UINT(34)/100.0f); // Minimum SoH_C (on the memory level) as the result of the third capacity test / Minimaler SoH_C (auf // Speicherebene) als Ergebnis des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MIN_ERG_TEST_3_WERT", STAT_SOH_C_MIN_ERG_TEST_3_WERT, "\"%\""); float STAT_SOH_C_MIN_VOR_TEST_3_WERT = (RXBUF_UINT(36)/100.0f); // Minimum SoH_C BEFORE the third capacity test / Minimaler SoH_C VOR drittem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MIN_VOR_TEST_3_WERT", STAT_SOH_C_MIN_VOR_TEST_3_WERT, "\"%\""); float STAT_SOH_C_MAX_VOR_TEST_3_WERT = (RXBUF_UINT(38)/100.0f); // Maximum SoH_C BEFORE the third capacity test / Maximaler SoH_C VOR drittem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_MAX_VOR_TEST_3_WERT", STAT_SOH_C_MAX_VOR_TEST_3_WERT, "\"%\""); float STAT_SOH_C_AVG_VOR_TEST_3_WERT = (RXBUF_UINT(40)/100.0f); // Middle SoH_C BEFORE the third capacity test / Mittlerer SoH_C VOR drittem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_SOH_C_AVG_VOR_TEST_3_WERT", STAT_SOH_C_AVG_VOR_TEST_3_WERT, "\"%\""); char STAT_TEMP_VOR_TEST_3_WERT = (RXBUF_SCHAR(42)); // Average measured temperature at HVS level BEFORE the third capacity test / Mittlere gemessene Temperatur auf // HVS-Ebene VOR drittem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST", "STAT_TEMP_VOR_TEST_3_WERT", STAT_TEMP_VOR_TEST_3_WERT, "\"°C\""); float STAT_MAX_DELTA_U_CELL_3_WERT = (RXBUF_UINT(43)/1000.0f); // Maximum voltage delta of the cells BEFORE the third capacity test From I levels I15 / SP15: 18-03-i420; I01 / // SE09: 17-11-i400; F56 / SE14: 19-11-i310 the following applies: Asymmetry potential as the voltage difference // between the deepest cell discharged during the third capacity test and Ucel_max at full charge / Maximales // Spannungsdelta der Zellen VOR drittem Kapazitätstest Ab den I-Stufen I15/SP15: 18-03-i420; I01/SE09: // 17-11-i400; F56/SE14: 19-11-i310 gilt: Asymmetrie-Potential als Spannungsdifferenz der während des dritten // Kapazitätstests am tiefsten entladenen Zelle zu Ucel_max im Volllademoment ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_MAX_DELTA_U_CELL_3_WERT", STAT_MAX_DELTA_U_CELL_3_WERT, "\"V\""); float STAT_MAX_DELTA_SOC_NENN_3_WERT = (RXBUF_UINT(45)/100.0f); // Maximum SoC delta of the cells BEFORE the third capacity test From I levels I15 / SP15: 18-03-i420; I01 / // SE09: 17-11-i400; F56 / SE14: 19-11-i310 applies: Asymmetry potential as SoC_Nenn-Percent value, which was // determined during the third capacity test. / Maximales SoC-Delta der Zellen VOR drittem Kapazitätstest Ab den // I-Stufen I15/SP15: 18-03-i420; I01/SE09: 17-11-i400; F56/SE14: 19-11-i310 gilt: Asymmetrie-Potential als // SoC_Nenn-Prozent-Wert, der während des dritten Kapazitätstests ermittelt wurde. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST", "STAT_MAX_DELTA_SOC_NENN_3_WERT", STAT_MAX_DELTA_SOC_NENN_3_WERT, "\"%\""); unsigned long STAT_ZEITPUNKT_TEST_3_WERT = (RXBUF_UINT32(47)); // Point in time (SME time) at the end of the third capacity test / Zeitpunkt (SME-Zeit) am Ende des dritten // Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_SOH_KAPATEST", "STAT_ZEITPUNKT_TEST_3_WERT", STAT_ZEITPUNKT_TEST_3_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_REKU_VOLTAGE_LIFT: { // 0xD6CD if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_REKU_VOLTAGE_LIFT", 6); break; } unsigned short STAT_ANZAHL_REKU_VOLT_LIFT_WERT = (RXBUF_UINT(0)); // Return of the number in which the increased recuperation capacity is made available when the HVS is almost // full / Rückgabe der Anzahl, in der erhöhte Rekuperationsleistung zur Verfügung gestellt wird bei fast vollem // HVS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "REKU_VOLTAGE_LIFT", "STAT_ANZAHL_REKU_VOLT_LIFT_WERT", STAT_ANZAHL_REKU_VOLT_LIFT_WERT, ""); float STAT_DAUER_REKU_VOLT_LIFT_WERT = (RXBUF_UINT32(2)/10.0f); // Return of the duration in which the increased recuperation capacity is available when the HVS is almost full / // Rückgabe der Dauer, in der erhöhte Rekuperationsleistung zur Verfügung gestellt wird bei fast vollem HVS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "REKU_VOLTAGE_LIFT", "STAT_DAUER_REKU_VOLT_LIFT_WERT", STAT_DAUER_REKU_VOLT_LIFT_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_ALTERUNG_KAPA: { // 0xD6CE if (datalen < 241) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_ALTERUNG_KAPA", 241); break; } unsigned short STAT_SOH_ADAPT_COUNT_1_WERT = (RXBUF_UINT(0)); // Adaptation counter of 1st adaptation / Adaptionszähler von 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ADAPT_COUNT_1_WERT", STAT_SOH_ADAPT_COUNT_1_WERT, ""); unsigned char STAT_GRUND_ADAPTION_1_WERT = (RXBUF_UCHAR(2)); // Reason for triggering the ring buffer entry (0 = SoH_C estimate; 1 = KapaTest with transfer of the result to // NV; 2 = KapaTest without transfer of the result to NV) / Auslösegrund des Ringspeicher-Eintrags (0 = // SoH_C-Schätzung; 1 = KapaTest mit Übernahme vom Ergebnis in NV; 2 = KapaTest ohne Übernahme vom Ergebnis in // NV) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_GRUND_ADAPTION_1_WERT", STAT_GRUND_ADAPTION_1_WERT, ""); unsigned long STAT_ZEITPUNKT_ADAP_1_WERT = (RXBUF_UINT32(3)); // Time (SME time) of the 1st adaptation / Zeitpunkt (SME-Zeit) der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_ZEITPUNKT_ADAP_1_WERT", STAT_ZEITPUNKT_ADAP_1_WERT, "\"s\""); float STAT_AH_CUM_ABS_1_WERT = (RXBUF_UINT32(7)/3600.0f); // Absolute Ah throughput of the 1st adaptation (if adaptation reason = KapaTest: test result in Ah) / Absoluter // Ah-Durchsatz der 1. Adaption (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_CUM_ABS_1_WERT", STAT_AH_CUM_ABS_1_WERT, "\"Ah\""); float STAT_AH_INTEGRAL_1_WERT = (RXBUF_UINT32(11)/3600.0f); // Ah stroke of the 1st adaptation (if adaptation reason = KapaTest: test result in Ah) / Ah-Hub der 1. Adaption // (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_INTEGRAL_1_WERT", STAT_AH_INTEGRAL_1_WERT, "\"Ah\""); unsigned short STAT_HVOFFTIME_ADAP_1_WERT = (RXBUF_UINT(15)); // Duration the shooter was open during the 1st adaptation / Dauer, die die Schütze während der 1. Adaption // geöffnet war ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_HVOFFTIME_ADAP_1_WERT", STAT_HVOFFTIME_ADAP_1_WERT, "\"s\""); char STAT_TEMP_MEAN1_1_WERT = (RXBUF_SCHAR(17)); // Average temperature at HVS level at the beginning of the 1st adaptation or at the beginning of the test / // Mittlere Temperatur auf HVS-Ebene zu Beginn der 1. Adaption bzw. zu Beginn des Tests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN1_1_WERT", STAT_TEMP_MEAN1_1_WERT, "\"°C\""); char STAT_TEMP_MEAN2_1_WERT = (RXBUF_SCHAR(18)); // Average temperature at HVS level at the end of the 1st adaptation / Mittlere Temperatur auf HVS-Ebene am Ende // der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN2_1_WERT", STAT_TEMP_MEAN2_1_WERT, "\"°C\""); float STAT_UCEL_MIN_INIT1_1_WERT = (RXBUF_UINT(19)/1000.0f); // Minimum measured resting voltage of the cells at the beginning of the 1st adaptation (if the reason for // adaptation = KapaTest: minimum measured resting voltage when waking up) / Minimale gemessene Ruhespannung der // Zellen zu Beginn der 1. Adaption (Wenn Adaptionsgrund = KapaTest: Minimale gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT1_1_WERT", STAT_UCEL_MIN_INIT1_1_WERT, "\"V\""); float STAT_UCEL_MAX_INIT1_1_WERT = (RXBUF_UINT(21)/1000.0f); // Maximum measured resting voltage of the cells at the beginning of the 1st adaptation (if adaptation reason = // KapaTest: maximum measured resting voltage when waking up) / Maximale gemessene Ruhespannung der Zellen zu // Beginn der 1. Adaption (Wenn Adaptionsgrund = KapaTest: Maximale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT1_1_WERT", STAT_UCEL_MAX_INIT1_1_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT1_1_WERT = (RXBUF_UINT(23)/1000.0f); // Average measured open-circuit voltage of the cells at the beginning of the 1st adaptation (if adaptation // reason = KapaTest: average measured open-circuit voltage when waking up) / Mittlere gemessene Ruhespannung der // Zellen zu Beginn der 1. Adaption (Wenn Adaptionsgrund = KapaTest: Mittlere gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT1_1_WERT", STAT_UCEL_MEAN_INIT1_1_WERT, "\"V\""); float STAT_UCEL_MIN_INIT2_1_WERT = (RXBUF_UINT(25)/1000.0f); // Minimum measured open-circuit voltage of the cells at the end of the 1st adaptation / Minimale gemessene // Ruhespannung der Zellen am Ende der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT2_1_WERT", STAT_UCEL_MIN_INIT2_1_WERT, "\"V\""); float STAT_UCEL_MAX_INIT2_1_WERT = (RXBUF_UINT(27)/1000.0f); // Maximum measured open-circuit voltage of the cells at the end of the 1st adaptation / Maximale gemessene // Ruhespannung der Zellen am Ende der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT2_1_WERT", STAT_UCEL_MAX_INIT2_1_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT2_1_WERT = (RXBUF_UINT(29)/1000.0f); // Mean measured open-circuit voltage of the cells at the end of the 1st adaptation / Mittlere gemessene // Ruhespannung der Zellen am Ende der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT2_1_WERT", STAT_UCEL_MEAN_INIT2_1_WERT, "\"V\""); float STAT_SOH_ZELLE1_VOR_ADAPT_1_WERT = (RXBUF_UINT(31)/100.0f); // SoH_C of cell 1 BEFORE 1st adaptation / SoH_C von Zelle 1 VOR 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_VOR_ADAPT_1_WERT", STAT_SOH_ZELLE1_VOR_ADAPT_1_WERT, "\"%\""); float STAT_SOH_ZELLE1_NACH_ADAPT_1_WERT = (RXBUF_UINT(33)/100.0f); // SoH_C from cell 1 AFTER 1st adaptation / SoH_C von Zelle 1 NACH 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_NACH_ADAPT_1_WERT", STAT_SOH_ZELLE1_NACH_ADAPT_1_WERT, "\"%\""); float STAT_OVC1_ZELLE1_1_WERT = (RXBUF_UINT(35)/1000.0f); // OCV value of cell 1 at the beginning of the 1st adaptation / OCV Wert von Zelle 1 zu Beginn der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC1_ZELLE1_1_WERT", STAT_OVC1_ZELLE1_1_WERT, "\"V\""); float STAT_OVC2_ZELLE1_1_WERT = (RXBUF_UINT(37)/1000.0f); // OCV value of cell 1 at the end of the 1st adaptation / OCV Wert von Zelle 1 am Ende der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC2_ZELLE1_1_WERT", STAT_OVC2_ZELLE1_1_WERT, "\"V\""); float STAT_SOH_GAIN_FAKTOR_ZELLE1_1_WERT = (RXBUF_UINT(39)/10000.0f); // Gain factor of cell 1 for the first adaptation / Gain Faktor von Zelle 1 für die erste Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_GAIN_FAKTOR_ZELLE1_1_WERT", STAT_SOH_GAIN_FAKTOR_ZELLE1_1_WERT, ""); float STAT_SOH_MIN_NACH_1_WERT = (RXBUF_UINT(41)/100.0f); // Minimal SOH AFTER the 1st adaptation / Minimaler SOH NACH der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MIN_NACH_1_WERT", STAT_SOH_MIN_NACH_1_WERT, "\"%\""); float STAT_SOH_MAX_NACH_1_WERT = (RXBUF_UINT(43)/100.0f); // Maximum SOH AFTER the 1st adaptation / Maximaler SOH NACH der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MAX_NACH_1_WERT", STAT_SOH_MAX_NACH_1_WERT, "\"%\""); float STAT_SOH_MEAN_NACH_1_WERT = (RXBUF_UINT(45)/100.0f); // Middle SOH AFTER the 1st adaptation / Mittlerer SOH NACH der 1. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MEAN_NACH_1_WERT", STAT_SOH_MEAN_NACH_1_WERT, "\"%\""); unsigned short STAT_SOH_ADAPT_COUNT_2_WERT = (RXBUF_UINT(47)); // Adaptation counter of 2nd adaptation / Adaptionszähler von 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ADAPT_COUNT_2_WERT", STAT_SOH_ADAPT_COUNT_2_WERT, ""); unsigned char STAT_GRUND_ADAPTION_2_WERT = (RXBUF_UCHAR(49)); // Reason for triggering the ring buffer entry (0 = SoH_C estimate; 1 = KapaTest with transfer of the result to // NV; 2 = KapaTest without transfer of the result to NV) / Auslösegrund des Ringspeicher-Eintrags (0 = // SoH_C-Schätzung; 1 = KapaTest mit Übernahme vom Ergebnis in NV; 2 = KapaTest ohne Übernahme vom Ergebnis in // NV) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_GRUND_ADAPTION_2_WERT", STAT_GRUND_ADAPTION_2_WERT, ""); unsigned long STAT_ZEITPUNKT_ADAP_2_WERT = (RXBUF_UINT32(50)); // Time (SME time) of the 2nd adaptation / Zeitpunkt (SME-Zeit) der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_ZEITPUNKT_ADAP_2_WERT", STAT_ZEITPUNKT_ADAP_2_WERT, "\"s\""); float STAT_AH_CUM_ABS_2_WERT = (RXBUF_UINT32(54)/3600.0f); // Absolute Ah throughput of the 2nd adaptation (if adaptation reason = KapaTest: test result in Ah) / Absoluter // Ah-Durchsatz der 2. Adaption (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_CUM_ABS_2_WERT", STAT_AH_CUM_ABS_2_WERT, "\"Ah\""); float STAT_AH_INTEGRAL_2_WERT = (RXBUF_UINT32(58)/3600.0f); // Ah stroke of the 2nd adaptation (if adaptation reason = KapaTest: test result in Ah) / Ah-Hub der 2. Adaption // (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_INTEGRAL_2_WERT", STAT_AH_INTEGRAL_2_WERT, "\"Ah\""); unsigned short STAT_HVOFFTIME_ADAP_2_WERT = (RXBUF_UINT(62)); // Duration that the shooter was open during the 2nd adaptation / Dauer, die die Schütze während der 2. Adaption // geöffnet war ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_HVOFFTIME_ADAP_2_WERT", STAT_HVOFFTIME_ADAP_2_WERT, "\"s\""); char STAT_TEMP_MEAN1_2_WERT = (RXBUF_SCHAR(64)); // Average temperature at HVS level at the beginning of the 2nd adaptation or at the beginning of the test / // Mittlere Temperatur auf HVS-Ebene zu Beginn der 2. Adaption bzw. zu Beginn des Tests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN1_2_WERT", STAT_TEMP_MEAN1_2_WERT, "\"°C\""); char STAT_TEMP_MEAN2_2_WERT = (RXBUF_SCHAR(65)); // Average temperature at HVS level at the end of the 2nd adaptation / Mittlere Temperatur auf HVS-Ebene am Ende // der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN2_2_WERT", STAT_TEMP_MEAN2_2_WERT, "\"°C\""); float STAT_UCEL_MIN_INIT1_2_WERT = (RXBUF_UINT(66)/1000.0f); // Minimum measured resting voltage of the cells at the beginning of the 2nd adaptation (if adaptation reason = // KapaTest: minimum measured resting voltage when waking up) / Minimale gemessene Ruhespannung der Zellen zu // Beginn der 2. Adaption (Wenn Adaptionsgrund = KapaTest: Minimale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT1_2_WERT", STAT_UCEL_MIN_INIT1_2_WERT, "\"V\""); float STAT_UCEL_MAX_INIT1_2_WERT = (RXBUF_UINT(68)/1000.0f); // Maximum measured resting voltage of the cells at the beginning of the 2nd adaptation (if adaptation reason = // KapaTest: maximum measured resting voltage when waking up) / Maximale gemessene Ruhespannung der Zellen zu // Beginn der 2. Adaption (Wenn Adaptionsgrund = KapaTest: Maximale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT1_2_WERT", STAT_UCEL_MAX_INIT1_2_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT1_2_WERT = (RXBUF_UINT(70)/1000.0f); // Mean measured open-circuit voltage of the cells at the beginning of the 2nd adaptation (if reason for // adaptation = KapaTest: mean measured open-circuit voltage when waking up) / Mittlere gemessene Ruhespannung // der Zellen zu Beginn der 2. Adaption (Wenn Adaptionsgrund = KapaTest: Mittlere gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT1_2_WERT", STAT_UCEL_MEAN_INIT1_2_WERT, "\"V\""); float STAT_UCEL_MIN_INIT2_2_WERT = (RXBUF_UINT(72)/1000.0f); // Minimum measured open-circuit voltage of the cells at the end of the 2nd adaptation / Minimale gemessene // Ruhespannung der Zellen am Ende der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT2_2_WERT", STAT_UCEL_MIN_INIT2_2_WERT, "\"V\""); float STAT_UCEL_MAX_INIT2_2_WERT = (RXBUF_UINT(74)/1000.0f); // Maximum measured open-circuit voltage of the cells at the end of the 2nd adaptation / Maximale gemessene // Ruhespannung der Zellen am Ende der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT2_2_WERT", STAT_UCEL_MAX_INIT2_2_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT2_2_WERT = (RXBUF_UINT(76)/1000.0f); // Mean measured open-circuit voltage of the cells at the end of the 2nd adaptation / Mittlere gemessene // Ruhespannung der Zellen am Ende der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT2_2_WERT", STAT_UCEL_MEAN_INIT2_2_WERT, "\"V\""); float STAT_SOH_ZELLE1_VOR_ADAPT_2_WERT = (RXBUF_UINT(78)/100.0f); // SoH_C of cell 1 BEFORE 2nd adaptation / SoH_C von Zelle 1 VOR 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_VOR_ADAPT_2_WERT", STAT_SOH_ZELLE1_VOR_ADAPT_2_WERT, "\"%\""); float STAT_SOH_ZELLE1_NACH_ADAPT_2_WERT = (RXBUF_UINT(80)/100.0f); // SoH_C from cell 1 AFTER 2nd adaptation / SoH_C von Zelle 1 NACH 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_NACH_ADAPT_2_WERT", STAT_SOH_ZELLE1_NACH_ADAPT_2_WERT, "\"%\""); float STAT_OVC1_ZELLE1_2_WERT = (RXBUF_UINT(82)/1000.0f); // OCV value of cell 1 at the beginning of the 2nd adaptation / OCV Wert von Zelle 1 zu Beginn der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC1_ZELLE1_2_WERT", STAT_OVC1_ZELLE1_2_WERT, "\"V\""); float STAT_OVC2_ZELLE1_2_WERT = (RXBUF_UINT(84)/1000.0f); // OCV value of cell 1 at the end of the 2nd adaptation / OCV Wert von Zelle 1 am Ende der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC2_ZELLE1_2_WERT", STAT_OVC2_ZELLE1_2_WERT, "\"V\""); float STAT_SOH_GAIN_FAKTOR_ZELLE1_2_WERT = (RXBUF_UINT(86)/10000.0f); // Gain factor of cell 1 for the second adaptation / Gain Faktor von Zelle 1 für die zweite Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_GAIN_FAKTOR_ZELLE1_2_WERT", STAT_SOH_GAIN_FAKTOR_ZELLE1_2_WERT, ""); float STAT_SOH_MIN_NACH_2_WERT = (RXBUF_UINT(88)/100.0f); // Minimal SOH AFTER the 2nd adaptation / Minimaler SOH NACH der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MIN_NACH_2_WERT", STAT_SOH_MIN_NACH_2_WERT, "\"%\""); float STAT_SOH_MAX_NACH_2_WERT = (RXBUF_UINT(90)/100.0f); // Maximum SOH AFTER the 2nd adaptation / Maximaler SOH NACH der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MAX_NACH_2_WERT", STAT_SOH_MAX_NACH_2_WERT, "\"%\""); float STAT_SOH_MEAN_NACH_2_WERT = (RXBUF_UINT(92)/100.0f); // Middle SOH AFTER the 2nd adaptation / Mittlerer SOH NACH der 2. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MEAN_NACH_2_WERT", STAT_SOH_MEAN_NACH_2_WERT, "\"%\""); unsigned short STAT_SOH_ADAPT_COUNT_3_WERT = (RXBUF_UINT(94)); // Adaptation counter of 3rd adaptation / Adaptionszähler von 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ADAPT_COUNT_3_WERT", STAT_SOH_ADAPT_COUNT_3_WERT, ""); unsigned char STAT_GRUND_ADAPTION_3_WERT = (RXBUF_UCHAR(96)); // Reason for triggering the ring buffer entry (0 = SoH_C estimate; 1 = KapaTest with transfer of the result to // NV; 2 = KapaTest without transfer of the result to NV) / Auslösegrund des Ringspeicher-Eintrags (0 = // SoH_C-Schätzung; 1 = KapaTest mit Übernahme vom Ergebnis in NV; 2 = KapaTest ohne Übernahme vom Ergebnis in // NV) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_GRUND_ADAPTION_3_WERT", STAT_GRUND_ADAPTION_3_WERT, ""); unsigned long STAT_ZEITPUNKT_ADAP_3_WERT = (RXBUF_UINT32(97)); // Time (SME time) of the 3rd adaptation / Zeitpunkt (SME-Zeit) der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_ZEITPUNKT_ADAP_3_WERT", STAT_ZEITPUNKT_ADAP_3_WERT, "\"s\""); float STAT_AH_CUM_ABS_3_WERT = (RXBUF_UINT32(101)/3600.0f); // Absolute Ah throughput of the 3rd adaptation (if adaptation reason = KapaTest: test result in Ah) / Absoluter // Ah-Durchsatz der 3. Adaption (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_CUM_ABS_3_WERT", STAT_AH_CUM_ABS_3_WERT, "\"Ah\""); float STAT_AH_INTEGRAL_3_WERT = (RXBUF_UINT32(105)/3600.0f); // Ah stroke of the 3rd adaptation (if adaptation reason = KapaTest: test result in Ah) / Ah-Hub der 3. Adaption // (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_INTEGRAL_3_WERT", STAT_AH_INTEGRAL_3_WERT, "\"Ah\""); unsigned short STAT_HVOFFTIME_ADAP_3_WERT = (RXBUF_UINT(109)); // Duration that the shooter was open during the 3rd adaptation / Dauer, die die Schütze während der 3. Adaption // geöffnet war ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_HVOFFTIME_ADAP_3_WERT", STAT_HVOFFTIME_ADAP_3_WERT, "\"s\""); char STAT_TEMP_MEAN1_3_WERT = (RXBUF_SCHAR(111)); // Average temperature at HVS level at the beginning of the 3rd adaptation or at the beginning of the test / // Mittlere Temperatur auf HVS-Ebene zu Beginn der 3. Adaption bzw. zu Beginn des Tests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN1_3_WERT", STAT_TEMP_MEAN1_3_WERT, "\"°C\""); char STAT_TEMP_MEAN2_3_WERT = (RXBUF_SCHAR(112)); // Average temperature at HVS level at the end of the 3rd adaptation / Mittlere Temperatur auf HVS-Ebene am Ende // der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN2_3_WERT", STAT_TEMP_MEAN2_3_WERT, "\"°C\""); float STAT_UCEL_MIN_INIT1_3_WERT = (RXBUF_UINT(113)/1000.0f); // Minimum measured resting voltage of the cells at the beginning of the 3rd adaptation (if adaptation reason = // KapaTest: minimum measured resting voltage when waking up) / Minimale gemessene Ruhespannung der Zellen zu // Beginn der 3. Adaption (Wenn Adaptionsgrund = KapaTest: Minimale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT1_3_WERT", STAT_UCEL_MIN_INIT1_3_WERT, "\"V\""); float STAT_UCEL_MAX_INIT1_3_WERT = (RXBUF_UINT(115)/1000.0f); // Maximum measured resting voltage of the cells at the beginning of the 3rd adaptation (if adaptation reason = // KapaTest: maximum measured resting voltage when waking up) / Maximale gemessene Ruhespannung der Zellen zu // Beginn der 3. Adaption (Wenn Adaptionsgrund = KapaTest: Maximale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT1_3_WERT", STAT_UCEL_MAX_INIT1_3_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT1_3_WERT = (RXBUF_UINT(117)/1000.0f); // Mean measured open-circuit voltage of the cells at the beginning of the 3rd adaptation (if reason for // adaptation = KapaTest: mean measured open-circuit voltage when waking up) / Mittlere gemessene Ruhespannung // der Zellen zu Beginn der 3. Adaption (Wenn Adaptionsgrund = KapaTest: Mittlere gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT1_3_WERT", STAT_UCEL_MEAN_INIT1_3_WERT, "\"V\""); float STAT_UCEL_MIN_INIT2_3_WERT = (RXBUF_UINT(119)/1000.0f); // Minimum measured open-circuit voltage of the cells at the end of the 3rd adaptation / Minimale gemessene // Ruhespannung der Zellen am Ende der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT2_3_WERT", STAT_UCEL_MIN_INIT2_3_WERT, "\"V\""); float STAT_UCEL_MAX_INIT2_3_WERT = (RXBUF_UINT(121)/1000.0f); // Maximum measured open-circuit voltage of the cells at the end of the 3rd adaptation / Maximale gemessene // Ruhespannung der Zellen am Ende der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT2_3_WERT", STAT_UCEL_MAX_INIT2_3_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT2_3_WERT = (RXBUF_UINT(123)/1000.0f); // Mean measured resting voltage of the cells at the end of the 3rd adaptation / Mittlere gemessene Ruhespannung // der Zellen am Ende der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT2_3_WERT", STAT_UCEL_MEAN_INIT2_3_WERT, "\"V\""); float STAT_SOH_ZELLE1_VOR_ADAPT_3_WERT = (RXBUF_UINT(125)/100.0f); // SoH_C of cell 1 BEFORE 3rd adaptation / SoH_C von Zelle 1 VOR 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_VOR_ADAPT_3_WERT", STAT_SOH_ZELLE1_VOR_ADAPT_3_WERT, "\"%\""); float STAT_SOH_ZELLE1_NACH_ADAPT_3_WERT = (RXBUF_UINT(127)/100.0f); // SoH_C from cell 1 AFTER 3rd adaptation / SoH_C von Zelle 1 NACH 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_NACH_ADAPT_3_WERT", STAT_SOH_ZELLE1_NACH_ADAPT_3_WERT, "\"%\""); float STAT_OVC1_ZELLE1_3_WERT = (RXBUF_UINT(129)/1000.0f); // OCV value of cell 1 at the beginning of the 3rd adaptation / OCV Wert von Zelle 1 zu Beginn der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC1_ZELLE1_3_WERT", STAT_OVC1_ZELLE1_3_WERT, "\"V\""); float STAT_OVC2_ZELLE1_3_WERT = (RXBUF_UINT(131)/1000.0f); // OCV value of cell 1 at the end of the 3rd adaptation / OCV Wert von Zelle 1 am Ende der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC2_ZELLE1_3_WERT", STAT_OVC2_ZELLE1_3_WERT, "\"V\""); float STAT_SOH_GAIN_FAKTOR_ZELLE1_3_WERT = (RXBUF_UINT(133)/10000.0f); // Gain factor of cell 1 for the third adaptation / Gain Faktor von Zelle 1 für die dritte Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_GAIN_FAKTOR_ZELLE1_3_WERT", STAT_SOH_GAIN_FAKTOR_ZELLE1_3_WERT, ""); float STAT_SOH_MIN_NACH_3_WERT = (RXBUF_UINT(135)/100.0f); // Minimal SOH AFTER the 3rd adaptation / Minimaler SOH NACH der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MIN_NACH_3_WERT", STAT_SOH_MIN_NACH_3_WERT, "\"%\""); float STAT_SOH_MAX_NACH_3_WERT = (RXBUF_UINT(137)/100.0f); // Maximum SOH AFTER the 3rd adaptation / Maximaler SOH NACH der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MAX_NACH_3_WERT", STAT_SOH_MAX_NACH_3_WERT, "\"%\""); float STAT_SOH_MEAN_NACH_3_WERT = (RXBUF_UINT(139)/100.0f); // Middle SOH AFTER the 3rd adaptation / Mittlerer SOH NACH der 3. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MEAN_NACH_3_WERT", STAT_SOH_MEAN_NACH_3_WERT, "\"%\""); unsigned short STAT_SOH_ADAPT_COUNT_4_WERT = (RXBUF_UINT(141)); // Adaptation counter of 4th adaptation / Adaptionszähler von 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ADAPT_COUNT_4_WERT", STAT_SOH_ADAPT_COUNT_4_WERT, ""); unsigned char STAT_GRUND_ADAPTION_4_WERT = (RXBUF_UCHAR(143)); // Reason for triggering the ring buffer entry (0 = SoH_C estimate; 1 = KapaTest with transfer of the result to // NV; 2 = KapaTest without transfer of the result to NV) / Auslösegrund des Ringspeicher-Eintrags (0 = // SoH_C-Schätzung; 1 = KapaTest mit Übernahme vom Ergebnis in NV; 2 = KapaTest ohne Übernahme vom Ergebnis in // NV) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_GRUND_ADAPTION_4_WERT", STAT_GRUND_ADAPTION_4_WERT, ""); unsigned long STAT_ZEITPUNKT_ADAP_4_WERT = (RXBUF_UINT32(144)); // Point in time (SME time) of the 4th adaptation / Zeitpunkt (SME-Zeit) der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_ZEITPUNKT_ADAP_4_WERT", STAT_ZEITPUNKT_ADAP_4_WERT, "\"s\""); float STAT_AH_CUM_ABS_4_WERT = (RXBUF_UINT32(148)/3600.0f); // Absolute Ah throughput of the 4th adaptation (if adaptation reason = KapaTest: test result in Ah) / Absoluter // Ah-Durchsatz der 4. Adaption (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_CUM_ABS_4_WERT", STAT_AH_CUM_ABS_4_WERT, "\"Ah\""); float STAT_AH_INTEGRAL_4_WERT = (RXBUF_UINT32(152)/3600.0f); // Ah stroke of the 4th adaptation (if adaptation reason = KapaTest: test result in Ah) / Ah-Hub der 4. Adaption // (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_INTEGRAL_4_WERT", STAT_AH_INTEGRAL_4_WERT, "\"Ah\""); unsigned short STAT_HVOFFTIME_ADAP_4_WERT = (RXBUF_UINT(156)); // Duration the shooter was open during the 4th adaptation / Dauer, die die Schütze während der 4. Adaption // geöffnet war ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_HVOFFTIME_ADAP_4_WERT", STAT_HVOFFTIME_ADAP_4_WERT, "\"s\""); char STAT_TEMP_MEAN1_4_WERT = (RXBUF_SCHAR(158)); // Average temperature at HVS level at the beginning of the 4th adaptation or at the beginning of the test / // Mittlere Temperatur auf HVS-Ebene zu Beginn der 4. Adaption bzw. zu Beginn des Tests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN1_4_WERT", STAT_TEMP_MEAN1_4_WERT, "\"°C\""); char STAT_TEMP_MEAN2_4_WERT = (RXBUF_SCHAR(159)); // Average temperature at HVS level at the end of the 4th adaptation / Mittlere Temperatur auf HVS-Ebene am Ende // der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN2_4_WERT", STAT_TEMP_MEAN2_4_WERT, "\"°C\""); float STAT_UCEL_MIN_INIT1_4_WERT = (RXBUF_UINT(160)/1000.0f); // Minimum measured open-circuit voltage of the cells at the beginning of the 4th adaptation (if adaptation // reason = KapaTest: minimum measured open-circuit voltage when waking up) / Minimale gemessene Ruhespannung der // Zellen zu Beginn der 4. Adaption (Wenn Adaptionsgrund = KapaTest: Minimale gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT1_4_WERT", STAT_UCEL_MIN_INIT1_4_WERT, "\"V\""); float STAT_UCEL_MAX_INIT1_4_WERT = (RXBUF_UINT(162)/1000.0f); // Maximum measured resting voltage of the cells at the beginning of the 4th adaptation (if adaptation reason = // KapaTest: maximum measured resting voltage when waking up) / Maximale gemessene Ruhespannung der Zellen zu // Beginn der 4. Adaption (Wenn Adaptionsgrund = KapaTest: Maximale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT1_4_WERT", STAT_UCEL_MAX_INIT1_4_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT1_4_WERT = (RXBUF_UINT(164)/1000.0f); // Mean measured open-circuit voltage of the cells at the beginning of the 4th adaptation (if reason for // adaptation = KapaTest: mean measured open-circuit voltage when waking up) / Mittlere gemessene Ruhespannung // der Zellen zu Beginn der 4. Adaption (Wenn Adaptionsgrund = KapaTest: Mittlere gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT1_4_WERT", STAT_UCEL_MEAN_INIT1_4_WERT, "\"V\""); float STAT_UCEL_MIN_INIT2_4_WERT = (RXBUF_UINT(166)/1000.0f); // Minimum measured open-circuit voltage of the cells at the end of the 4th adaptation / Minimale gemessene // Ruhespannung der Zellen am Ende der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT2_4_WERT", STAT_UCEL_MIN_INIT2_4_WERT, "\"V\""); float STAT_UCEL_MAX_INIT2_4_WERT = (RXBUF_UINT(168)/1000.0f); // Maximum measured open-circuit voltage of the cells at the end of the 4th adaptation / Maximale gemessene // Ruhespannung der Zellen am Ende der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT2_4_WERT", STAT_UCEL_MAX_INIT2_4_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT2_4_WERT = (RXBUF_UINT(170)/1000.0f); // Mean measured resting voltage of the cells at the end of the 4th adaptation / Mittlere gemessene Ruhespannung // der Zellen am Ende der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT2_4_WERT", STAT_UCEL_MEAN_INIT2_4_WERT, "\"V\""); float STAT_SOH_ZELLE1_VOR_ADAPT_4_WERT = (RXBUF_UINT(172)/100.0f); // SoH_C of cell 1 BEFORE 4th adaptation / SoH_C von Zelle 1 VOR 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_VOR_ADAPT_4_WERT", STAT_SOH_ZELLE1_VOR_ADAPT_4_WERT, "\"%\""); float STAT_SOH_ZELLE1_NACH_ADAPT_4_WERT = (RXBUF_UINT(174)/100.0f); // SoH_C from cell 1 AFTER 4th adaptation / SoH_C von Zelle 1 NACH 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_NACH_ADAPT_4_WERT", STAT_SOH_ZELLE1_NACH_ADAPT_4_WERT, "\"%\""); float STAT_OVC1_ZELLE1_4_WERT = (RXBUF_UINT(176)/1000.0f); // OCV value of cell 1 at the beginning of the 4th adaptation / OCV Wert von Zelle 1 zu Beginn der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC1_ZELLE1_4_WERT", STAT_OVC1_ZELLE1_4_WERT, "\"V\""); float STAT_OVC2_ZELLE1_4_WERT = (RXBUF_UINT(178)/1000.0f); // OCV value of cell 1 at the end of the 4th adaptation / OCV Wert von Zelle 1 am Ende der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC2_ZELLE1_4_WERT", STAT_OVC2_ZELLE1_4_WERT, "\"V\""); float STAT_SOH_GAIN_FAKTOR_ZELLE1_4_WERT = (RXBUF_UINT(180)/10000.0f); // Gain factor of cell 1 for the fourth adaptation / Gain Faktor von Zelle 1 für die vierte Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_GAIN_FAKTOR_ZELLE1_4_WERT", STAT_SOH_GAIN_FAKTOR_ZELLE1_4_WERT, ""); float STAT_SOH_MIN_NACH_4_WERT = (RXBUF_UINT(182)/100.0f); // Minimal SOH AFTER the 4th adaptation / Minimaler SOH NACH der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MIN_NACH_4_WERT", STAT_SOH_MIN_NACH_4_WERT, "\"%\""); float STAT_SOH_MAX_NACH_4_WERT = (RXBUF_UINT(184)/100.0f); // Maximum SOH AFTER the 4th adaptation / Maximaler SOH NACH der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MAX_NACH_4_WERT", STAT_SOH_MAX_NACH_4_WERT, "\"%\""); float STAT_SOH_MEAN_NACH_4_WERT = (RXBUF_UINT(186)/100.0f); // Middle SOH AFTER the 4th adaptation / Mittlerer SOH NACH der 4. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MEAN_NACH_4_WERT", STAT_SOH_MEAN_NACH_4_WERT, "\"%\""); unsigned short STAT_SOH_ADAPT_COUNT_5_WERT = (RXBUF_UINT(188)); // Adaptation counter of 5th adaptation / Adaptionszähler von 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ADAPT_COUNT_5_WERT", STAT_SOH_ADAPT_COUNT_5_WERT, ""); unsigned char STAT_GRUND_ADAPTION_5_WERT = (RXBUF_UCHAR(190)); // Reason for triggering the ring buffer entry (0 = SoH_C estimate; 1 = KapaTest with transfer of the result to // NV; 2 = KapaTest without transfer of the result to NV) / Auslösegrund des Ringspeicher-Eintrags (0 = // SoH_C-Schätzung; 1 = KapaTest mit Übernahme vom Ergebnis in NV; 2 = KapaTest ohne Übernahme vom Ergebnis in // NV) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_GRUND_ADAPTION_5_WERT", STAT_GRUND_ADAPTION_5_WERT, ""); unsigned long STAT_ZEITPUNKT_ADAP_5_WERT = (RXBUF_UINT32(191)); // Time (SME time) of the 5th adaptation / Zeitpunkt (SME-Zeit) der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_ZEITPUNKT_ADAP_5_WERT", STAT_ZEITPUNKT_ADAP_5_WERT, "\"s\""); float STAT_AH_CUM_ABS_5_WERT = (RXBUF_UINT32(195)/3600.0f); // Absolute Ah throughput of the 5th adaptation (if adaptation reason = KapaTest: test result in Ah) / Absoluter // Ah-Durchsatz der 5. Adaption (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_CUM_ABS_5_WERT", STAT_AH_CUM_ABS_5_WERT, "\"Ah\""); float STAT_AH_INTEGRAL_5_WERT = (RXBUF_UINT32(199)/3600.0f); // Ah stroke of the 5th adaptation (if adaptation reason = KapaTest: test result in Ah) / Ah-Hub der 5. Adaption // (Wenn Adaptionsgrund = KapaTest: Testergebnis in Ah) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_AH_INTEGRAL_5_WERT", STAT_AH_INTEGRAL_5_WERT, "\"Ah\""); unsigned short STAT_HVOFFTIME_ADAP_5_WERT = (RXBUF_UINT(203)); // Duration that the shooter was open during the 5th adaptation / Dauer, die die Schütze während der 5. Adaption // geöffnet war ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_HVOFFTIME_ADAP_5_WERT", STAT_HVOFFTIME_ADAP_5_WERT, "\"s\""); char STAT_TEMP_MEAN1_5_WERT = (RXBUF_SCHAR(205)); // Average temperature at HVS level at the beginning of the 5th adaptation or at the beginning of the test / // Mittlere Temperatur auf HVS-Ebene zu Beginn der 5. Adaption bzw. zu Beginn des Tests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN1_5_WERT", STAT_TEMP_MEAN1_5_WERT, "\"°C\""); char STAT_TEMP_MEAN2_5_WERT = (RXBUF_SCHAR(206)); // Average temperature at HVS level at the end of the 5th adaptation / Mittlere Temperatur auf HVS-Ebene am Ende // der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_TEMP_MEAN2_5_WERT", STAT_TEMP_MEAN2_5_WERT, "\"°C\""); float STAT_UCEL_MIN_INIT1_5_WERT = (RXBUF_UINT(207)/1000.0f); // Minimum measured resting voltage of the cells at the beginning of the 5th adaptation (if adaptation reason = // KapaTest: minimum measured resting voltage when waking up) / Minimale gemessene Ruhespannung der Zellen zu // Beginn der 5. Adaption (Wenn Adaptionsgrund = KapaTest: Minimale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT1_5_WERT", STAT_UCEL_MIN_INIT1_5_WERT, "\"V\""); float STAT_UCEL_MAX_INIT1_5_WERT = (RXBUF_UINT(209)/1000.0f); // Maximum measured resting voltage of the cells at the beginning of the 5th adaptation (if adaptation reason = // KapaTest: maximum measured resting voltage when waking up) / Maximale gemessene Ruhespannung der Zellen zu // Beginn der 5. Adaption (Wenn Adaptionsgrund = KapaTest: Maximale gemessene Ruhespannung beim Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT1_5_WERT", STAT_UCEL_MAX_INIT1_5_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT1_5_WERT = (RXBUF_UINT(211)/1000.0f); // Mean measured open-circuit voltage of the cells at the beginning of the 5th adaptation (if reason for // adaptation = KapaTest: mean measured open-circuit voltage when waking up) / Mittlere gemessene Ruhespannung // der Zellen zu Beginn der 5. Adaption (Wenn Adaptionsgrund = KapaTest: Mittlere gemessene Ruhespannung beim // Aufwachen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT1_5_WERT", STAT_UCEL_MEAN_INIT1_5_WERT, "\"V\""); float STAT_UCEL_MIN_INIT2_5_WERT = (RXBUF_UINT(213)/1000.0f); // Minimum measured open-circuit voltage of the cells at the end of the 5th adaptation / Minimale gemessene // Ruhespannung der Zellen am Ende der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MIN_INIT2_5_WERT", STAT_UCEL_MIN_INIT2_5_WERT, "\"V\""); float STAT_UCEL_MAX_INIT2_5_WERT = (RXBUF_UINT(215)/1000.0f); // Maximum measured open-circuit voltage of the cells at the end of the 5th adaptation / Maximale gemessene // Ruhespannung der Zellen am Ende der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MAX_INIT2_5_WERT", STAT_UCEL_MAX_INIT2_5_WERT, "\"V\""); float STAT_UCEL_MEAN_INIT2_5_WERT = (RXBUF_UINT(217)/1000.0f); // Mean measured resting voltage of the cells at the end of the 5th adaptation / Mittlere gemessene Ruhespannung // der Zellen am Ende der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_UCEL_MEAN_INIT2_5_WERT", STAT_UCEL_MEAN_INIT2_5_WERT, "\"V\""); float STAT_SOH_ZELLE1_VOR_ADAPT_5_WERT = (RXBUF_UINT(219)/100.0f); // SoH_C of cell 1 BEFORE 5th adaptation / SoH_C von Zelle 1 VOR 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_VOR_ADAPT_5_WERT", STAT_SOH_ZELLE1_VOR_ADAPT_5_WERT, "\"%\""); float STAT_SOH_ZELLE1_NACH_ADAPT_5_WERT = (RXBUF_UINT(221)/100.0f); // SoH_C from cell 1 AFTER 5th adaptation / SoH_C von Zelle 1 NACH 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_ZELLE1_NACH_ADAPT_5_WERT", STAT_SOH_ZELLE1_NACH_ADAPT_5_WERT, "\"%\""); float STAT_OVC1_ZELLE1_5_WERT = (RXBUF_UINT(223)/1000.0f); // OCV value of cell 1 at the beginning of the 5th adaptation / OCV Wert von Zelle 1 zu Beginn der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC1_ZELLE1_5_WERT", STAT_OVC1_ZELLE1_5_WERT, "\"V\""); float STAT_OVC2_ZELLE1_5_WERT = (RXBUF_UINT(225)/1000.0f); // OCV value of cell 1 at the end of the 5th adaptation / OCV Wert von Zelle 1 am Ende der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_OVC2_ZELLE1_5_WERT", STAT_OVC2_ZELLE1_5_WERT, "\"V\""); float STAT_SOH_GAIN_FAKTOR_ZELLE1_5_WERT = (RXBUF_UINT(227)/10000.0f); // Gain factor of cell 1 for the fifth adaptation / Gain Faktor von Zelle 1 für die fünfte Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_GAIN_FAKTOR_ZELLE1_5_WERT", STAT_SOH_GAIN_FAKTOR_ZELLE1_5_WERT, ""); float STAT_SOH_MIN_NACH_5_WERT = (RXBUF_UINT(229)/100.0f); // Minimal SOH AFTER the 5th adaptation / Minimaler SOH NACH der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MIN_NACH_5_WERT", STAT_SOH_MIN_NACH_5_WERT, "\"%\""); float STAT_SOH_MAX_NACH_5_WERT = (RXBUF_UINT(231)/100.0f); // Maximum SOH AFTER the 5th adaptation / Maximaler SOH NACH der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MAX_NACH_5_WERT", STAT_SOH_MAX_NACH_5_WERT, "\"%\""); float STAT_SOH_MEAN_NACH_5_WERT = (RXBUF_UINT(233)/100.0f); // Middle SOH AFTER the 5th adaptation / Mittlerer SOH NACH der 5. Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MEAN_NACH_5_WERT", STAT_SOH_MEAN_NACH_5_WERT, "\"%\""); float STAT_SOH_MIN_VOR_5_WERT = (RXBUF_UINT(235)/100.0f); // Minimal SOH BEFORE the oldest adaptation / Minimaler SOH VOR der ältesten Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MIN_VOR_5_WERT", STAT_SOH_MIN_VOR_5_WERT, "\"%\""); float STAT_SOH_MAX_VOR_5_WERT = (RXBUF_UINT(237)/100.0f); // Maximum SOH BEFORE the oldest adaptation / Maximaler SOH VOR der ältesten Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MAX_VOR_5_WERT", STAT_SOH_MAX_VOR_5_WERT, "\"%\""); float STAT_SOH_MEAN_VOR_5_WERT = (RXBUF_UINT(239)/100.0f); // Middle SOH BEFORE the oldest adaptation / Mittlerer SOH VOR der ältesten Adaption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_ALTERUNG_KAPA", "STAT_SOH_MEAN_VOR_5_WERT", STAT_SOH_MEAN_VOR_5_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_CSC_TEMPERATUREN: { // 0xD6CF if (datalen < 24) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_CSC_TEMPERATUREN", 24); break; } char STAT_MESSTEMP_CSC1_SENS1_WERT = (RXBUF_SCHAR(0)); // Current measured temperature value sensor 1 CSC 1 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 1 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC1_SENS1_WERT", STAT_MESSTEMP_CSC1_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC1_SENS2_WERT = (RXBUF_SCHAR(1)); // Current measured temperature value sensor 2 CSC 1 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 1 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC1_SENS2_WERT", STAT_MESSTEMP_CSC1_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC2_SENS1_WERT = (RXBUF_SCHAR(2)); // Current measured temperature value sensor 1 CSC 2 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 2 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC2_SENS1_WERT", STAT_MESSTEMP_CSC2_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC2_SENS2_WERT = (RXBUF_SCHAR(3)); // Current measured temperature value sensor 2 CSC 2 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 2 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC2_SENS2_WERT", STAT_MESSTEMP_CSC2_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC3_SENS1_WERT = (RXBUF_SCHAR(4)); // Current measured temperature value sensor 1 CSC 3 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 3 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC3_SENS1_WERT", STAT_MESSTEMP_CSC3_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC3_SENS2_WERT = (RXBUF_SCHAR(5)); // Current measured temperature value sensor 2 CSC 3 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 3 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC3_SENS2_WERT", STAT_MESSTEMP_CSC3_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC4_SENS1_WERT = (RXBUF_SCHAR(6)); // Current measured temperature value sensor 1 CSC 4 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 4 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC4_SENS1_WERT", STAT_MESSTEMP_CSC4_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC4_SENS2_WERT = (RXBUF_SCHAR(7)); // Current measured temperature value sensor 2 CSC 4 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 4 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC4_SENS2_WERT", STAT_MESSTEMP_CSC4_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC5_SENS1_WERT = (RXBUF_SCHAR(8)); // Current measured temperature value sensor 1 CSC 5 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 5 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC5_SENS1_WERT", STAT_MESSTEMP_CSC5_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC5_SENS2_WERT = (RXBUF_SCHAR(9)); // Current measured temperature value sensor 2 CSC 5 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 5 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC5_SENS2_WERT", STAT_MESSTEMP_CSC5_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC6_SENS1_WERT = (RXBUF_SCHAR(10)); // Current measured temperature value sensor 1 CSC 6 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 6 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC6_SENS1_WERT", STAT_MESSTEMP_CSC6_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC6_SENS2_WERT = (RXBUF_SCHAR(11)); // Current measured temperature value sensor 2 CSC 6 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 6 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC6_SENS2_WERT", STAT_MESSTEMP_CSC6_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC7_SENS1_WERT = (RXBUF_SCHAR(12)); // Current measured temperature value sensor 1 CSC 7 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 7 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC7_SENS1_WERT", STAT_MESSTEMP_CSC7_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC7_SENS2_WERT = (RXBUF_SCHAR(13)); // Current measured temperature value sensor 2 CSC 7 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 7 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC7_SENS2_WERT", STAT_MESSTEMP_CSC7_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC8_SENS1_WERT = (RXBUF_SCHAR(14)); // Current measured temperature value sensor 1 CSC 8 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 8 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC8_SENS1_WERT", STAT_MESSTEMP_CSC8_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC8_SENS2_WERT = (RXBUF_SCHAR(15)); // Current measured temperature value sensor 2 CSC 8 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 8 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC8_SENS2_WERT", STAT_MESSTEMP_CSC8_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC9_SENS1_WERT = (RXBUF_SCHAR(16)); // Current measured temperature value sensor 1 CSC 9 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 9 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC9_SENS1_WERT", STAT_MESSTEMP_CSC9_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC9_SENS2_WERT = (RXBUF_SCHAR(17)); // Current measured temperature value sensor 2 CSC 9 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 9 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC9_SENS2_WERT", STAT_MESSTEMP_CSC9_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC10_SENS1_WERT = (RXBUF_SCHAR(18)); // Current measured temperature value sensor 1 CSC 10 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 10 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC10_SENS1_WERT", STAT_MESSTEMP_CSC10_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC10_SENS2_WERT = (RXBUF_SCHAR(19)); // Current measured temperature value sensor 2 CSC 10 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 10 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC10_SENS2_WERT", STAT_MESSTEMP_CSC10_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC11_SENS1_WERT = (RXBUF_SCHAR(20)); // Current measured temperature value sensor 1 CSC 11 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 11 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC11_SENS1_WERT", STAT_MESSTEMP_CSC11_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC11_SENS2_WERT = (RXBUF_SCHAR(21)); // Current measured temperature value sensor 2 CSC 11 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 11 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC11_SENS2_WERT", STAT_MESSTEMP_CSC11_SENS2_WERT, "\"°C\""); char STAT_MESSTEMP_CSC12_SENS1_WERT = (RXBUF_SCHAR(22)); // Current measured temperature value sensor 1 CSC 12 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 1 CSC 12 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC12_SENS1_WERT", STAT_MESSTEMP_CSC12_SENS1_WERT, "\"°C\""); char STAT_MESSTEMP_CSC12_SENS2_WERT = (RXBUF_SCHAR(23)); // Current measured temperature value sensor 2 CSC 12 // 127 = Qual invalid / aktueller Temperaturmesswert Sensor // 2 CSC 12 // 127 = Qual ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CSC_TEMPERATUREN", "STAT_MESSTEMP_CSC12_SENS2_WERT", STAT_MESSTEMP_CSC12_SENS2_WERT, "\"°C\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ISO_ERR_TRG_FZ1_2: { // 0xD6D1 if (datalen < 52) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ISO_ERR_TRG_FZ1_2", 52); break; } unsigned long STAT_FEHLERZAEHLER_TRG_WERT = (RXBUF_UINT32(0)); // LI: Counter of all errors that have occurred in the overrun measurement / LI: Zähler aller aufgetretenen // Fehler der Nachlaufmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_FEHLERZAEHLER_TRG_WERT", STAT_FEHLERZAEHLER_TRG_WERT, ""); float STAT_INPUT_ISO_TRG_FZ1_01_WERT = (RXBUF_UINT(4)/100.0f); // LI: first error time Ubat01 [V] / LI: erstmaliger Fehlerzeitpunkt Ubat01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_01_WERT", STAT_INPUT_ISO_TRG_FZ1_01_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ1_02_WERT = (RXBUF_UCHAR(6)); // LI: first error time Ubat01_QUAL / LI: erstmaliger Fehlerzeitpunkt Ubat01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_02_WERT", STAT_INPUT_ISO_TRG_FZ1_02_WERT, ""); float STAT_INPUT_ISO_TRG_FZ1_03_WERT = (RXBUF_UINT(7)/100.0f); // LI: first error time Ubat02 [V] / LI: erstmaliger Fehlerzeitpunkt Ubat02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_03_WERT", STAT_INPUT_ISO_TRG_FZ1_03_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ1_04_WERT = (RXBUF_UCHAR(9)); // LI: first error time Ubat02_QUAL / LI: erstmaliger Fehlerzeitpunkt Ubat02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_04_WERT", STAT_INPUT_ISO_TRG_FZ1_04_WERT, ""); float STAT_INPUT_ISO_TRG_FZ1_05_WERT = (RXBUF_UINT(10)/100.0f); // LI: first error time Uiso01 [V] / LI: erstmaliger Fehlerzeitpunkt Uiso01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_05_WERT", STAT_INPUT_ISO_TRG_FZ1_05_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ1_06_WERT = (RXBUF_UCHAR(12)); // LI: first time error Uiso01_QUAL / LI: erstmaliger Fehlerzeitpunkt Uiso01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_06_WERT", STAT_INPUT_ISO_TRG_FZ1_06_WERT, ""); float STAT_INPUT_ISO_TRG_FZ1_07_WERT = (RXBUF_UINT(13)/100.0f); // LI: first failure time Uiso02 [V] / LI: erstmaliger Fehlerzeitpunkt Uiso02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_07_WERT", STAT_INPUT_ISO_TRG_FZ1_07_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ1_08_WERT = (RXBUF_UCHAR(15)); // LI: first time error Uiso02_QUAL / LI: erstmaliger Fehlerzeitpunkt Uiso02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_08_WERT", STAT_INPUT_ISO_TRG_FZ1_08_WERT, ""); float STAT_INPUT_ISO_TRG_FZ1_09_WERT = (RXBUF_UINT(16)/100.0f); // LI: first error time Uoffset [V] / LI: erstmaliger Fehlerzeitpunkt Uoffset [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_09_WERT", STAT_INPUT_ISO_TRG_FZ1_09_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ1_10_WERT = (RXBUF_UCHAR(18)); // LI: first time error Uoffset_QUAL / LI: erstmaliger Fehlerzeitpunkt Uoffset_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_10_WERT", STAT_INPUT_ISO_TRG_FZ1_10_WERT, ""); unsigned short STAT_INPUT_ISO_TRG_FZ1_11_WERT = (RXBUF_UINT(19)); // LI: first error time R_iso_ges [kOhm] / LI: erstmaliger Fehlerzeitpunkt R_iso_ges [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_11_WERT", STAT_INPUT_ISO_TRG_FZ1_11_WERT, "\"kOhm\""); unsigned char STAT_INPUT_ISO_TRG_FZ1_12_WERT = (RXBUF_UCHAR(21)); // LI: first error time R_iso_gesQUAL / LI: erstmaliger Fehlerzeitpunkt R_iso_gesQUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_12_WERT", STAT_INPUT_ISO_TRG_FZ1_12_WERT, ""); unsigned short STAT_INPUT_ISO_TRG_FZ1_13_WERT = (RXBUF_UINT(22)); // LI: first error time R_iso_plus [kOhm] / LI: erstmaliger Fehlerzeitpunkt R_iso_plus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_13_WERT", STAT_INPUT_ISO_TRG_FZ1_13_WERT, "\"kOhm\""); float STAT_INPUT_ISO_TRG_FZ1_14_WERT = (RXBUF_UCHAR(24)/100.0f); // LI: first error time R_iso_plus_QUAL / LI: erstmaliger Fehlerzeitpunkt R_iso_plus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_14_WERT", STAT_INPUT_ISO_TRG_FZ1_14_WERT, ""); unsigned short STAT_INPUT_ISO_TRG_FZ1_15_WERT = (RXBUF_UINT(25)); // LI: first error time R_iso_minus [kOhm] / LI: erstmaliger Fehlerzeitpunkt R_iso_minus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_15_WERT", STAT_INPUT_ISO_TRG_FZ1_15_WERT, "\"kOhm\""); float STAT_INPUT_ISO_TRG_FZ1_16_WERT = (RXBUF_UCHAR(27)/100.0f); // LI: first error time R_iso_minus_QUAL / LI: erstmaliger Fehlerzeitpunkt R_iso_minus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ1_16_WERT", STAT_INPUT_ISO_TRG_FZ1_16_WERT, ""); float STAT_INPUT_ISO_TRG_FZ2_01_WERT = (RXBUF_UINT(28)/100.0f); // LI: last error time Ubat01 [V] / LI: letztmaliger Fehlerzeitpunkt Ubat01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_01_WERT", STAT_INPUT_ISO_TRG_FZ2_01_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ2_02_WERT = (RXBUF_UCHAR(30)); // LI: last time the error occurred Ubat01_QUAL / LI: letztmaliger Fehlerzeitpunkt Ubat01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_02_WERT", STAT_INPUT_ISO_TRG_FZ2_02_WERT, ""); float STAT_INPUT_ISO_TRG_FZ2_03_WERT = (RXBUF_UINT(31)/100.0f); // LI: last error time Ubat02 [V] / LI: letztmaliger Fehlerzeitpunkt Ubat02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_03_WERT", STAT_INPUT_ISO_TRG_FZ2_03_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ2_04_WERT = (RXBUF_UCHAR(33)); // LI: last time the error occurred Ubat02_QUAL / LI: letztmaliger Fehlerzeitpunkt Ubat02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_04_WERT", STAT_INPUT_ISO_TRG_FZ2_04_WERT, ""); float STAT_INPUT_ISO_TRG_FZ2_05_WERT = (RXBUF_UINT(34)/100.0f); // LI: last time the error occurred Uiso01 [V] / LI: letztmaliger Fehlerzeitpunkt Uiso01 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_05_WERT", STAT_INPUT_ISO_TRG_FZ2_05_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ2_06_WERT = (RXBUF_UCHAR(36)); // LI: last time the error occurred Uiso01_QUAL / LI: letztmaliger Fehlerzeitpunkt Uiso01_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_06_WERT", STAT_INPUT_ISO_TRG_FZ2_06_WERT, ""); float STAT_INPUT_ISO_TRG_FZ2_07_WERT = (RXBUF_UINT(37)/100.0f); // LI: last error time Uiso02 [V] / LI: letztmaliger Fehlerzeitpunkt Uiso02 [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_07_WERT", STAT_INPUT_ISO_TRG_FZ2_07_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ2_08_WERT = (RXBUF_UCHAR(39)); // LI: last time the error occurred Uiso02_QUAL / LI: letztmaliger Fehlerzeitpunkt Uiso02_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_08_WERT", STAT_INPUT_ISO_TRG_FZ2_08_WERT, ""); float STAT_INPUT_ISO_TRG_FZ2_09_WERT = (RXBUF_UINT(40)/100.0f); // LI: last error time Uoffset [V] / LI: letztmaliger Fehlerzeitpunkt Uoffset [V] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_09_WERT", STAT_INPUT_ISO_TRG_FZ2_09_WERT, "\"V\""); unsigned char STAT_INPUT_ISO_TRG_FZ2_10_WERT = (RXBUF_UCHAR(42)); // LI: last time the error occurred Uoffset_QUAL / LI: letztmaliger Fehlerzeitpunkt Uoffset_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_10_WERT", STAT_INPUT_ISO_TRG_FZ2_10_WERT, ""); unsigned short STAT_INPUT_ISO_TRG_FZ2_11_WERT = (RXBUF_UINT(43)); // LI: last time the error occurred R_iso_ges [kOhm] / LI: letztmaliger Fehlerzeitpunkt R_iso_ges [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_11_WERT", STAT_INPUT_ISO_TRG_FZ2_11_WERT, "\"kOhm\""); unsigned char STAT_INPUT_ISO_TRG_FZ2_12_WERT = (RXBUF_UCHAR(45)); // LI: last time the error occurred R_iso_gesQUAL / LI: letztmaliger Fehlerzeitpunkt R_iso_gesQUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_12_WERT", STAT_INPUT_ISO_TRG_FZ2_12_WERT, ""); unsigned short STAT_INPUT_ISO_TRG_FZ2_13_WERT = (RXBUF_UINT(46)); // LI: last time the error occurred R_iso_plus [kOhm] / LI: letztmaliger Fehlerzeitpunkt R_iso_plus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_13_WERT", STAT_INPUT_ISO_TRG_FZ2_13_WERT, "\"kOhm\""); float STAT_INPUT_ISO_TRG_FZ2_14_WERT = (RXBUF_UCHAR(48)/100.0f); // LI: last time the error occurred R_iso_plus_QUAL / LI: letztmaliger Fehlerzeitpunkt R_iso_plus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_14_WERT", STAT_INPUT_ISO_TRG_FZ2_14_WERT, ""); unsigned short STAT_INPUT_ISO_TRG_FZ2_15_WERT = (RXBUF_UINT(49)); // LI: last time the error occurred R_iso_minus [kOhm] / LI: letztmaliger Fehlerzeitpunkt R_iso_minus [kOhm] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_15_WERT", STAT_INPUT_ISO_TRG_FZ2_15_WERT, "\"kOhm\""); float STAT_INPUT_ISO_TRG_FZ2_16_WERT = (RXBUF_UCHAR(51)/100.0f); // LI: last time the error occurred R_iso_minus_QUAL / LI: letztmaliger Fehlerzeitpunkt R_iso_minus_QUAL ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ISO_ERR_TRG_FZ1_2", "STAT_INPUT_ISO_TRG_FZ2_16_WERT", STAT_INPUT_ISO_TRG_FZ2_16_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SCHUETZ_SCHALTER: { // 0xDD60 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SCHUETZ_SCHALTER", 1); break; } unsigned char STAT_SCHUETZ_SCHALTER = (RXBUF_UCHAR(0)); // Contactor switch status: closed, open, welded contacts or not defined. For results see table // TAB_SCHUETZ_SCHALTER / Status der Schützschalter: geschlossen, offen, verschweißte Kontakte oder nicht // definiert. Ergebnisse siehe Tabelle TAB_SCHUETZ_SCHALTER ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SCHUETZ_SCHALTER", "STAT_SCHUETZ_SCHALTER", STAT_SCHUETZ_SCHALTER, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SCHUETZSCHALTUNGEN_ANZAHL: { // 0xDD63 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SCHUETZSCHALTUNGEN_ANZAHL", 8); break; } unsigned long STAT_ANZAHL_SCHALTUNGEN_WERT = (RXBUF_UINT32(0)); // Number of switchings of the contactor switch without load / Anzahl der Schaltungen der Schützschalter ohne // Last ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "SCHUETZSCHALTUNGEN_ANZAHL", "STAT_ANZAHL_SCHALTUNGEN_WERT", STAT_ANZAHL_SCHALTUNGEN_WERT, ""); unsigned long STAT_ANZAHL_SCHALTUNGEN_LAST_WERT = (RXBUF_UINT32(4)); // Number of switchings of the contactor switch under load / Anzahl der Schaltungen der Schützschalter unter Last ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "SCHUETZSCHALTUNGEN_ANZAHL", "STAT_ANZAHL_SCHALTUNGEN_LAST_WERT", STAT_ANZAHL_SCHALTUNGEN_LAST_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HVIL: { // 0xDD64 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HVIL", 1); break; } unsigned char STAT_GUELTIG = (RXBUF_UCHAR(0)); // HVIL test result / Ergebnis HVIL-Prüfung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVIL", "STAT_GUELTIG", STAT_GUELTIG, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_SPANNUNG: { // 0xDD66 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_SPANNUNG", 2); break; } float STAT_HV_SPANNUNG_WERT = (RXBUF_UINT(0)/100.0f); // Intermediate circuit voltage to the HV connection plug, depending on the contactor status / // Zwischenkreisspannung zum HV-Anschlussstecker, abhängig vom Schützzustand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_SPANNUNG", "STAT_HV_SPANNUNG_WERT", STAT_HV_SPANNUNG_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ANZAHL_KUEHLANFORDERUNG_DRINGEND: { // 0xDD67 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ANZAHL_KUEHLANFORDERUNG_DRINGEND", 1); break; } unsigned char STAT_ANZAHL_KUEHLANFORDERUNG_DRINGEND_WERT = (RXBUF_UCHAR(0)); // Number of consecutive wake cycles with urgent cooling requirements (service life max. Value) / Anzahl // aufeinanderfolgenender Wachzyklen mit dringender Kühlanforderung (Lebensdauer-Max.wert) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ANZAHL_KUEHLANFORDERUNG_DRINGEND", "STAT_ANZAHL_KUEHLANFORDERUNG_DRINGEND_WERT", STAT_ANZAHL_KUEHLANFORDERUNG_DRINGEND_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_SPANNUNG_BERECHNET: { // 0xDD68 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_SPANNUNG_BERECHNET", 2); break; } float STAT_HV_SPANNUNG_BERECHNET_WERT = (RXBUF_UINT(0)/100.0f); // Battery voltage behind the contactors, regardless of the contactor status / Batteriespannung hinter den // Schützen, unabhängig vom Schützzustand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_SPANNUNG_BERECHNET", "STAT_HV_SPANNUNG_BERECHNET_WERT", STAT_HV_SPANNUNG_BERECHNET_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_STROM: { // 0xDD69 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_STROM", 4); break; } float STAT_HV_STROM_WERT = (RXBUF_SINT32(0)/100.0f); // HV current in A / HV-Strom in A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_STROM", "STAT_HV_STROM_WERT", STAT_HV_STROM_WERT, "\"A\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ISOLATIONSWIDERSTAND: { // 0xDD6A if (datalen < 9) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ISOLATIONSWIDERSTAND", 9); break; } unsigned short STAT_ISOWIDERSTAND_EXT_TRG_WERT = (RXBUF_UINT(0)); // Determined isoresistance from the overall system in the wake (closed contactors) / Ermittelter Isowiderstand // vom Gesamtsystem im Nachlauf (geschlossene Schütze) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISOLATIONSWIDERSTAND", "STAT_ISOWIDERSTAND_EXT_TRG_WERT", STAT_ISOWIDERSTAND_EXT_TRG_WERT, "\"kOhm\""); unsigned short STAT_ISOWIDERSTAND_EXT_STD_WERT = (RXBUF_UINT(2)); // Determined isoresistance of the overall system in operation (closed contactors) / Ermittelter Isowiderstand // vom Gesamtsystem im Betrieb (geschlossene Schütze) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISOLATIONSWIDERSTAND", "STAT_ISOWIDERSTAND_EXT_STD_WERT", STAT_ISOWIDERSTAND_EXT_STD_WERT, "\"kOhm\""); unsigned short STAT_ISOWIDERSTAND_INT_WERT = (RXBUF_UINT(4)); // Determined internal isoresistance (open contactors); is only measured on request via the STEUERN_ISOLATION // service routine with open contactors / Ermittelter interner Isowiderstand (offene Schütze); wird nur auf // Anfrage per Service-Routine STEUERN_ISOLATION bei offenen Schützen gemessen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ISOLATIONSWIDERSTAND", "STAT_ISOWIDERSTAND_INT_WERT", STAT_ISOWIDERSTAND_INT_WERT, "\"kOhm\""); unsigned char STAT_ISOWIDERSTAND_EXT_TRG_PLAUS = (RXBUF_UCHAR(6)); // Entire system after-run: 0 = insulation resistance implausible, 1 = insulation resistance plausible / // Gesamtsystem im Nachlauf: 0 = Isolationswiderstand nicht plausibel, 1 = Isolationswiderstand plausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISOLATIONSWIDERSTAND", "STAT_ISOWIDERSTAND_EXT_TRG_PLAUS", STAT_ISOWIDERSTAND_EXT_TRG_PLAUS, "\"0/1\""); unsigned char STAT_ISOWIDERSTAND_EXT_STD_PLAUS = (RXBUF_UCHAR(7)); // Overall system in operation: 0 = insulation resistance not plausible, 1 = insulation resistance plausible / // Gesamtsystem im Betrieb: 0 = Isolationswiderstand nicht plausibel, 1 = Isolationswiderstand plausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISOLATIONSWIDERSTAND", "STAT_ISOWIDERSTAND_EXT_STD_PLAUS", STAT_ISOWIDERSTAND_EXT_STD_PLAUS, "\"0/1\""); unsigned char STAT_ISOWIDERSTAND_INT_PLAUS = (RXBUF_UCHAR(8)); // Internal: 0 = insulation resistance not plausible, 1 = insulation resistance plausible; is only measured on // request via the STEUERN_ISOLATION service routine with open contactors / Intern: 0 = Isolationswiderstand // nicht plausibel, 1 = Isolationswiderstand plausibel; wird nur auf Anfrage per Service-Routine // STEUERN_ISOLATION bei offenen Schützen gemessen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ISOLATIONSWIDERSTAND", "STAT_ISOWIDERSTAND_INT_PLAUS", STAT_ISOWIDERSTAND_INT_PLAUS, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KUEHLKREISLAUF_TEMP: { // 0xDD6C if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KUEHLKREISLAUF_TEMP", 2); break; } float STAT_TEMP_KUEHLKREISLAUF_WERT = (RXBUF_SINT(0)/100.0f); // Temperature of the cooling medium in ° C (327.67 = implausible) / Temperatur des Kühlmediums in °C (327,67 = // unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "KUEHLKREISLAUF_TEMP", "STAT_TEMP_KUEHLKREISLAUF_WERT", STAT_TEMP_KUEHLKREISLAUF_WERT, "\"°C\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_AUFSTART_VERHINDERER: { // 0xDD72 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_AUFSTART_VERHINDERER", 1); break; } unsigned char STAT_AUFSTART_VERHINDERER = (RXBUF_UCHAR(0)); // Reason for not starting the HV system / Grund für nicht Aufstarten des HV-Systems ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "AUFSTART_VERHINDERER", "STAT_AUFSTART_VERHINDERER", STAT_AUFSTART_VERHINDERER, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_CUMULATIVE_LADUNG: { // 0xDD73 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_CUMULATIVE_LADUNG", 4); break; } float STAT_LADUNG_AMP_STUNDEN_WERT = (RXBUF_UINT32(0)/3600.0f); // The accumulated charge for charges in Ah / Die kumulierte Ladung für Ladevorgänge in Ah ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "CUMULATIVE_LADUNG", "STAT_LADUNG_AMP_STUNDEN_WERT", STAT_LADUNG_AMP_STUNDEN_WERT, "\"Ah\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_CUMULATIVE_ENTLADUNG: { // 0xDD74 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_CUMULATIVE_ENTLADUNG", 4); break; } float STAT_ENTLADUNG_AMP_STUNDEN_WERT = (RXBUF_UINT32(0)/3600.0f); // The accumulated charge for discharges in Ah / Die kumulierte Ladung für Entladevorgänge in Ah ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "CUMULATIVE_ENTLADUNG", "STAT_ENTLADUNG_AMP_STUNDEN_WERT", STAT_ENTLADUNG_AMP_STUNDEN_WERT, "\"Ah\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_STATUS_KL30C_SPANNUNG: { // 0xDD76 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_STATUS_KL30C_SPANNUNG", 1); break; } float STAT_KL30C_SPANNUNG_WERT = (RXBUF_UCHAR(0)/10.0f); // Voltage terminal 30C in V / Spannung Klemme 30C in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "STATUS_KL30C_SPANNUNG", "STAT_KL30C_SPANNUNG_WERT", STAT_KL30C_SPANNUNG_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ALTERUNG_KAPAZITAET: { // 0xDD7B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALTERUNG_KAPAZITAET", 1); break; } unsigned char STAT_KAPAZITAET_WERT_0XDD7B = (RXBUF_UCHAR(0)); // Readout of the battery capacity adjustment / Auslesen der Justierung Kapazität Batterie ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ALTERUNG_KAPAZITAET", "STAT_KAPAZITAET_WERT_0XDD7B", STAT_KAPAZITAET_WERT_0XDD7B, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_GW_INFO: { // 0xDD7C if (datalen < 85) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_GW_INFO", 85); break; } float STAT_LEISTUNG_MAX_WERT = (RXBUF_UINT(0)*1000.0f); // Predefined maximum power value in watts (project-specific, on the overall storage level) / Vordefinierter // maximaler Leistungswert in Watt (projektspezifisch, auf Gesamtspeicherebene) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO", "STAT_LEISTUNG_MAX_WERT", STAT_LEISTUNG_MAX_WERT, "\"W\""); unsigned long STAT_ZEIT_POWER_DCHG_1_WERT = (RXBUF_UINT32(2)); // Duration in performance class in the discharge process (on the total storage level): 0

Pmax / Dauer in // Leistungsklasse im Entladevorgang (auf Gesamtspeicherebene): P > Pmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "GW_INFO", "STAT_ZEIT_POWER_DCHG_7_WERT", STAT_ZEIT_POWER_DCHG_7_WERT, "\"min\""); unsigned long STAT_ZEIT_POWER_CHG_1_WERT = (RXBUF_UINT32(30)); // Duration in performance class in the charging process (on the total storage level): 0

Pmax / Dauer in // Leistungsklasse im Ladevorgang (auf Gesamtspeicherebene): P > Pmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "GW_INFO", "STAT_ZEIT_POWER_CHG_7_WERT", STAT_ZEIT_POWER_CHG_7_WERT, "\"min\""); unsigned char STAT_UCELLMAX_EIN = (RXBUF_UCHAR(58)); // Limit violation of the max. Single cell voltage occurred (1 = yes / 0 = no). / GW-Grenzverletzung der max. // Einzelzellspannung eingetreten (1 = ja / 0 = nein). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_UCELLMAX_EIN", STAT_UCELLMAX_EIN, "\"0/1\""); unsigned char STAT_UCELLMIN_EIN = (RXBUF_UCHAR(59)); // Limit violation of the min. Single cell voltage occurred (1 = yes / 0 = no). / GW-Grenzverletzung der min. // Einzelzellspannung eingetreten (1 = ja / 0 = nein). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_UCELLMIN_EIN", STAT_UCELLMIN_EIN, "\"0/1\""); unsigned long STAT_KM_STAND_WERT = (RXBUF_UINT32(60)); // Mileage / Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "GW_INFO", "STAT_KM_STAND_WERT", STAT_KM_STAND_WERT, "\"km\""); float STAT_IMAX_DCHG_WERT = (RXBUF_UINT32(64)/100.0f); // maximum measured discharge current over lifetime / maximal gemessener Entladestrom über Lebenszeit ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO", "STAT_IMAX_DCHG_WERT", STAT_IMAX_DCHG_WERT, "\"A\""); float STAT_IMAX_CHG_WERT = (RXBUF_UINT32(68)/100.0f); // maximum measured charging current over lifetime / maximal gemessener Ladestrom über Lebenszeit ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO", "STAT_IMAX_CHG_WERT", STAT_IMAX_CHG_WERT, "\"A\""); unsigned char STAT_IMAX_LAD_ERROR_EIN = (RXBUF_UCHAR(72)); // Limit violation of the maximum permitted charging current exceeded (1 = yes / 0 = no) / GW-Grenzverletzung des // maximal erlaubten Ladestroms überschritten (1 = ja / 0 = nein) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_IMAX_LAD_ERROR_EIN", STAT_IMAX_LAD_ERROR_EIN, "\"0/1\""); unsigned char STAT_TMAX_ERROR_OP_EIN = (RXBUF_UCHAR(73)); // maximum permitted temperature exceeded during operation (1 = yes, 0 = no) / maximal erlaubte Temperatur // während Betrieb überschritten (1 = ja, 0 = nein) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_TMAX_ERROR_OP_EIN", STAT_TMAX_ERROR_OP_EIN, "\"0/1\""); unsigned char STAT_TMAX_ERROR_NO_OP_EIN = (RXBUF_UCHAR(74)); // maximum allowed temperature exceeded without operation (1 = yes, 0 = no) / maximal erlaubte Temperatur ohne // Betrieb überschritten (1 = ja, 0 = nein) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_TMAX_ERROR_NO_OP_EIN", STAT_TMAX_ERROR_NO_OP_EIN, "\"0/1\""); unsigned char STAT_TMIN_ERROR_OP_EIN = (RXBUF_UCHAR(75)); // Minimum permitted temperature undercut during operation (1 = yes, 0 = no) / minimal erlaubte Temperatur // während Betrieb unterschritten (1 = ja, 0 = nein) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_TMIN_ERROR_OP_EIN", STAT_TMIN_ERROR_OP_EIN, "\"0/1\""); unsigned char STAT_TMIN_ERROR_NO_OP_EIN = (RXBUF_UCHAR(76)); // below minimum allowed temperature without operation (1 = yes, 0 = no) / minimal erlaubte Temperatur ohne // Betrieb unterschritten (1 = ja, 0 = nein) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "GW_INFO", "STAT_TMIN_ERROR_NO_OP_EIN", STAT_TMIN_ERROR_NO_OP_EIN, "\"0/1\""); float STAT_CUMULATIVE_ENERGIE_LADUNG_WERT = (RXBUF_UINT32(77)*36.0f); // Value of the accumulated energy for charging processes / Wert der kumulierten Energie für Ladevorgänge ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO", "STAT_CUMULATIVE_ENERGIE_LADUNG_WERT", STAT_CUMULATIVE_ENERGIE_LADUNG_WERT, "\"Ws\""); float STAT_CUMULATIVE_ENERGIE_ENTLADUNG_WERT = (RXBUF_UINT32(81)*36.0f); // Value of the accumulated energy for discharges / Wert der kumulierten Energie für Entladevorgänge ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO", "STAT_CUMULATIVE_ENERGIE_ENTLADUNG_WERT", STAT_CUMULATIVE_ENERGIE_ENTLADUNG_WERT, "\"Ws\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_STROMGRENZEN: { // 0xDD7D if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_STROMGRENZEN", 4); break; } float STAT_LADESTROMGRENZE_WERT = (RXBUF_UINT(0)/10.0f); // maximum permitted charging current / maximal erlaubter Ladestrom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "STROMGRENZEN", "STAT_LADESTROMGRENZE_WERT", STAT_LADESTROMGRENZE_WERT, "\"A\""); float STAT_ENTLADESTROMGRENZE_WERT = (RXBUF_UINT(2)/10.0f); // maximum permitted discharge current / maximal erlaubter Entladesstrom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "STROMGRENZEN", "STAT_ENTLADESTROMGRENZE_WERT", STAT_ENTLADESTROMGRENZE_WERT, "\"A\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SPANNUNGSGRENZEN: { // 0xDD7E if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SPANNUNGSGRENZEN", 4); break; } float STAT_LADESPANNUNGSGRENZE_WERT = (RXBUF_UINT(0)/100.0f); // maximum allowed charging voltage / maximal erlaubte Ladespannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SPANNUNGSGRENZEN", "STAT_LADESPANNUNGSGRENZE_WERT", STAT_LADESPANNUNGSGRENZE_WERT, "\"V\""); float STAT_ENTLADESPANNUNGSGRENZE_WERT = (RXBUF_UINT(2)/100.0f); // maximum permitted discharge voltage / maximal erlaubte Entladespannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SPANNUNGSGRENZEN", "STAT_ENTLADESPANNUNGSGRENZE_WERT", STAT_ENTLADESPANNUNGSGRENZE_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HVB_HISTORIE_ZYKLEN: { // 0xDD8E if (datalen < 116) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HVB_HISTORIE_ZYKLEN", 116); break; } unsigned long STAT_SUM_OF_SOC_CHARGE_1_WERT = (RXBUF_UINT32(0)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_1_WERT", STAT_SUM_OF_SOC_CHARGE_1_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_2_WERT = (RXBUF_UINT32(4)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_2_WERT", STAT_SUM_OF_SOC_CHARGE_2_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_3_WERT = (RXBUF_UINT32(8)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_3_WERT", STAT_SUM_OF_SOC_CHARGE_3_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_4_WERT = (RXBUF_UINT32(12)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_4_WERT", STAT_SUM_OF_SOC_CHARGE_4_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_5_WERT = (RXBUF_UINT32(16)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_5_WERT", STAT_SUM_OF_SOC_CHARGE_5_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_6_WERT = (RXBUF_UINT32(20)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_6_WERT", STAT_SUM_OF_SOC_CHARGE_6_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_7_WERT = (RXBUF_UINT32(24)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_7_WERT", STAT_SUM_OF_SOC_CHARGE_7_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_8_WERT = (RXBUF_UINT32(28)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_8_WERT", STAT_SUM_OF_SOC_CHARGE_8_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_9_WERT = (RXBUF_UINT32(32)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_9_WERT", STAT_SUM_OF_SOC_CHARGE_9_WERT, ""); unsigned long STAT_SUM_OF_SOC_CHARGE_10_WERT = (RXBUF_UINT32(36)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_LADUNG. / veraltet, // Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_LADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_CHARGE_10_WERT", STAT_SUM_OF_SOC_CHARGE_10_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_1_WERT = (RXBUF_UINT32(40)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_1_WERT", STAT_SUM_OF_SOC_DISCHARGE_1_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_2_WERT = (RXBUF_UINT32(44)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_2_WERT", STAT_SUM_OF_SOC_DISCHARGE_2_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_3_WERT = (RXBUF_UINT32(48)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_3_WERT", STAT_SUM_OF_SOC_DISCHARGE_3_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_4_WERT = (RXBUF_UINT32(52)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_4_WERT", STAT_SUM_OF_SOC_DISCHARGE_4_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_5_WERT = (RXBUF_UINT32(56)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_5_WERT", STAT_SUM_OF_SOC_DISCHARGE_5_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_6_WERT = (RXBUF_UINT32(60)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_6_WERT", STAT_SUM_OF_SOC_DISCHARGE_6_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_7_WERT = (RXBUF_UINT32(64)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_7_WERT", STAT_SUM_OF_SOC_DISCHARGE_7_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_8_WERT = (RXBUF_UINT32(68)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_8_WERT", STAT_SUM_OF_SOC_DISCHARGE_8_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_9_WERT = (RXBUF_UINT32(72)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_9_WERT", STAT_SUM_OF_SOC_DISCHARGE_9_WERT, ""); unsigned long STAT_SUM_OF_SOC_DISCHARGE_10_WERT = (RXBUF_UINT32(76)); // obsolete, replacement: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB and STATUS_CUMULATIVE_ENTLADUNG. / // veraltet, Ersatz: STATUS_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB und STATUS_CUMULATIVE_ENTLADUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_SUM_OF_SOC_DISCHARGE_10_WERT", STAT_SUM_OF_SOC_DISCHARGE_10_WERT, ""); float STAT_STROM_MAX_WERT = (RXBUF_SINT(80)/10.0f); // Predefined maximum current value in amperes (project-specific) / Vorderfinierter maximaler Stromwert in Ampere // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_STROM_MAX_WERT", STAT_STROM_MAX_WERT, "\"A\""); float STAT_STROM_MIN_WERT = (RXBUF_SINT(82)/10.0f); // Pre-defined minimum current value in amperes (project-specific) / Vorderfinierter minimaler Stromwert in // Ampere (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_STROM_MIN_WERT", STAT_STROM_MIN_WERT, "\"A\""); unsigned long STAT_I_HISTO_1_WERT = (RXBUF_UINT32(84)); // Duration current class I <= Imin / Dauer Stromklasse I < =Imin ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_I_HISTO_1_WERT", STAT_I_HISTO_1_WERT, "\"min\""); unsigned long STAT_I_HISTO_2_WERT = (RXBUF_UINT32(88)); // Duration current class Imin = Imax * 0.32 / Dauer Stromklasse I > =Imax*0.32 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVB_HISTORIE_ZYKLEN", "STAT_I_HISTO_8_WERT", STAT_I_HISTO_8_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ZEIT_TEMP_HISTOGRAMM: { // 0xDD90 if (datalen < 112) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ZEIT_TEMP_HISTOGRAMM", 112); break; } unsigned long STAT_ZEIT_TEMP_TOTAL_1_WERT = (RXBUF_UINT32(0)); // Time in temperature class T <= - 25 ° C with the control unit awake and asleep / Zeit in Temperaturklasse // T<=-25°C bei wachem und schlafenden Steuergerät ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ZEIT_TEMP_HISTOGRAMM", "STAT_ZEIT_TEMP_TOTAL_1_WERT", STAT_ZEIT_TEMP_TOTAL_1_WERT, "\"min\""); unsigned long STAT_ZEIT_TEMP_TOTAL_2_WERT = (RXBUF_UINT32(4)); // Time in temperature class -25 ° C 60 ° C with the control unit awake and asleep / Zeit in Temperaturklasse T>60°C // bei wachem und schlafenden Steuergerät ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ZEIT_TEMP_HISTOGRAMM", "STAT_ZEIT_TEMP_TOTAL_14_WERT", STAT_ZEIT_TEMP_TOTAL_14_WERT, "\"min\""); unsigned long STAT_ZEIT_TEMP_NO_OP_1_WERT = (RXBUF_UINT32(56)); // Time in temperature class T <-25 ° C with the control unit asleep / Zeit in Temperaturklasse T<-25°C bei // schlafendem Steuergerät ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ZEIT_TEMP_HISTOGRAMM", "STAT_ZEIT_TEMP_NO_OP_1_WERT", STAT_ZEIT_TEMP_NO_OP_1_WERT, "\"min\""); unsigned long STAT_ZEIT_TEMP_NO_OP_2_WERT = (RXBUF_UINT32(60)); // Time in temperature class -25 ° C 60 ° C with the control unit asleep / Zeit in Temperaturklasse T>60°C bei // schlafendem Steuergerät ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ZEIT_TEMP_HISTOGRAMM", "STAT_ZEIT_TEMP_NO_OP_14_WERT", STAT_ZEIT_TEMP_NO_OP_14_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ZEIT_SOC_KLASSE: { // 0xDD91 if (datalen < 48) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ZEIT_SOC_KLASSE", 48); break; } unsigned long STAT_ZEIT_SOC_1_WERT = (RXBUF_UINT32(0)); // Duration in SOC class 1:% 0 % 95 / Dauer in SOC Klasse 12: SOC > %95 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ZEIT_SOC_KLASSE", "STAT_ZEIT_SOC_12_WERT", STAT_ZEIT_SOC_12_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T1_1: { // 0xDD94 if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T1_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T1_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer bei SoC // kleiner als 10 %. Temperatur kleiner als 0 °C. Strom kleiner als -2.5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I1_WERT", STAT_HV_BATT_HIST_SOC1_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. -2.5xC A less than current less than -2.0xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I2_WERT", STAT_HV_BATT_HIST_SOC1_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. -2.0xC A less than current less than -1.5xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I3_WERT", STAT_HV_BATT_HIST_SOC1_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. -1.5xC A less than current less than -1.0xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I4_WERT", STAT_HV_BATT_HIST_SOC1_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. -1.0xC A less than current less than -0.5xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I5_WERT", STAT_HV_BATT_HIST_SOC1_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. -0.5xC A less than current less than -0.0xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. -0,5xC A kleiner als Strom kleiner als -0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I6_WERT", STAT_HV_BATT_HIST_SOC1_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. 0.0xC A less than current less than 0.5xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I7_WERT", STAT_HV_BATT_HIST_SOC1_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. 0.5xC A less than current less than 1.0xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I8_WERT", STAT_HV_BATT_HIST_SOC1_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. 1.0xC A less than current less than 1.5xC A / // Dauer bei SoC kleiner als 10 %. Temperatur kleiner als 0 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I9_WERT", STAT_HV_BATT_HIST_SOC1_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T1_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. Temperature less than 0 ° C. 1.5xC A less than current / Dauer bei SoC // kleiner als 10 %. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC1_T1_I10_WERT", STAT_HV_BATT_HIST_SOC1_T1_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer // bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I1_WERT", STAT_HV_BATT_HIST_SOC2_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. -2.5xC A less than current less than // -2.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. -2,5xC A kleiner als // Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I2_WERT", STAT_HV_BATT_HIST_SOC2_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. -2.0xC A less than current less than // -1.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. -2,0xC A kleiner als // Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I3_WERT", STAT_HV_BATT_HIST_SOC2_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. -1.5xC A less than current less than // -1.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. -1,5xC A kleiner als // Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I4_WERT", STAT_HV_BATT_HIST_SOC2_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. -1.0xC A less than current less than // -0.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. -1,0xC A kleiner als // Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I5_WERT", STAT_HV_BATT_HIST_SOC2_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. -0.5xC A less than current less than // 0.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. -0,5xC A kleiner als // Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I6_WERT", STAT_HV_BATT_HIST_SOC2_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. 0.0xC A less than current less than // 0.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I7_WERT", STAT_HV_BATT_HIST_SOC2_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. 0.5xC A less than current less than // 1.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I8_WERT", STAT_HV_BATT_HIST_SOC2_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. 1.0xC A less than current less than // 1.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I9_WERT", STAT_HV_BATT_HIST_SOC2_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T1_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. Temperature less than 0 ° C. 1.5xC A less than current / Dauer // bei 10 % kleiner als SoC kleiner als 30 %. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC2_T1_I10_WERT", STAT_HV_BATT_HIST_SOC2_T1_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer // bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I1_WERT", STAT_HV_BATT_HIST_SOC3_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. -2.5xC A less than current less than // -2.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. -2,5xC A kleiner als // Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I2_WERT", STAT_HV_BATT_HIST_SOC3_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. -2.0xC A less than current less than // -1.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. -2,0xC A kleiner als // Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I3_WERT", STAT_HV_BATT_HIST_SOC3_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. -1.5xC A less than current less than // -1.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. -1,5xC A kleiner als // Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I4_WERT", STAT_HV_BATT_HIST_SOC3_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. -1.0xC A less than current less than // -0.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. -1,0xC A kleiner als // Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I5_WERT", STAT_HV_BATT_HIST_SOC3_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. -0.5xC A less than current less than // 0.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. -0,5xC A kleiner als // Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I6_WERT", STAT_HV_BATT_HIST_SOC3_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. 0.0xC A less than current less than // 0.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I7_WERT", STAT_HV_BATT_HIST_SOC3_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. 0.5xC A less than current less than // 1.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I8_WERT", STAT_HV_BATT_HIST_SOC3_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. 1.0xC A less than current less than // 1.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I9_WERT", STAT_HV_BATT_HIST_SOC3_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T1_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. Temperature less than 0 ° C. 1.5xC A less than current / Dauer // bei 30 % kleiner als SoC kleiner als 50 %. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC3_T1_I10_WERT", STAT_HV_BATT_HIST_SOC3_T1_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer // bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I1_WERT", STAT_HV_BATT_HIST_SOC4_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. -2.5xC A less than current less than // -2.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. -2,5xC A kleiner als // Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I2_WERT", STAT_HV_BATT_HIST_SOC4_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. -2.0xC A less than current less than // -1.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. -2,0xC A kleiner als // Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I3_WERT", STAT_HV_BATT_HIST_SOC4_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. -1.5xC A less than current less than // -1.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. -1,5xC A kleiner als // Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I4_WERT", STAT_HV_BATT_HIST_SOC4_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. -1.0xC A less than current less than // -0.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. -1,0xC A kleiner als // Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I5_WERT", STAT_HV_BATT_HIST_SOC4_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. -0.5xC A less than current less than // 0.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. -0,5xC A kleiner als // Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I6_WERT", STAT_HV_BATT_HIST_SOC4_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. 0.0xC A less than current less than // 0.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I7_WERT", STAT_HV_BATT_HIST_SOC4_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. 0.5xC A less than current less than // 1.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I8_WERT", STAT_HV_BATT_HIST_SOC4_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. 1.0xC A less than current less than // 1.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I9_WERT", STAT_HV_BATT_HIST_SOC4_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T1_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. Temperature less than 0 ° C. 1.5xC A less than current / Dauer // bei 50 % kleiner als SoC kleiner als 70 %. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_1", "STAT_HV_BATT_HIST_SOC4_T1_I10_WERT", STAT_HV_BATT_HIST_SOC4_T1_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T2_1: { // 0xDD95 if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T2_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T2_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. Current less than -2.5xC A / // Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I1_WERT", STAT_HV_BATT_HIST_SOC1_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than current less // than -2.0xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I2_WERT", STAT_HV_BATT_HIST_SOC1_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than current less // than -1.5xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I3_WERT", STAT_HV_BATT_HIST_SOC1_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than current less // than -1.0xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I4_WERT", STAT_HV_BATT_HIST_SOC1_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than current less // than -0.5xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I5_WERT", STAT_HV_BATT_HIST_SOC1_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than current less // than 0.0xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. -0,5xC A kleiner // als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I6_WERT", STAT_HV_BATT_HIST_SOC1_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than current less // than 0.5xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. 0,0xC A kleiner // als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I7_WERT", STAT_HV_BATT_HIST_SOC1_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than current less // than 1.0xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. 0,5xC A kleiner // als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I8_WERT", STAT_HV_BATT_HIST_SOC1_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than current less // than 1.5xC A / Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. 1,0xC A kleiner // als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I9_WERT", STAT_HV_BATT_HIST_SOC1_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T2_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than current / // Dauer bei SoC kleiner als 10 %. 0°C kleiner als Temperatur kleiner als 10 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC1_T2_I10_WERT", STAT_HV_BATT_HIST_SOC1_T2_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. Current less than // -2.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur kleiner als 10 °C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I1_WERT", STAT_HV_BATT_HIST_SOC2_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I2_WERT", STAT_HV_BATT_HIST_SOC2_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I3_WERT", STAT_HV_BATT_HIST_SOC2_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I4_WERT", STAT_HV_BATT_HIST_SOC2_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I5_WERT", STAT_HV_BATT_HIST_SOC2_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I6_WERT", STAT_HV_BATT_HIST_SOC2_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I7_WERT", STAT_HV_BATT_HIST_SOC2_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I8_WERT", STAT_HV_BATT_HIST_SOC2_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I9_WERT", STAT_HV_BATT_HIST_SOC2_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T2_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than // current / Dauer bei 10 % kleiner als SoC kleiner als 30 %. 0°C kleiner als Temperatur kleiner als 10 °C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC2_T2_I10_WERT", STAT_HV_BATT_HIST_SOC2_T2_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. Current less than // -2.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur kleiner als 10 °C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I1_WERT", STAT_HV_BATT_HIST_SOC3_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I2_WERT", STAT_HV_BATT_HIST_SOC3_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I3_WERT", STAT_HV_BATT_HIST_SOC3_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I4_WERT", STAT_HV_BATT_HIST_SOC3_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I5_WERT", STAT_HV_BATT_HIST_SOC3_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I6_WERT", STAT_HV_BATT_HIST_SOC3_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I7_WERT", STAT_HV_BATT_HIST_SOC3_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I8_WERT", STAT_HV_BATT_HIST_SOC3_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I9_WERT", STAT_HV_BATT_HIST_SOC3_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T2_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than // current / Dauer bei 30 % kleiner als SoC kleiner als 50 %. 0°C kleiner als Temperatur kleiner als 10 °C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC3_T2_I10_WERT", STAT_HV_BATT_HIST_SOC3_T2_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. Current less than // -2.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur kleiner als 10 °C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I1_WERT", STAT_HV_BATT_HIST_SOC4_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I2_WERT", STAT_HV_BATT_HIST_SOC4_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I3_WERT", STAT_HV_BATT_HIST_SOC4_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I4_WERT", STAT_HV_BATT_HIST_SOC4_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I5_WERT", STAT_HV_BATT_HIST_SOC4_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I6_WERT", STAT_HV_BATT_HIST_SOC4_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I7_WERT", STAT_HV_BATT_HIST_SOC4_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I8_WERT", STAT_HV_BATT_HIST_SOC4_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I9_WERT", STAT_HV_BATT_HIST_SOC4_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T2_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than // current / Dauer bei 50 % kleiner als SoC kleiner als 70 %. 0°C kleiner als Temperatur kleiner als 10 °C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_1", "STAT_HV_BATT_HIST_SOC4_T2_I10_WERT", STAT_HV_BATT_HIST_SOC4_T2_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T3_1: { // 0xDD96 if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T3_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T3_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. Current less than -2.5xC A / // Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I1_WERT", STAT_HV_BATT_HIST_SOC1_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I2_WERT", STAT_HV_BATT_HIST_SOC1_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I3_WERT", STAT_HV_BATT_HIST_SOC1_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I4_WERT", STAT_HV_BATT_HIST_SOC1_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I5_WERT", STAT_HV_BATT_HIST_SOC1_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I6_WERT", STAT_HV_BATT_HIST_SOC1_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than current less // than 0.5xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. 0,0xC A kleiner // als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I7_WERT", STAT_HV_BATT_HIST_SOC1_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than current less // than 1.0xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. 0,5xC A kleiner // als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I8_WERT", STAT_HV_BATT_HIST_SOC1_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than current less // than 1.5xC A / Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. 1,0xC A kleiner // als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I9_WERT", STAT_HV_BATT_HIST_SOC1_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T3_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than current / // Dauer bei SoC kleiner als 10%. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC1_T3_I10_WERT", STAT_HV_BATT_HIST_SOC1_T3_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. Current less than // -2.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur kleiner als 20°C. Strom // kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I1_WERT", STAT_HV_BATT_HIST_SOC2_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I2_WERT", STAT_HV_BATT_HIST_SOC2_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I3_WERT", STAT_HV_BATT_HIST_SOC2_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I4_WERT", STAT_HV_BATT_HIST_SOC2_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I5_WERT", STAT_HV_BATT_HIST_SOC2_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur kleiner // als 20°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I6_WERT", STAT_HV_BATT_HIST_SOC2_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I7_WERT", STAT_HV_BATT_HIST_SOC2_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I8_WERT", STAT_HV_BATT_HIST_SOC2_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur kleiner // als 20°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I9_WERT", STAT_HV_BATT_HIST_SOC2_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T3_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than // current / Dauer bei 10% kleiner als SoC kleiner als 30%. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A // kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC2_T3_I10_WERT", STAT_HV_BATT_HIST_SOC2_T3_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. Current less than // -2.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur kleiner als 20°C. Strom // kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I1_WERT", STAT_HV_BATT_HIST_SOC3_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I2_WERT", STAT_HV_BATT_HIST_SOC3_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I3_WERT", STAT_HV_BATT_HIST_SOC3_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I4_WERT", STAT_HV_BATT_HIST_SOC3_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I5_WERT", STAT_HV_BATT_HIST_SOC3_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur kleiner // als 20°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I6_WERT", STAT_HV_BATT_HIST_SOC3_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I7_WERT", STAT_HV_BATT_HIST_SOC3_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I8_WERT", STAT_HV_BATT_HIST_SOC3_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur kleiner // als 20°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I9_WERT", STAT_HV_BATT_HIST_SOC3_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T3_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than // current / Dauer bei 30% kleiner als SoC kleiner als 50%. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A // kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC3_T3_I10_WERT", STAT_HV_BATT_HIST_SOC3_T3_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. Current less than // -2.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur kleiner als 20°C. Strom // kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I1_WERT", STAT_HV_BATT_HIST_SOC4_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I2_WERT", STAT_HV_BATT_HIST_SOC4_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I3_WERT", STAT_HV_BATT_HIST_SOC4_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I4_WERT", STAT_HV_BATT_HIST_SOC4_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I5_WERT", STAT_HV_BATT_HIST_SOC4_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur kleiner // als 20°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I6_WERT", STAT_HV_BATT_HIST_SOC4_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I7_WERT", STAT_HV_BATT_HIST_SOC4_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I8_WERT", STAT_HV_BATT_HIST_SOC4_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur kleiner // als 20°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I9_WERT", STAT_HV_BATT_HIST_SOC4_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T3_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than // current / Dauer bei 50% kleiner als SoC kleiner als 70%. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A // kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_1", "STAT_HV_BATT_HIST_SOC4_T3_I10_WERT", STAT_HV_BATT_HIST_SOC4_T3_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T4_1: { // 0xDD97 if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T4_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T4_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. Current less than -2.5xC A / // Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I1_WERT", STAT_HV_BATT_HIST_SOC1_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I2_WERT", STAT_HV_BATT_HIST_SOC1_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I3_WERT", STAT_HV_BATT_HIST_SOC1_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I4_WERT", STAT_HV_BATT_HIST_SOC1_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I5_WERT", STAT_HV_BATT_HIST_SOC1_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I6_WERT", STAT_HV_BATT_HIST_SOC1_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less than current // less than 0.5xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I7_WERT", STAT_HV_BATT_HIST_SOC1_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less than current // less than 1.0xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I8_WERT", STAT_HV_BATT_HIST_SOC1_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less than current // less than 1.5xC A / Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I9_WERT", STAT_HV_BATT_HIST_SOC1_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T4_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less than current / // Dauer bei SoC kleiner als 10%. 20°C kleiner als Temperatur kleiner als 27,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC1_T4_I10_WERT", STAT_HV_BATT_HIST_SOC1_T4_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. Current less // than -2.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur kleiner als 27,5°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I1_WERT", STAT_HV_BATT_HIST_SOC2_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I2_WERT", STAT_HV_BATT_HIST_SOC2_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I3_WERT", STAT_HV_BATT_HIST_SOC2_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I4_WERT", STAT_HV_BATT_HIST_SOC2_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I5_WERT", STAT_HV_BATT_HIST_SOC2_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I6_WERT", STAT_HV_BATT_HIST_SOC2_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I7_WERT", STAT_HV_BATT_HIST_SOC2_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I8_WERT", STAT_HV_BATT_HIST_SOC2_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I9_WERT", STAT_HV_BATT_HIST_SOC2_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T4_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less // than current / Dauer bei 10% kleiner als SoC kleiner als 30%. 20°C kleiner als Temperatur kleiner als 27,5°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC2_T4_I10_WERT", STAT_HV_BATT_HIST_SOC2_T4_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. Current less // than -2.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur kleiner als 27,5°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I1_WERT", STAT_HV_BATT_HIST_SOC3_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I2_WERT", STAT_HV_BATT_HIST_SOC3_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I3_WERT", STAT_HV_BATT_HIST_SOC3_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I4_WERT", STAT_HV_BATT_HIST_SOC3_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I5_WERT", STAT_HV_BATT_HIST_SOC3_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I6_WERT", STAT_HV_BATT_HIST_SOC3_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I7_WERT", STAT_HV_BATT_HIST_SOC3_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I8_WERT", STAT_HV_BATT_HIST_SOC3_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I9_WERT", STAT_HV_BATT_HIST_SOC3_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T4_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less // than current / Dauer bei 30% kleiner als SoC kleiner als 50%. 20°C kleiner als Temperatur kleiner als 27,5°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC3_T4_I10_WERT", STAT_HV_BATT_HIST_SOC3_T4_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. Current less // than -2.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur kleiner als 27,5°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I1_WERT", STAT_HV_BATT_HIST_SOC4_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I2_WERT", STAT_HV_BATT_HIST_SOC4_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I3_WERT", STAT_HV_BATT_HIST_SOC4_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I4_WERT", STAT_HV_BATT_HIST_SOC4_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I5_WERT", STAT_HV_BATT_HIST_SOC4_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I6_WERT", STAT_HV_BATT_HIST_SOC4_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I7_WERT", STAT_HV_BATT_HIST_SOC4_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I8_WERT", STAT_HV_BATT_HIST_SOC4_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I9_WERT", STAT_HV_BATT_HIST_SOC4_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T4_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less // than current / Dauer bei 50% kleiner als SoC kleiner als 70%. 20°C kleiner als Temperatur kleiner als 27,5°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_1", "STAT_HV_BATT_HIST_SOC4_T4_I10_WERT", STAT_HV_BATT_HIST_SOC4_T4_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T5_1: { // 0xDD98 if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T5_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T5_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. Current less than -2.5xC // A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. Strom kleiner als -2,5xC // A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I1_WERT", STAT_HV_BATT_HIST_SOC1_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less than current // less than -2.0xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. -2,5xC // A kleiner als Strom kleiner als -2,0xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I2_WERT", STAT_HV_BATT_HIST_SOC1_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less than current // less than -1.5xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. -2,0xC // A kleiner als Strom kleiner als -1,5xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I3_WERT", STAT_HV_BATT_HIST_SOC1_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less than current // less than -1.0xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. -1,5xC // A kleiner als Strom kleiner als -1,0xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I4_WERT", STAT_HV_BATT_HIST_SOC1_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less than current // less than -0.5xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. -1,0xC // A kleiner als Strom kleiner als -0,5xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I5_WERT", STAT_HV_BATT_HIST_SOC1_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less than current // less than 0.0xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I6_WERT", STAT_HV_BATT_HIST_SOC1_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less than current // less than 0.5xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I7_WERT", STAT_HV_BATT_HIST_SOC1_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less than current // less than 1.0xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I8_WERT", STAT_HV_BATT_HIST_SOC1_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less than current // less than 1.5xC A. / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I9_WERT", STAT_HV_BATT_HIST_SOC1_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T5_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less than current // / Dauer bei SoC kleiner als 10%. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC1_T5_I10_WERT", STAT_HV_BATT_HIST_SOC1_T5_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. Current less // than -2.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I1_WERT", STAT_HV_BATT_HIST_SOC2_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I2_WERT", STAT_HV_BATT_HIST_SOC2_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I3_WERT", STAT_HV_BATT_HIST_SOC2_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I4_WERT", STAT_HV_BATT_HIST_SOC2_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I5_WERT", STAT_HV_BATT_HIST_SOC2_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I6_WERT", STAT_HV_BATT_HIST_SOC2_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I7_WERT", STAT_HV_BATT_HIST_SOC2_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I8_WERT", STAT_HV_BATT_HIST_SOC2_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I9_WERT", STAT_HV_BATT_HIST_SOC2_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T5_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less // than current / Dauer bei 10% kleiner als SoC kleiner als 30%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC2_T5_I10_WERT", STAT_HV_BATT_HIST_SOC2_T5_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. Current less // than -2.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I1_WERT", STAT_HV_BATT_HIST_SOC3_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I2_WERT", STAT_HV_BATT_HIST_SOC3_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I3_WERT", STAT_HV_BATT_HIST_SOC3_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I4_WERT", STAT_HV_BATT_HIST_SOC3_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I5_WERT", STAT_HV_BATT_HIST_SOC3_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I6_WERT", STAT_HV_BATT_HIST_SOC3_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I7_WERT", STAT_HV_BATT_HIST_SOC3_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I8_WERT", STAT_HV_BATT_HIST_SOC3_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I9_WERT", STAT_HV_BATT_HIST_SOC3_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T5_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less // than current / Dauer bei 30% kleiner als SoC kleiner als 50%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC3_T5_I10_WERT", STAT_HV_BATT_HIST_SOC3_T5_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. Current less // than -2.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I1_WERT", STAT_HV_BATT_HIST_SOC4_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I2_WERT", STAT_HV_BATT_HIST_SOC4_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I3_WERT", STAT_HV_BATT_HIST_SOC4_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I4_WERT", STAT_HV_BATT_HIST_SOC4_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I5_WERT", STAT_HV_BATT_HIST_SOC4_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I6_WERT", STAT_HV_BATT_HIST_SOC4_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I7_WERT", STAT_HV_BATT_HIST_SOC4_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I8_WERT", STAT_HV_BATT_HIST_SOC4_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I9_WERT", STAT_HV_BATT_HIST_SOC4_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T5_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less // than current / Dauer bei 50% kleiner als SoC kleiner als 70%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_1", "STAT_HV_BATT_HIST_SOC4_T5_I10_WERT", STAT_HV_BATT_HIST_SOC4_T5_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T6_1: { // 0xDD99 if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T6_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T6_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. Current less than -2.5xC A / // Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I1_WERT", STAT_HV_BATT_HIST_SOC1_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I2_WERT", STAT_HV_BATT_HIST_SOC1_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I3_WERT", STAT_HV_BATT_HIST_SOC1_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I4_WERT", STAT_HV_BATT_HIST_SOC1_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I5_WERT", STAT_HV_BATT_HIST_SOC1_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I6_WERT", STAT_HV_BATT_HIST_SOC1_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less than current // less than 0.5xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I7_WERT", STAT_HV_BATT_HIST_SOC1_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less than current // less than 1.0xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I8_WERT", STAT_HV_BATT_HIST_SOC1_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less than current // less than 1.5xC A / Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I9_WERT", STAT_HV_BATT_HIST_SOC1_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T6_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less than current / // Dauer bei SoC kleiner als 10%. 32,5°C kleiner als Temperatur kleiner als 40°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC1_T6_I10_WERT", STAT_HV_BATT_HIST_SOC1_T6_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. Current less // than -2.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur kleiner als 40°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I1_WERT", STAT_HV_BATT_HIST_SOC2_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I2_WERT", STAT_HV_BATT_HIST_SOC2_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I3_WERT", STAT_HV_BATT_HIST_SOC2_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I4_WERT", STAT_HV_BATT_HIST_SOC2_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I5_WERT", STAT_HV_BATT_HIST_SOC2_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I6_WERT", STAT_HV_BATT_HIST_SOC2_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I7_WERT", STAT_HV_BATT_HIST_SOC2_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I8_WERT", STAT_HV_BATT_HIST_SOC2_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I9_WERT", STAT_HV_BATT_HIST_SOC2_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T6_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less // than current / Dauer bei 10% kleiner als SoC kleiner als 30%. 32,5°C kleiner als Temperatur kleiner als 40°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC2_T6_I10_WERT", STAT_HV_BATT_HIST_SOC2_T6_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. Current less // than -2.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur kleiner als 40°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I1_WERT", STAT_HV_BATT_HIST_SOC3_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I2_WERT", STAT_HV_BATT_HIST_SOC3_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I3_WERT", STAT_HV_BATT_HIST_SOC3_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I4_WERT", STAT_HV_BATT_HIST_SOC3_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I5_WERT", STAT_HV_BATT_HIST_SOC3_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I6_WERT", STAT_HV_BATT_HIST_SOC3_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I7_WERT", STAT_HV_BATT_HIST_SOC3_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I8_WERT", STAT_HV_BATT_HIST_SOC3_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I9_WERT", STAT_HV_BATT_HIST_SOC3_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T6_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less // than current / Dauer bei 30% kleiner als SoC kleiner als 50%. 32,5°C kleiner als Temperatur kleiner als 40°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC3_T6_I10_WERT", STAT_HV_BATT_HIST_SOC3_T6_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. Current less // than -2.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur kleiner als 40°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I1_WERT", STAT_HV_BATT_HIST_SOC4_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I2_WERT", STAT_HV_BATT_HIST_SOC4_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I3_WERT", STAT_HV_BATT_HIST_SOC4_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I4_WERT", STAT_HV_BATT_HIST_SOC4_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I5_WERT", STAT_HV_BATT_HIST_SOC4_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I6_WERT", STAT_HV_BATT_HIST_SOC4_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I7_WERT", STAT_HV_BATT_HIST_SOC4_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I8_WERT", STAT_HV_BATT_HIST_SOC4_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I9_WERT", STAT_HV_BATT_HIST_SOC4_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T6_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less // than current / Dauer bei 50% kleiner als SoC kleiner als 70%. 32,5°C kleiner als Temperatur kleiner als 40°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_1", "STAT_HV_BATT_HIST_SOC4_T6_I10_WERT", STAT_HV_BATT_HIST_SOC4_T6_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T7_1: { // 0xDD9A if (datalen < 160) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T7_1", 160); break; } float STAT_HV_BATT_HIST_SOC1_T7_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. Current less than -2.5xC A / Dauer bei SoC // kleiner als 10%. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I1_WERT", STAT_HV_BATT_HIST_SOC1_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. -2.5xC A less than current less than -2.0xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I2_WERT", STAT_HV_BATT_HIST_SOC1_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. -2.0xC A less than current less than -1.5xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I3_WERT", STAT_HV_BATT_HIST_SOC1_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. -1.5xC A less than current less than -1.0xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I4_WERT", STAT_HV_BATT_HIST_SOC1_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. -1.0xC A less than current less than -0.5xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I5_WERT", STAT_HV_BATT_HIST_SOC1_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. -0.5xC A less than current less than 0.0xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I6_WERT", STAT_HV_BATT_HIST_SOC1_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. 0.0xC A less than current less than 0.5xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I7_WERT", STAT_HV_BATT_HIST_SOC1_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. 0.5xC A less than current less than 1.0xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I8_WERT", STAT_HV_BATT_HIST_SOC1_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. 1.0xC A less than current less than 1.5xC A / // Dauer bei SoC kleiner als 10%. 40°C kleiner als Temperatur. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I9_WERT", STAT_HV_BATT_HIST_SOC1_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC1_T7_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration with SoC less than 10%. 40 ° C less than temperature. 1.5xC A less than current / Dauer bei SoC // kleiner als 10%. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC1_T7_I10_WERT", STAT_HV_BATT_HIST_SOC1_T7_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. Current less than -2.5xC A / Dauer // bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I1_WERT", STAT_HV_BATT_HIST_SOC2_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. -2.5xC A less than current less // than -2.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. -2,5xC A kleiner // als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I2_WERT", STAT_HV_BATT_HIST_SOC2_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. -2.0xC A less than current less // than -1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. -2,0xC A kleiner // als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I3_WERT", STAT_HV_BATT_HIST_SOC2_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. -1.5xC A less than current less // than -1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. -1,5xC A kleiner // als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I4_WERT", STAT_HV_BATT_HIST_SOC2_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. -1.0xC A less than current less // than -0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. -1,0xC A kleiner // als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I5_WERT", STAT_HV_BATT_HIST_SOC2_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. -0.5xC A less than current less // than 0.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. -0,5xC A kleiner // als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I6_WERT", STAT_HV_BATT_HIST_SOC2_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. 0.0xC A less than current less than // 0.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I7_WERT", STAT_HV_BATT_HIST_SOC2_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. 0.5xC A less than current less than // 1.0xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I8_WERT", STAT_HV_BATT_HIST_SOC2_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. 1.0xC A less than current less than // 1.5xC A / Dauer bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I9_WERT", STAT_HV_BATT_HIST_SOC2_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC2_T7_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 10% less than SoC less than 30%. 40 ° C less than temperature. 1.5xC A less than current / Dauer // bei 10% kleiner als SoC kleiner als 30%. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC2_T7_I10_WERT", STAT_HV_BATT_HIST_SOC2_T7_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. Current less than -2.5xC A / Dauer // bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I1_WERT", STAT_HV_BATT_HIST_SOC3_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. -2.5xC A less than current less // than -2.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. -2,5xC A kleiner // als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I2_WERT", STAT_HV_BATT_HIST_SOC3_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. -2.0xC A less than current less // than -1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. -2,0xC A kleiner // als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I3_WERT", STAT_HV_BATT_HIST_SOC3_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. -1.5xC A less than current less // than -1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. -1,5xC A kleiner // als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I4_WERT", STAT_HV_BATT_HIST_SOC3_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. -1.0xC A less than current less // than -0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. -1,0xC A kleiner // als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I5_WERT", STAT_HV_BATT_HIST_SOC3_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. -0.5xC A less than current less // than 0.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. -0,5xC A kleiner // als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I6_WERT", STAT_HV_BATT_HIST_SOC3_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. 0.0xC A less than current less than // 0.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I7_WERT", STAT_HV_BATT_HIST_SOC3_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. 0.5xC A less than current less than // 1.0xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I8_WERT", STAT_HV_BATT_HIST_SOC3_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. 1.0xC A less than current less than // 1.5xC A / Dauer bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I9_WERT", STAT_HV_BATT_HIST_SOC3_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC3_T7_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 30% less than SoC less than 50%. 40 ° C less than temperature. 1.5xC A less than current / Dauer // bei 30% kleiner als SoC kleiner als 50%. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC3_T7_I10_WERT", STAT_HV_BATT_HIST_SOC3_T7_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I1_WERT = (RXBUF_UINT32(120)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. Current less than -2.5xC A / Dauer // bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I1_WERT", STAT_HV_BATT_HIST_SOC4_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I2_WERT = (RXBUF_UINT32(124)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. -2.5xC A less than current less // than -2.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. -2,5xC A kleiner // als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I2_WERT", STAT_HV_BATT_HIST_SOC4_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I3_WERT = (RXBUF_UINT32(128)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. -2.0xC A less than current less // than -1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. -2,0xC A kleiner // als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I3_WERT", STAT_HV_BATT_HIST_SOC4_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I4_WERT = (RXBUF_UINT32(132)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. -1.5xC A less than current less // than -1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. -1,5xC A kleiner // als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I4_WERT", STAT_HV_BATT_HIST_SOC4_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I5_WERT = (RXBUF_UINT32(136)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. -1.0xC A less than current less // than -0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. -1,0xC A kleiner // als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I5_WERT", STAT_HV_BATT_HIST_SOC4_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I6_WERT = (RXBUF_UINT32(140)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. -0.5xC A less than current less // than 0.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. -0,5xC A kleiner // als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I6_WERT", STAT_HV_BATT_HIST_SOC4_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I7_WERT = (RXBUF_UINT32(144)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. 0.0xC A less than current less than // 0.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I7_WERT", STAT_HV_BATT_HIST_SOC4_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I8_WERT = (RXBUF_UINT32(148)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. 0.5xC A less than current less than // 1.0xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I8_WERT", STAT_HV_BATT_HIST_SOC4_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I9_WERT = (RXBUF_UINT32(152)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. 1.0xC A less than current less than // 1.5xC A / Dauer bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I9_WERT", STAT_HV_BATT_HIST_SOC4_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC4_T7_I10_WERT = (RXBUF_UINT32(156)/10.0f); // Duration at 50% less than SoC less than 70%. 40 ° C less than temperature. 1.5xC A less than current / Dauer // bei 50% kleiner als SoC kleiner als 70%. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_1", "STAT_HV_BATT_HIST_SOC4_T7_I10_WERT", STAT_HV_BATT_HIST_SOC4_T7_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_LADEZIELSPANNUNG_TAUSCH: { // 0xDDAB if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_LADEZIELSPANNUNG_TAUSCH", 2); break; } float STAT_LADEZIELSPANNUNG_WERT = (RXBUF_UINT(0)/100.0f); // Output of the charging target voltage for module replacement before installing the module in the vehicle / // Ausgabe der Ladezielspannung für Modultausch vor Einbau des Moduls ins Fahrzeug ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADEZIELSPANNUNG_TAUSCH", "STAT_LADEZIELSPANNUNG_WERT", STAT_LADEZIELSPANNUNG_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_SPANNUNG_BATTERIE: { // 0xDDB4 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_SPANNUNG_BATTERIE", 2); break; } float STAT_HV_SPANNUNG_BATT_WERT = (RXBUF_UINT(0)/100.0f); // Battery voltage behind the contactors, regardless of the contactor status / Batteriespannung hinter den // Schützen, unabhängig vom Schützzustand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_SPANNUNG_BATTERIE", "STAT_HV_SPANNUNG_BATT_WERT", STAT_HV_SPANNUNG_BATT_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ALTERUNG_INNENWIDERSTAND: { // 0xDDB6 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALTERUNG_INNENWIDERSTAND", 2); break; } float STAT_ALTERUNG_INNENWIDERSTAND_WERT_0XDDB6 = (RXBUF_UINT(0)/10.0f); // Aging of the internal resistance in percent: Internal resistance of the storage tank when new is related to // the current value of the internal resistance (R_neu / R_akt) * 100 (100% = new condition, decreases with // aging) / Alterung des Innenwiderstands in Prozent: Innenwiderstand des Speichers im Neuzustand auf den // aktuellen Wert des Innenwiderstands bezogen (R_neu /R_akt) *100 (100% = Neuzustand, sinkt mit Alterung) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ALTERUNG_INNENWIDERSTAND", "STAT_ALTERUNG_INNENWIDERSTAND_WERT_0XDDB6", STAT_ALTERUNG_INNENWIDERSTAND_WERT_0XDDB6, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ANZEIGE_SOC: { // 0xDDBC if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ANZEIGE_SOC", 6); break; } float STAT_ANZEIGE_SOC_WERT = (RXBUF_UINT(0)/10.0f); // current advertisement Soc / aktueller Anzeige Soc ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ANZEIGE_SOC", "STAT_ANZEIGE_SOC_WERT", STAT_ANZEIGE_SOC_WERT, "\"%\""); float STAT_MAXIMALE_ANZEIGE_SOC_WERT = (RXBUF_UINT(2)/10.0f); // upper limit of the display Soc / obere Grenze des Anzeige Soc ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ANZEIGE_SOC", "STAT_MAXIMALE_ANZEIGE_SOC_WERT", STAT_MAXIMALE_ANZEIGE_SOC_WERT, "\"%\""); float STAT_MINIMALE_ANZEIGE_SOC_WERT = (RXBUF_UINT(4)/10.0f); // lower limit of the display Soc / untere Grenze des Anzeige Soc ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ANZEIGE_SOC", "STAT_MINIMALE_ANZEIGE_SOC_WERT", STAT_MINIMALE_ANZEIGE_SOC_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SERVICE_DISCONNECT: { // 0xDDBD if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SERVICE_DISCONNECT", 1); break; } unsigned char STAT_SERVICE_DISCONNECT = (RXBUF_UCHAR(0)); // Status Service Disconnect (0 = open, 1 = closed) / Status Service Disconnect (0 = offen, 1 = geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SERVICE_DISCONNECT", "STAT_SERVICE_DISCONNECT", STAT_SERVICE_DISCONNECT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_VORLADUNG: { // 0xDDBE if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_VORLADUNG", 20); break; } unsigned short STAT_ZEIT_VORLADUNG_WERT = (RXBUF_UINT(0)); // last precharge time required / zuletzt benötigte Vorladezeit ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "VORLADUNG", "STAT_ZEIT_VORLADUNG_WERT", STAT_ZEIT_VORLADUNG_WERT, "\"ms\""); unsigned short STAT_ZEIT_VORLADUNG_1_WERT = (RXBUF_UINT(2)); // Required precharge time (1 process before) / benötigte Vorladezeit (1 Vorgang zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "VORLADUNG", "STAT_ZEIT_VORLADUNG_1_WERT", STAT_ZEIT_VORLADUNG_1_WERT, "\"ms\""); unsigned short STAT_ZEIT_VORLADUNG_2_WERT = (RXBUF_UINT(4)); // Required pre-charging time (2 processes before) / benötigte Vorladezeit (2 Vorgänge zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "VORLADUNG", "STAT_ZEIT_VORLADUNG_2_WERT", STAT_ZEIT_VORLADUNG_2_WERT, "\"ms\""); unsigned short STAT_ZEIT_VORLADUNG_3_WERT = (RXBUF_UINT(6)); // Required pre-charging time (3 processes before) / benötigte Vorladezeit (3 Vorgänge zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "VORLADUNG", "STAT_ZEIT_VORLADUNG_3_WERT", STAT_ZEIT_VORLADUNG_3_WERT, "\"ms\""); unsigned short STAT_ZEIT_VORLADUNG_4_WERT = (RXBUF_UINT(8)); // Required pre-charging time (4 processes before) / benötigte Vorladezeit (4 Vorgänge zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "VORLADUNG", "STAT_ZEIT_VORLADUNG_4_WERT", STAT_ZEIT_VORLADUNG_4_WERT, "\"ms\""); float STAT_MAX_STROM_VORLADUNG_WERT = (RXBUF_SINT(10)/100.0f); // maximum pre-charge current (last pre-charge) / maximaler Vorladestrom (letzte Vorladung) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "VORLADUNG", "STAT_MAX_STROM_VORLADUNG_WERT", STAT_MAX_STROM_VORLADUNG_WERT, "\"A\""); float STAT_MAX_STROM_VORLADUNG_1_WERT = (RXBUF_SINT(12)/100.0f); // maximum precharge current (1 process before) / maximaler Vorladestrom (1 Vorgang zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "VORLADUNG", "STAT_MAX_STROM_VORLADUNG_1_WERT", STAT_MAX_STROM_VORLADUNG_1_WERT, "\"A\""); float STAT_MAX_STROM_VORLADUNG_2_WERT = (RXBUF_SINT(14)/100.0f); // maximum precharge current (2 processes before) / maximaler Vorladestrom (2 Vorgänge zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "VORLADUNG", "STAT_MAX_STROM_VORLADUNG_2_WERT", STAT_MAX_STROM_VORLADUNG_2_WERT, "\"A\""); float STAT_MAX_STROM_VORLADUNG_3_WERT = (RXBUF_SINT(16)/100.0f); // maximum precharge current (3 processes before) / maximaler Vorladestrom (3 Vorgänge zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "VORLADUNG", "STAT_MAX_STROM_VORLADUNG_3_WERT", STAT_MAX_STROM_VORLADUNG_3_WERT, "\"A\""); float STAT_MAX_STROM_VORLADUNG_4_WERT = (RXBUF_SINT(18)/100.0f); // maximum precharge current (4 processes before) / maximaler Vorladestrom (4 Vorgänge zuvor) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "VORLADUNG", "STAT_MAX_STROM_VORLADUNG_4_WERT", STAT_MAX_STROM_VORLADUNG_4_WERT, "\"A\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ZELLSPANNUNGEN_MIN_MAX: { // 0xDDBF if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ZELLSPANNUNGEN_MIN_MAX", 4); break; } float STAT_UCELL_MIN_WERT = (RXBUF_UINT(0)/1000.0f); // minimum single cell voltage of all single cells / minimale Einzelzellspannung aller Einzelzellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZELLSPANNUNGEN_MIN_MAX", "STAT_UCELL_MIN_WERT", STAT_UCELL_MIN_WERT, "\"V\""); float STAT_UCELL_MAX_WERT = (RXBUF_UINT(2)/1000.0f); // maximum single cell voltage of all single cells / maximale Einzelzellspannung aller Einzelzellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZELLSPANNUNGEN_MIN_MAX", "STAT_UCELL_MAX_WERT", STAT_UCELL_MAX_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_TEMPERATUREN: { // 0xDDC0 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_TEMPERATUREN", 6); break; } float STAT_TCORE_MIN_WERT = (RXBUF_SINT(0)/100.0f); // Output of the calculated minimum cell core temperatures / Ausgabe der berechneten minimalen // Zellkerntemperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "TEMPERATUREN", "STAT_TCORE_MIN_WERT", STAT_TCORE_MIN_WERT, "\"°C\""); float STAT_TCORE_MAX_WERT = (RXBUF_SINT(2)/100.0f); // Output of the calculated maximum cell core temperatures / Ausgabe der berechneten maximalen // Zellkerntemperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "TEMPERATUREN", "STAT_TCORE_MAX_WERT", STAT_TCORE_MAX_WERT, "\"°C\""); float STAT_TCORE_MEAN_WERT = (RXBUF_SINT(4)/100.0f); // Output of the calculated average cell core temperatures / Ausgabe der berechneten durchschnittlichen // Zellkerntemperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "TEMPERATUREN", "STAT_TCORE_MEAN_WERT", STAT_TCORE_MEAN_WERT, "\"°C\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ALTERUNG_PARAMETER: { // 0xDDC2 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALTERUNG_PARAMETER", 6); break; } float STAT_FAKTOR_RS_WERT = (RXBUF_UINT(0)/1000.0f); // Correction factor for the serial ohmic resistance (1.5 = increase in resistance by 50%) / Korrekturfaktor des // seriellen ohmschen Wiederstands (1,5 = Erhöhung des Wiederstands um 50%) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ALTERUNG_PARAMETER", "STAT_FAKTOR_RS_WERT", STAT_FAKTOR_RS_WERT, ""); float STAT_FAKTOR_RP_WERT = (RXBUF_UINT(2)/1000.0f); // Correction factor for the parallel ohmic resistance (1.5 = increase in resistance by 50%) / Korrekturfaktor // des paralellen ohmschen Wiederstands (1,5 = Erhöhung des Wiederstands um 50%) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ALTERUNG_PARAMETER", "STAT_FAKTOR_RP_WERT", STAT_FAKTOR_RP_WERT, ""); float STAT_FAKTOR_CP_WERT = (RXBUF_UINT(4)/1000.0f); // Correction factor of the parallel capacity (1.5 = increase in capacity by 50%) / Korrekturfaktor der // parallelen Kapazität (1,5 = Erhöhung der Kapazität um 50%) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ALTERUNG_PARAMETER", "STAT_FAKTOR_CP_WERT", STAT_FAKTOR_CP_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HISTO_SYM_DAUER: { // 0xDDC6 if (datalen < 34) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HISTO_SYM_DAUER", 34); break; } unsigned short STAT_SYM_DAUER_MAX_WERT = (RXBUF_UINT(0)); // Predefined maximum symmetry time in minutes (project-specific) / Vordefinierte maximale Symmetrierdauer in // Minuten (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HISTO_SYM_DAUER", "STAT_SYM_DAUER_MAX_WERT", STAT_SYM_DAUER_MAX_WERT, "\"min\""); unsigned long STAT_HISTO_SYM_DAUER_1_WERT = (RXBUF_UINT32(2)); // Number of duration classes: 0 tmax / Anzahl der Dauerklasse : t > tmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HISTO_SYM_DAUER", "STAT_HISTO_SYM_DAUER_8_WERT", STAT_HISTO_SYM_DAUER_8_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HISTO_SYM_ZELLANZAHL: { // 0xDDC7 if (datalen < 16) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HISTO_SYM_ZELLANZAHL", 16); break; } unsigned short STAT_HISTO_SYM_ZELLANZAHL_1_WERT = (RXBUF_UINT(0)); // Number of cells to be symmetrized: n = 0 / Anzahl zu symmetrierende Zellen: n = 0 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HISTO_SYM_ZELLANZAHL", "STAT_HISTO_SYM_ZELLANZAHL_1_WERT", STAT_HISTO_SYM_ZELLANZAHL_1_WERT, ""); unsigned short STAT_HISTO_SYM_ZELLANZAHL_2_WERT = (RXBUF_UINT(2)); // Number of cells to be symmetrized: n = 1 / Anzahl zu symmetrierende Zellen: n = 1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HISTO_SYM_ZELLANZAHL", "STAT_HISTO_SYM_ZELLANZAHL_2_WERT", STAT_HISTO_SYM_ZELLANZAHL_2_WERT, ""); unsigned short STAT_HISTO_SYM_ZELLANZAHL_3_WERT = (RXBUF_UINT(4)); // Number of cells to be symmetrized: 1 > This job // is no longer supported and has NULL data. / Anzahl der alterungsbedingten Spannungsdegradationen der // Hochvolt-Speicher über Gesamtzeit >> Dieser Job wird nicht mehr unterstützt und ist NULL-bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_DEGRADATION", "STAT_ANZAHL_DEGRADATION_GESAMT_WERT", STAT_ANZAHL_DEGRADATION_GESAMT_WERT, ""); unsigned short STAT_ANZAHL_DEGRADATION_LAUFENDES_JAHR_WERT = (RXBUF_UINT(2)); // Average number of age-related voltage degradations of the high-voltage storage system over the last and // current year >> This job is no longer supported and has NULL data. / Anzahl der alterungsbedingten // Spannungsdegradationen der Hochvolt-Speicher im Mittel über letztes und laufendes Jahr >> Dieser Job wird // nicht mehr unterstützt und ist NULL-bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_DEGRADATION", "STAT_ANZAHL_DEGRADATION_LAUFENDES_JAHR_WERT", STAT_ANZAHL_DEGRADATION_LAUFENDES_JAHR_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB: { // 0xDDE9 if (datalen < 60) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", 60); break; } unsigned short STAT_HFK_GESAMT_SOC_HUB_50_65_WERT = (RXBUF_UINT(0)); // Up to 14-03: Frequency with SoC hub between 50% and 65%, total from last year and current year From 14-07: // Frequency with SoC hub between 70% and 74%, total from last year and current year / Bis 14-03: Häufigkeit bei // SoC-Hub zwischen 50% und 65%, Summe letztes Jahr und laufendes Jahr Ab 14-07: Häufigkeit bei SoC-Hub zwischen // 70% und 74%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_GESAMT_SOC_HUB_50_65_WERT", STAT_HFK_GESAMT_SOC_HUB_50_65_WERT, ""); unsigned short STAT_HFK_GESAMT_SOC_HUB_65_80_WERT = (RXBUF_UINT(2)); // Up to 14-03: Frequency with SoC hub between 65% and 80%, total from last year and current year From 14-07: // Frequency with SoC hub between 74% and 80%, total from last year and current year / Bis 14-03: Häufigkeit bei // SoC-Hub zwischen 65% und 80%, Summe letztes Jahr und laufendes Jahr Ab 14-07: Häufigkeit bei SoC-Hub zwischen // 74% und 80%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_GESAMT_SOC_HUB_65_80_WERT", STAT_HFK_GESAMT_SOC_HUB_65_80_WERT, ""); unsigned short STAT_HFK_GESAMT_SOC_HUB_80_85_WERT = (RXBUF_UINT(4)); // Frequency with SoC hub between 80% and 85%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 80% und 85%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_GESAMT_SOC_HUB_80_85_WERT", STAT_HFK_GESAMT_SOC_HUB_80_85_WERT, ""); unsigned short STAT_HFK_GESAMT_SOC_HUB_85_90_WERT = (RXBUF_UINT(6)); // Frequency with SoC hub between 85% and 90%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 85% und 90%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_GESAMT_SOC_HUB_85_90_WERT", STAT_HFK_GESAMT_SOC_HUB_85_90_WERT, ""); unsigned short STAT_HFK_GESAMT_SOC_HUB_90_95_WERT = (RXBUF_UINT(8)); // Frequency with SoC hub between 90% and 95%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 90% und 95%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_GESAMT_SOC_HUB_90_95_WERT", STAT_HFK_GESAMT_SOC_HUB_90_95_WERT, ""); unsigned short STAT_HFK_GESAMT_SOC_HUB_95_100_WERT = (RXBUF_UINT(10)); // Frequency with SoC hub between 95% and 100%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 95% und 100%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_GESAMT_SOC_HUB_95_100_WERT", STAT_HFK_GESAMT_SOC_HUB_95_100_WERT, ""); unsigned short STAT_HFK_LAUFENDES_JAHR_SOC_HUB_50_65_WERT = (RXBUF_UINT(12)); // Frequency with SoC hub between 50% and 65%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 50% und 65%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_JAHR_SOC_HUB_50_65_WERT", STAT_HFK_LAUFENDES_JAHR_SOC_HUB_50_65_WERT, ""); unsigned short STAT_HFK_LAUFENDES_JAHR_SOC_HUB_65_80_WERT = (RXBUF_UINT(14)); // Frequency with SoC hub between 65% and 80%, total of last year and current year / Häufigkeit bei SoC-Hub // zwischen 65% und 80%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_JAHR_SOC_HUB_65_80_WERT", STAT_HFK_LAUFENDES_JAHR_SOC_HUB_65_80_WERT, ""); unsigned short STAT_HFK_LAUFENDES_JAHR_SOC_HUB_80_85_WERT = (RXBUF_UINT(16)); // Frequency with SoC hub between 80% and 85%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 80% und 85%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_JAHR_SOC_HUB_80_85_WERT", STAT_HFK_LAUFENDES_JAHR_SOC_HUB_80_85_WERT, ""); unsigned short STAT_HFK_LAUFENDES_JAHR_SOC_HUB_85_90_WERT = (RXBUF_UINT(18)); // Frequency with SoC hub between 85% and 90%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 85% und 90%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_JAHR_SOC_HUB_85_90_WERT", STAT_HFK_LAUFENDES_JAHR_SOC_HUB_85_90_WERT, ""); unsigned short STAT_HFK_LAUFENDES_JAHR_SOC_HUB_90_95_WERT = (RXBUF_UINT(20)); // Frequency with SoC hub between 90% and 95%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 90% und 95%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_JAHR_SOC_HUB_90_95_WERT", STAT_HFK_LAUFENDES_JAHR_SOC_HUB_90_95_WERT, ""); unsigned short STAT_HFK_LAUFENDES_JAHR_SOC_HUB_95_100_WERT = (RXBUF_UINT(22)); // Frequency with SoC hub between 95% and 100%, sum of last year and current year / Häufigkeit bei SoC-Hub // zwischen 95% und 100%, Summe letztes Jahr und laufendes Jahr ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_JAHR_SOC_HUB_95_100_WERT", STAT_HFK_LAUFENDES_JAHR_SOC_HUB_95_100_WERT, ""); unsigned short STAT_HFK_LAUFENDES_MONAT_SOC_HUB_50_65_WERT = (RXBUF_UINT(24)); // Frequency with SoC hub between 50% and 65%, sum of the last and current month / Häufigkeit bei SoC-Hub // zwischen 50% und 65%, Summe letzter und laufender Monat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_MONAT_SOC_HUB_50_65_WERT", STAT_HFK_LAUFENDES_MONAT_SOC_HUB_50_65_WERT, ""); unsigned short STAT_HFK_LAUFENDES_MONAT_SOC_HUB_65_80_WERT = (RXBUF_UINT(26)); // Frequency with SoC hub between 65% and 80%, sum of the last and current month / Häufigkeit bei SoC-Hub // zwischen 65% und 80%, Summe letzter und laufender Monat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_MONAT_SOC_HUB_65_80_WERT", STAT_HFK_LAUFENDES_MONAT_SOC_HUB_65_80_WERT, ""); unsigned short STAT_HFK_LAUFENDES_MONAT_SOC_HUB_80_85_WERT = (RXBUF_UINT(28)); // Frequency with SoC hub between 80% and 85%, sum of the last and current month / Häufigkeit bei SoC-Hub // zwischen 80% und 85%, Summe letzter und laufender Monat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_MONAT_SOC_HUB_80_85_WERT", STAT_HFK_LAUFENDES_MONAT_SOC_HUB_80_85_WERT, ""); unsigned short STAT_HFK_LAUFENDES_MONAT_SOC_HUB_85_90_WERT = (RXBUF_UINT(30)); // Frequency with SoC hub between 85% and 90%, sum of the last and current month / Häufigkeit bei SoC-Hub // zwischen 85% und 90%, Summe letzter und laufender Monat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_MONAT_SOC_HUB_85_90_WERT", STAT_HFK_LAUFENDES_MONAT_SOC_HUB_85_90_WERT, ""); unsigned short STAT_HFK_LAUFENDES_MONAT_SOC_HUB_90_95_WERT = (RXBUF_UINT(32)); // Frequency with SoC hub between 90% and 95%, sum of the last and current month / Häufigkeit bei SoC-Hub // zwischen 90% und 95%, Summe letzter und laufender Monat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_MONAT_SOC_HUB_90_95_WERT", STAT_HFK_LAUFENDES_MONAT_SOC_HUB_90_95_WERT, ""); unsigned short STAT_HFK_LAUFENDES_MONAT_SOC_HUB_95_100_WERT = (RXBUF_UINT(34)); // Frequency with SoC hub between 95% and 100%, sum of the last and current month / Häufigkeit bei SoC-Hub // zwischen 95% und 100%, Summe letzter und laufender Monat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_HFK_LAUFENDES_MONAT_SOC_HUB_95_100_WERT", STAT_HFK_LAUFENDES_MONAT_SOC_HUB_95_100_WERT, ""); unsigned long STAT_ZEITSTEMPEL_SOC_HUB_50_65_WERT = (RXBUF_UINT32(36)); // Stamp d. Vehicle time when the SoC hub last occurred between 50% and 65% / Stempel d. Fzg.-Zeit bei letztem // Auftreten des SoC-Hub zwischen 50% und 65% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_ZEITSTEMPEL_SOC_HUB_50_65_WERT", STAT_ZEITSTEMPEL_SOC_HUB_50_65_WERT, "\"s\""); unsigned long STAT_ZEITSTEMPEL_SOC_HUB_65_80_WERT = (RXBUF_UINT32(40)); // Stamp d. Vehicle time when the SoC hub last occurred between 65% and 80% / Stempel d. Fzg.-Zeit bei letztem // Auftreten des SoC-Hub zwischen 65% und 80% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_ZEITSTEMPEL_SOC_HUB_65_80_WERT", STAT_ZEITSTEMPEL_SOC_HUB_65_80_WERT, "\"s\""); unsigned long STAT_ZEITSTEMPEL_SOC_HUB_80_85_WERT = (RXBUF_UINT32(44)); // Stamp d. Vehicle time when the SoC hub last occurred between 80% and 85% / Stempel d. Fzg.-Zeit bei letztem // Auftreten des SoC-Hub zwischen 80% und 85% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_ZEITSTEMPEL_SOC_HUB_80_85_WERT", STAT_ZEITSTEMPEL_SOC_HUB_80_85_WERT, "\"s\""); unsigned long STAT_ZEITSTEMPEL_SOC_HUB_85_90_WERT = (RXBUF_UINT32(48)); // Stamp d. Vehicle time when the SoC hub last occurred between 85% and 90% / Stempel d. Fzg.-Zeit bei letztem // Auftreten des SoC-Hub zwischen 85% und 90% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_ZEITSTEMPEL_SOC_HUB_85_90_WERT", STAT_ZEITSTEMPEL_SOC_HUB_85_90_WERT, "\"s\""); unsigned long STAT_ZEITSTEMPEL_SOC_HUB_90_95_WERT = (RXBUF_UINT32(52)); // Stamp d. Vehicle time when the SoC hub last occurred between 90% and 95% / Stempel d. Fzg.-Zeit bei letztem // Auftreten des SoC-Hub zwischen 90% und 95% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_ZEITSTEMPEL_SOC_HUB_90_95_WERT", STAT_ZEITSTEMPEL_SOC_HUB_90_95_WERT, "\"s\""); unsigned long STAT_ZEITSTEMPEL_SOC_HUB_95_100_WERT = (RXBUF_UINT32(56)); // Stamp d. Vehicle time when the SoC hub last occurred between 95% and 100% / Stempel d. Fzg.-Zeit bei letztem // Auftreten des SoC-Hub zwischen 95% und 100% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ALTERUNG_KAPAZITAET_HISTOGRAMM_SOC_HUB", "STAT_ZEITSTEMPEL_SOC_HUB_95_100_WERT", STAT_ZEITSTEMPEL_SOC_HUB_95_100_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RINGPUFFER_LADEVORGAENGE: { // 0xDDEB if (datalen < 60) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RINGPUFFER_LADEVORGAENGE", 60); break; } unsigned char STAT_START_SOC_1_WERT = (RXBUF_UCHAR(0)); // Value of the start SOC after completion of the loading process-1 (255 = implausible) / Wert des Start SOC nach // Abschluss des Ladervorgang-1 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_SOC_1_WERT", STAT_START_SOC_1_WERT, "\"%\""); unsigned char STAT_START_SOC_2_WERT = (RXBUF_UCHAR(1)); // Value of the start SOC after completion of the loading process-2 (255 = implausible) / Wert des Start SOC nach // Abschluss des Ladervorgang-2 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_SOC_2_WERT", STAT_START_SOC_2_WERT, "\"%\""); unsigned char STAT_START_SOC_3_WERT = (RXBUF_UCHAR(2)); // Value of the start SOC after completion of the loading process-3 (255 = implausible) / Wert des Start SOC nach // Abschluss des Ladervorgang-3 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_SOC_3_WERT", STAT_START_SOC_3_WERT, "\"%\""); unsigned char STAT_START_SOC_4_WERT = (RXBUF_UCHAR(3)); // Value of the start SOC after completion of the loading process-4 (255 = implausible) / Wert des Start SOC nach // Abschluss des Ladervorgang-4 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_SOC_4_WERT", STAT_START_SOC_4_WERT, "\"%\""); unsigned char STAT_START_SOC_5_WERT = (RXBUF_UCHAR(4)); // Value of the start SOC after completion of the loading process -5 (255 = implausible) / Wert des Start SOC // nach Abschluss des Ladervorgang-5 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_SOC_5_WERT", STAT_START_SOC_5_WERT, "\"%\""); unsigned char STAT_VERF_P_LADEN_1_WERT = (RXBUF_UCHAR(5)); // Value (from HVPM) of the available charging power at the beginning of charging-1 (255 = implausible). The // output 'available charging power' must be divided by 5 in order to obtain a real value. / Wert (aus HVPM) der // verfügbaren Ladeleistung zu Ladebeginn-1 (255 = unplausibel). Die ausgegebene 'verfügbare Ladeleistung' muss // mit 5 dividiert werden um realen Wert zu erhalten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_VERF_P_LADEN_1_WERT", STAT_VERF_P_LADEN_1_WERT, "\"kW\""); unsigned char STAT_VERF_P_LADEN_2_WERT = (RXBUF_UCHAR(6)); // Value (from HVPM) of the available charging power at the start of charging-2 (255 = implausible). The output // 'available charging power' must be divided by 5 in order to obtain a real value. / Wert (aus HVPM) der // verfügbaren Ladeleistung zu Ladebeginn-2 (255 = unplausibel). Die ausgegebene 'verfügbare Ladeleistung' muss // mit 5 dividiert werden um realen Wert zu erhalten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_VERF_P_LADEN_2_WERT", STAT_VERF_P_LADEN_2_WERT, "\"kW\""); unsigned char STAT_VERF_P_LADEN_3_WERT = (RXBUF_UCHAR(7)); // Value (from HVPM) of the available charging power at the start of charging -3 (255 = implausible). The output // 'available charging power' must be divided by 5 in order to obtain a real value. / Wert (aus HVPM) der // verfügbaren Ladeleistung zu Ladebeginn-3 (255 = unplausibel). Die ausgegebene 'verfügbare Ladeleistung' muss // mit 5 dividiert werden um realen Wert zu erhalten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_VERF_P_LADEN_3_WERT", STAT_VERF_P_LADEN_3_WERT, "\"kW\""); unsigned char STAT_VERF_P_LADEN_4_WERT = (RXBUF_UCHAR(8)); // Value (from HVPM) of the available charging power at the start of charging-4 (255 = implausible). The output // 'available charging power' must be divided by 5 in order to obtain a real value. / Wert (aus HVPM) der // verfügbaren Ladeleistung zu Ladebeginn-4 (255 = unplausibel). Die ausgegebene 'verfügbare Ladeleistung' muss // mit 5 dividiert werden um realen Wert zu erhalten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_VERF_P_LADEN_4_WERT", STAT_VERF_P_LADEN_4_WERT, "\"kW\""); unsigned char STAT_VERF_P_LADEN_5_WERT = (RXBUF_UCHAR(9)); // Value (from HVPM) of the available charging power at the start of charging -5 (255 = implausible). The output // 'available charging power' must be divided by 5 in order to obtain a real value. / Wert (aus HVPM) der // verfügbaren Ladeleistung zu Ladebeginn-5 (255 = unplausibel). Die ausgegebene 'verfügbare Ladeleistung' muss // mit 5 dividiert werden um realen Wert zu erhalten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_VERF_P_LADEN_5_WERT", STAT_VERF_P_LADEN_5_WERT, "\"kW\""); unsigned char STAT_REAL_END_SOC_1_WERT = (RXBUF_UCHAR(10)); // Value of the actual SOC after completion of the charging process-1 (255 = implausible) / Wert des // tatsächlichen SOC nach Abschluss des Ladervorgang-1 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_END_SOC_1_WERT", STAT_REAL_END_SOC_1_WERT, "\"%\""); unsigned char STAT_REAL_END_SOC_2_WERT = (RXBUF_UCHAR(11)); // Value of the actual SOC after completion of the charging process-2 (255 = implausible) / Wert des // tatsächlichen SOC nach Abschluss des Ladervorgang-2 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_END_SOC_2_WERT", STAT_REAL_END_SOC_2_WERT, "\"%\""); unsigned char STAT_REAL_END_SOC_3_WERT = (RXBUF_UCHAR(12)); // Value of the actual SOC after completion of the charging process-3 (255 = implausible) / Wert des // tatsächlichen SOC nach Abschluss des Ladervorgang-3 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_END_SOC_3_WERT", STAT_REAL_END_SOC_3_WERT, "\"%\""); unsigned char STAT_REAL_END_SOC_4_WERT = (RXBUF_UCHAR(13)); // Value of the actual SOC after completion of the charging process-4 (255 = implausible) / Wert des // tatsächlichen SOC nach Abschluss des Ladervorgang-4 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_END_SOC_4_WERT", STAT_REAL_END_SOC_4_WERT, "\"%\""); unsigned char STAT_REAL_END_SOC_5_WERT = (RXBUF_UCHAR(14)); // Value of the actual SOC after completion of the loading process -5 (255 = implausible) / Wert des // tatsächlichen SOC nach Abschluss des Ladervorgang-5 (255 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_END_SOC_5_WERT", STAT_REAL_END_SOC_5_WERT, "\"%\""); unsigned char STAT_GRUND_LADEENDE_WERT_1 = (RXBUF_UCHAR(15)); // Reason for the end of charging after completion of the charging process-1 / Grund des Ladeendes nach Abschluss // des Ladervorgang-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_GRUND_LADEENDE_WERT_1", STAT_GRUND_LADEENDE_WERT_1, "\"0-n\""); unsigned char STAT_GRUND_LADEENDE_WERT_2 = (RXBUF_UCHAR(16)); // Reason for the end of charging after completion of the charging process-2 / Grund des Ladeendes nach Abschluss // des Ladervorgang-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_GRUND_LADEENDE_WERT_2", STAT_GRUND_LADEENDE_WERT_2, "\"0-n\""); unsigned char STAT_GRUND_LADEENDE_WERT_3 = (RXBUF_UCHAR(17)); // Reason for the end of charging after completion of the charging process-3 / Grund des Ladeendes nach Abschluss // des Ladervorgang-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_GRUND_LADEENDE_WERT_3", STAT_GRUND_LADEENDE_WERT_3, "\"0-n\""); unsigned char STAT_GRUND_LADEENDE_WERT_4 = (RXBUF_UCHAR(18)); // Reason for the end of charging after completion of the charging process-4 / Grund des Ladeendes nach Abschluss // des Ladervorgang-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_GRUND_LADEENDE_WERT_4", STAT_GRUND_LADEENDE_WERT_4, "\"0-n\""); unsigned char STAT_GRUND_LADEENDE_WERT_5 = (RXBUF_UCHAR(19)); // Reason for the end of charging after the completion of charging-5 / Grund des Ladeendes nach Abschluss des // Ladervorgang-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_GRUND_LADEENDE_WERT_5", STAT_GRUND_LADEENDE_WERT_5, "\"0-n\""); char STAT_START_TEMP_1_WERT = (RXBUF_SCHAR(20)); // Value of the start temperature after completion of the charging process-1 (127 = implausible) / Wert der Start // Temperatur nach Abschluss des Ladervorgang-1 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_TEMP_1_WERT", STAT_START_TEMP_1_WERT, "\"°C\""); char STAT_START_TEMP_2_WERT = (RXBUF_SCHAR(21)); // Value of the start temperature after completion of the charging process-2 (127 = implausible) / Wert der Start // Temperatur nach Abschluss des Ladervorgang-2 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_TEMP_2_WERT", STAT_START_TEMP_2_WERT, "\"°C\""); char STAT_START_TEMP_3_WERT = (RXBUF_SCHAR(22)); // Value of the start temperature after completion of the charging process-3 (127 = implausible) / Wert der Start // Temperatur nach Abschluss des Ladervorgang-3 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_TEMP_3_WERT", STAT_START_TEMP_3_WERT, "\"°C\""); char STAT_START_TEMP_4_WERT = (RXBUF_SCHAR(23)); // Value of the start temperature after completion of the charging process-4 (127 = implausible) / Wert der Start // Temperatur nach Abschluss des Ladervorgang-4 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_TEMP_4_WERT", STAT_START_TEMP_4_WERT, "\"°C\""); char STAT_START_TEMP_5_WERT = (RXBUF_SCHAR(24)); // Value of the start temperature after completion of the charging process -5 (127 = implausible) / Wert der // Start Temperatur nach Abschluss des Ladervorgang-5 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_START_TEMP_5_WERT", STAT_START_TEMP_5_WERT, "\"°C\""); char STAT_END_TEMP_1_WERT = (RXBUF_SCHAR(25)); // Value of the end temperature after completion of the loading process-1 (127 = implausible) / Wert der End // Temperatur nach Abschluss des Ladervorgang-1 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_END_TEMP_1_WERT", STAT_END_TEMP_1_WERT, "\"°C\""); char STAT_END_TEMP_2_WERT = (RXBUF_SCHAR(26)); // Value of the end temperature after completion of the charging process-2 (127 = implausible) / Wert der End // Temperatur nach Abschluss des Ladervorgang-2 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_END_TEMP_2_WERT", STAT_END_TEMP_2_WERT, "\"°C\""); char STAT_END_TEMP_3_WERT = (RXBUF_SCHAR(27)); // Value of the end temperature after completion of the loading process-3 (127 = implausible) / Wert der End // Temperatur nach Abschluss des Ladervorgang-3 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_END_TEMP_3_WERT", STAT_END_TEMP_3_WERT, "\"°C\""); char STAT_END_TEMP_4_WERT = (RXBUF_SCHAR(28)); // Value of the end temperature after completion of the loading process-4 (127 = implausible) / Wert der End // Temperatur nach Abschluss des Ladervorgang-4 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_END_TEMP_4_WERT", STAT_END_TEMP_4_WERT, "\"°C\""); char STAT_END_TEMP_5_WERT = (RXBUF_SCHAR(29)); // Value of the end temperature after completion of the loading process -5 (127 = implausible) / Wert der End // Temperatur nach Abschluss des Ladervorgang-5 (127 = unplausibel) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_END_TEMP_5_WERT", STAT_END_TEMP_5_WERT, "\"°C\""); float STAT_BEGINN_PROG_LADEZEIT_1_WERT = (RXBUF_UCHAR(30)*5.0f); // Charging time forecast at the beginning after completion of the charging process-1 / Zu Beginn prognostizierte // Ladezeit nach Abschluss des Ladevorgang-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_BEGINN_PROG_LADEZEIT_1_WERT", STAT_BEGINN_PROG_LADEZEIT_1_WERT, "\"min\""); float STAT_BEGINN_PROG_LADEZEIT_2_WERT = (RXBUF_UCHAR(31)*5.0f); // At the beginning forecast charging time after completion of the charging process-2 / Zu Beginn prognostizierte // Ladezeit nach Abschluss des Ladevorgang-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_BEGINN_PROG_LADEZEIT_2_WERT", STAT_BEGINN_PROG_LADEZEIT_2_WERT, "\"min\""); float STAT_BEGINN_PROG_LADEZEIT_3_WERT = (RXBUF_UCHAR(32)*5.0f); // Charging time forecast at the beginning after completion of the charging process -3 / Zu Beginn // prognostizierte Ladezeit nach Abschluss des Ladevorgang-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_BEGINN_PROG_LADEZEIT_3_WERT", STAT_BEGINN_PROG_LADEZEIT_3_WERT, "\"min\""); float STAT_BEGINN_PROG_LADEZEIT_4_WERT = (RXBUF_UCHAR(33)*5.0f); // At the beginning, the charging time is forecast after the charging process is completed-4 / Zu Beginn // prognostizierte Ladezeit nach Abschluss des Ladevorgang-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_BEGINN_PROG_LADEZEIT_4_WERT", STAT_BEGINN_PROG_LADEZEIT_4_WERT, "\"min\""); float STAT_BEGINN_PROG_LADEZEIT_5_WERT = (RXBUF_UCHAR(34)*5.0f); // At the beginning, the charging time is forecast after the charging process is completed-5 / Zu Beginn // prognostizierte Ladezeit nach Abschluss des Ladevorgang-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_BEGINN_PROG_LADEZEIT_5_WERT", STAT_BEGINN_PROG_LADEZEIT_5_WERT, "\"min\""); float STAT_REAL_LADEZEIT_1_WERT = (RXBUF_UCHAR(35)*5.0f); // The actual charging time after charging is complete -1 / Die tatsächliche Ladezeit nach Abschluss des // Ladevorgang-1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_LADEZEIT_1_WERT", STAT_REAL_LADEZEIT_1_WERT, "\"min\""); float STAT_REAL_LADEZEIT_2_WERT = (RXBUF_UCHAR(36)*5.0f); // The actual charging time after the charging process is complete-2 / Die tatsächliche Ladezeit nach Abschluss // des Ladevorgang-2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_LADEZEIT_2_WERT", STAT_REAL_LADEZEIT_2_WERT, "\"min\""); float STAT_REAL_LADEZEIT_3_WERT = (RXBUF_UCHAR(37)*5.0f); // The actual charging time after charging is complete -3 / Die tatsächliche Ladezeit nach Abschluss des // Ladevorgang-3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_LADEZEIT_3_WERT", STAT_REAL_LADEZEIT_3_WERT, "\"min\""); float STAT_REAL_LADEZEIT_4_WERT = (RXBUF_UCHAR(38)*5.0f); // The actual charging time after charging is complete -4 / Die tatsächliche Ladezeit nach Abschluss des // Ladevorgang-4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_LADEZEIT_4_WERT", STAT_REAL_LADEZEIT_4_WERT, "\"min\""); float STAT_REAL_LADEZEIT_5_WERT = (RXBUF_UCHAR(39)*5.0f); // The actual charging time after charging is complete -5 / Die tatsächliche Ladezeit nach Abschluss des // Ladevorgang-5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_REAL_LADEZEIT_5_WERT", STAT_REAL_LADEZEIT_5_WERT, "\"min\""); unsigned long STAT_RELATIVZEIT_1_WERT = (RXBUF_UINT32(40)); // Relative time at the beginning of the charging process-1 (continuous combi system time from ACAN with start in // the factory) / Relativzeit zu Beginn des Ladevorgang-1 (fortlaufende Kombi-System-Zeit v. ACAN mit Start im // Werk) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_RELATIVZEIT_1_WERT", STAT_RELATIVZEIT_1_WERT, "\"s\""); unsigned long STAT_RELATIVZEIT_2_WERT = (RXBUF_UINT32(44)); // Relative time at the beginning of the charging process-2 (continuous combi system time from ACAN with start in // the factory) / Relativzeit zu Beginn des Ladevorgang-2 (fortlaufende Kombi-System-Zeit v. ACAN mit Start im // Werk) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_RELATIVZEIT_2_WERT", STAT_RELATIVZEIT_2_WERT, "\"s\""); unsigned long STAT_RELATIVZEIT_3_WERT = (RXBUF_UINT32(48)); // Relative time at the beginning of the charging process-3 (continuous combi system time from ACAN with start in // the factory) / Relativzeit zu Beginn des Ladevorgang-3 (fortlaufende Kombi-System-Zeit v. ACAN mit Start im // Werk) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_RELATIVZEIT_3_WERT", STAT_RELATIVZEIT_3_WERT, "\"s\""); unsigned long STAT_RELATIVZEIT_4_WERT = (RXBUF_UINT32(52)); // Relative time at the beginning of the charging process-4 (consecutive combination system time from ACAN with // start in the factory) / Relativzeit zu Beginn des Ladevorgang-4 (fortlaufende Kombi-System-Zeit v. ACAN mit // Start im Werk) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_RELATIVZEIT_4_WERT", STAT_RELATIVZEIT_4_WERT, "\"s\""); unsigned long STAT_RELATIVZEIT_5_WERT = (RXBUF_UINT32(56)); // Relative time at the beginning of the charging process -5 (continuous combination system time from ACAN with // start in the factory) / Relativzeit zu Beginn des Ladevorgang-5 (fortlaufende Kombi-System-Zeit v. ACAN mit // Start im Werk) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "RINGPUFFER_LADEVORGAENGE", "STAT_RELATIVZEIT_5_WERT", STAT_RELATIVZEIT_5_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_PROG_LADEZEIT: { // 0xDDEC if (datalen < 14) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_PROG_LADEZEIT", 14); break; } unsigned short STAT_HIS_PROG_LADEZEIT_1_WERT = (RXBUF_UINT(0)); // Number in deviation class 1: fact <= -% 25 / Anzahl in der Abweichungsklasse-1: fact <= -%25 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HIS_PROG_LADEZEIT", "STAT_HIS_PROG_LADEZEIT_1_WERT", STAT_HIS_PROG_LADEZEIT_1_WERT, ""); unsigned short STAT_HIS_PROG_LADEZEIT_2_WERT = (RXBUF_UINT(2)); // Number in deviation class 2:% -25 % 25 / Anzahl in der Abweichungsklasse-7: fact > %25 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HIS_PROG_LADEZEIT", "STAT_HIS_PROG_LADEZEIT_7_WERT", STAT_HIS_PROG_LADEZEIT_7_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_SPANNUNG_QUER: { // 0xDDEF if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_SPANNUNG_QUER", 2); break; } unsigned short STAT_HV_SPANNUNG_QUER_WERT = (RXBUF_UINT(0)); // SBox, high-voltage transverse (same as battery voltage when K1 or K3 is closed) / SBox, Hochvolt-Spannung Quer // (gleich Batteriespannung wenn K1 oder K3 geschlossen ist) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HV_SPANNUNG_QUER", "STAT_HV_SPANNUNG_QUER_WERT", STAT_HV_SPANNUNG_QUER_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ALPHA_INITIAL_ALTERUNG: { // 0xDE37 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ALPHA_INITIAL_ALTERUNG", 2); break; } float STAT_ALPHA_INIT_ALTERUNG_WERT = (RXBUF_UINT(0)/1000.0f); // Initial value of the SOH_R calculation / Initialwert der SOH_R-Berechnung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ALPHA_INITIAL_ALTERUNG", "STAT_ALPHA_INIT_ALTERUNG_WERT", STAT_ALPHA_INIT_ALTERUNG_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_BETRIEBSSTUNDEN: { // 0xDF60 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_BETRIEBSSTUNDEN", 8); break; } unsigned long STAT_TIME_HV_ON_WERT = (RXBUF_UINT32(0)); // The total time with the main switches closed / Die Gesamtzeit bei geschlossenen Hauptschaltern ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "BETRIEBSSTUNDEN", "STAT_TIME_HV_ON_WERT", STAT_TIME_HV_ON_WERT, "\"h\""); unsigned long STAT_TIME_TOTAL_WERT = (RXBUF_UINT32(4)); // The total battery life (total time with main switches closed and open) / Die gesamte Batterielebensdauer // (Gesamtzeit bei geschlossenen und geöffneten Hauptschaltern) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "BETRIEBSSTUNDEN", "STAT_TIME_TOTAL_WERT", STAT_TIME_TOTAL_WERT, "\"h\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_COOL_DOWN: { // 0xDF62 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_COOL_DOWN", 2); break; } unsigned short STAT_ANZAHL_KUEHLVORGAENGE_WERT = (RXBUF_UINT(0)); // Number of CoolDown scenarios (departure with hot HV storage) / Anzahl der CoolDown Szenarios (Abfahrt mit // heißem HV-Speicher) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "COOL_DOWN", "STAT_ANZAHL_KUEHLVORGAENGE_WERT", STAT_ANZAHL_KUEHLVORGAENGE_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KLEMMENZYKLEN: { // 0xDF63 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KLEMMENZYKLEN", 4); break; } unsigned long STAT_ANZAHL_KLEMMENZYKLEN_WERT = (RXBUF_UINT32(0)); // Number of terminal cycles / Anzahl der Klemmenzyklen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "KLEMMENZYKLEN", "STAT_ANZAHL_KLEMMENZYKLEN_WERT", STAT_ANZAHL_KLEMMENZYKLEN_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KUEHLDAUER: { // 0xDF64 if (datalen < 10) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KUEHLDAUER", 10); break; } unsigned short STAT_KUEHLDAUER_MAX_WERT_0XDF64 = (RXBUF_UINT(0)); // Predefined maximum cooling time (project-specific) / Vordefinierte maximale Kühldauer (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "KUEHLDAUER", "STAT_KUEHLDAUER_MAX_WERT_0XDF64", STAT_KUEHLDAUER_MAX_WERT_0XDF64, "\"min\""); unsigned short STAT_KUEHLDAUER_1_WERT_0XDF64 = (RXBUF_UINT(2)); // Number of duration class: 0 tmax / Anzahl Dauerklasse: t > tmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "KUEHLDAUER", "STAT_KUEHLDAUER_4_WERT_0XDF64", STAT_KUEHLDAUER_4_WERT_0XDF64, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_TEMP_SPREIZUNG_SYSTEM: { // 0xDF65 if (datalen < 26) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_TEMP_SPREIZUNG_SYSTEM", 26); break; } float STAT_TEMP_SPREIZUNG_MAX_WERT = (RXBUF_UINT(0)/100.0f); // Predefined maximum temperature spread value in Celcius (project-specific) / Vorderfinierter maximaler // Temperaturspreizungswert in Celcius (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "TEMP_SPREIZUNG_SYSTEM", "STAT_TEMP_SPREIZUNG_MAX_WERT", STAT_TEMP_SPREIZUNG_MAX_WERT, "\"°C\""); unsigned long STAT_TEMP_SPREIZUNG_SYS_1_WERT = (RXBUF_UINT32(2)); // Time in minutes with cooling on class 1: 0

dTmax / Zeit in Minuten bei Kühlung an Klasse 6: dT > dTmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "TEMP_SPREIZUNG_SYSTEM", "STAT_TEMP_SPREIZUNG_SYS_6_WERT", STAT_TEMP_SPREIZUNG_SYS_6_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_TEMP_KUEHLMITTEL: { // 0xDF66 if (datalen < 26) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_TEMP_KUEHLMITTEL", 26); break; } float STAT_TEMP_KUEHLMITTEL_MAX_WERT = (RXBUF_UINT(0)/10.0f); // Predefined maximum coolant temperature (project-specific) / Vordefinierte maximale Kühlmittelstemperatur // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "TEMP_KUEHLMITTEL", "STAT_TEMP_KUEHLMITTEL_MAX_WERT", STAT_TEMP_KUEHLMITTEL_MAX_WERT, "\"°C\""); unsigned long STAT_TEMP_KUEHLMITTEL_1_WERT = (RXBUF_UINT32(2)); // Duration in temperature class: T <= 0 / Dauer in Temperaturklasse: T < =0 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "TEMP_KUEHLMITTEL", "STAT_TEMP_KUEHLMITTEL_1_WERT", STAT_TEMP_KUEHLMITTEL_1_WERT, "\"min\""); unsigned long STAT_TEMP_KUEHLMITTEL_2_WERT = (RXBUF_UINT32(6)); // Duration in temperature class: 0 Tmax / Dauer in Temperaturklasse: T > Tmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "TEMP_KUEHLMITTEL", "STAT_TEMP_KUEHLMITTEL_6_WERT", STAT_TEMP_KUEHLMITTEL_6_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_LADUNG_KUEHLUNG: { // 0xDF67 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_LADUNG_KUEHLUNG", 8); break; } float STAT_LADUNG_KUEHLUNG_WERT = (RXBUF_UINT32(0)/3600.0f); // Charge amount with activated cooling / Ladungsmenge bei eingeschalteter Kühlung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNG_KUEHLUNG", "STAT_LADUNG_KUEHLUNG_WERT", STAT_LADUNG_KUEHLUNG_WERT, "\"Ah\""); float STAT_ENTLADUNG_KUEHLUNG_WERT = (RXBUF_UINT32(4)/3600.0f); // Discharge amount with the cooling switched on / Entladungsmenge bei eingeschalteter Kühlung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADUNG_KUEHLUNG", "STAT_ENTLADUNG_KUEHLUNG_WERT", STAT_ENTLADUNG_KUEHLUNG_WERT, "\"Ah\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T1_2: { // 0xDF68 if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T1_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T1_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer // bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I1_WERT", STAT_HV_BATT_HIST_SOC5_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. -2.5xC A less than current less than // -2.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. -2,5xC A kleiner als // Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I2_WERT", STAT_HV_BATT_HIST_SOC5_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. -2.0xC A less than current less than // -1.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. -2,0xC A kleiner als // Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I3_WERT", STAT_HV_BATT_HIST_SOC5_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. -1.5xC A less than current less than // -1.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. -1,5xC A kleiner als // Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I4_WERT", STAT_HV_BATT_HIST_SOC5_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. -1.0xC A less than current less than // -0.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. -1,0xC A kleiner als // Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I5_WERT", STAT_HV_BATT_HIST_SOC5_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. -0.5xC A less than current less than // 0.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. -0,5xC A kleiner als // Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I6_WERT", STAT_HV_BATT_HIST_SOC5_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. 0.0xC A less than current less than // 0.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I7_WERT", STAT_HV_BATT_HIST_SOC5_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. 0.5xC A less than current less than // 1.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I8_WERT", STAT_HV_BATT_HIST_SOC5_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. 1.0xC A less than current less than // 1.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I9_WERT", STAT_HV_BATT_HIST_SOC5_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T1_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. Temperature less than 0 ° C. 1.5xC A less than current / Dauer // bei 70 % kleiner als SoC kleiner als 90 %. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC5_T1_I10_WERT", STAT_HV_BATT_HIST_SOC5_T1_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer // bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I1_WERT", STAT_HV_BATT_HIST_SOC6_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. -2.5xC A less than current less than // -2.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. -2,5xC A kleiner als // Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I2_WERT", STAT_HV_BATT_HIST_SOC6_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. -2.0xC A less than current less than // -1.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. -2,0xC A kleiner als // Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I3_WERT", STAT_HV_BATT_HIST_SOC6_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. -1.5xC A less than current less than // -1.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. -1,5xC A kleiner als // Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I4_WERT", STAT_HV_BATT_HIST_SOC6_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. -1.0xC A less than current less than // -0.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. -1,0xC A kleiner als // Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I5_WERT", STAT_HV_BATT_HIST_SOC6_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. -0.5xC A less than current less than // 0.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. -0,5xC A kleiner als // Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I6_WERT", STAT_HV_BATT_HIST_SOC6_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. 0.0xC A less than current less than // 0.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I7_WERT", STAT_HV_BATT_HIST_SOC6_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. 0.5xC A less than current less than // 1.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I8_WERT", STAT_HV_BATT_HIST_SOC6_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. 1.0xC A less than current less than // 1.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I9_WERT", STAT_HV_BATT_HIST_SOC6_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T1_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. Temperature less than 0 ° C. 1.5xC A less than current / Dauer // bei 90 % kleiner als SoC kleiner als 95 %. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC6_T1_I10_WERT", STAT_HV_BATT_HIST_SOC6_T1_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. Current less than -2.5xC A / Dauer bei 95 % // kleiner als SoC. Temperatur kleiner als 0 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I1_WERT", STAT_HV_BATT_HIST_SOC7_T1_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. -2.5xC A less than current less than -2.0xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I2_WERT", STAT_HV_BATT_HIST_SOC7_T1_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. -2.0xC A less than current less than -1.5xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I3_WERT", STAT_HV_BATT_HIST_SOC7_T1_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. -1.5xC A less than current less than -1.0xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I4_WERT", STAT_HV_BATT_HIST_SOC7_T1_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. -1.0xC A less than current less than -0.5xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I5_WERT", STAT_HV_BATT_HIST_SOC7_T1_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. -0.5xC A less than current less than 0.0xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I6_WERT", STAT_HV_BATT_HIST_SOC7_T1_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. 0.0xC A less than current less than 0.5xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I7_WERT", STAT_HV_BATT_HIST_SOC7_T1_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. 0.5xC A less than current less than 1.0xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I8_WERT", STAT_HV_BATT_HIST_SOC7_T1_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. 1.0xC A less than current less than 1.5xC A / // Dauer bei 95 % kleiner als SoC. Temperatur kleiner als 0 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I9_WERT", STAT_HV_BATT_HIST_SOC7_T1_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T1_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. Temperature less than 0 ° C. 1.5xC A less than current / Dauer bei 95 % // kleiner als SoC. Temperatur kleiner als 0 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T1_2", "STAT_HV_BATT_HIST_SOC7_T1_I10_WERT", STAT_HV_BATT_HIST_SOC7_T1_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T4_2: { // 0xDF69 if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T4_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T4_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. Current less // than -2.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur kleiner als 27,5°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I1_WERT", STAT_HV_BATT_HIST_SOC5_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I2_WERT", STAT_HV_BATT_HIST_SOC5_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I3_WERT", STAT_HV_BATT_HIST_SOC5_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I4_WERT", STAT_HV_BATT_HIST_SOC5_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I5_WERT", STAT_HV_BATT_HIST_SOC5_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I6_WERT", STAT_HV_BATT_HIST_SOC5_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I7_WERT", STAT_HV_BATT_HIST_SOC5_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I8_WERT", STAT_HV_BATT_HIST_SOC5_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I9_WERT", STAT_HV_BATT_HIST_SOC5_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T4_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less // than current / Dauer bei 70% kleiner als SoC kleiner als 90%. 20°C kleiner als Temperatur kleiner als 27,5°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC5_T4_I10_WERT", STAT_HV_BATT_HIST_SOC5_T4_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. Current less // than -2.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur kleiner als 27,5°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I1_WERT", STAT_HV_BATT_HIST_SOC6_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I2_WERT", STAT_HV_BATT_HIST_SOC6_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I3_WERT", STAT_HV_BATT_HIST_SOC6_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I4_WERT", STAT_HV_BATT_HIST_SOC6_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I5_WERT", STAT_HV_BATT_HIST_SOC6_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I6_WERT", STAT_HV_BATT_HIST_SOC6_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I7_WERT", STAT_HV_BATT_HIST_SOC6_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I8_WERT", STAT_HV_BATT_HIST_SOC6_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur // kleiner als 27,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I9_WERT", STAT_HV_BATT_HIST_SOC6_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T4_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less // than current / Dauer bei 90% kleiner als SoC kleiner als 95%. 20°C kleiner als Temperatur kleiner als 27,5°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC6_T4_I10_WERT", STAT_HV_BATT_HIST_SOC6_T4_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. Current less than -2.5xC A // / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I1_WERT", STAT_HV_BATT_HIST_SOC7_T4_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I2_WERT", STAT_HV_BATT_HIST_SOC7_T4_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I3_WERT", STAT_HV_BATT_HIST_SOC7_T4_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I4_WERT", STAT_HV_BATT_HIST_SOC7_T4_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I5_WERT", STAT_HV_BATT_HIST_SOC7_T4_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I6_WERT", STAT_HV_BATT_HIST_SOC7_T4_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. 0.0xC A less than current // less than 0.5xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I7_WERT", STAT_HV_BATT_HIST_SOC7_T4_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. 0.5xC A less than current // less than 1.0xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I8_WERT", STAT_HV_BATT_HIST_SOC7_T4_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. 1.0xC A less than current // less than 1.5xC A / Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I9_WERT", STAT_HV_BATT_HIST_SOC7_T4_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T4_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. 20 ° C less than temperature less than 27.5 ° C. 1.5xC A less than current / // Dauer bei 95% kleiner als SoC. 20°C kleiner als Temperatur kleiner als 27,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T4_2", "STAT_HV_BATT_HIST_SOC7_T4_I10_WERT", STAT_HV_BATT_HIST_SOC7_T4_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T3_2: { // 0xDF6A if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T3_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T3_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. Current less than // -2.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur kleiner als 20°C. Strom // kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I1_WERT", STAT_HV_BATT_HIST_SOC5_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I2_WERT", STAT_HV_BATT_HIST_SOC5_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I3_WERT", STAT_HV_BATT_HIST_SOC5_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I4_WERT", STAT_HV_BATT_HIST_SOC5_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I5_WERT", STAT_HV_BATT_HIST_SOC5_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur kleiner // als 20°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I6_WERT", STAT_HV_BATT_HIST_SOC5_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I7_WERT", STAT_HV_BATT_HIST_SOC5_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I8_WERT", STAT_HV_BATT_HIST_SOC5_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur kleiner // als 20°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I9_WERT", STAT_HV_BATT_HIST_SOC5_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T3_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than // current / Dauer bei 70% kleiner als SoC kleiner als 90%. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A // kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC5_T3_I10_WERT", STAT_HV_BATT_HIST_SOC5_T3_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. Current less than // -2.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur kleiner als 20°C. Strom // kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I1_WERT", STAT_HV_BATT_HIST_SOC6_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I2_WERT", STAT_HV_BATT_HIST_SOC6_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur // kleiner als 20°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I3_WERT", STAT_HV_BATT_HIST_SOC6_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I4_WERT", STAT_HV_BATT_HIST_SOC6_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur // kleiner als 20°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I5_WERT", STAT_HV_BATT_HIST_SOC6_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur kleiner // als 20°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I6_WERT", STAT_HV_BATT_HIST_SOC6_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I7_WERT", STAT_HV_BATT_HIST_SOC6_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur kleiner // als 20°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I8_WERT", STAT_HV_BATT_HIST_SOC6_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur kleiner // als 20°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I9_WERT", STAT_HV_BATT_HIST_SOC6_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T3_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than // current / Dauer bei 90% kleiner als SoC kleiner als 95%. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A // kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC6_T3_I10_WERT", STAT_HV_BATT_HIST_SOC6_T3_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. Current less than -2.5xC A / // Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I1_WERT", STAT_HV_BATT_HIST_SOC7_T3_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I2_WERT", STAT_HV_BATT_HIST_SOC7_T3_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I3_WERT", STAT_HV_BATT_HIST_SOC7_T3_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I4_WERT", STAT_HV_BATT_HIST_SOC7_T3_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I5_WERT", STAT_HV_BATT_HIST_SOC7_T3_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I6_WERT", STAT_HV_BATT_HIST_SOC7_T3_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. 0.0xC A less than current // less than 0.5xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I7_WERT", STAT_HV_BATT_HIST_SOC7_T3_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. 0.5xC A less than current // less than 1.0xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I8_WERT", STAT_HV_BATT_HIST_SOC7_T3_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. 1.0xC A less than current // less than 1.5xC A / Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I9_WERT", STAT_HV_BATT_HIST_SOC7_T3_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T3_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. 10 ° C less than temperature less than 20 ° C. 1.5xC A less than current / // Dauer bei 95% kleiner als SoC. 10°C kleiner als Temperatur kleiner als 20°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T3_2", "STAT_HV_BATT_HIST_SOC7_T3_I10_WERT", STAT_HV_BATT_HIST_SOC7_T3_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T5_2: { // 0xDF6B if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T5_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T5_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. Current less // than -2.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I1_WERT", STAT_HV_BATT_HIST_SOC5_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I2_WERT", STAT_HV_BATT_HIST_SOC5_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I3_WERT", STAT_HV_BATT_HIST_SOC5_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I4_WERT", STAT_HV_BATT_HIST_SOC5_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I5_WERT", STAT_HV_BATT_HIST_SOC5_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I6_WERT", STAT_HV_BATT_HIST_SOC5_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I7_WERT", STAT_HV_BATT_HIST_SOC5_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I8_WERT", STAT_HV_BATT_HIST_SOC5_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I9_WERT", STAT_HV_BATT_HIST_SOC5_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T5_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less // than current / Dauer bei 70% kleiner als SoC kleiner als 90%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC5_T5_I10_WERT", STAT_HV_BATT_HIST_SOC5_T5_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. Current less // than -2.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I1_WERT", STAT_HV_BATT_HIST_SOC6_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I2_WERT", STAT_HV_BATT_HIST_SOC6_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I3_WERT", STAT_HV_BATT_HIST_SOC6_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I4_WERT", STAT_HV_BATT_HIST_SOC6_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I5_WERT", STAT_HV_BATT_HIST_SOC6_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I6_WERT", STAT_HV_BATT_HIST_SOC6_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I7_WERT", STAT_HV_BATT_HIST_SOC6_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I8_WERT", STAT_HV_BATT_HIST_SOC6_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur // kleiner als 32,5°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I9_WERT", STAT_HV_BATT_HIST_SOC6_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T5_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less // than current / Dauer bei 90% kleiner als SoC kleiner als 95%. 27,5°C kleiner als Temperatur kleiner als // 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC6_T5_I10_WERT", STAT_HV_BATT_HIST_SOC6_T5_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. Current less than -2.5xC // A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. Strom kleiner als -2,5xC // A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I1_WERT", STAT_HV_BATT_HIST_SOC7_T5_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. // -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I2_WERT", STAT_HV_BATT_HIST_SOC7_T5_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. // -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I3_WERT", STAT_HV_BATT_HIST_SOC7_T5_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. // -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I4_WERT", STAT_HV_BATT_HIST_SOC7_T5_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. // -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I5_WERT", STAT_HV_BATT_HIST_SOC7_T5_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. // -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I6_WERT", STAT_HV_BATT_HIST_SOC7_T5_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. 0.0xC A less than current // less than 0.5xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I7_WERT", STAT_HV_BATT_HIST_SOC7_T5_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. 0.5xC A less than current // less than 1.0xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I8_WERT", STAT_HV_BATT_HIST_SOC7_T5_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. 1.0xC A less than current // less than 1.5xC A / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I9_WERT", STAT_HV_BATT_HIST_SOC7_T5_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T5_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. 27.5 ° C less than temperature less than 32.5 ° C. 1.5xC A less than current // / Dauer bei 95% kleiner als SoC. 27,5°C kleiner als Temperatur kleiner als 32,5°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T5_2", "STAT_HV_BATT_HIST_SOC7_T5_I10_WERT", STAT_HV_BATT_HIST_SOC7_T5_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T2_2: { // 0xDF6C if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T2_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T2_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. Current less than // -2.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur kleiner als 10 °C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I1_WERT", STAT_HV_BATT_HIST_SOC5_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I2_WERT", STAT_HV_BATT_HIST_SOC5_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I3_WERT", STAT_HV_BATT_HIST_SOC5_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I4_WERT", STAT_HV_BATT_HIST_SOC5_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I5_WERT", STAT_HV_BATT_HIST_SOC5_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I6_WERT", STAT_HV_BATT_HIST_SOC5_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I7_WERT", STAT_HV_BATT_HIST_SOC5_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I8_WERT", STAT_HV_BATT_HIST_SOC5_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I9_WERT", STAT_HV_BATT_HIST_SOC5_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T2_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than // current / Dauer bei 70 % kleiner als SoC kleiner als 90 %. 0°C kleiner als Temperatur kleiner als 10 °C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC5_T2_I10_WERT", STAT_HV_BATT_HIST_SOC5_T2_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. Current less than // -2.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur kleiner als 10 °C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I1_WERT", STAT_HV_BATT_HIST_SOC6_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than // current less than -2.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I2_WERT", STAT_HV_BATT_HIST_SOC6_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than // current less than -1.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I3_WERT", STAT_HV_BATT_HIST_SOC6_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than // current less than -1.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I4_WERT", STAT_HV_BATT_HIST_SOC6_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than // current less than -0.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I5_WERT", STAT_HV_BATT_HIST_SOC6_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than // current less than 0.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I6_WERT", STAT_HV_BATT_HIST_SOC6_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than // current less than 0.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I7_WERT", STAT_HV_BATT_HIST_SOC6_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than // current less than 1.0xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I8_WERT", STAT_HV_BATT_HIST_SOC6_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than // current less than 1.5xC A / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur // kleiner als 10 °C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I9_WERT", STAT_HV_BATT_HIST_SOC6_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T2_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than // current / Dauer bei 90 % kleiner als SoC kleiner als 95 %. 0°C kleiner als Temperatur kleiner als 10 °C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC6_T2_I10_WERT", STAT_HV_BATT_HIST_SOC6_T2_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. Current less than -2.5xC A / // Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I1_WERT", STAT_HV_BATT_HIST_SOC7_T2_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I2_WERT", STAT_HV_BATT_HIST_SOC7_T2_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I3_WERT", STAT_HV_BATT_HIST_SOC7_T2_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I4_WERT", STAT_HV_BATT_HIST_SOC7_T2_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I5_WERT", STAT_HV_BATT_HIST_SOC7_T2_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I6_WERT", STAT_HV_BATT_HIST_SOC7_T2_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. 0.0xC A less than current less // than 0.5xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. 0,0xC A kleiner // als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I7_WERT", STAT_HV_BATT_HIST_SOC7_T2_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. 0.5xC A less than current less // than 1.0xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. 0,5xC A kleiner // als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I8_WERT", STAT_HV_BATT_HIST_SOC7_T2_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. 1.0xC A less than current less // than 1.5xC A / Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. 1,0xC A kleiner // als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I9_WERT", STAT_HV_BATT_HIST_SOC7_T2_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T2_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. 0 ° C less than temperature less than 10 ° C. 1.5xC A less than current / // Dauer bei 95 % kleiner als SoC. 0°C kleiner als Temperatur kleiner als 10 °C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T2_2", "STAT_HV_BATT_HIST_SOC7_T2_I10_WERT", STAT_HV_BATT_HIST_SOC7_T2_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T7_2: { // 0xDF6D if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T7_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T7_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. Current less than -2.5xC A / Dauer // bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I1_WERT", STAT_HV_BATT_HIST_SOC5_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. -2.5xC A less than current less // than -2.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. -2,5xC A kleiner // als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I2_WERT", STAT_HV_BATT_HIST_SOC5_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. -2.0xC A less than current less // than -1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. -2,0xC A kleiner // als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I3_WERT", STAT_HV_BATT_HIST_SOC5_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. -1.5xC A less than current less // than -1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. -1,5xC A kleiner // als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I4_WERT", STAT_HV_BATT_HIST_SOC5_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. -1.0xC A less than current less // than -0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. -1,0xC A kleiner // als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I5_WERT", STAT_HV_BATT_HIST_SOC5_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. -0.5xC A less than current less // than 0.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. -0,5xC A kleiner // als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I6_WERT", STAT_HV_BATT_HIST_SOC5_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. 0.0xC A less than current less than // 0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I7_WERT", STAT_HV_BATT_HIST_SOC5_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. 0.5xC A less than current less than // 1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I8_WERT", STAT_HV_BATT_HIST_SOC5_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. 1.0xC A less than current less than // 1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I9_WERT", STAT_HV_BATT_HIST_SOC5_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T7_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. 40 ° C less than temperature. 1.5xC A less than current / Dauer // bei 70% kleiner als SoC kleiner als 90%. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC5_T7_I10_WERT", STAT_HV_BATT_HIST_SOC5_T7_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. Current less than -2.5xC A / Dauer // bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I1_WERT", STAT_HV_BATT_HIST_SOC6_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. -2.5xC A less than current less // than -2.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. -2,5xC A kleiner // als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I2_WERT", STAT_HV_BATT_HIST_SOC6_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. -2.0xC A less than current less // than -1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. -2,0xC A kleiner // als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I3_WERT", STAT_HV_BATT_HIST_SOC6_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. -1.5xC A less than current less // than -1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. -1,5xC A kleiner // als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I4_WERT", STAT_HV_BATT_HIST_SOC6_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. -1.0xC A less than current less // than -0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. -1,0xC A kleiner // als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I5_WERT", STAT_HV_BATT_HIST_SOC6_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. -0.5xC A less than current less // than 0.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. -0,5xC A kleiner // als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I6_WERT", STAT_HV_BATT_HIST_SOC6_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. 0.0xC A less than current less than // 0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. 0,0xC A kleiner als // Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I7_WERT", STAT_HV_BATT_HIST_SOC6_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. 0.5xC A less than current less than // 1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. 0,5xC A kleiner als // Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I8_WERT", STAT_HV_BATT_HIST_SOC6_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. 1.0xC A less than current less than // 1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. 1,0xC A kleiner als // Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I9_WERT", STAT_HV_BATT_HIST_SOC6_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T7_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. 40 ° C less than temperature. 1.5xC A less than current / Dauer // bei 90% kleiner als SoC kleiner als 95%. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC6_T7_I10_WERT", STAT_HV_BATT_HIST_SOC6_T7_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. Current less than -2.5xC A / Dauer bei 95% // kleiner als SoC. 40°C kleiner als Temperatur. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I1_WERT", STAT_HV_BATT_HIST_SOC7_T7_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. -2.5xC A less than current less than -2.0xC A // / Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I2_WERT", STAT_HV_BATT_HIST_SOC7_T7_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. -2.0xC A less than current less than -1.5xC A // / Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I3_WERT", STAT_HV_BATT_HIST_SOC7_T7_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. -1.5xC A less than current less than -1.0xC A // / Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I4_WERT", STAT_HV_BATT_HIST_SOC7_T7_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. -1.0xC A less than current less than -0.5xC A // / Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I5_WERT", STAT_HV_BATT_HIST_SOC7_T7_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. -0.5xC A less than current less than 0.0xC A / // Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I6_WERT", STAT_HV_BATT_HIST_SOC7_T7_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. 0.0xC A less than current less than 0.5xC A / // Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I7_WERT", STAT_HV_BATT_HIST_SOC7_T7_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. 0.5xC A less than current less than 1.0xC A / // Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I8_WERT", STAT_HV_BATT_HIST_SOC7_T7_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. 1.0xC A less than current less than 1.5xC A / // Dauer bei 95% kleiner als SoC. 40°C kleiner als Temperatur. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I9_WERT", STAT_HV_BATT_HIST_SOC7_T7_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T7_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. 40 ° C less than temperature. 1.5xC A less than current / Dauer bei 95% // kleiner als SoC. 40°C kleiner als Temperatur. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T7_2", "STAT_HV_BATT_HIST_SOC7_T7_I10_WERT", STAT_HV_BATT_HIST_SOC7_T7_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HV_BATT_HIST_SOC_T6_2: { // 0xDF6E if (datalen < 120) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HV_BATT_HIST_SOC_T6_2", 120); break; } float STAT_HV_BATT_HIST_SOC5_T6_I1_WERT = (RXBUF_UINT32(0)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. Current less // than -2.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur kleiner als 40°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I1_WERT", STAT_HV_BATT_HIST_SOC5_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I2_WERT = (RXBUF_UINT32(4)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I2_WERT", STAT_HV_BATT_HIST_SOC5_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I3_WERT = (RXBUF_UINT32(8)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I3_WERT", STAT_HV_BATT_HIST_SOC5_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I4_WERT = (RXBUF_UINT32(12)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I4_WERT", STAT_HV_BATT_HIST_SOC5_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I5_WERT = (RXBUF_UINT32(16)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I5_WERT", STAT_HV_BATT_HIST_SOC5_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I6_WERT = (RXBUF_UINT32(20)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I6_WERT", STAT_HV_BATT_HIST_SOC5_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I7_WERT = (RXBUF_UINT32(24)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I7_WERT", STAT_HV_BATT_HIST_SOC5_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I8_WERT = (RXBUF_UINT32(28)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I8_WERT", STAT_HV_BATT_HIST_SOC5_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I9_WERT = (RXBUF_UINT32(32)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I9_WERT", STAT_HV_BATT_HIST_SOC5_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC5_T6_I10_WERT = (RXBUF_UINT32(36)/10.0f); // Duration at 70% less than SoC less than 90%. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less // than current / Dauer bei 70% kleiner als SoC kleiner als 90%. 32,5°C kleiner als Temperatur kleiner als 40°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC5_T6_I10_WERT", STAT_HV_BATT_HIST_SOC5_T6_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I1_WERT = (RXBUF_UINT32(40)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. Current less // than -2.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur kleiner als 40°C. // Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I1_WERT", STAT_HV_BATT_HIST_SOC6_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I2_WERT = (RXBUF_UINT32(44)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less // than current less than -2.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,5xC A kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I2_WERT", STAT_HV_BATT_HIST_SOC6_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I3_WERT = (RXBUF_UINT32(48)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less // than current less than -1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -2,0xC A kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I3_WERT", STAT_HV_BATT_HIST_SOC6_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I4_WERT = (RXBUF_UINT32(52)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less // than current less than -1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,5xC A kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I4_WERT", STAT_HV_BATT_HIST_SOC6_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I5_WERT = (RXBUF_UINT32(56)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less // than current less than -0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -1,0xC A kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I5_WERT", STAT_HV_BATT_HIST_SOC6_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I6_WERT = (RXBUF_UINT32(60)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less // than current less than 0.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. -0,5xC A kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I6_WERT", STAT_HV_BATT_HIST_SOC6_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I7_WERT = (RXBUF_UINT32(64)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less // than current less than 0.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,0xC A kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I7_WERT", STAT_HV_BATT_HIST_SOC6_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I8_WERT = (RXBUF_UINT32(68)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less // than current less than 1.0xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 0,5xC A kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I8_WERT", STAT_HV_BATT_HIST_SOC6_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I9_WERT = (RXBUF_UINT32(72)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less // than current less than 1.5xC A / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur // kleiner als 40°C. 1,0xC A kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I9_WERT", STAT_HV_BATT_HIST_SOC6_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC6_T6_I10_WERT = (RXBUF_UINT32(76)/10.0f); // Duration at 90% less than SoC less than 95%. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less // than current / Dauer bei 90% kleiner als SoC kleiner als 95%. 32,5°C kleiner als Temperatur kleiner als 40°C. // 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC6_T6_I10_WERT", STAT_HV_BATT_HIST_SOC6_T6_I10_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I1_WERT = (RXBUF_UINT32(80)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. Current less than -2.5xC A // / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. Strom kleiner als -2,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I1_WERT", STAT_HV_BATT_HIST_SOC7_T6_I1_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I2_WERT = (RXBUF_UINT32(84)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. -2.5xC A less than current // less than -2.0xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. -2,5xC A // kleiner als Strom kleiner als -2,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I2_WERT", STAT_HV_BATT_HIST_SOC7_T6_I2_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I3_WERT = (RXBUF_UINT32(88)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. -2.0xC A less than current // less than -1.5xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. -2,0xC A // kleiner als Strom kleiner als -1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I3_WERT", STAT_HV_BATT_HIST_SOC7_T6_I3_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I4_WERT = (RXBUF_UINT32(92)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. -1.5xC A less than current // less than -1.0xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. -1,5xC A // kleiner als Strom kleiner als -1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I4_WERT", STAT_HV_BATT_HIST_SOC7_T6_I4_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I5_WERT = (RXBUF_UINT32(96)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. -1.0xC A less than current // less than -0.5xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. -1,0xC A // kleiner als Strom kleiner als -0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I5_WERT", STAT_HV_BATT_HIST_SOC7_T6_I5_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I6_WERT = (RXBUF_UINT32(100)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. -0.5xC A less than current // less than 0.0xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. -0,5xC A // kleiner als Strom kleiner als 0,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I6_WERT", STAT_HV_BATT_HIST_SOC7_T6_I6_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I7_WERT = (RXBUF_UINT32(104)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. 0.0xC A less than current // less than 0.5xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. 0,0xC A // kleiner als Strom kleiner als 0,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I7_WERT", STAT_HV_BATT_HIST_SOC7_T6_I7_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I8_WERT = (RXBUF_UINT32(108)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. 0.5xC A less than current // less than 1.0xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. 0,5xC A // kleiner als Strom kleiner als 1,0xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I8_WERT", STAT_HV_BATT_HIST_SOC7_T6_I8_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I9_WERT = (RXBUF_UINT32(112)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. 1.0xC A less than current // less than 1.5xC A / Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. 1,0xC A // kleiner als Strom kleiner als 1,5xC A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I9_WERT", STAT_HV_BATT_HIST_SOC7_T6_I9_WERT, "\"s\""); float STAT_HV_BATT_HIST_SOC7_T6_I10_WERT = (RXBUF_UINT32(116)/10.0f); // Duration at 95% smaller than SoC. 32.5 ° C less than temperature less than 40 ° C. 1.5xC A less than current / // Dauer bei 95% kleiner als SoC. 32,5°C kleiner als Temperatur kleiner als 40°C. 1,5xC A kleiner als Strom ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HV_BATT_HIST_SOC_T6_2", "STAT_HV_BATT_HIST_SOC7_T6_I10_WERT", STAT_HV_BATT_HIST_SOC7_T6_I10_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_ERR_LIM_STROM: { // 0xDF6F if (datalen < 24) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_ERR_LIM_STROM", 24); break; } float STAT_CHA_CURR_ERR_INT_LIM_WERT = (RXBUF_UINT32(0)/100.0f); // Threshold value of the error integral of the current when loading [IerrIntLim_cha] / Schwellwert des // Fehlerintegrals des Stroms beim Laden [IerrIntLim_cha] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_ERR_LIM_STROM", "STAT_CHA_CURR_ERR_INT_LIM_WERT", STAT_CHA_CURR_ERR_INT_LIM_WERT, "\"As\""); float STAT_DCH_CURR_ERR_INT_LIM_WERT = (RXBUF_UINT32(4)/100.0f); // Threshold of the error integral of the current when discharging [IerrIntLim_dch] / Schwellwert des // Fehlerintegrals des Stroms beim Entladen [IerrIntLim_dch] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_ERR_LIM_STROM", "STAT_DCH_CURR_ERR_INT_LIM_WERT", STAT_DCH_CURR_ERR_INT_LIM_WERT, "\"As\""); unsigned long STAT_HIS_CHG_ERR_LIM_STROM_1_WERT = (RXBUF_UINT32(8)); // Duration in minutes when loading in the class: 0 <= IerrInt_cha IerrIntLim_cha / Dauer in Minuten beim Laden in // der Klasse: IerrInt_cha > IerrIntLim_cha ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM", "STAT_HIS_CHG_ERR_LIM_STROM_2_WERT", STAT_HIS_CHG_ERR_LIM_STROM_2_WERT, "\"min\""); unsigned long STAT_HIS_DCH_ERR_LIM_STROM_1_WERT = (RXBUF_UINT32(16)); // Duration in minutes when unloading in the class: 0 <= IerrInt_dch IerrIntLim_dch / Dauer in Minuten beim Entladen // in der Klasse: IerrInt_dch > IerrIntLim_dch ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM", "STAT_HIS_DCH_ERR_LIM_STROM_2_WERT", STAT_HIS_DCH_ERR_LIM_STROM_2_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_EFF_STROM: { // 0xDF70 if (datalen < 48) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_EFF_STROM", 48); break; } float STAT_CHA_EFF_CURR_LIM_100_PERC_WERT = (RXBUF_UINT32(0)/100.0f); // RMS value of the current limit when loading to 100% life [Irms_cha (% 100)] / Effektivwert der Stromgrenze // beim Laden auf 100% Leben [Irms_cha(%100)] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_EFF_STROM", "STAT_CHA_EFF_CURR_LIM_100_PERC_WERT", STAT_CHA_EFF_CURR_LIM_100_PERC_WERT, "\"A\""); float STAT_CHA_EFF_CURR_LIM_3_PERC_WERT = (RXBUF_UINT32(4)/100.0f); // Effective value of the current limit when loading to 3% life [Irms_cha (% 3)] / Effektivwert der Stromgrenze // beim Laden auf 3% Leben [Irms_cha(%3)] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_EFF_STROM", "STAT_CHA_EFF_CURR_LIM_3_PERC_WERT", STAT_CHA_EFF_CURR_LIM_3_PERC_WERT, "\"A\""); float STAT_ABS_EFF_CURR_LIM_100_PERC_WERT = (RXBUF_UINT32(8)/100.0f); // RMS value of the current limit when charging and discharging (absolute) to 100% life [Irms_abs (% 100)] / // Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 100% Leben [Irms_abs(%100)] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_EFF_STROM", "STAT_ABS_EFF_CURR_LIM_100_PERC_WERT", STAT_ABS_EFF_CURR_LIM_100_PERC_WERT, "\"A\""); float STAT_ABS_EFF_CURR_LIM_3_PERC_WERT = (RXBUF_UINT32(12)/100.0f); // Effective value of the current limit when charging and discharging (absolute) to 3% life [Irms_cha (% 3)] / // Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 3% Leben [Irms_cha(%3)] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_EFF_STROM", "STAT_ABS_EFF_CURR_LIM_3_PERC_WERT", STAT_ABS_EFF_CURR_LIM_3_PERC_WERT, "\"A\""); unsigned long STAT_HIS_EFF_CURR_CHG_1_WERT = (RXBUF_UINT32(16)); // Duration in minutes of the effective value of the current when charging in the class: 0 <= Irms <0.7 * // Irms_cha (% 100) / Dauer in Minuten des Effektivwerts des Stroms beim Laden in der Klasse: 0 <= Irms < 0,7 * // Irms_cha(%100) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM", "STAT_HIS_EFF_CURR_CHG_1_WERT", STAT_HIS_EFF_CURR_CHG_1_WERT, "\"min\""); unsigned long STAT_HIS_EFF_CURR_CHG_2_WERT = (RXBUF_UINT32(20)); // Duration in minutes of the effective value of the current when charging in the class: 0.7 * Irms_cha (% 100) // <= Irms tmax * 0.6 / Anzahl der Dauerklasse: t > tmax*0.6 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "VOKO_HEIZ_DAUER", "STAT_VOKO_HEIZ_DAUER_6_WERT", STAT_VOKO_HEIZ_DAUER_6_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_LADE_KOND_HEIZ_DAUER: { // 0xDF75 if (datalen < 16) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_LADE_KOND_HEIZ_DAUER", 16); break; } unsigned long STAT_LADE_KOND_HEIZ_DAUER_MAX_WERT = (RXBUF_UINT32(0)); // Predefined maximum charge conditioning cooling time in minutes (project-specific) / Vordefinierte maximale // Ladekonditionierungs-Kuehldauer in Minuten (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "LADE_KOND_HEIZ_DAUER", "STAT_LADE_KOND_HEIZ_DAUER_MAX_WERT", STAT_LADE_KOND_HEIZ_DAUER_MAX_WERT, "\"min\""); unsigned short STAT_LADE_KOND_HEIZ_DAUER_1_WERT = (RXBUF_UINT(4)); // Number of duration classes: 0 tmax * 0.6 / Anzahl der Dauerklasse: t > tmax*0.6 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "LADE_KOND_HEIZ_DAUER", "STAT_LADE_KOND_HEIZ_DAUER_6_WERT", STAT_LADE_KOND_HEIZ_DAUER_6_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_VOKO_KUEHL_DAUER: { // 0xDF76 if (datalen < 25) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_VOKO_KUEHL_DAUER", 25); break; } unsigned char STAT_VOKO_KUEHL_DAUER_MAX_WERT = (RXBUF_UCHAR(0)); // Predefined maximum pre-conditioning cooling time in minutes (project-specific) / Vordefinierte maximale // Vorkonditionierungs-Kuehldauer in Minuten (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "VOKO_KUEHL_DAUER", "STAT_VOKO_KUEHL_DAUER_MAX_WERT", STAT_VOKO_KUEHL_DAUER_MAX_WERT, "\"min\""); unsigned long STAT_VOKO_KUEHL_DAUER_1_WERT = (RXBUF_UINT32(1)); // Number of duration classes: 0 tmax * 0.6 / Anzahl der Dauerklasse: t > tmax*0.6 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "VOKO_KUEHL_DAUER", "STAT_VOKO_KUEHL_DAUER_6_WERT", STAT_VOKO_KUEHL_DAUER_6_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_LADE_DAUER: { // 0xDF77 if (datalen < 13) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_LADE_DAUER", 13); break; } unsigned char STAT_LADE_DAUER_MAX_WERT = (RXBUF_UCHAR(0)); // Predefined maximum charging time in hours (project-specific) / Vordefinierte maximale Ladezeit in Stunden // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADE_DAUER", "STAT_LADE_DAUER_MAX_WERT", STAT_LADE_DAUER_MAX_WERT, "\"h\""); unsigned short STAT_LADEDAUER_1_WERT = (RXBUF_UINT(1)); // Number of charging duration classes: 0 tmax / Anzahl der Ladedauerklasse: t > tmax ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "LADE_DAUER", "STAT_LADEDAUER_6_WERT", STAT_LADEDAUER_6_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_SOC_WARN_GRENZEN: { // 0xDF81 if (datalen < 28) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_SOC_WARN_GRENZEN", 28); break; } float STAT_SOC_LOW_I_ZERO_WERT = (RXBUF_SINT(0)/100.0f); // Predefined lower SOC warning limit-1 (project-specific) / Vordefinierte untere SOC-Warngrenze-1 // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_SOC_WARN_GRENZEN", "STAT_SOC_LOW_I_ZERO_WERT", STAT_SOC_LOW_I_ZERO_WERT, "\"%\""); float STAT_SOC_LOW_WARN_WERT = (RXBUF_SINT(2)/100.0f); // Predefined lower SOC warning limit-2 (project-specific) / Vordefinierte untere SOC-Warngrenze-2 // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_SOC_WARN_GRENZEN", "STAT_SOC_LOW_WARN_WERT", STAT_SOC_LOW_WARN_WERT, "\"%\""); float STAT_SOC_HIGH_I_ZERO_WERT = (RXBUF_SINT(4)/100.0f); // Predefined upper SOC warning limit-1 (project-specific) / Vordefinierte obere SOC-Warngrenze-1 // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_SOC_WARN_GRENZEN", "STAT_SOC_HIGH_I_ZERO_WERT", STAT_SOC_HIGH_I_ZERO_WERT, "\"%\""); float STAT_SOC_HIGH_WARN_WERT = (RXBUF_SINT(6)/100.0f); // Predefined upper SOC warning limit-2 (project-specific) / Vordefinierte obere SOC-Warngrenze-2 // (projektspezifisch) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_SOC_WARN_GRENZEN", "STAT_SOC_HIGH_WARN_WERT", STAT_SOC_HIGH_WARN_WERT, "\"%\""); unsigned long STAT_HIS_SOC_WARN_GRENZEN_1_WERT = (RXBUF_UINT32(8)); // Duration in: SOC <= SOC_LOW_I_ZERO / Dauer in: SOC<=SOC_LOW_I_ZERO ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_WARN_GRENZEN", "STAT_HIS_SOC_WARN_GRENZEN_1_WERT", STAT_HIS_SOC_WARN_GRENZEN_1_WERT, "\"min\""); unsigned long STAT_HIS_SOC_WARN_GRENZEN_2_WERT = (RXBUF_UINT32(12)); // Duration in: SOC_LOW_I_ZERO SOC_HIGH_I_ZERO / Dauer in: SOC >SOC_HIGH_I_ZERO ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_SOC_WARN_GRENZEN", "STAT_HIS_SOC_WARN_GRENZEN_5_WERT", STAT_HIS_SOC_WARN_GRENZEN_5_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ID_SBOX: { // 0xDF83 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ID_SBOX", 8); break; } unsigned long STAT_ID_SER_NR_WERT = (RXBUF_UINT32(0)); // Sequential number coded in hexadecimal / Laufende Nummer hexadezimal codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "ID_SBOX", "STAT_ID_SER_NR_WERT", STAT_ID_SER_NR_WERT, ""); unsigned char STAT_ID_MV_HW_WERT = (RXBUF_UCHAR(4)); // HW version, consecutive number coded in hexadecimal / HW Version, laufende Nummer hexadezimal codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ID_SBOX", "STAT_ID_MV_HW_WERT", STAT_ID_MV_HW_WERT, ""); unsigned char STAT_ID_MV_SW_WERT = (RXBUF_UCHAR(5)); // SW major version, consecutive number coded in hexadecimal / SW Hauptversion, laufende Nummer hexadezimal // codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ID_SBOX", "STAT_ID_MV_SW_WERT", STAT_ID_MV_SW_WERT, ""); unsigned char STAT_ID_SV_SW_WERT = (RXBUF_UCHAR(6)); // SW minor version, consecutive number coded in hexadecimal / SW Unterversion, laufende Nummer hexadezimal // codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ID_SBOX", "STAT_ID_SV_SW_WERT", STAT_ID_SV_SW_WERT, ""); unsigned char STAT_ID_VAR_WERT = (RXBUF_UCHAR(7)); // Variant identifier SBOX 00000b: BK2.0 / Variantenkennung SBOX 00000b: BK2.0 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ID_SBOX", "STAT_ID_VAR_WERT", STAT_ID_VAR_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SOC_HISTORIE: { // 0xDF86 if (datalen < 15) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SOC_HISTORIE", 15); break; } unsigned char STAT_SOC_DAY_1_WERT = (RXBUF_UCHAR(0)); // SOC value at the end of the first day of the week / SOC Wert am Ende des ersten Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_1_WERT", STAT_SOC_DAY_1_WERT, "\"%\""); unsigned char STAT_SOC_DAY_2_WERT = (RXBUF_UCHAR(1)); // SOC value at the end of the second day of the week / SOC Wert am Ende des zweiten Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_2_WERT", STAT_SOC_DAY_2_WERT, "\"%\""); unsigned char STAT_SOC_DAY_3_WERT = (RXBUF_UCHAR(2)); // SOC value at the end of the third day of the week / SOC Wert am Ende des dritten Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_3_WERT", STAT_SOC_DAY_3_WERT, "\"%\""); unsigned char STAT_SOC_DAY_4_WERT = (RXBUF_UCHAR(3)); // SOC value at the end of the fourth day of the week / SOC Wert am Ende des vierten Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_4_WERT", STAT_SOC_DAY_4_WERT, "\"%\""); unsigned char STAT_SOC_DAY_5_WERT = (RXBUF_UCHAR(4)); // SOC value at the end of the fifth day of the week / SOC Wert am Ende des fünften Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_5_WERT", STAT_SOC_DAY_5_WERT, "\"%\""); unsigned char STAT_SOC_DAY_6_WERT = (RXBUF_UCHAR(5)); // SOC value at the end of the sixth day of the week / SOC Wert am Ende des sechsten Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_6_WERT", STAT_SOC_DAY_6_WERT, "\"%\""); unsigned char STAT_SOC_DAY_7_WERT = (RXBUF_UCHAR(6)); // SOC value at the end of the seventh day of the week / SOC Wert am Ende des siebten Tages der Woche ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_DAY_7_WERT", STAT_SOC_DAY_7_WERT, "\"%\""); unsigned char STAT_SOC_WEEK_2_WERT = (RXBUF_UCHAR(7)); // SOC value two weeks ago / SOC Wert vor zwei Wochen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_WEEK_2_WERT", STAT_SOC_WEEK_2_WERT, "\"%\""); unsigned char STAT_SOC_WEEK_3_WERT = (RXBUF_UCHAR(8)); // SOC value three weeks ago / SOC Wert vor drei Wochen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_WEEK_3_WERT", STAT_SOC_WEEK_3_WERT, "\"%\""); unsigned char STAT_SOC_WEEK_4_WERT = (RXBUF_UCHAR(9)); // SOC value four weeks ago / SOC Wert vor vier Wochen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_WEEK_4_WERT", STAT_SOC_WEEK_4_WERT, "\"%\""); unsigned short STAT_LAST_HV_ON_WERT = (RXBUF_UINT(10)); // Time in hours since the last time HV was on HVofftime_last / Zeit in Stunden seit das letzte Mal HV on war // HVofftime_last ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "SOC_HISTORIE", "STAT_LAST_HV_ON_WERT", STAT_LAST_HV_ON_WERT, "\"h\""); unsigned char STAT_SOC_LAST_DRIVE_CYCLE_WERT = (RXBUF_UCHAR(12)); // SOC at the last end of the journey / SOC beim letzten Fahrtende ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SOC_HISTORIE", "STAT_SOC_LAST_DRIVE_CYCLE_WERT", STAT_SOC_LAST_DRIVE_CYCLE_WERT, "\"%\""); unsigned short STAT_TIME_STAMP_LAST_CHG_END_WERT = (RXBUF_UINT(13)); // Time in hours when the last time loading was finished / canceled / Zeit in Stunden wann das letzte Mal Laden // beendet/abgebrochen wurde ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "SOC_HISTORIE", "STAT_TIME_STAMP_LAST_CHG_END_WERT", STAT_TIME_STAMP_LAST_CHG_END_WERT, "\"h\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KL30C: { // 0xDF89 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KL30C", 1); break; } unsigned char STAT_KL30C = (RXBUF_UCHAR(0)); // Reading out the logical status of the KL30C> not for I01 and I12, use STATUS_KL30C_SPANNUNG here / Auslesen // des logischen Status der KL30C > nicht für I01 und I12, hier STATUS_KL30C_SPANNUNG verwenden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "KL30C", "STAT_KL30C", STAT_KL30C, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_EFF_STROM_TMIN: { // 0xDF8A if (datalen < 48) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_EFF_STROM_TMIN", 48); break; } unsigned long STAT_CHA_EFF_CURR_LIM_100_PERC_TMIN_WERT = (RXBUF_UINT32(0)); // At T <-10: rms value of the current limit when loading to 100% life [Irms_cha (% 100)] >> This status // output is no longer required and is set to zero. / Bei T < -10: Effektivwert der Stromgrenze beim Laden auf // 100% Leben [Irms_cha(%100)] >> Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMIN", "STAT_CHA_EFF_CURR_LIM_100_PERC_TMIN_WERT", STAT_CHA_EFF_CURR_LIM_100_PERC_TMIN_WERT, "\"A\""); unsigned long STAT_CHA_EFF_CURR_LIM_3_PERC_TMIN_WERT = (RXBUF_UINT32(4)); // At T <-10: RMS value of the current limit when loading to 3% life [Irms_cha (% 3)] >> This status // output is no longer required and is set to zero. / Bei T < -10: Effektivwert der Stromgrenze beim Laden auf 3% // Leben [Irms_cha(%3)] >> Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMIN", "STAT_CHA_EFF_CURR_LIM_3_PERC_TMIN_WERT", STAT_CHA_EFF_CURR_LIM_3_PERC_TMIN_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_100_PERC_TMIN_WERT = (RXBUF_UINT32(8)); // At T <-10: RMS value of the current limit during charging and discharging (absolute) to 100% life [Irms_abs // (% 100)] >> This status output is no longer required and is set to zero. / Bei T < -10: Effektivwert der // Stromgrenze beim Laden und Entladen (Absolut) auf 100% Leben [Irms_abs(%100)] >> Dieses Statusausgabe wird // nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMIN", "STAT_ABS_EFF_CURR_LIM_100_PERC_TMIN_WERT", STAT_ABS_EFF_CURR_LIM_100_PERC_TMIN_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_3_PERC_TMIN_WERT = (RXBUF_UINT32(12)); // At T <-10: RMS value of the current limit during charging and discharging (absolute) to 3% life [Irms_abs // (% 3)] >> This status output is no longer required and is set to zero. / Bei T < -10: Effektivwert der // Stromgrenze beim Laden und Entladen (Absolut) auf 3% Leben [Irms_abs(%3)] >> Dieses Statusausgabe wird nicht // mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMIN", "STAT_ABS_EFF_CURR_LIM_3_PERC_TMIN_WERT", STAT_ABS_EFF_CURR_LIM_3_PERC_TMIN_WERT, "\"A\""); unsigned long STAT_HIS_EFF_CURR_CHG_1_TMIN_WERT = (RXBUF_UINT32(16)); // If T <-10: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading in the class: 0 // <= Irel_cha <= 70 / Bei T < -10: Dauer in Minuten des Relativwerts von Irms_cha/Irms_cha_lim beim Laden in der // Klasse: 0 <= Irel_cha <= 70 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMIN", "STAT_HIS_EFF_CURR_CHG_1_TMIN_WERT", STAT_HIS_EFF_CURR_CHG_1_TMIN_WERT, "\"min\""); unsigned long STAT_HIS_EFF_CURR_CHG_2_TMIN_WERT = (RXBUF_UINT32(20)); // If T <-10: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading in the class: 70 // > Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null // bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TLOW", "STAT_CHA_EFF_CURR_LIM_100_PERC_TLOW_WERT", STAT_CHA_EFF_CURR_LIM_100_PERC_TLOW_WERT, "\"A\""); unsigned long STAT_CHA_EFF_CURR_LIM_3_PERC_TLOW_WERT = (RXBUF_UINT32(4)); // At -10 <= T <5: effective value of the current limit when loading to 3% life [Irms_cha (% 3)] >> // This status output is no longer required and is set to zero. / Bei -10 <= T< 5: Effektivwert der Stromgrenze // beim Laden auf 3% Leben [Irms_cha(%3)] >> Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null // bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TLOW", "STAT_CHA_EFF_CURR_LIM_3_PERC_TLOW_WERT", STAT_CHA_EFF_CURR_LIM_3_PERC_TLOW_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_100_PERC_TLOW_WERT = (RXBUF_UINT32(8)); // At -10 <= T <5: RMS value of the current limit during charging and discharging (absolute) to 100% life // [Irms_abs (% 100)] >> This status output is no longer required and is set to zero. / Bei -10 <= T< 5: // Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 100% Leben [Irms_abs(%100)] >> Dieses // Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TLOW", "STAT_ABS_EFF_CURR_LIM_100_PERC_TLOW_WERT", STAT_ABS_EFF_CURR_LIM_100_PERC_TLOW_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_3_PERC_TLOW_WERT = (RXBUF_UINT32(12)); // At -10 <= T <5: rms value of the current limit during charging and discharging (absolute) to 3% life // [Irms_abs (% 3)] >> This status output is no longer required and is set to zero. / Bei -10 <= T< 5: // Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 3% Leben [Irms_abs(%3)] >> Dieses // Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TLOW", "STAT_ABS_EFF_CURR_LIM_3_PERC_TLOW_WERT", STAT_ABS_EFF_CURR_LIM_3_PERC_TLOW_WERT, "\"A\""); unsigned long STAT_HIS_EFF_CURR_CHG_1_TLOW_WERT = (RXBUF_UINT32(16)); // With -10 <= T <5: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading in the // class: 0 <= Irel_cha <= 70 / Bei -10 <= T < 5: Dauer in Minuten des Relativwerts von Irms_cha/Irms_cha_lim // beim Laden in der Klasse: 0 <= Irel_cha <= 70 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TLOW", "STAT_HIS_EFF_CURR_CHG_1_TLOW_WERT", STAT_HIS_EFF_CURR_CHG_1_TLOW_WERT, "\"min\""); unsigned long STAT_HIS_EFF_CURR_CHG_2_TLOW_WERT = (RXBUF_UINT32(20)); // With -10 <= T <5: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading in the // class: 70 > Dieses Statusausgabe wird nicht mehr benötigt // und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMID", "STAT_CHA_EFF_CURR_LIM_100_PERC_TMID_WERT", STAT_CHA_EFF_CURR_LIM_100_PERC_TMID_WERT, "\"A\""); unsigned long STAT_CHA_EFF_CURR_LIM_3_PERC_TMID_WERT = (RXBUF_UINT32(4)); // With 5 <= T <25 (40 SP01): RMS value of the current limit when loading to 3% life [Irms_cha (% 3)] // >> This status output is no longer required and is set to zero. / Bei 5 <= T< 25 (40 SP01): Effektivwert // der Stromgrenze beim Laden auf 3% Leben [Irms_cha(%3)] >> Dieses Statusausgabe wird nicht mehr benötigt und // ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMID", "STAT_CHA_EFF_CURR_LIM_3_PERC_TMID_WERT", STAT_CHA_EFF_CURR_LIM_3_PERC_TMID_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_100_PERC_TMID_WERT = (RXBUF_UINT32(8)); // With 5 <= T <25 (40 SP01): RMS value of the current limit when charging and discharging (absolute) to // 100% life [Irms_abs (% 100)] >> This status output is no longer required and is set to zero. / Bei 5 <= // T< 25 (40 SP01): Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 100% Leben // [Irms_abs(%100)] >> Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMID", "STAT_ABS_EFF_CURR_LIM_100_PERC_TMID_WERT", STAT_ABS_EFF_CURR_LIM_100_PERC_TMID_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_3_PERC_TMID_WERT = (RXBUF_UINT32(12)); // With 5 <= T <25 (40 SP01): RMS value of the current limit during charging and discharging (absolute) to // 3% life [Irms_abs (% 3)] >> This status output is no longer required and is set to zero. / Bei 5 <= T< // 25 (40 SP01): Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 3% Leben [Irms_abs(%3)] >> // Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMID", "STAT_ABS_EFF_CURR_LIM_3_PERC_TMID_WERT", STAT_ABS_EFF_CURR_LIM_3_PERC_TMID_WERT, "\"A\""); unsigned long STAT_HIS_EFF_CURR_CHG_1_TMID_WERT = (RXBUF_UINT32(16)); // With 5 <= T <25 (40 SP01): Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading // in the class: 0 <= Irel_cha <= 70 / Bei 5 <= T < 25 (40 SP01): Dauer in Minuten des Relativwerts von // Irms_cha/Irms_cha_lim beim Laden in der Klasse: 0 <= Irel_cha <= 70 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMID", "STAT_HIS_EFF_CURR_CHG_1_TMID_WERT", STAT_HIS_EFF_CURR_CHG_1_TMID_WERT, "\"min\""); unsigned long STAT_HIS_EFF_CURR_CHG_2_TMID_WERT = (RXBUF_UINT32(20)); // With 5 <= T <25 (40 SP01): Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading // in the class: 70 > Dieses Statusausgabe wird nicht // mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_THIGH", "STAT_CHA_EFF_CURR_LIM_100_PERC_THIGH_WERT", STAT_CHA_EFF_CURR_LIM_100_PERC_THIGH_WERT, "\"A\""); unsigned long STAT_CHA_EFF_CURR_LIM_3_PERC_THIGH_WERT = (RXBUF_UINT32(4)); // ONLY SE03 !!! At 25 <= T <40: effective value of the current limit when loading to 3% life [Irms_cha (% // 3)] >> This status output is no longer required and is set to zero. / NUR SE03!!! Bei 25 <= T< 40: // Effektivwert der Stromgrenze beim Laden auf 3% Leben [Irms_cha(%3)] >> Dieses Statusausgabe wird nicht mehr // benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_THIGH", "STAT_CHA_EFF_CURR_LIM_3_PERC_THIGH_WERT", STAT_CHA_EFF_CURR_LIM_3_PERC_THIGH_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_100_PERC_THIGH_WERT = (RXBUF_UINT32(8)); // ONLY SE03 !!! At 25 <= T <40: RMS value of the current limit during charging and discharging (absolute) // to 100% life [Irms_abs (% 100)] >> This status output is no longer required and is set to zero. / NUR // SE03!!! Bei 25 <= T< 40: Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 100% Leben // [Irms_abs(%100)] >> Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_THIGH", "STAT_ABS_EFF_CURR_LIM_100_PERC_THIGH_WERT", STAT_ABS_EFF_CURR_LIM_100_PERC_THIGH_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_3_PERC_THIGH_WERT = (RXBUF_UINT32(12)); // ONLY SE03 !!! At 25 <= T <40: RMS value of the current limit when charging and discharging (absolute) to // 3% life [Irms_abs (% 3)] >> This status output is no longer required and is set to zero. / NUR SE03!!! // Bei 25 <= T< 40: Effektivwert der Stromgrenze beim Laden und Entladen (Absolut) auf 3% Leben [Irms_abs(%3)] >> // Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_THIGH", "STAT_ABS_EFF_CURR_LIM_3_PERC_THIGH_WERT", STAT_ABS_EFF_CURR_LIM_3_PERC_THIGH_WERT, "\"A\""); unsigned long STAT_HIS_EFF_CURR_CHG_1_THIGH_WERT = (RXBUF_UINT32(16)); // ONLY SE03 !!! With 25 <= T <40: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when // loading in the class: 0 <= Irel_cha <= 70 / NUR SE03!!! Bei 25 <= T < 40: Dauer in Minuten des Relativwerts // von Irms_cha/Irms_cha_lim beim Laden in der Klasse: 0 <= Irel_cha <= 70 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_THIGH", "STAT_HIS_EFF_CURR_CHG_1_THIGH_WERT", STAT_HIS_EFF_CURR_CHG_1_THIGH_WERT, "\"min\""); unsigned long STAT_HIS_EFF_CURR_CHG_2_THIGH_WERT = (RXBUF_UINT32(20)); // ONLY SE03 !!! If 25 <= T <40: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when // loading in the class: 70 > Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMAX", "STAT_CHA_EFF_CURR_LIM_100_PERC_TMAX_WERT", STAT_CHA_EFF_CURR_LIM_100_PERC_TMAX_WERT, "\"A\""); unsigned long STAT_CHA_EFF_CURR_LIM_3_PERC_TMAX_WERT = (RXBUF_UINT32(4)); // At 40 <= T: effective value of the current limit when loading to 3% life [Irms_cha (% 3)] >> This // status output is no longer required and is set to zero. / Bei 40 <= T: Effektivwert der Stromgrenze beim Laden // auf 3% Leben [Irms_cha(%3)] >> Dieses Statusausgabe wird nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMAX", "STAT_CHA_EFF_CURR_LIM_3_PERC_TMAX_WERT", STAT_CHA_EFF_CURR_LIM_3_PERC_TMAX_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_100_PERC_TMAX_WERT = (RXBUF_UINT32(8)); // At 40 <= T: RMS value of the current limit when charging and discharging (absolute) to 100% life [Irms_abs // (% 100)] >> This status output is no longer required and is set to zero. / Bei 40 <= T: Effektivwert der // Stromgrenze beim Laden und Entladen (Absolut) auf 100% Leben [Irms_abs(%100)] >> Dieses Statusausgabe wird // nicht mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMAX", "STAT_ABS_EFF_CURR_LIM_100_PERC_TMAX_WERT", STAT_ABS_EFF_CURR_LIM_100_PERC_TMAX_WERT, "\"A\""); unsigned long STAT_ABS_EFF_CURR_LIM_3_PERC_TMAX_WERT = (RXBUF_UINT32(12)); // At 40 <= T: RMS value of the current limit when charging and discharging (absolute) to 3% life [Irms_abs (% // 3)] >> This status output is no longer required and is set to zero. / Bei 40 <= T: Effektivwert der // Stromgrenze beim Laden und Entladen (Absolut) auf 3% Leben [Irms_abs(%3)] >> Dieses Statusausgabe wird nicht // mehr benötigt und ist mit Null bedatet. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMAX", "STAT_ABS_EFF_CURR_LIM_3_PERC_TMAX_WERT", STAT_ABS_EFF_CURR_LIM_3_PERC_TMAX_WERT, "\"A\""); unsigned long STAT_HIS_EFF_CURR_CHG_1_TMAX_WERT = (RXBUF_UINT32(16)); // At 40 <= T: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading in the class: 0 // <= Irel_cha <= 70 / Bei 40 <= T: Dauer in Minuten des Relativwerts von Irms_cha/Irms_cha_lim beim Laden in der // Klasse: 0 <= Irel_cha <= 70 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_EFF_STROM_TMAX", "STAT_HIS_EFF_CURR_CHG_1_TMAX_WERT", STAT_HIS_EFF_CURR_CHG_1_TMAX_WERT, "\"min\""); unsigned long STAT_HIS_EFF_CURR_CHG_2_TMAX_WERT = (RXBUF_UINT32(20)); // At 40 <= T: Duration in minutes of the relative value of Irms_cha / Irms_cha_lim when loading in the class: 70 // IerrIntLim_cha ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_TMIN", "STAT_HIS_CHG_ERR_LIM_STROM_2_TMIN_WERT", STAT_HIS_CHG_ERR_LIM_STROM_2_TMIN_WERT, "\"min\""); unsigned long STAT_HIS_DCH_ERR_LIM_STROM_1_TMIN_WERT = (RXBUF_UINT32(16)); // If T <= -10: Duration in minutes when loading in the class: 0 <= IerrInt_dch IerrIntLim_dch ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_TMIN", "STAT_HIS_DCH_ERR_LIM_STROM_2_TMIN_WERT", STAT_HIS_DCH_ERR_LIM_STROM_2_TMIN_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_ERR_LIM_STROM_TLOW: { // 0xDF90 if (datalen < 24) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_ERR_LIM_STROM_TLOW", 24); break; } float STAT_CHA_CURR_ERR_INT_LIM_TLOW_WERT = (RXBUF_UINT32(0)/100.0f); // At -10 IerrIntLim_cha ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_TLOW", "STAT_HIS_CHG_ERR_LIM_STROM_2_TLOW_WERT", STAT_HIS_CHG_ERR_LIM_STROM_2_TLOW_WERT, "\"min\""); unsigned long STAT_HIS_DCH_ERR_LIM_STROM_1_TLOW_WERT = (RXBUF_UINT32(16)); // With -10 IerrIntLim_dch ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_TLOW", "STAT_HIS_DCH_ERR_LIM_STROM_2_TLOW_WERT", STAT_HIS_DCH_ERR_LIM_STROM_2_TLOW_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_ERR_LIM_STROM_THIGH: { // 0xDF91 if (datalen < 24) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_ERR_LIM_STROM_THIGH", 24); break; } float STAT_CHA_CURR_ERR_INT_LIM_THIGH_WERT = (RXBUF_UINT32(0)/100.0f); // If 5 IerrIntLim_cha ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_THIGH", "STAT_HIS_CHG_ERR_LIM_STROM_2_THIGH_WERT", STAT_HIS_CHG_ERR_LIM_STROM_2_THIGH_WERT, "\"min\""); unsigned long STAT_HIS_DCH_ERR_LIM_STROM_1_THIGH_WERT = (RXBUF_UINT32(16)); // With 5 IerrIntLim_dch ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_THIGH", "STAT_HIS_DCH_ERR_LIM_STROM_2_THIGH_WERT", STAT_HIS_DCH_ERR_LIM_STROM_2_THIGH_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_ERR_LIM_STROM_TMAX: { // 0xDF92 if (datalen < 24) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_ERR_LIM_STROM_TMAX", 24); break; } float STAT_CHA_CURR_ERR_INT_LIM_TMAX_WERT = (RXBUF_UINT32(0)/100.0f); // If 25 IerrIntLim_cha ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_TMAX", "STAT_HIS_CHG_ERR_LIM_STROM_2_TMAX_WERT", STAT_HIS_CHG_ERR_LIM_STROM_2_TMAX_WERT, "\"min\""); unsigned long STAT_HIS_DCH_ERR_LIM_STROM_1_TMAX_WERT = (RXBUF_UINT32(16)); // At 25 IerrIntLim_dch ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HIS_ERR_LIM_STROM_TMAX", "STAT_HIS_DCH_ERR_LIM_STROM_2_TMAX_WERT", STAT_HIS_DCH_ERR_LIM_STROM_2_TMAX_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_LADEZEIT_ADAPT_KENNFELD_LESEN: { // 0xDF9C if (datalen < 51) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_LADEZEIT_ADAPT_KENNFELD_LESEN", 51); break; } float STAT_PWR_STUETZP_P1_WERT = (RXBUF_UCHAR(0)*200.0f); // Available charging power, base P1 / Zur Verfügung stehende Ladeleistung, Stützpunkt P1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_PWR_STUETZP_P1_WERT", STAT_PWR_STUETZP_P1_WERT, "\"W\""); float STAT_PWR_STUETZP_P2_WERT = (RXBUF_UCHAR(1)*200.0f); // Available charging power, base P2 / Zur Verfügung stehende Ladeleistung, Stützpunkt P2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_PWR_STUETZP_P2_WERT", STAT_PWR_STUETZP_P2_WERT, "\"W\""); char STAT_TEMP_STUETZP_T1_WERT = (RXBUF_SCHAR(2)); // Storage tank temperature, support point T1 / Speichertemperatur, Stützpunkt T1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_TEMP_STUETZP_T1_WERT", STAT_TEMP_STUETZP_T1_WERT, "\"°C\""); char STAT_TEMP_STUETZP_T2_WERT = (RXBUF_SCHAR(3)); // Storage tank temperature, support point T2 / Speichertemperatur, Stützpunkt T2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_TEMP_STUETZP_T2_WERT", STAT_TEMP_STUETZP_T2_WERT, "\"°C\""); char STAT_TEMP_STUETZP_T3_WERT = (RXBUF_SCHAR(4)); // Storage tank temperature, support point T3 / Speichertemperatur, Stützpunkt T3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_TEMP_STUETZP_T3_WERT", STAT_TEMP_STUETZP_T3_WERT, "\"°C\""); char STAT_TEMP_STUETZP_T4_WERT = (RXBUF_SCHAR(5)); // Storage tank temperature, support point T4 / Speichertemperatur, Stützpunkt T4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_TEMP_STUETZP_T4_WERT", STAT_TEMP_STUETZP_T4_WERT, "\"°C\""); unsigned char STAT_SOC_STUETZP_SOC1_WERT = (RXBUF_UCHAR(6)); // SOC (SOC_akt_max), base point SOC1 / SOC (SOC_akt_max), Stützpunkt SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_SOC_STUETZP_SOC1_WERT", STAT_SOC_STUETZP_SOC1_WERT, "\"%\""); unsigned char STAT_SOC_STUETZP_SOC2_WERT = (RXBUF_UCHAR(7)); // SOC (SOC_akt_max), base point SOC2 / SOC (SOC_akt_max), Stützpunkt SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_SOC_STUETZP_SOC2_WERT", STAT_SOC_STUETZP_SOC2_WERT, "\"%\""); unsigned char STAT_SOC_STUETZP_SOC3_WERT = (RXBUF_UCHAR(8)); // SOC (SOC_akt_max), base point SOC3 / SOC (SOC_akt_max), Stützpunkt SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_SOC_STUETZP_SOC3_WERT", STAT_SOC_STUETZP_SOC3_WERT, "\"%\""); unsigned char STAT_SOC_STUETZP_SOC4_WERT = (RXBUF_UCHAR(9)); // SOC (SOC_akt_max), base point SOC4 / SOC (SOC_akt_max), Stützpunkt SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_SOC_STUETZP_SOC4_WERT", STAT_SOC_STUETZP_SOC4_WERT, "\"%\""); unsigned char STAT_SOC_STUETZP_SOC5_WERT = (RXBUF_UCHAR(10)); // SOC (SOC_akt_max), base point SOC5 / SOC (SOC_akt_max), Stützpunkt SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_SOC_STUETZP_SOC5_WERT", STAT_SOC_STUETZP_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T1_SOC1_WERT = (RXBUF_UCHAR(11)); // Learning factor, characteristic value P1_T1_SOC1 / Lernfaktor, Kennwert P1_T1_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T1_SOC1_WERT", STAT_FAKT_P1_T1_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T1_SOC2_WERT = (RXBUF_UCHAR(12)); // Learning factor, characteristic value P1_T1_SOC2 / Lernfaktor, Kennwert P1_T1_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T1_SOC2_WERT", STAT_FAKT_P1_T1_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T1_SOC3_WERT = (RXBUF_UCHAR(13)); // Learning factor, characteristic value P1_T1_SOC3 / Lernfaktor, Kennwert P1_T1_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T1_SOC3_WERT", STAT_FAKT_P1_T1_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T1_SOC4_WERT = (RXBUF_UCHAR(14)); // Learning factor, characteristic value P1_T1_SOC4 / Lernfaktor, Kennwert P1_T1_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T1_SOC4_WERT", STAT_FAKT_P1_T1_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T1_SOC5_WERT = (RXBUF_UCHAR(15)); // Learning factor, characteristic value P1_T1_SOC5 / Lernfaktor, Kennwert P1_T1_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T1_SOC5_WERT", STAT_FAKT_P1_T1_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T2_SOC1_WERT = (RXBUF_UCHAR(16)); // Learning factor, characteristic value P1_T2_SOC1 / Lernfaktor, Kennwert P1_T2_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T2_SOC1_WERT", STAT_FAKT_P1_T2_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T2_SOC2_WERT = (RXBUF_UCHAR(17)); // Learning factor, characteristic value P1_T2_SOC2 / Lernfaktor, Kennwert P1_T2_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T2_SOC2_WERT", STAT_FAKT_P1_T2_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T2_SOC3_WERT = (RXBUF_UCHAR(18)); // Learning factor, characteristic value P1_T2_SOC3 / Lernfaktor, Kennwert P1_T2_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T2_SOC3_WERT", STAT_FAKT_P1_T2_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T2_SOC4_WERT = (RXBUF_UCHAR(19)); // Learning factor, characteristic value P1_T2_SOC4 / Lernfaktor, Kennwert P1_T2_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T2_SOC4_WERT", STAT_FAKT_P1_T2_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T2_SOC5_WERT = (RXBUF_UCHAR(20)); // Learning factor, characteristic value P1_T2_SOC5 / Lernfaktor, Kennwert P1_T2_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T2_SOC5_WERT", STAT_FAKT_P1_T2_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T3_SOC1_WERT = (RXBUF_UCHAR(21)); // Learning factor, characteristic value P1_T3_SOC1 / Lernfaktor, Kennwert P1_T3_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T3_SOC1_WERT", STAT_FAKT_P1_T3_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T3_SOC2_WERT = (RXBUF_UCHAR(22)); // Learning factor, characteristic value P1_T3_SOC2 / Lernfaktor, Kennwert P1_T3_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T3_SOC2_WERT", STAT_FAKT_P1_T3_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T3_SOC3_WERT = (RXBUF_UCHAR(23)); // Learning factor, characteristic value P1_T3_SOC3 / Lernfaktor, Kennwert P1_T3_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T3_SOC3_WERT", STAT_FAKT_P1_T3_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T3_SOC4_WERT = (RXBUF_UCHAR(24)); // Learning factor, characteristic value P1_T3_SOC4 / Lernfaktor, Kennwert P1_T3_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T3_SOC4_WERT", STAT_FAKT_P1_T3_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T3_SOC5_WERT = (RXBUF_UCHAR(25)); // Learning factor, characteristic value P1_T3_SOC5 / Lernfaktor, Kennwert P1_T3_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T3_SOC5_WERT", STAT_FAKT_P1_T3_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T4_SOC1_WERT = (RXBUF_UCHAR(26)); // Learning factor, characteristic value P1_T4_SOC1 / Lernfaktor, Kennwert P1_T4_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T4_SOC1_WERT", STAT_FAKT_P1_T4_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T4_SOC2_WERT = (RXBUF_UCHAR(27)); // Learning factor, characteristic value P1_T4_SOC2 / Lernfaktor, Kennwert P1_T4_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T4_SOC2_WERT", STAT_FAKT_P1_T4_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T4_SOC3_WERT = (RXBUF_UCHAR(28)); // Learning factor, characteristic value P1_T4_SOC3 / Lernfaktor, Kennwert P1_T4_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T4_SOC3_WERT", STAT_FAKT_P1_T4_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T4_SOC4_WERT = (RXBUF_UCHAR(29)); // Learning factor, characteristic value P1_T4_SOC4 / Lernfaktor, Kennwert P1_T4_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T4_SOC4_WERT", STAT_FAKT_P1_T4_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P1_T4_SOC5_WERT = (RXBUF_UCHAR(30)); // Learning factor, characteristic value P1_T4_SOC5 / Lernfaktor, Kennwert P1_T4_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P1_T4_SOC5_WERT", STAT_FAKT_P1_T4_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T1_SOC1_WERT = (RXBUF_UCHAR(31)); // Learning factor, characteristic value P2_T1_SOC1 / Lernfaktor, Kennwert P2_T1_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T1_SOC1_WERT", STAT_FAKT_P2_T1_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T1_SOC2_WERT = (RXBUF_UCHAR(32)); // Learning factor, characteristic value P2_T1_SOC2 / Lernfaktor, Kennwert P2_T1_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T1_SOC2_WERT", STAT_FAKT_P2_T1_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T1_SOC3_WERT = (RXBUF_UCHAR(33)); // Learning factor, characteristic value P2_T1_SOC3 / Lernfaktor, Kennwert P2_T1_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T1_SOC3_WERT", STAT_FAKT_P2_T1_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T1_SOC4_WERT = (RXBUF_UCHAR(34)); // Learning factor, characteristic value P2_T1_SOC4 / Lernfaktor, Kennwert P2_T1_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T1_SOC4_WERT", STAT_FAKT_P2_T1_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T1_SOC5_WERT = (RXBUF_UCHAR(35)); // Learning factor, characteristic value P2_T1_SOC5 / Lernfaktor, Kennwert P2_T1_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T1_SOC5_WERT", STAT_FAKT_P2_T1_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T2_SOC1_WERT = (RXBUF_UCHAR(36)); // Learning factor, characteristic value P2_T2_SOC1 / Lernfaktor, Kennwert P2_T2_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T2_SOC1_WERT", STAT_FAKT_P2_T2_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T2_SOC2_WERT = (RXBUF_UCHAR(37)); // Learning factor, characteristic value P2_T2_SOC2 / Lernfaktor, Kennwert P2_T2_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T2_SOC2_WERT", STAT_FAKT_P2_T2_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T2_SOC3_WERT = (RXBUF_UCHAR(38)); // Learning factor, characteristic value P2_T2_SOC3 / Lernfaktor, Kennwert P2_T2_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T2_SOC3_WERT", STAT_FAKT_P2_T2_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T2_SOC4_WERT = (RXBUF_UCHAR(39)); // Learning factor, characteristic value P2_T2_SOC4 / Lernfaktor, Kennwert P2_T2_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T2_SOC4_WERT", STAT_FAKT_P2_T2_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T2_SOC5_WERT = (RXBUF_UCHAR(40)); // Learning factor, characteristic value P2_T2_SOC5 / Lernfaktor, Kennwert P2_T2_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T2_SOC5_WERT", STAT_FAKT_P2_T2_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T3_SOC1_WERT = (RXBUF_UCHAR(41)); // Learning factor, characteristic value P2_T3_SOC1 / Lernfaktor, Kennwert P2_T3_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T3_SOC1_WERT", STAT_FAKT_P2_T3_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T3_SOC2_WERT = (RXBUF_UCHAR(42)); // Learning factor, characteristic value P2_T3_SOC2 / Lernfaktor, Kennwert P2_T3_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T3_SOC2_WERT", STAT_FAKT_P2_T3_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T3_SOC3_WERT = (RXBUF_UCHAR(43)); // Learning factor, characteristic value P2_T3_SOC3 / Lernfaktor, Kennwert P2_T3_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T3_SOC3_WERT", STAT_FAKT_P2_T3_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T3_SOC4_WERT = (RXBUF_UCHAR(44)); // Learning factor, characteristic value P2_T3_SOC4 / Lernfaktor, Kennwert P2_T3_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T3_SOC4_WERT", STAT_FAKT_P2_T3_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T3_SOC5_WERT = (RXBUF_UCHAR(45)); // Learning factor, characteristic value P2_T3_SOC5 / Lernfaktor, Kennwert P2_T3_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T3_SOC5_WERT", STAT_FAKT_P2_T3_SOC5_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T4_SOC1_WERT = (RXBUF_UCHAR(46)); // Learning factor, characteristic value P2_T4_SOC1 / Lernfaktor, Kennwert P2_T4_SOC1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T4_SOC1_WERT", STAT_FAKT_P2_T4_SOC1_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T4_SOC2_WERT = (RXBUF_UCHAR(47)); // Learning factor, characteristic value P2_T4_SOC2 / Lernfaktor, Kennwert P2_T4_SOC2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T4_SOC2_WERT", STAT_FAKT_P2_T4_SOC2_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T4_SOC3_WERT = (RXBUF_UCHAR(48)); // Learning factor, characteristic value P2_T4_SOC3 / Lernfaktor, Kennwert P2_T4_SOC3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T4_SOC3_WERT", STAT_FAKT_P2_T4_SOC3_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T4_SOC4_WERT = (RXBUF_UCHAR(49)); // Learning factor, characteristic value P2_T4_SOC4 / Lernfaktor, Kennwert P2_T4_SOC4 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T4_SOC4_WERT", STAT_FAKT_P2_T4_SOC4_WERT, "\"%\""); unsigned char STAT_FAKT_P2_T4_SOC5_WERT = (RXBUF_UCHAR(50)); // Learning factor, characteristic value P2_T4_SOC5 / Lernfaktor, Kennwert P2_T4_SOC5 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "LADEZEIT_ADAPT_KENNFELD_LESEN", "STAT_FAKT_P2_T4_SOC5_WERT", STAT_FAKT_P2_T4_SOC5_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_VERH_VOLLADE_LADEVORG_LESEN: { // 0xDF9E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_VERH_VOLLADE_LADEVORG_LESEN", 1); break; } unsigned char STAT_VERH_VOLLADE_LADEVORG_WERT = (RXBUF_UCHAR(0)); // Percentage of the ratio of full charges to total charges / Prozentualer Wert vom Verhältnis der // Volladevorgänge zu den gesamten Ladevorgängen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "VERH_VOLLADE_LADEVORG_LESEN", "STAT_VERH_VOLLADE_LADEVORG_WERT", STAT_VERH_VOLLADE_LADEVORG_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ZUSTAND_SPEICHER: { // 0xDFA0 if (datalen < 38) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ZUSTAND_SPEICHER", 38); break; } float STAT_ZELLKAPAZITAET_MIN_WERT = (RXBUF_UINT(0)/100.0f); // Output of the current minimum measured cell capacity of all cells in Ah / Ausgabe der aktuellen minimalen // gemessenen Zellkapazität aller Zellen in Ah ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLKAPAZITAET_MIN_WERT", STAT_ZELLKAPAZITAET_MIN_WERT, "\"Ah\""); float STAT_ZELLKAPAZITAET_MAX_WERT = (RXBUF_UINT(2)/100.0f); // Output of the current maximum measured cell capacity of all cells in Ah / Ausgabe der aktuellen maximalen // gemessenen Zellkapazität aller Zellen in Ah ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLKAPAZITAET_MAX_WERT", STAT_ZELLKAPAZITAET_MAX_WERT, "\"Ah\""); float STAT_ZELLKAPAZITAET_MEAN_WERT = (RXBUF_UINT(4)/100.0f); // Output of the current mean measured cell capacity averaged over all cells in Ah / Ausgabe der aktuellen // mittleren gemessenen Zellkapazität gemittelt über alle Zellen in Ah ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLKAPAZITAET_MEAN_WERT", STAT_ZELLKAPAZITAET_MEAN_WERT, "\"Ah\""); float STAT_ZELLSPANNUNG_MIN_WERT = (RXBUF_UINT(6)/10000.0f); // Output of the current minimum measured cell voltage of all cells in V. / Ausgabe der aktuellen minimalen // gemessenen Zellspannung aller Zellen in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLSPANNUNG_MIN_WERT", STAT_ZELLSPANNUNG_MIN_WERT, "\"V\""); float STAT_ZELLSPANNUNG_MAX_WERT = (RXBUF_UINT(8)/10000.0f); // Output of the current maximum measured cell voltage of all cells in V / Ausgabe der aktuellen maximalen // gemessenen Zellspannung aller Zellen in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLSPANNUNG_MAX_WERT", STAT_ZELLSPANNUNG_MAX_WERT, "\"V\""); float STAT_ZELLSPANNUNG_MEAN_WERT = (RXBUF_UINT(10)/10000.0f); // Output of the current mean measured cell voltage of all cells in V / Ausgabe der aktuellen mittleren // gemessenen Zellspannung aller Zellen in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLSPANNUNG_MEAN_WERT", STAT_ZELLSPANNUNG_MEAN_WERT, "\"V\""); float STAT_ZELLTEMPERATUR_MIN_WERT = (RXBUF_SINT(12)/100.0f); // Output of the current minimum measured cell temperature of all cells in ° C / Ausgabe der aktuellen minimalen // gemessenen Zelltemperatur aller Zellen in °C ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLTEMPERATUR_MIN_WERT", STAT_ZELLTEMPERATUR_MIN_WERT, "\"°C\""); float STAT_ZELLTEMPERATUR_MAX_WERT = (RXBUF_SINT(14)/100.0f); // Output of the current maximum measured cell temperature of all cells in ° C / Ausgabe der aktuellen maximalen // gemessenen Zelltemperatur aller Zellen in °C ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLTEMPERATUR_MAX_WERT", STAT_ZELLTEMPERATUR_MAX_WERT, "\"°C\""); float STAT_ZELLTEMPERATUR_MEAN_WERT = (RXBUF_SINT(16)/100.0f); // Output of the current mean measured cell temperature of all cells in ° C / Ausgabe der aktuellen mittleren // gemessenen Zelltemperatur aller Zellen in °C ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLTEMPERATUR_MEAN_WERT", STAT_ZELLTEMPERATUR_MEAN_WERT, "\"°C\""); float STAT_ZELLWIDERSTANDSFAKTOR_MIN_WERT = (RXBUF_UINT(18)/10000.0f); // Output of the current minimum measured resistance factor of all cells / Ausgabe des aktuellen minimalen // gemessenen Widerstandsfaktors aller Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLWIDERSTANDSFAKTOR_MIN_WERT", STAT_ZELLWIDERSTANDSFAKTOR_MIN_WERT, ""); float STAT_ZELLWIDERSTANDSFAKTOR_MAX_WERT = (RXBUF_UINT(20)/10000.0f); // Output of the current maximum measured resistance factor of all cells / Ausgabe des aktuellen maximalen // gemessenen Widerstandsfaktors aller Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLWIDERSTANDSFAKTOR_MAX_WERT", STAT_ZELLWIDERSTANDSFAKTOR_MAX_WERT, ""); float STAT_ZELLWIDERSTANDSFAKTOR_MEAN_WERT = (RXBUF_UINT(22)/10000.0f); // Output of the current mean measured resistance factor of all cells / Ausgabe des aktuellen mittleren // gemessenen Widerstandsfaktors aller Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLWIDERSTANDSFAKTOR_MEAN_WERT", STAT_ZELLWIDERSTANDSFAKTOR_MEAN_WERT, ""); float STAT_ZELLSOC_MIN_WERT = (RXBUF_UINT(24)/100.0f); // Output of the current minimum measured SoC of all cells in% / Ausgabe des aktuellen minimalen gemessenen SoC // aller Zellen in % ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLSOC_MIN_WERT", STAT_ZELLSOC_MIN_WERT, "\"%\""); float STAT_ZELLSOC_MAX_WERT = (RXBUF_UINT(26)/100.0f); // Output of the current maximum measured SoC of all cells in% / Ausgabe des aktuellen maximalen gemessenen SoC // aller Zellen in % ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLSOC_MAX_WERT", STAT_ZELLSOC_MAX_WERT, "\"%\""); float STAT_ZELLSOC_MEAN_WERT = (RXBUF_UINT(28)/100.0f); // Output of the current mean measured SoC of all cells in% / Ausgabe des aktuellen mittleren gemessenen SoC // aller Zellen in % ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLSOC_MEAN_WERT", STAT_ZELLSOC_MEAN_WERT, "\"%\""); float STAT_ZELLOCV_MIN_WERT = (RXBUF_UINT(30)/10000.0f); // Output of the current minimum OCV of all cells measured in the last resting state in V. / Ausgabe der // aktuellen minimalen im letzten Ruhezustand gemessenen OCV aller Zellen in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLOCV_MIN_WERT", STAT_ZELLOCV_MIN_WERT, "\"V\""); float STAT_ZELLOCV_MAX_WERT = (RXBUF_UINT(32)/10000.0f); // Output of the current maximum OCV of all cells measured in the last resting state in V. / Ausgabe der // aktuellen maximalen im letzten Ruhezustand gemessenen OCV aller Zellen in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLOCV_MAX_WERT", STAT_ZELLOCV_MAX_WERT, "\"V\""); float STAT_ZELLOCV_MEAN_WERT = (RXBUF_UINT(34)/10000.0f); // Output of the current mean OCV of all cells measured in the last resting state in V / Ausgabe der aktuellen // mittleren im letzten Ruhezustand gemessenen OCV aller Zellen in V ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_ZELLOCV_MEAN_WERT", STAT_ZELLOCV_MEAN_WERT, "\"V\""); float STAT_IMPEDANCE_ESTIMATION_ALPHA_WERT = (RXBUF_UINT(36)/10000.0f); // Current aging factor of the serial and parallel ohmic resistance as well as the parallel capacitance (1.5 = // increase of the current resistance by 50%) / Aktueller Alterungsfaktor des seriellen und parallelen ohmschen // Wider aktuellenstands sowie der parallelen Kapazität (1,5 = Eröhung des aktuellen Wider aktuellenstands um // 50%) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "ZUSTAND_SPEICHER", "STAT_IMPEDANCE_ESTIMATION_ALPHA_WERT", STAT_IMPEDANCE_ESTIMATION_ALPHA_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_ERR_LIM_SPANNUNG: { // 0xDFA1 if (datalen < 12) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_ERR_LIM_SPANNUNG", 12); break; } float STAT_OVER_VOLT_INT_LIM_WERT = (RXBUF_UINT(0)/1000.0f); // [UerrIntLim_over] Error threshold of the OVERVOLTAGE integral (at temperatures <-10 ° C the error threshold // changes depending on the temperature.) / [UerrIntLim_over] Fehlerschwellwert des ÜBERspannungsintegrals (Bei // Temperaturen < -10°C verändert sich der Fehlerschellwert temperaturabhängig.) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_ERR_LIM_SPANNUNG", "STAT_OVER_VOLT_INT_LIM_WERT", STAT_OVER_VOLT_INT_LIM_WERT, ""); float STAT_UNDER_VOLT_INT_LIM_WERT = (RXBUF_UINT(2)/1000.0f); // [UerrIntLim_under] Error threshold value of the UNDERVOLTAGE integral (at temperatures <-10 ° C the error // threshold value changes depending on the temperature.) / [UerrIntLim_under] Fehlerschwellwert des // UNTERspannungsintegrals (Bei Temperaturen < -10°C verändert sich der Fehlerschellwert temperaturabhängig.) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HIS_ERR_LIM_SPANNUNG", "STAT_UNDER_VOLT_INT_LIM_WERT", STAT_UNDER_VOLT_INT_LIM_WERT, ""); unsigned short STAT_HIS_ERR_LIM_SPANNUNG_MODSMAX_UNDER_1_WERT = (RXBUF_UINT(4)); // Maximum duration in minutes across all modules when loading in the class: 0 UerrIntLim_under // / Maximum der Dauer in Minuten über alle Module beim Laden in der Klasse: UerrInt_under > UerrIntLim_under ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HIS_ERR_LIM_SPANNUNG", "STAT_HIS_ERR_LIM_SPANNUNG_MODSMAX_UNDER_2_WERT", STAT_HIS_ERR_LIM_SPANNUNG_MODSMAX_UNDER_2_WERT, "\"min\""); unsigned short STAT_HIS_ERR_LIM_SPANNUNG_MODSMAX_OVER_1_WERT = (RXBUF_UINT(8)); // Maximum duration in minutes across all modules when loading in the class: 0 UerrIntLim_over / // Maximum der Dauer in Minuten über alle Module beim Laden in der Klasse: UerrInt_over > UerrIntLim_over ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "HIS_ERR_LIM_SPANNUNG", "STAT_HIS_ERR_LIM_SPANNUNG_MODSMAX_OVER_2_WERT", STAT_HIS_ERR_LIM_SPANNUNG_MODSMAX_OVER_2_WERT, "\"min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HIS_SOC_MAX_MIN: { // 0xDFAE if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HIS_SOC_MAX_MIN", 2); break; } unsigned char STAT_SOC_MIN_NENN_MAX_WERT = (RXBUF_UCHAR(0)); // Output of the maximum nominal MIN SoC that occurs over the life of the vehicle. / Ausgabe des maximalen // MIN-Nenn-SoC, der über Fahrzeuglebensdauer auftritt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HIS_SOC_MAX_MIN", "STAT_SOC_MIN_NENN_MAX_WERT", STAT_SOC_MIN_NENN_MAX_WERT, "\"%\""); unsigned char STAT_SOC_MIN_NENN_MIN_WERT = (RXBUF_UCHAR(1)); // Output of the minimum nominal MIN SoC that occurs over the life of the vehicle. / Ausgabe des minimalen // MIN-Nenn-SoC, der über Fahrzeuglebensdauer auftritt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HIS_SOC_MAX_MIN", "STAT_SOC_MIN_NENN_MIN_WERT", STAT_SOC_MIN_NENN_MIN_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_STATUS_HV_SPEICHER_ID: { // 0xDFE1 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_STATUS_HV_SPEICHER_ID", 4); break; } unsigned short STAT_SP_ID_00 = (RXBUF_UINT(0)); // ID_00 memory type [invalid value = FFFF] / ID_00 Speicher-Typ [Ungültigkeitswert = FFFF] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "STATUS_HV_SPEICHER_ID", "STAT_SP_ID_00", STAT_SP_ID_00, "\"0-n\""); unsigned short STAT_SP_ID_01_WERT = (RXBUF_UINT(2)); // ID_01 memory number [invalid value = FFFF] / ID_01 Speicher-Nummer [Ungültigkeitswert = FFFF] ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "STATUS_HV_SPEICHER_ID", "STAT_SP_ID_01_WERT", STAT_SP_ID_01_WERT, "\"HEX\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_SYMMETRIERBAND: { // 0xDFE2 if (datalen < 11) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_SYMMETRIERBAND", 11); break; } float STAT_SOC_LAST_BALANCING_WERT = (RXBUF_UCHAR(0)/2.0f); // SoC that was last successfully balanced / SoC bei dem zuletzt erfolgreich Symmetriert wurde ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SYMMETRIERBAND", "STAT_SOC_LAST_BALANCING_WERT", STAT_SOC_LAST_BALANCING_WERT, "\"%\""); unsigned long STAT_TIME_LAST_BALANCING_WERT = (RXBUF_UINT32(1)); // Absolute time at which the last successful symmetry / Absolute Zeit bei der zuletzt erfolgreich symmetriert // wurde ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "SYMMETRIERBAND", "STAT_TIME_LAST_BALANCING_WERT", STAT_TIME_LAST_BALANCING_WERT, "\"s\""); unsigned char STAT_DIFFERENCE_VOLTAGE_LAST_BALANCING_WERT = (RXBUF_UCHAR(5)); // Voltage difference in the last successful balancing process / Spannungsdifferenz beim letzten erfolgreichen // Symmetriervorgang ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "SYMMETRIERBAND", "STAT_DIFFERENCE_VOLTAGE_LAST_BALANCING_WERT", STAT_DIFFERENCE_VOLTAGE_LAST_BALANCING_WERT, "\"mV\""); float STAT_LAST_PARKING_SOC_1_WERT = (RXBUF_UCHAR(6)/2.0f); // Last SoC at which the vehicle reached idle voltage / Letzter SoC bei dem das Fahrzeug Ruhespannung erreicht // hat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SYMMETRIERBAND", "STAT_LAST_PARKING_SOC_1_WERT", STAT_LAST_PARKING_SOC_1_WERT, "\"%\""); float STAT_LAST_PARKING_SOC_2_WERT = (RXBUF_UCHAR(7)/2.0f); // Second to last SoC in which the vehicle has reached idle voltage / Zweitletzter SoC bei dem das Fahrzeug // Ruhespannung erreicht hat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SYMMETRIERBAND", "STAT_LAST_PARKING_SOC_2_WERT", STAT_LAST_PARKING_SOC_2_WERT, "\"%\""); float STAT_LAST_PARKING_SOC_3_WERT = (RXBUF_UCHAR(8)/2.0f); // Third to last SoC at which the vehicle reached idle voltage / Drittletzter SoC bei dem das Fahrzeug // Ruhespannung erreicht hat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SYMMETRIERBAND", "STAT_LAST_PARKING_SOC_3_WERT", STAT_LAST_PARKING_SOC_3_WERT, "\"%\""); float STAT_LAST_PARKING_SOC_4_WERT = (RXBUF_UCHAR(9)/2.0f); // Fourth to last SoC in which the vehicle has reached idle voltage / Viertletzter SoC bei dem das Fahrzeug // Ruhespannung erreicht hat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SYMMETRIERBAND", "STAT_LAST_PARKING_SOC_4_WERT", STAT_LAST_PARKING_SOC_4_WERT, "\"%\""); float STAT_LAST_PARKING_SOC_5_WERT = (RXBUF_UCHAR(10)/2.0f); // Fifth to last SoC in which the vehicle has reached idle voltage / Fünftletzter SoC bei dem das Fahrzeug // Ruhespannung erreicht hat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "SYMMETRIERBAND", "STAT_LAST_PARKING_SOC_5_WERT", STAT_LAST_PARKING_SOC_5_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_GW_INFO_SCHNELLLADEN: { // 0xE50D if (datalen < 16) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_GW_INFO_SCHNELLLADEN", 16); break; } float STAT_ENERGIEANTEIL_SCHNELLLADEN_TEMP_HIGH_WERT = (RXBUF_UINT(0)/100.0f); // Share of the total energy throughput from fast charging at higher temperatures / Anteil des // Gesamt-Energiedurchsatzes durch Schnellladen bei höheren Temperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO_SCHNELLLADEN", "STAT_ENERGIEANTEIL_SCHNELLLADEN_TEMP_HIGH_WERT", STAT_ENERGIEANTEIL_SCHNELLLADEN_TEMP_HIGH_WERT, "\"%\""); float STAT_ENERGIEANTEIL_SCHNELLLADEN_TEMP_LOW_WERT = (RXBUF_UINT(2)/100.0f); // Share of the total energy throughput from fast charging at lower temperatures / Anteil des // Gesamt-Energiedurchsatzes durch Schnellladen bei niedrigeren Temperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO_SCHNELLLADEN", "STAT_ENERGIEANTEIL_SCHNELLLADEN_TEMP_LOW_WERT", STAT_ENERGIEANTEIL_SCHNELLLADEN_TEMP_LOW_WERT, "\"%\""); float STAT_ENERGIEDURCHSATZ_SCHNELLLADEN_TEMP_HIGH_WERT = (RXBUF_UINT32(4)/10.0f); // Energy throughput through fast charging at higher temperatures / Energiedurchsatz durch Schnellladen bei // höheren Temperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO_SCHNELLLADEN", "STAT_ENERGIEDURCHSATZ_SCHNELLLADEN_TEMP_HIGH_WERT", STAT_ENERGIEDURCHSATZ_SCHNELLLADEN_TEMP_HIGH_WERT, "\"kWh\""); float STAT_ENERGIEDURCHSATZ_SCHNELLLADEN_TEMP_LOW_WERT = (RXBUF_UINT32(8)/10.0f); // Energy throughput through fast charging at lower temperatures / Energiedurchsatz durch Schnellladen bei // niedrigeren Temperaturen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO_SCHNELLLADEN", "STAT_ENERGIEDURCHSATZ_SCHNELLLADEN_TEMP_LOW_WERT", STAT_ENERGIEDURCHSATZ_SCHNELLLADEN_TEMP_LOW_WERT, "\"kWh\""); float STAT_ENERGIEDURCHSATZ_GESAMT_WERT = (RXBUF_UINT32(12)/10.0f); // Total energy throughput of the storage / Gesamter Energiedurchsatz des Speichers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "GW_INFO_SCHNELLLADEN", "STAT_ENERGIEDURCHSATZ_GESAMT_WERT", STAT_ENERGIEDURCHSATZ_GESAMT_WERT, "\"kWh\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_CODIERVARIABLEN_HV_SPEICHER: { // 0xE540 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_CODIERVARIABLEN_HV_SPEICHER", 4); break; } unsigned char STAT_COOL_VALVE_PRESENT_WERT = (RXBUF_UCHAR(0)); // Coding parameters: cooling valve active / Codierparameter: Kühlventil aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CODIERVARIABLEN_HV_SPEICHER", "STAT_COOL_VALVE_PRESENT_WERT", STAT_COOL_VALVE_PRESENT_WERT, "\"HEX\""); unsigned char STAT_COUNTRY_CODE_WERT = (RXBUF_UCHAR(1)); // Coding parameters: country code / Codierparameter: Ländercode ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CODIERVARIABLEN_HV_SPEICHER", "STAT_COUNTRY_CODE_WERT", STAT_COUNTRY_CODE_WERT, "\"HEX\""); unsigned char STAT_COD_FUNKTION_SWITCH_WERT = (RXBUF_UCHAR(2)); // Coding parameters: Switch function / Codierparameter: Funktion Switch ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CODIERVARIABLEN_HV_SPEICHER", "STAT_COD_FUNKTION_SWITCH_WERT", STAT_COD_FUNKTION_SWITCH_WERT, "\"HEX\""); unsigned char STAT_COD_STATSP_WERT = (RXBUF_UCHAR(3)); // Coding parameters: stationary memory / Codierparameter: Stationärspeicher ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CODIERVARIABLEN_HV_SPEICHER", "STAT_COD_STATSP_WERT", STAT_COD_STATSP_WERT, "\"HEX\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_ANZAHL_DEFEKTE_SICHERUNG: { // 0xE5F1 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_ANZAHL_DEFEKTE_SICHERUNG", 1); break; } unsigned char STAT_ANZAHL_DEFEKTE_SICHERUNG_WERT = (RXBUF_UCHAR(0)); // Number of defective fuses since all modules were last replaced / Anzahl der defekten Sicherungen seit dem // letzten Tausch aller Module ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "ANZAHL_DEFEKTE_SICHERUNG", "STAT_ANZAHL_DEFEKTE_SICHERUNG_WERT", STAT_ANZAHL_DEFEKTE_SICHERUNG_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_HVOFF_VOLTAGES: { // 0xE5F2 if (datalen < 139) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_HVOFF_VOLTAGES", 139); break; } unsigned char STAT_HVOFF_VOLTAGES_COUNTER_RB1_WERT = (RXBUF_UCHAR(0)); // Counter of written data records / Zähler der geschriebenen Datensätze ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_COUNTER_RB1_WERT", STAT_HVOFF_VOLTAGES_COUNTER_RB1_WERT, ""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_1_WERT = (RXBUF_UINT(1)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_2_WERT = (RXBUF_UINT(3)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_3_WERT = (RXBUF_UINT(5)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_4_WERT = (RXBUF_UINT(7)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB1_4_WERT, "\"V\""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_1_WERT = (RXBUF_UCHAR(9)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_1_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_1_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_2_WERT = (RXBUF_UCHAR(10)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_2_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_2_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_3_WERT = (RXBUF_UCHAR(11)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_3_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_3_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_4_WERT = (RXBUF_UCHAR(12)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_4_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB1_4_WERT, ""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_1_WERT = (RXBUF_UINT(13)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_2_WERT = (RXBUF_UINT(15)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_3_WERT = (RXBUF_UINT(17)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_4_WERT = (RXBUF_UINT(19)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB1_4_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_1_WERT = (RXBUF_UINT(21)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_2_WERT = (RXBUF_UINT(23)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_3_WERT = (RXBUF_UINT(25)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_4_WERT = (RXBUF_UINT(27)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB1_4_WERT, "\"V\""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_1_WERT = (RXBUF_UCHAR(29)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_1_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_1_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_2_WERT = (RXBUF_UCHAR(30)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_2_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_2_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_3_WERT = (RXBUF_UCHAR(31)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_3_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_3_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_4_WERT = (RXBUF_UCHAR(32)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_4_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB1_4_WERT, ""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB1_1_WERT = (RXBUF_UINT(33)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB1_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB1_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB1_2_WERT = (RXBUF_UINT(35)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB1_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB1_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB1_3_WERT = (RXBUF_UINT(37)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB1_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB1_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB1_4_WERT = (RXBUF_UINT(39)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB1_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB1_4_WERT, "\"V\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_1_WERT = (RXBUF_UINT32(41)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_1_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_1_WERT, "\"s\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_2_WERT = (RXBUF_UINT32(45)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_2_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_2_WERT, "\"s\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_3_WERT = (RXBUF_UINT32(49)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_3_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_3_WERT, "\"s\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_4_WERT = (RXBUF_UINT32(53)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_4_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB1_4_WERT, "\"s\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_1 = (RXBUF_UCHAR(57)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_1", STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_1, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_2 = (RXBUF_UCHAR(58)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_2", STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_2, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_3 = (RXBUF_UCHAR(59)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_3", STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_3, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_4 = (RXBUF_UCHAR(60)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_4", STAT_HVOFF_VOLTAGES_STAT_SYM_RB1_4, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_1 = (RXBUF_UCHAR(61)); // Info about the number of cells in symmetry (n) / Info über die Anzahl in Symmetrierung befindlicher Zellen (n) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_1", STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_1, "\"0-n\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_2 = (RXBUF_UCHAR(62)); // Info about the number of cells in symmetry (n) / Info über die Anzahl in Symmetrierung befindlicher Zellen (n) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_2", STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_2, "\"0-n\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_3 = (RXBUF_UCHAR(63)); // Info about the number of cells in symmetry (n) / Info über die Anzahl in Symmetrierung befindlicher Zellen (n) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_3", STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_3, "\"0-n\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_4 = (RXBUF_UCHAR(64)); // Info about the number of cells in symmetry (n) / Info über die Anzahl in Symmetrierung befindlicher Zellen (n) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_4", STAT_HVOFF_VOLTAGES_INFO_SYM_RB1_4, "\"0-n\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_1_WERT = (RXBUF_SCHAR(65)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_1_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_1_WERT, "\"°C\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_2_WERT = (RXBUF_SCHAR(66)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_2_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_2_WERT, "\"°C\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_3_WERT = (RXBUF_SCHAR(67)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_3_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_3_WERT, "\"°C\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_4_WERT = (RXBUF_SCHAR(68)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_4_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB1_4_WERT, "\"°C\""); unsigned char STAT_HVOFF_VOLTAGES_COUNTER_RB2_WERT = (RXBUF_UCHAR(69)); // Counter of written data records / Zähler der geschriebenen Datensätze ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_COUNTER_RB2_WERT", STAT_HVOFF_VOLTAGES_COUNTER_RB2_WERT, ""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_1_WERT = (RXBUF_UINT(70)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_2_WERT = (RXBUF_UINT(72)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_3_WERT = (RXBUF_UINT(74)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_4_WERT = (RXBUF_UINT(76)/10000.0f); // Minimum cell voltage / Minimale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_MIN_RB2_4_WERT, "\"V\""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_1_WERT = (RXBUF_UCHAR(78)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_1_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_1_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_2_WERT = (RXBUF_UCHAR(79)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_2_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_2_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_3_WERT = (RXBUF_UCHAR(80)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_3_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_3_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_4_WERT = (RXBUF_UCHAR(81)); // Index of the cell with the minimum cell voltage / Index der Zelle mit der minimalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_4_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MIN_RB2_4_WERT, ""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_1_WERT = (RXBUF_UINT(82)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_2_WERT = (RXBUF_UINT(84)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_3_WERT = (RXBUF_UINT(86)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_4_WERT = (RXBUF_UINT(88)/10000.0f); // Average cell voltage / Durchschnittliche Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_MEAN_RB2_4_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_1_WERT = (RXBUF_UINT(90)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_2_WERT = (RXBUF_UINT(92)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_3_WERT = (RXBUF_UINT(94)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_4_WERT = (RXBUF_UINT(96)/10000.0f); // Maximum cell voltage / Maximale Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_MAX_RB2_4_WERT, "\"V\""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_1_WERT = (RXBUF_UCHAR(98)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_1_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_1_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_2_WERT = (RXBUF_UCHAR(99)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_2_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_2_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_3_WERT = (RXBUF_UCHAR(100)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_3_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_3_WERT, ""); unsigned char STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_4_WERT = (RXBUF_UCHAR(101)); // Index of the cell with the maximum cell voltage / Index der Zelle mit der maximalen Zellspannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_4_WERT", STAT_HVOFF_VOLTAGES_IDX_UCEL_MAX_RB2_4_WERT, ""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB2_1_WERT = (RXBUF_UINT(102)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB2_1_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB2_1_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB2_2_WERT = (RXBUF_UINT(104)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB2_2_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB2_2_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB2_3_WERT = (RXBUF_UINT(106)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB2_3_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB2_3_WERT, "\"V\""); float STAT_HVOFF_VOLTAGES_UCEL_1_RB2_4_WERT = (RXBUF_UINT(108)/10000.0f); // Voltage of the cell with the lowest index (first cell) / Spannung der Zelle mit dem niedrigsten Index (erste // Zelle) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_UCEL_1_RB2_4_WERT", STAT_HVOFF_VOLTAGES_UCEL_1_RB2_4_WERT, "\"V\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_1_WERT = (RXBUF_UINT32(110)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_1_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_1_WERT, "\"s\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_2_WERT = (RXBUF_UINT32(114)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_2_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_2_WERT, "\"s\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_3_WERT = (RXBUF_UINT32(118)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_3_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_3_WERT, "\"s\""); unsigned long STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_4_WERT = (RXBUF_UINT32(122)); // SME lifetime at the time of voltage measurement / SME Lebensdauer zum Zeitpunkt der Spannungsmessung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_4_WERT", STAT_HVOFF_VOLTAGES_SME_LIFETIME_RB2_4_WERT, "\"s\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_1 = (RXBUF_UCHAR(126)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_1", STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_1, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_2 = (RXBUF_UCHAR(127)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_2", STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_2, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_3 = (RXBUF_UCHAR(128)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_3", STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_3, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_4 = (RXBUF_UCHAR(129)); // Cell symmetry status: 0 = inactive; 1 = active / Status der Zellsymmetrierung: 0 = inaktiv; 1 = aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_4", STAT_HVOFF_VOLTAGES_STAT_SYM_RB2_4, "\"0/1\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_1 = (RXBUF_UCHAR(130)); // Info about the number of cells in symmetry / Info über die Anzahl in Symmetrierung befindlicher Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_1", STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_1, "\"0-n\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_2 = (RXBUF_UCHAR(131)); // Info about the number of cells in symmetry / Info über die Anzahl in Symmetrierung befindlicher Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_2", STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_2, "\"0-n\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_3 = (RXBUF_UCHAR(132)); // Info about the number of cells in symmetry / Info über die Anzahl in Symmetrierung befindlicher Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_3", STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_3, "\"0-n\""); unsigned char STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_4 = (RXBUF_UCHAR(133)); // Info about the number of cells in symmetry / Info über die Anzahl in Symmetrierung befindlicher Zellen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_4", STAT_HVOFF_VOLTAGES_INFO_SYM_RB2_4, "\"0-n\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_1_WERT = (RXBUF_SCHAR(134)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_1_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_1_WERT, "\"°C\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_2_WERT = (RXBUF_SCHAR(135)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_2_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_2_WERT, "\"°C\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_3_WERT = (RXBUF_SCHAR(136)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_3_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_3_WERT, "\"°C\""); char STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_4_WERT = (RXBUF_SCHAR(137)); // Average storage temperature / Durchschnittliche Speichertemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_4_WERT", STAT_HVOFF_VOLTAGES_T_CORE_AVG_RB2_4_WERT, "\"°C\""); unsigned char STAT_HVOFF_VOLTAGES_COUNTER_SCORE_WERT = (RXBUF_UCHAR(138)); // Counter for evaluating the voltage drop over the lifetime / Zähler zur Bewertung des Spannungsabfalls über die // Lebenszeit ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "HVOFF_VOLTAGES", "STAT_HVOFF_VOLTAGES_COUNTER_SCORE_WERT", STAT_HVOFF_VOLTAGES_COUNTER_SCORE_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_RB_SOH_KAPATEST_ERW: { // 0xE5F3 if (datalen < 27) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_RB_SOH_KAPATEST_ERW", 27); break; } unsigned char STAT_TEMP_MEAN_DCH_END_TEST_1_WERT = (RXBUF_UCHAR(0)); // Mean simulated temperature at HVS level at the end of discharge of the first capacity test / Mittlere // simulierte Temperatur auf HVS-Ebene bei Entladeende des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MEAN_DCH_END_TEST_1_WERT", STAT_TEMP_MEAN_DCH_END_TEST_1_WERT, "\"°C\""); unsigned char STAT_TEMP_MIN_DCH_END_TEST_1_WERT = (RXBUF_UCHAR(1)); // Minimum simulated temperature at HVS level at the end of discharge of the first capacity test / Minimale // simulierte Temperatur auf HVS-Ebene bei Entladeende des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MIN_DCH_END_TEST_1_WERT", STAT_TEMP_MIN_DCH_END_TEST_1_WERT, "\"°C\""); unsigned char STAT_TEMP_MAX_DCH_END_TEST_1_WERT = (RXBUF_UCHAR(2)); // Maximum simulated temperature at HVS level at the end of discharge of the first capacity test / Maximale // simulierte Temperatur auf HVS-Ebene bei Entladeende des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MAX_DCH_END_TEST_1_WERT", STAT_TEMP_MAX_DCH_END_TEST_1_WERT, "\"°C\""); unsigned char STAT_TEMP_MEAN_CHA_END_TEST_1_WERT = (RXBUF_UCHAR(3)); // Mean simulated temperature at HVS level at the end of charging of the first capacity test / Mittlere // simulierte Temperatur auf HVS-Ebene bei Ladeende des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MEAN_CHA_END_TEST_1_WERT", STAT_TEMP_MEAN_CHA_END_TEST_1_WERT, "\"°C\""); unsigned char STAT_TEMP_MIN_CHA_END_TEST_1_WERT = (RXBUF_UCHAR(4)); // Minimum simulated temperature at HVS level at the end of charging of the first capacity test / Minimale // simulierte Temperatur auf HVS-Ebene bei Ladeende des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MIN_CHA_END_TEST_1_WERT", STAT_TEMP_MIN_CHA_END_TEST_1_WERT, "\"°C\""); unsigned char STAT_TEMP_MAX_CHA_END_TEST_1_WERT = (RXBUF_UCHAR(5)); // Maximum simulated temperature at HVS level at the end of charging of the first capacity test / Maximale // simulierte Temperatur auf HVS-Ebene bei Ladeende des ersten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MAX_CHA_END_TEST_1_WERT", STAT_TEMP_MAX_CHA_END_TEST_1_WERT, "\"°C\""); float STAT_FRC_PWR_CHG_TEST_1_WERT = (RXBUF_UCHAR(6)/10.0f); // Charging power (from forecast) during the first capacity test / Ladeleistung (aus Prognose) bei erstem // Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_FRC_PWR_CHG_TEST_1_WERT", STAT_FRC_PWR_CHG_TEST_1_WERT, "\"kW\""); float STAT_I_DCH_END_FILT_TEST_1_WERT = (RXBUF_UCHAR(7)/10.0f); // Aborted discharge current (filtered) during the first capacity test / Entladeabbruch-Strom (gefiltert) bei // erstem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_I_DCH_END_FILT_TEST_1_WERT", STAT_I_DCH_END_FILT_TEST_1_WERT, "\"A\""); unsigned char STAT_U_CELL_MIN_IDX_DCH_END_TEST_1_WERT = (RXBUF_UCHAR(8)); // Index of the cell with the minimum cell voltage at the end of the discharge of the first capacity test / Index // der Zelle mit der minimalen Zellspannung bei Entladeende des ersen Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_U_CELL_MIN_IDX_DCH_END_TEST_1_WERT", STAT_U_CELL_MIN_IDX_DCH_END_TEST_1_WERT, ""); unsigned char STAT_TEMP_MEAN_DCH_END_TEST_2_WERT = (RXBUF_UCHAR(9)); // Mean simulated temperature at HVS level at the end of discharge of the second capacity test / Mittlere // simulierte Temperatur auf HVS-Ebene bei Entladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MEAN_DCH_END_TEST_2_WERT", STAT_TEMP_MEAN_DCH_END_TEST_2_WERT, "\"°C\""); unsigned char STAT_TEMP_MIN_DCH_END_TEST_2_WERT = (RXBUF_UCHAR(10)); // Minimum simulated temperature at HVS level at the end of the discharge of the second capacity test / Minimale // simulierte Temperatur auf HVS-Ebene bei Entladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MIN_DCH_END_TEST_2_WERT", STAT_TEMP_MIN_DCH_END_TEST_2_WERT, "\"°C\""); unsigned char STAT_TEMP_MAX_DCH_END_TEST_2_WERT = (RXBUF_UCHAR(11)); // Maximum simulated temperature at HVS level at the end of the discharge of the second capacity test / Maximale // simulierte Temperatur auf HVS-Ebene bei Entladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MAX_DCH_END_TEST_2_WERT", STAT_TEMP_MAX_DCH_END_TEST_2_WERT, "\"°C\""); unsigned char STAT_TEMP_MEAN_CHA_END_TEST_2_WERT = (RXBUF_UCHAR(12)); // Mean simulated temperature at HVS level at the end of charging of the second capacity test / Mittlere // simulierte Temperatur auf HVS-Ebene bei Ladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MEAN_CHA_END_TEST_2_WERT", STAT_TEMP_MEAN_CHA_END_TEST_2_WERT, "\"°C\""); unsigned char STAT_TEMP_MIN_CHA_END_TEST_2_WERT = (RXBUF_UCHAR(13)); // Minimum simulated temperature at HVS level at the end of charging of the second capacity test / Minimale // simulierte Temperatur auf HVS-Ebene bei Ladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MIN_CHA_END_TEST_2_WERT", STAT_TEMP_MIN_CHA_END_TEST_2_WERT, "\"°C\""); unsigned char STAT_TEMP_MAX_CHA_END_TEST_2_WERT = (RXBUF_UCHAR(14)); // Maximum simulated temperature at HVS level at the end of charging of the second capacity test / Maximale // simulierte Temperatur auf HVS-Ebene bei Ladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MAX_CHA_END_TEST_2_WERT", STAT_TEMP_MAX_CHA_END_TEST_2_WERT, "\"°C\""); float STAT_FRC_PWR_CHG_TEST_2_WERT = (RXBUF_UCHAR(15)/10.0f); // Charging power (from forecast) in the second capacity test / Ladeleistung (aus Prognose) bei zweitem // Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_FRC_PWR_CHG_TEST_2_WERT", STAT_FRC_PWR_CHG_TEST_2_WERT, "\"kW\""); float STAT_I_DCH_END_FILT_TEST_2_WERT = (RXBUF_UCHAR(16)/10.0f); // Aborted discharge current (filtered) during the second capacity test / Entladeabbruch-Strom (gefiltert) bei // zweitem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_I_DCH_END_FILT_TEST_2_WERT", STAT_I_DCH_END_FILT_TEST_2_WERT, "\"A\""); unsigned char STAT_U_CELL_MIN_IDX_DCH_END_TEST_2_WERT = (RXBUF_UCHAR(17)); // Index of the cell with the minimum cell voltage at the end of the discharge of the second capacity test / // Index der Zelle mit der minimalen Zellspannung bei Entladeende des zweiten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_U_CELL_MIN_IDX_DCH_END_TEST_2_WERT", STAT_U_CELL_MIN_IDX_DCH_END_TEST_2_WERT, ""); unsigned char STAT_TEMP_MEAN_DCH_END_TEST_3_WERT = (RXBUF_UCHAR(18)); // Mean simulated temperature at HVS level at the end of discharge of the third capacity test / Mittlere // simulierte Temperatur auf HVS-Ebene bei Entladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MEAN_DCH_END_TEST_3_WERT", STAT_TEMP_MEAN_DCH_END_TEST_3_WERT, "\"°C\""); unsigned char STAT_TEMP_MIN_DCH_END_TEST_3_WERT = (RXBUF_UCHAR(19)); // Minimum simulated temperature at HVS level at the end of the discharge of the third capacity test / Minimale // simulierte Temperatur auf HVS-Ebene bei Entladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MIN_DCH_END_TEST_3_WERT", STAT_TEMP_MIN_DCH_END_TEST_3_WERT, "\"°C\""); unsigned char STAT_TEMP_MAX_DCH_END_TEST_3_WERT = (RXBUF_UCHAR(20)); // Maximum simulated temperature at HVS level at the end of the discharge of the third capacity test / Maximale // simulierte Temperatur auf HVS-Ebene bei Entladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MAX_DCH_END_TEST_3_WERT", STAT_TEMP_MAX_DCH_END_TEST_3_WERT, "\"°C\""); unsigned char STAT_TEMP_MEAN_CHA_END_TEST_3_WERT = (RXBUF_UCHAR(21)); // Mean simulated temperature at HVS level at the end of charging of the third capacity test / Mittlere // simulierte Temperatur auf HVS-Ebene bei Ladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MEAN_CHA_END_TEST_3_WERT", STAT_TEMP_MEAN_CHA_END_TEST_3_WERT, "\"°C\""); unsigned char STAT_TEMP_MIN_CHA_END_TEST_3_WERT = (RXBUF_UCHAR(22)); // Minimum simulated temperature at HVS level at the end of charging of the third capacity test / Minimale // simulierte Temperatur auf HVS-Ebene bei Ladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MIN_CHA_END_TEST_3_WERT", STAT_TEMP_MIN_CHA_END_TEST_3_WERT, "\"°C\""); unsigned char STAT_TEMP_MAX_CHA_END_TEST_3_WERT = (RXBUF_UCHAR(23)); // Maximum simulated temperature at HVS level at the end of charging of the third capacity test / Maximale // simulierte Temperatur auf HVS-Ebene bei Ladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_TEMP_MAX_CHA_END_TEST_3_WERT", STAT_TEMP_MAX_CHA_END_TEST_3_WERT, "\"°C\""); float STAT_FRC_PWR_CHG_TEST_3_WERT = (RXBUF_UCHAR(24)/10.0f); // Charging power (from forecast) in the third capacity test / Ladeleistung (aus Prognose) bei drittem // Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_FRC_PWR_CHG_TEST_3_WERT", STAT_FRC_PWR_CHG_TEST_3_WERT, "\"kW\""); float STAT_I_DCH_END_FILT_TEST_3_WERT = (RXBUF_UCHAR(25)/10.0f); // Aborted discharge current (filtered) during the third capacity test / Entladeabbruch-Strom (gefiltert) bei // drittem Kapazitätstest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_I_DCH_END_FILT_TEST_3_WERT", STAT_I_DCH_END_FILT_TEST_3_WERT, "\"A\""); unsigned char STAT_U_CELL_MIN_IDX_DCH_END_TEST_3_WERT = (RXBUF_UCHAR(26)); // Index of the cell with the minimum cell voltage at the end of the discharge of the third capacity test / Index // der Zelle mit der minimalen Zellspannung bei Entladeende des dritten Kapazitätstests ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "RB_SOH_KAPATEST_ERW", "STAT_U_CELL_MIN_IDX_DCH_END_TEST_3_WERT", STAT_U_CELL_MIN_IDX_DCH_END_TEST_3_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_CPI_ANALYSE: { // 0xE5F4 if (datalen < 23) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_CPI_ANALYSE", 23); break; } float STAT_CPI_REL_TEMP_WERT = (RXBUF_SINT(0)/10.0f); // Relative deviation of the calculated temperature gradient from the threshold value / Relative Abweichung des // berechneten Temperaturgradienten vom Schwellenwert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_REL_TEMP_WERT", STAT_CPI_REL_TEMP_WERT, "\"%\""); float STAT_CPI_TEMP_GRAD_WERT = (RXBUF_SINT32(2)/1000.0f); // Calculated temperature gradient of the CPI diagnosis (unit K / min) / Berechneter Temperaturgradient der // CPI-Diagnose (Einheit K/min) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_TEMP_GRAD_WERT", STAT_CPI_TEMP_GRAD_WERT, ""); unsigned long STAT_CPI_E_LOSS_WERT = (RXBUF_UINT32(6)); // Calculated energy loss of the CPI diagnosis (unit: Ws / min) / Berechnete Verlustenergie der CPI-Diagnose // (Einheit: Ws/min) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_E_LOSS_WERT", STAT_CPI_E_LOSS_WERT, ""); unsigned char STAT_CPI_DIAGNOSE = (RXBUF_UCHAR(10)); // Result of CPI diagnosis / Ergebnis CPI Diagnose ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_DIAGNOSE", STAT_CPI_DIAGNOSE, "\"0-n\""); char STAT_CPI_TEMP_UMGEBUNG_WERT = (RXBUF_SCHAR(11)); // Ambient temperature during the CPI diagnosis / Umgebungstemperatatur während der CPI-Diagnose ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_TEMP_UMGEBUNG_WERT", STAT_CPI_TEMP_UMGEBUNG_WERT, "\"°C\""); unsigned char STAT_CPI_FRT_AC = (RXBUF_UCHAR(12)); // Status of the interior air conditioning during the CPI diagnosis / Status der Innenraum-Klimatisierung während // der CPI-Diagnose ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_FRT_AC", STAT_CPI_FRT_AC, "\"0-n\""); unsigned long STAT_CPI_LIFE_TIME_WERT = (RXBUF_UINT32(13)); // Time stamp at the end of the CPI diagnosis / Zeitstempel am Ende der CPI-Diagnose ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "SME", "CPI_ANALYSE", "STAT_CPI_LIFE_TIME_WERT", STAT_CPI_LIFE_TIME_WERT, "\"s\""); unsigned short STAT_ANZAHL_CPI_OK_WERT = (RXBUF_UINT(17)); // Number of CPI diagnoses since the last reset with the result Diag OK / Anzahl der CPI-Diagnosen seit dem // letzten Reset mit Ergebnis Diag OK ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "CPI_ANALYSE", "STAT_ANZAHL_CPI_OK_WERT", STAT_ANZAHL_CPI_OK_WERT, ""); unsigned short STAT_ANZAHL_CPI_FAILED_WERT = (RXBUF_UINT(19)); // Number of CPI diagnoses since the last reset with the result Diag Failed / Anzahl der CPI-Diagnosen seit dem // letzten Reset mit Ergebnis Diag Failed ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "CPI_ANALYSE", "STAT_ANZAHL_CPI_FAILED_WERT", STAT_ANZAHL_CPI_FAILED_WERT, ""); unsigned short STAT_ANZAHL_CPI_ABGEBROCHEN_WERT = (RXBUF_UINT(21)); // Number of prematurely aborted CPI diagnoses since the last reset / Anzahl der vorzeitig abgebrochenen // CPI-Diagnosen seit dem letzten Reset ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SME", "CPI_ANALYSE", "STAT_ANZAHL_CPI_ABGEBROCHEN_WERT", STAT_ANZAHL_CPI_ABGEBROCHEN_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_SME_KAPAZITAETSTEST_ASYMMETRIE_POTENTIAL: { // 0xE5FA if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SME_KAPAZITAETSTEST_ASYMMETRIE_POTENTIAL", 4); break; } unsigned char STAT_KAPATEST_ASYM_ZELLE_ID_WERT = (RXBUF_UCHAR(0)); // Cell index of the cell that was most deeply discharged during the capacity test. / Zell-Index der Zelle, die // während des Kapazitäts-Test am tiefsten entladen wurde. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "KAPAZITAETSTEST_ASYMMETRIE_POTENTIAL", "STAT_KAPATEST_ASYM_ZELLE_ID_WERT", STAT_KAPATEST_ASYM_ZELLE_ID_WERT, ""); unsigned char STAT_KAPATEST_ASYM_MOD_ID_WERT = (RXBUF_UCHAR(1)); // Module index of the cell that was deeply discharged during the capacity test. / Modul-Index der Zelle, die // während Kapazitätstest am tiefsten entladen wurde. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SME", "KAPAZITAETSTEST_ASYMMETRIE_POTENTIAL", "STAT_KAPATEST_ASYM_MOD_ID_WERT", STAT_KAPATEST_ASYM_MOD_ID_WERT, ""); float STAT_KAPATEST_ASYM_POT_WERT = (RXBUF_UINT(2)/10.0f); // Capacity area that can potentially be made usable by balancing. / Kapazitätsbereich, der potenziell durch eine // Symmetrierung nutzbar gemacht werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SME", "KAPAZITAETSTEST_ASYMMETRIE_POTENTIAL", "STAT_KAPATEST_ASYM_POT_WERT", STAT_KAPATEST_ASYM_POT_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; }