// // Warning: don't edit - generated by generate_ecu_code.pl processing ../dev/bdc.json: BDC 40: Body domain controller // This generated code makes it easier to process CANBUS messages from the BDC ecu in a BMW i3 // case I3_PID_BDC_PIA_NR_AKTUELL: { // 0x0F27 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_PIA_NR_AKTUELL", 1); break; } unsigned char STAT_PIA_NR_AKTUELL = (RXBUF_UCHAR(0)); // The PIA number currently sent by the CAS on the bus. Notes: - Assignment according to table // TAB_CAS_PIA_NUMMER. / Das Result aktuell vom CAS auf dem Bus gesendeten PIA Nummer. Hinweise: - Zuordnung // gemäß Tabelle TAB_CAS_PIA_NUMMER. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_NR_AKTUELL", "STAT_PIA_NR_AKTUELL", STAT_PIA_NR_AKTUELL, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOD_KALIBRIERUNG: { // 0xA093 // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BATTERIEVORSCHAEDIGUNGSHISTORIE: { // 0xA099 // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_LIN_EINLERNVORGANG: { // 0xA118 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_LIN_EINLERNVORGANG", 2); break; } unsigned char STAT_ROUTINE = (RXBUF_UCHAR(0)); // Execution status of the routine / Ausführungsstatus der Routine ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_LIN_EINLERNVORGANG", "STAT_ROUTINE", STAT_ROUTINE, "\"0-n\""); unsigned char STAT_WISCHER_LIN_EINLERNVORGANG = (RXBUF_UCHAR(1)); // Indicates the status of the teach-in process / Gibt den Status des Einlernvorgangs an ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_LIN_EINLERNVORGANG", "STAT_WISCHER_LIN_EINLERNVORGANG", STAT_WISCHER_LIN_EINLERNVORGANG, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_SELBSTTEST: { // 0xA322 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_SELBSTTEST", 2); break; } char STAT_SELBSTTEST_NR = (RXBUF_SCHAR(0)); // Status mirror test / Status Spiegeltest ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AUSSENSPIEGEL_SELBSTTEST", "STAT_SELBSTTEST_NR", STAT_SELBSTTEST_NR, "\"0-n\""); char STAT_SELBSTTEST_FC_NR = (RXBUF_SCHAR(1)); // Internal error output / Ausgabe interner Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AUSSENSPIEGEL_SELBSTTEST", "STAT_SELBSTTEST_FC_NR", STAT_SELBSTTEST_FC_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_REGENSENSOR_INITIALISIERUNG: { // 0xA3B7 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_REGENSENSOR_INITIALISIERUNG", 1); break; } unsigned char STAT_REGENSENSOR_INIT_VORGANG_NR = (RXBUF_UCHAR(0)); // Status of rain sensor initialization process / Status Initialisierungsvorgang Regensensor ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "REGENSENSOR_INITIALISIERUNG", "STAT_REGENSENSOR_INIT_VORGANG_NR", STAT_REGENSENSOR_INIT_VORGANG_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LEUCHTEN_KALTUEBERWACHUNG: { // 0xA530 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LEUCHTEN_KALTUEBERWACHUNG", 1); break; } unsigned char STAT_KALTUEBERWACHUNG_NR = (RXBUF_UCHAR(0)); // Result of the routine / Ergebnis der Routine ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LEUCHTEN_KALTUEBERWACHUNG", "STAT_KALTUEBERWACHUNG_NR", STAT_KALTUEBERWACHUNG_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LEUCHTEN_WARMUEBERWACHUNG: { // 0xA531 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LEUCHTEN_WARMUEBERWACHUNG", 1); break; } unsigned char STAT_WARMUEBERWACHUNG_NR = (RXBUF_UCHAR(0)); // Result of the routine / Ergebnis der Routine ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LEUCHTEN_WARMUEBERWACHUNG", "STAT_WARMUEBERWACHUNG_NR", STAT_WARMUEBERWACHUNG_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOEHENSTAENDE_OFFSET_RESET: { // 0xA532 if (datalen < 0) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOEHENSTAENDE_OFFSET_RESET", 0); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_GURTZUBRINGER_INIT: { // 0xA71A if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_GURTZUBRINGER_INIT", 2); break; } unsigned char STAT_ROUTINE_FA_NR = (RXBUF_UCHAR(0)); // Current state of the routine driver / Aktueller Zustand der Routine Fahrer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "GURTZUBRINGER_INIT", "STAT_ROUTINE_FA_NR", STAT_ROUTINE_FA_NR, "\"0-n\""); unsigned char STAT_ROUTINE_BF_NR = (RXBUF_UCHAR(1)); // Current state of the passenger routine / Aktueller Zustand der Routine Beifahrer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "GURTZUBRINGER_INIT", "STAT_ROUTINE_BF_NR", STAT_ROUTINE_BF_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LIN_AUTOADRESSIERUNG: { // 0xA838 // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ELV_ANLIEFERZUSTAND: { // 0xAA73 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ELV_ANLIEFERZUSTAND", 1); break; } unsigned char STAT_ELV_ANLIEFERZUSTAND = (RXBUF_UCHAR(0)); // The result indicates whether resetting the ELV to the delivery state was successful or not 0: successful 1: // not successful / Das Result gibt an ob das Rücksetzen der ELV in den Anlieferzustand erfolgreich war oder // nicht 0: erfolgreich 1: nicht erfolgreich ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELV_ANLIEFERZUSTAND", "STAT_ELV_ANLIEFERZUSTAND", STAT_ELV_ANLIEFERZUSTAND, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SMO_SIMULATION_BEDIENUNG: { // 0xAA80 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SMO_SIMULATION_BEDIENUNG", 1); break; } unsigned char STAT_AUSFUEHRUNGSSTATUS = (RXBUF_UCHAR(0)); // The result indicates whether the requested action was carried out successfully or an error occurred / Das // Result gibt an, ob die angeforderte Aktion erfolgreich durchgeführt wurde oder ein Fehler aufgetreten ist ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SMO_SIMULATION_BEDIENUNG", "STAT_AUSFUEHRUNGSSTATUS", STAT_AUSFUEHRUNGSSTATUS, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STEUERN_CA_BROADCAST: { // 0xAC54 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STEUERN_CA_BROADCAST", 8); break; } unsigned char STAT_CA_SCHL_NUM1 = (RXBUF_UCHAR(0)); // The result contains the key number (0-19) of the key no. 1 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 1. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM1", STAT_CA_SCHL_NUM1, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM2 = (RXBUF_UCHAR(1)); // The result contains the key number (0-19) of the key no. 2 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 2. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM2", STAT_CA_SCHL_NUM2, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM3 = (RXBUF_UCHAR(2)); // The result contains the key number (0-19) of the key no. 3 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 3. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM3", STAT_CA_SCHL_NUM3, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM4 = (RXBUF_UCHAR(3)); // The result contains the key number (0-19) of the key no. 4 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 4. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM4", STAT_CA_SCHL_NUM4, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM5 = (RXBUF_UCHAR(4)); // The result contains the key number (0-19) of the key no. 5 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 5. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM5", STAT_CA_SCHL_NUM5, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM6 = (RXBUF_UCHAR(5)); // The result contains the key number (0-19) of the key no. 6 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 6. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM6", STAT_CA_SCHL_NUM6, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM7 = (RXBUF_UCHAR(6)); // The result contains the key number (0-19) of the key no. 7. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 7. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM7", STAT_CA_SCHL_NUM7, "\"0-n\""); unsigned char STAT_CA_SCHL_NUM8 = (RXBUF_UCHAR(7)); // The result contains the key number (0-19) of the key no. 8 found. Notes: - 0-19 = number of the key in the // transponder table. - 255 = no further key found. - ATTENTION: not to be confused with CA number (0-7). / Das // Result enthält die Schlüssel-Nummer (0-19) des gefundenen Schlüssels Nr. 8. Hinweise: - 0-19= Nummer des // Schlüssels in der Transpondertabelle. - 255= kein weiterer Schlüssel gefunden. - ACHTUNG: nicht zu verwechseln // mit CA-Nummer (0-7). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_BROADCAST", "STAT_CA_SCHL_NUM8", STAT_CA_SCHL_NUM8, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STEUERN_CA_ANTENNEN_TEST: { // 0xAC55 if (datalen < 17) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STEUERN_CA_ANTENNEN_TEST", 17); break; } unsigned char STAT_CA_ANTENNEN_TEST_OKAY = (RXBUF_UCHAR(0)); // The result contains the result of the antenna test. Notes: - Allocation takes place according to table // TAB_CAS_CA_ANTENNEN_TEST. / Das Result enthält das Ergebnis des Antennentests. Hinweise: - Zuordnung erfolgt // gemäß Tabelle TAB_CAS_CA_ANTENNEN_TEST. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_TEST_OKAY", STAT_CA_ANTENNEN_TEST_OKAY, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_1 = (RXBUF_UCHAR(1)); // The result contains the installation location of the 1st antenna in the table. / Das Result enthält das // Verbauort der 1. Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_1", STAT_CA_ANTENNEN_VERBAUORT_1, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_2 = (RXBUF_UCHAR(2)); // The result contains the installation location of the 2nd antenna in the table. / Das Result enthält das // Verbauort der 2. Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_2", STAT_CA_ANTENNEN_VERBAUORT_2, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_3 = (RXBUF_UCHAR(3)); // The result contains the installation location of the 3rd antenna in the table. / Das Result enthält das // Verbauort der 3. Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_3", STAT_CA_ANTENNEN_VERBAUORT_3, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_4 = (RXBUF_UCHAR(4)); // The result contains the location of the 4th antenna in the table. / Das Result enthält das Verbauort der 4. // Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_4", STAT_CA_ANTENNEN_VERBAUORT_4, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_5 = (RXBUF_UCHAR(5)); // The result contains the installation location of the 5th antenna in the table. / Das Result enthält das // Verbauort der 5. Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_5", STAT_CA_ANTENNEN_VERBAUORT_5, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_6 = (RXBUF_UCHAR(6)); // The result contains the installation location of the 6th antenna in the table. / Das Result enthält das // Verbauort der 6. Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_6", STAT_CA_ANTENNEN_VERBAUORT_6, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_7 = (RXBUF_UCHAR(7)); // The result contains the location of the 7th antenna in the table. / Das Result enthält das Verbauort der 7. // Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_7", STAT_CA_ANTENNEN_VERBAUORT_7, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_VERBAUORT_8 = (RXBUF_UCHAR(8)); // The result contains the installation location of the 8th antenna in the table. / Das Result enthält das // Verbauort der 8. Antenne der Tabelle. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_VERBAUORT_8", STAT_CA_ANTENNEN_VERBAUORT_8, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_1 = (RXBUF_UCHAR(9)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_1", STAT_CA_ANTENNEN_STATUS_1, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_2 = (RXBUF_UCHAR(10)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_2", STAT_CA_ANTENNEN_STATUS_2, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_3 = (RXBUF_UCHAR(11)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_3", STAT_CA_ANTENNEN_STATUS_3, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_4 = (RXBUF_UCHAR(12)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_4", STAT_CA_ANTENNEN_STATUS_4, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_5 = (RXBUF_UCHAR(13)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_5", STAT_CA_ANTENNEN_STATUS_5, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_6 = (RXBUF_UCHAR(14)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_6", STAT_CA_ANTENNEN_STATUS_6, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_7 = (RXBUF_UCHAR(15)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_7", STAT_CA_ANTENNEN_STATUS_7, "\"0-n\""); unsigned char STAT_CA_ANTENNEN_STATUS_8 = (RXBUF_UCHAR(16)); // The result contains the result of the antenna test. / Das Result enthält das Ergebnis des Antennentests. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_CA_ANTENNEN_TEST", "STAT_CA_ANTENNEN_STATUS_8", STAT_CA_ANTENNEN_STATUS_8, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STEUERN_FBD_EMPFAENGER_INIT: { // 0xAC58 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STEUERN_FBD_EMPFAENGER_INIT", 1); break; } unsigned char STAT_FBD_EMPFAENGER_INIT = (RXBUF_UCHAR(0)); // Initialization status of the FBD receiver. Notes: - The assignment is made according to table // TAB_CAS_FBD_EMPFAENGER_INIT_STATUS. / Initialiserungsstatus des FBD Empfängers. Hinweise: - Die Zuordnung // erfolgt gemäß Tabelle TAB_CAS_FBD_EMPFAENGER_INIT_STATUS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STEUERN_FBD_EMPFAENGER_INIT", "STAT_FBD_EMPFAENGER_INIT", STAT_FBD_EMPFAENGER_INIT, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FBD_REICHWEITENMESSUNG: { // 0xAC5D if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FBD_REICHWEITENMESSUNG", 1); break; } unsigned char STAT_REICHWEITENMESSUNG_AKTIV = (RXBUF_UCHAR(0)); // The result contains the status of whether the FBD receiver is in range measurement mode: 0 = range measurement // activated 1 = range measurement deactivated / Das Result enthält den Status, ob der FBD-Empfänger im // Reichweitenmessmodus ist: 0 = Reichweitenmessung aktiviert 1 = Reichweitenmessung deaktiviert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_REICHWEITENMESSUNG", "STAT_REICHWEITENMESSUNG_AKTIV", STAT_REICHWEITENMESSUNG_AKTIV, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FBD_FEHLER: { // 0xAC5E if (datalen < 14) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FBD_FEHLER", 14); break; } unsigned char STAT_FEHLER_X = (RXBUF_UCHAR(0)); // The result contains the currently recognized errors in the FBD receiver. Note: For each error, a result is // generated dynamically from the bit-coded signal of the FBD receiver. / Das Result enthält die aktuell // erkannten Fehler im FBD-Empfänger. Hinweis: Pro Fehler wird ein Result dynamisch aus dem bitcodiertem Signal // des FBD-Empfängers generiert. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_FEHLER_X", STAT_FEHLER_X, "\"0-n\""); unsigned char STAT_ANZAHL_RESETS_WERT = (RXBUF_UCHAR(1)); // The result contains the number of FBD receiver resets. 0-254 = number of resets 255 = invalid / unknown / Das // Result enthält die Anzahl an FBD-Empfänger Resets. 0-254 = Anzahl Resets 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_RESETS_WERT", STAT_ANZAHL_RESETS_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE1_WERT = (RXBUF_UCHAR(2)); // The result contains the number of radio interference on channel 1 in the corresponding period. Phase 1 = 1 sec // to 10 sec 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die Anzahl // der Funkstörung auf Kanal 1 im entsprechenden Zeitraum. Phase 1 = 1 sek bis 10 sek 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE1_WERT", STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE1_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE2_WERT = (RXBUF_UCHAR(3)); // The result contains the number of radio interference on channel 1 in the corresponding period. Phase 2 = 10 // sec to 1 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die // Anzahl der Funkstörung auf Kanal 1 im entsprechenden Zeitraum. Phase 2 = 10 sek bis 1 min 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE2_WERT", STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE2_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE3_WERT = (RXBUF_UCHAR(4)); // The result contains the number of radio interference on channel 1 in the corresponding period. Phase 3 = 1 min // to 10 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die Anzahl // der Funkstörung auf Kanal 1 im entsprechenden Zeitraum. Phase 3 = 1 min bis 10 min 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE3_WERT", STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE3_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE4_WERT = (RXBUF_UCHAR(5)); // The result contains the number of radio interference on channel 1 in the corresponding period. Phase 4 = // greater than 10 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält // die Anzahl der Funkstörung auf Kanal 1 im entsprechenden Zeitraum. Phase 4 = grösser 10 min 0 - 6 = Anzahl // der Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE4_WERT", STAT_ANZAHL_STOERUNGEN_KANAL1_PHASE4_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE1_WERT = (RXBUF_UCHAR(6)); // The result contains the number of radio interference on channel 2 in the corresponding period. Phase 1 = 1 sec // to 10 sec 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die Anzahl // der Funkstörung auf Kanal 2 im entsprechenden Zeitraum. Phase 1 = 1 sek bis 10 sek 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE1_WERT", STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE1_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE2_WERT = (RXBUF_UCHAR(7)); // The result contains the number of radio interference on channel 2 in the corresponding period. Phase 2 = 10 // sec to 1 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die // Anzahl der Funkstörung auf Kanal 2 im entsprechenden Zeitraum. Phase 2 = 10 sek bis 1 min 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE2_WERT", STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE2_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE3_WERT = (RXBUF_UCHAR(8)); // The result contains the number of radio interference on channel 2 in the corresponding period. Phase 3 = 1 min // to 10 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die Anzahl // der Funkstörung auf Kanal 2 im entsprechenden Zeitraum. Phase 3 = 1 min bis 10 min 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE3_WERT", STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE3_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE4_WERT = (RXBUF_UCHAR(9)); // The result contains the number of radio interference on channel 2 in the corresponding period. Phase 4 = // greater than 10 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält // die Anzahl der Funkstörung auf Kanal 2 im entsprechenden Zeitraum. Phase 4 = grösser 10 min 0 - 6 = Anzahl // der Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE4_WERT", STAT_ANZAHL_STOERUNGEN_KANAL2_PHASE4_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE1_WERT = (RXBUF_UCHAR(10)); // The result contains the number of radio interference on channel 3 in the corresponding period. Phase 1 = 1 sec // to 10 sec 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die Anzahl // der Funkstörung auf Kanal 3 im entsprechenden Zeitraum. Phase 1 = 1 sek bis 10 sek 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE1_WERT", STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE1_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE2_WERT = (RXBUF_UCHAR(11)); // The result contains the number of radio interference on channel 3 in the corresponding period. Phase 2 = 10 // sec to 1 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die // Anzahl der Funkstörung auf Kanal 3 im entsprechenden Zeitraum. Phase 2 = 10 sek bis 1 min 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE2_WERT", STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE2_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE3_WERT = (RXBUF_UCHAR(12)); // The result contains the number of radio interference on channel 3 in the corresponding period. Phase 3 = 1 min // to 10 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält die Anzahl // der Funkstörung auf Kanal 3 im entsprechenden Zeitraum. Phase 3 = 1 min bis 10 min 0 - 6 = Anzahl der // Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE3_WERT", STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE3_WERT, ""); unsigned char STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE4_WERT = (RXBUF_UCHAR(13)); // The result contains the number of radio interference on channel 3 in the corresponding period. Phase 4 = // greater than 10 min 0 - 6 = number of radio interference 7 ... 255 = invalid / unknown / Das Result enthält // die Anzahl der Funkstörung auf Kanal 3 im entsprechenden Zeitraum. Phase 4 = grösser 10 min 0 - 6 = Anzahl // der Funkstörungen 7 ... 255 = Ungültig/Unbekannt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FBD_FEHLER", "STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE4_WERT", STAT_ANZAHL_STOERUNGEN_KANAL3_PHASE4_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ELSV_TASTER: { // 0xD070 if (datalen < 5) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ELSV_TASTER", 5); break; } char STAT_TASTER_ELSV_HINTEN_EIN = (RXBUF_SCHAR(0)); // 0: Push button eLSV backwards not actuated 1: Push button eLSV backwards actuated / 0: Taster eLSV nach hinten // nicht betätigt 1: Taster eLSV nach hinten betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_TASTER", "STAT_TASTER_ELSV_HINTEN_EIN", STAT_TASTER_ELSV_HINTEN_EIN, "\"0/1\""); char STAT_TASTER_ELSV_OBEN_EIN = (RXBUF_SCHAR(1)); // 0: Push button eLSV upwards not actuated 1: Push button eLSV upwards actuated / 0: Taster eLSV nach oben nicht // betätigt 1: Taster eLSV nach oben betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_TASTER", "STAT_TASTER_ELSV_OBEN_EIN", STAT_TASTER_ELSV_OBEN_EIN, "\"0/1\""); char STAT_TASTER_ELSV_UNTEN_EIN = (RXBUF_SCHAR(2)); // 0: Down button eLSV not pressed 1: eLSV button down pressed / 0: Taster eLSV nach unten nicht betätigt 1: // Taster eLSV nach unten betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_TASTER", "STAT_TASTER_ELSV_UNTEN_EIN", STAT_TASTER_ELSV_UNTEN_EIN, "\"0/1\""); char STAT_TASTER_ELSV_VORNE_EIN = (RXBUF_SCHAR(3)); // 0: Push button eLSV forward not actuated 1: Push button eLSV forward actuated / 0: Taster eLSV nach vorne // nicht betätigt 1: Taster eLSV nach vorne betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_TASTER", "STAT_TASTER_ELSV_VORNE_EIN", STAT_TASTER_ELSV_VORNE_EIN, "\"0/1\""); char STAT_TASTER_ELSV_NR = (RXBUF_SCHAR(4)); // 0: eLSV button not pressed 1: eLSV button pressed backwards 2: eLSV button pressed upwards 3: eLSV button // pressed forward 4: eLSV button pressed downwards 5: signal invalid / 0: Taster eLSV nicht betätigt 1: Taster // eLSV nach hinten betätigt 2: Taster eLSV nach oben betätigt 3: Taster eLSV nach vorne betätigt 4: Taster eLSV // nach unten betätigt 5: Signal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_TASTER", "STAT_TASTER_ELSV_NR", STAT_TASTER_ELSV_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKRADHEIZUNG_TASTER: { // 0xD073 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKRADHEIZUNG_TASTER", 1); break; } char STAT_TASTER_LENKRADHEIZUNG_EIN = (RXBUF_SCHAR(0)); // 0: steering wheel heating button not pressed; 1: Steering wheel heating button pressed / 0: Lenkradheizung // Taster nicht betätigt; 1: Lenkradheizung Taster betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRADHEIZUNG_TASTER", "STAT_TASTER_LENKRADHEIZUNG_EIN", STAT_TASTER_LENKRADHEIZUNG_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ELSV_STATEMACHINE: { // 0xD07B if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ELSV_STATEMACHINE", 2); break; } short STAT_STATEMACHINE = (RXBUF_SINT(0)); // <<< to be filled by the delivery person !!! >>> / <<< vom Lieferanren zu befüllen !!! >>> ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "ELSV_STATEMACHINE", "STAT_STATEMACHINE", STAT_STATEMACHINE, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ELSV_VORHANDEN: { // 0xD07F if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ELSV_VORHANDEN", 2); break; } short STAT_VORHANDEN_ELSV_EIN = (RXBUF_SINT(0)); // Electric steering column adjustment 0: not available 1: available / Elektrische Lenksäulenverstellung 0: nicht // vorhanden 1: vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "ELSV_VORHANDEN", "STAT_VORHANDEN_ELSV_EIN", STAT_VORHANDEN_ELSV_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKRAD_MFL: { // 0xD081 if (datalen < 14) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKRAD_MFL", 14); break; } char STAT_TASTER_LENKRAD_MFL_FGR_SET_EIN = (RXBUF_SCHAR(0)); // 0: FGR button SET not pressed 1: FGR button SET pressed / 0: FGR-Taste SET nicht betätigt 1: FGR-Taste SET // betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_FGR_SET_EIN", STAT_TASTER_LENKRAD_MFL_FGR_SET_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_FGR_TIPPRAENDEL_NR = (RXBUF_SCHAR(1)); // 0: No operation 1: Knurl on level 2 below 2: Knurl on level 1 below 3: Knurl on level 1 above 4: Knurl on // level 2 above 5: Invalid position / 0: Keine Betätigung 1: Rändel auf Stufe 2 unten 2: Rändel auf Stufe 1 // unten 3: Rändel auf Stufe 1 oben 4: Rändel auf Stufe 2 oben 5: ungültige Position ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_FGR_TIPPRAENDEL_NR", STAT_TASTER_LENKRAD_MFL_FGR_TIPPRAENDEL_NR, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_FGR_RES_EIN = (RXBUF_SCHAR(2)); // 0: FGR button RES (resume) not pressed 1: FGR button RES (resume) pressed / 0: FGR-Taste RES (Wiederaufnahme) // nicht betätigt 1: FGR-Taste RES (Wiederaufnahme) betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_FGR_RES_EIN", STAT_TASTER_LENKRAD_MFL_FGR_RES_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_UMSCHALT_TASTE_EIN = (RXBUF_SCHAR(3)); // 0: ACC / DCC toggle key not pressed 1: ACC / DCC toggle key pressed / 0: Umschalttaste ACC/ DCC nicht betätigt // 1: Umschalttaste ACC/ DCC betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_UMSCHALT_TASTE_EIN", STAT_TASTER_LENKRAD_MFL_UMSCHALT_TASTE_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_ACC_ABSTAND_EIN = (RXBUF_SCHAR(4)); // 0: FGR button ACC distance not pressed 1: FGR button ACC distance pressed / 0: FGR-Taste ACC-Abstand nicht // betätigt 1: FGR-Taste ACC-Abstand betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_ACC_ABSTAND_EIN", STAT_TASTER_LENKRAD_MFL_ACC_ABSTAND_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_FGR_OFF_EIN = (RXBUF_SCHAR(5)); // 0: FGR button OFF not pressed 1: FGR button OFF pressed / 0: FGR-Taste OFF nicht betätigt 1: FGR-Taste OFF // betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_FGR_OFF_EIN", STAT_TASTER_LENKRAD_MFL_FGR_OFF_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_PUSH_TO_TALK_EIN = (RXBUF_SCHAR(6)); // 0: Push to talk not activated 1: Push to talk activated / 0: Push to talk nicht betätigt 1: Push to talk // betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_PUSH_TO_TALK_EIN", STAT_TASTER_LENKRAD_MFL_PUSH_TO_TALK_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_MODE_TASTE = (RXBUF_SCHAR(7)); // 0: Source / Mode button not pressed 1: Source / Mode button pressed / 0: Taste Source / Mode nicht betätigt 1: // Taste Source / Mode betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_MODE_TASTE", STAT_TASTER_LENKRAD_MFL_MODE_TASTE, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_TIPPRAENDEL_BC_NR = (RXBUF_SCHAR(8)); // 0: On-board computer (BC) tapping knurl not activated 1: On-board computer tapping knurl pressed 2: Tipping // knurl down 3: Typing knurl up 4: Invalid position / 0: Tipprändel Bordcomputer (BC) nicht betätigt 1: // Tipprändel Bordcomputer gedrückt 2: Tipprändel nach unten 3: Tipprändel nach oben 4: ungültige Position ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_TIPPRAENDEL_BC_NR", STAT_TASTER_LENKRAD_MFL_TIPPRAENDEL_BC_NR, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_TEL_EIN = (RXBUF_SCHAR(9)); // 0: Telephone key not pressed 1: Telephone key pressed / 0: Telefontaste nicht betätigt 1: Telefontaste // betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_TEL_EIN", STAT_TASTER_LENKRAD_MFL_TEL_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_VOL_MINUS_EIN = (RXBUF_SCHAR(10)); // 0: Volume / volume minus button not pressed 1: Volume / volume minus button pressed / 0: Taste // Volume/Lautstärke minus nicht betätigt 1: Taste Volume/Lautstärke minus betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_VOL_MINUS_EIN", STAT_TASTER_LENKRAD_MFL_VOL_MINUS_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL_VOL_PLUS_EIN = (RXBUF_SCHAR(11)); // 0: Volume / volume plus button not pressed 1: Volume / volume plus button pressed / 0: Taste Volume/Lautstärke // plus nicht betätigt 1: Taste Volume/Lautstärke plus betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL_VOL_PLUS_EIN", STAT_TASTER_LENKRAD_MFL_VOL_PLUS_EIN, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL1_NR = (RXBUF_SCHAR(12)); // VS result 0: no action 1-n: see sub-table TAB_MFL_TASTEN1 Numbering is retained, even if one or more functions // are omitted. / VS-Result 0: keine Aktion 1-n: siehe Sub-Tabelle TAB_MFL_TASTEN1 Numerierung bleibt erhalten, // auch bei Entfall einer oder mehrerer Funktionen. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL1_NR", STAT_TASTER_LENKRAD_MFL1_NR, "\"0-n\""); char STAT_TASTER_LENKRAD_MFL2_NR = (RXBUF_SCHAR(13)); // VS result 0: no action 1-n: see sub-table TAB_MFL_TASTEN2 Numbering is retained, even if one or more functions // are omitted. / VS-Result 0: keine Aktion 1-n: siehe Sub-Tabelle TAB_MFL_TASTEN2 Numerierung bleibt erhalten, // auch bei Entfall einer oder mehrerer Funktionen. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_MFL", "STAT_TASTER_LENKRAD_MFL2_NR", STAT_TASTER_LENKRAD_MFL2_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ELSV_POS_STATUS: { // 0xD089 if (datalen < 13) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ELSV_POS_STATUS", 13); break; } unsigned short STAT_ELSV_POS_HOEHE_WERT = (RXBUF_UINT(0)); // Current real value vertical axis / Aktueller Realtivwert vertikale Achse ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_POS_HOEHE_WERT", STAT_ELSV_POS_HOEHE_WERT, "\"Digit\""); unsigned short STAT_ELSV_POS_LAENGE_WERT = (RXBUF_UINT(2)); // Current real value horizontal axis / Aktueller Realtivwert horizontale Achse ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_POS_LAENGE_WERT", STAT_ELSV_POS_LAENGE_WERT, "\"Digit\""); char STAT_ELSV_BEWEGUNG_OBEN_EIN = (RXBUF_SCHAR(4)); // 0: ELSV does not move upwards 1: ELSV moves upwards / 0: ELSV fährt nicht nach oben 1: ELSV fährt nach oben ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_BEWEGUNG_OBEN_EIN", STAT_ELSV_BEWEGUNG_OBEN_EIN, "\"0/1\""); char STAT_ELSV_BEWEGUNG_UNTEN_EIN = (RXBUF_SCHAR(5)); // 0: ELSV does not move down 1: ELSV moves down / 0: ELSV fährt nicht nach unten 1: ELSV fährt nach unten ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_BEWEGUNG_UNTEN_EIN", STAT_ELSV_BEWEGUNG_UNTEN_EIN, "\"0/1\""); char STAT_ELSV_BEWEGUNG_EINGEFAHREN_EIN = (RXBUF_SCHAR(6)); // 0: ELSV does not retract (front) 1: ELSV retracts (front) / 0: ELSV fährt nicht ein (vorne) 1: ELSV fährt ein // (vorne) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_BEWEGUNG_EINGEFAHREN_EIN", STAT_ELSV_BEWEGUNG_EINGEFAHREN_EIN, "\"0/1\""); char STAT_ELSV_BEWEGUNG_AUSGEFAHREN_EIN = (RXBUF_SCHAR(7)); // 0: ELSV does not extend (rear) 1: ELSV extends (rear) / 0: ELSV fährt nicht aus (hinten) 1: ELSV fährt nach // aus (hinten) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_BEWEGUNG_AUSGEFAHREN_EIN", STAT_ELSV_BEWEGUNG_AUSGEFAHREN_EIN, "\"0/1\""); char STAT_ELSV_SOFTSTOP_OBEN_EIN = (RXBUF_SCHAR(8)); // 0: ELSV in the travel range window 1: Upper soft stop reached / 0: ELSV im Verfahrbereichsfenster 1: Softstop // oben erreicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_SOFTSTOP_OBEN_EIN", STAT_ELSV_SOFTSTOP_OBEN_EIN, "\"0/1\""); char STAT_ELSV_SOFTSTOP_UNTEN_EIN = (RXBUF_SCHAR(9)); // 0: ELSV in the travel range window 1: Lower soft stop reached / 0: ELSV im Verfahrbereichsfenster 1: Softstop // unten erreicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_SOFTSTOP_UNTEN_EIN", STAT_ELSV_SOFTSTOP_UNTEN_EIN, "\"0/1\""); char STAT_ELSV_SOFTSTOP_EINGEFAHREN_EIN = (RXBUF_SCHAR(10)); // 0: ELSV in the travel range window 1: Soft stop retracted reached / 0: ELSV im Verfahrbereichsfenster 1: // Softstop eingefahren erreicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_SOFTSTOP_EINGEFAHREN_EIN", STAT_ELSV_SOFTSTOP_EINGEFAHREN_EIN, "\"0/1\""); char STAT_ELSV_SOFTSTOP_AUSGEFAHREN_EIN = (RXBUF_SCHAR(11)); // 0: ELSV in the travel range window 1: Soft stop extended reached / 0: ELSV im Verfahrbereichsfenster 1: // Softstop ausgefahren erreicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_SOFTSTOP_AUSGEFAHREN_EIN", STAT_ELSV_SOFTSTOP_AUSGEFAHREN_EIN, "\"0/1\""); char STAT_ELSV_NORMIERUNG = (RXBUF_SCHAR(12)); // Status ELSV normalization see TAB_ELSV_NORMIERUNG_STATUS / Status ELSV Normierung siehe // TAB_ELSV_NORMIERUNG_STATUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ELSV_POS_STATUS", "STAT_ELSV_NORMIERUNG", STAT_ELSV_NORMIERUNG, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SMO_SPIELSCHUTZZAEHLER: { // 0xD096 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SMO_SPIELSCHUTZZAEHLER", 1); break; } unsigned char STAT_SPIELSCHUTZZAEHLER_WERT = (RXBUF_UCHAR(0)); // The result indicates how often the SMO sensor has detected a trip without a valid key being detected in the // rear exterior / Das Result gibt an, wie oft der SMO-Sensor eine Auslösung erkannt hat, ohne das ein gültiger // Schlüssel im Heck-Aussenraum erkannt wurde ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SMO_SPIELSCHUTZZAEHLER", "STAT_SPIELSCHUTZZAEHLER_WERT", STAT_SPIELSCHUTZZAEHLER_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SMO_VARIANTE: { // 0xD098 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SMO_VARIANTE", 1); break; } unsigned char STAT_FAHRZEUGTYP = (RXBUF_UCHAR(0)); // The result indicates which vehicle type the SMO has just set / Das Result gibt an, welchen Fahrzeugtyp das SMO // gerade eingestellt hat ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SMO_VARIANTE", "STAT_FAHRZEUGTYP", STAT_FAHRZEUGTYP, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_PLOCK: { // 0xD09D if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_PLOCK", 1); break; } unsigned char STAT_PLOCK_AKTIV = (RXBUF_UCHAR(0)); // The result contains the current status of the HW input PLOCK / Das Result enthält den aktuellen Zustand des // HW-Eingangs PLOCK ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PLOCK", "STAT_PLOCK_AKTIV", STAT_PLOCK_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZUSATZINFO_LICHT: { // 0xD0F1 if (datalen < 24) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZUSATZINFO_LICHT", 24); break; } unsigned long STAT_KM_STAND_1_WERT = (RXBUF_UINT32(0)); // Mileage / Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_KM_STAND_1_WERT", STAT_KM_STAND_1_WERT, "\"km\""); unsigned char STAT_ENBN_AEP_STATUS_1_WERT = (RXBUF_UCHAR(4)); // Status energy power management / Status Energie Powermanagement ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_ENBN_AEP_STATUS_1_WERT", STAT_ENBN_AEP_STATUS_1_WERT, ""); unsigned char STAT_U_BATT_ANFANG_1_WERT = (RXBUF_UCHAR(5)); // Supply voltage off 3 minutes after terminal 15 / Versorgungsspannung 3 Minuten nach Klemme 15 aus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_U_BATT_ANFANG_1_WERT", STAT_U_BATT_ANFANG_1_WERT, "\"V\""); unsigned short STAT_DAUER_1_WERT = (RXBUF_UINT(6)); // Duration of light activity while standing / Dauer der Lichtaktivität im Stand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_DAUER_1_WERT", STAT_DAUER_1_WERT, "\"min\""); unsigned char STAT_LICHT_1_NR = (RXBUF_UCHAR(8)); // Involved lighting / Beteiligte Beleuchtung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_LICHT_1_NR", STAT_LICHT_1_NR, "\"0-n\""); unsigned char STAT_ABSCHALTUNG_LICHT_1_WERT = (RXBUF_UCHAR(9)); // Switch off light at SFG (it was switched off after 12 hours and the start capability limit was reached). / // Abschaltung Licht bei SFG (fand eine Abschaltung nach Ablauf 12h und Erreichen der Startfähigkeitsgrenze // statt). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_ABSCHALTUNG_LICHT_1_WERT", STAT_ABSCHALTUNG_LICHT_1_WERT, ""); unsigned char STAT_ABSCHALTVERHINDERER_1_WERT = (RXBUF_UCHAR(10)); // Shutdown prevention reason light (reaching upper start capability limit and 12h timer not expired, driver's // door not opened, further tbd). / Abschaltverhinderergrund Licht (Erreichen obere Startfähigkeitsgrenze und 12h // Timer nicht abgelaufen, kein Öffnen der Fahrertür, weitere tbd). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_ABSCHALTVERHINDERER_1_WERT", STAT_ABSCHALTVERHINDERER_1_WERT, ""); unsigned char STAT_KLEMMENSTATUS_1_WERT = (RXBUF_UCHAR(11)); // Terminal status (at the time of entry / snapshot). / Klemmenstatus (zum Zeitpunkt des Eintrags/Snapshots). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_KLEMMENSTATUS_1_WERT", STAT_KLEMMENSTATUS_1_WERT, ""); unsigned long STAT_KM_STAND_2_WERT = (RXBUF_UINT32(12)); // Mileage / Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_KM_STAND_2_WERT", STAT_KM_STAND_2_WERT, "\"km\""); unsigned char STAT_ENBN_AEP_STATUS_2_WERT = (RXBUF_UCHAR(16)); // Status energy power management / Status Energie Powermanagement ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_ENBN_AEP_STATUS_2_WERT", STAT_ENBN_AEP_STATUS_2_WERT, ""); unsigned char STAT_U_BATT_ANFANG_2_WERT = (RXBUF_UCHAR(17)); // Supply voltage off 3 minutes after terminal 15 / Versorgungsspannung 3 Minuten nach Klemme 15 aus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_U_BATT_ANFANG_2_WERT", STAT_U_BATT_ANFANG_2_WERT, "\"V\""); unsigned short STAT_DAUER_2_WERT = (RXBUF_UINT(18)); // Duration of light activity while standing / Dauer der Lichtaktivität im Stand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_DAUER_2_WERT", STAT_DAUER_2_WERT, "\"min\""); unsigned char STAT_LICHT_2_NR = (RXBUF_UCHAR(20)); // Involved lighting / Beteiligte Beleuchtung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_LICHT_2_NR", STAT_LICHT_2_NR, "\"0-n\""); unsigned char STAT_ABSCHALTUNG_LICHT_2_WERT = (RXBUF_UCHAR(21)); // Switch off light at SFG (it was switched off after 12 hours and the start capability limit was reached). / // Abschaltung Licht bei SFG (fand eine Abschaltung nach Ablauf 12h und Erreichen der Startfähigkeitsgrenze // statt). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_ABSCHALTUNG_LICHT_2_WERT", STAT_ABSCHALTUNG_LICHT_2_WERT, ""); unsigned char STAT_ABSCHALTVERHINDERER_2_WERT = (RXBUF_UCHAR(22)); // Shutdown prevention reason light (reaching upper start capability limit and 12h timer not expired, driver's // door not opened, further tbd). / Abschaltverhinderergrund Licht (Erreichen obere Startfähigkeitsgrenze und 12h // Timer nicht abgelaufen, kein Öffnen der Fahrertür, weitere tbd). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_ABSCHALTVERHINDERER_2_WERT", STAT_ABSCHALTVERHINDERER_2_WERT, ""); unsigned char STAT_KLEMMENSTATUS_2_WERT = (RXBUF_UCHAR(23)); // Terminal status (at the time of entry / snapshot). / Klemmenstatus (zum Zeitpunkt des Eintrags/Snapshots). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZUSATZINFO_LICHT", "STAT_KLEMMENSTATUS_2_WERT", STAT_KLEMMENSTATUS_2_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HANDBREMSE_KONTAKT: { // 0xD130 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HANDBREMSE_KONTAKT", 1); break; } unsigned char STAT_HANDBREMSE_KONTAKT_EIN = (RXBUF_UCHAR(0)); // 0: handbrake released; 1: handbrake applied / 0: Handbremse gelöst; 1: Handbremse angezogen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HANDBREMSE_KONTAKT", "STAT_HANDBREMSE_KONTAKT_EIN", STAT_HANDBREMSE_KONTAKT_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_HINTEN_TASTER_LINKS: { // 0xD161 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_HINTEN_TASTER_LINKS", 1); break; } unsigned char STAT_TASTER_SITZHEIZUNG_HINTEN_LINKS_EIN = (RXBUF_UCHAR(0)); // 0 = button not pressed, 1 = button pressed / 0 = Taste nicht betätigt, 1 = Taste betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_HINTEN_TASTER_LINKS", "STAT_TASTER_SITZHEIZUNG_HINTEN_LINKS_EIN", STAT_TASTER_SITZHEIZUNG_HINTEN_LINKS_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_HINTEN_TASTER_RECHTS: { // 0xD162 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_HINTEN_TASTER_RECHTS", 1); break; } unsigned char STAT_TASTER_SITZHEIZUNG_HINTEN_RECHTS_EIN = (RXBUF_UCHAR(0)); // 0 = button not pressed, 1 = button pressed / 0 = Taste nicht betätigt, 1 = Taste betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_HINTEN_TASTER_RECHTS", "STAT_TASTER_SITZHEIZUNG_HINTEN_RECHTS_EIN", STAT_TASTER_SITZHEIZUNG_HINTEN_RECHTS_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FA_TASTER: { // 0xD188 if (datalen < 9) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FA_TASTER", 9); break; } unsigned char STAT_TASTER_FA_FA_NR = (RXBUF_UCHAR(0)); // Driver's side (keypad): Driver button, see table / Fahrerseite (Tastenblock): Taster Fahrer siehe Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_TASTER", "STAT_TASTER_FA_FA_NR", STAT_TASTER_FA_FA_NR, "\"0-n\""); unsigned char STAT_TASTER_FA_BF_NR = (RXBUF_UCHAR(1)); // Driver's side (keypad): See table for co-driver button / Fahrerseite (Tastenblock): Taster Beifahrer siehe // Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_TASTER", "STAT_TASTER_FA_BF_NR", STAT_TASTER_FA_BF_NR, "\"0-n\""); unsigned char STAT_TASTER_FA_FAH_NR = (RXBUF_UCHAR(2)); // Driver's side (keypad): Rear driver button, see table / Fahrerseite (Tastenblock): Taster Fahrer hinten siehe // Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_TASTER", "STAT_TASTER_FA_FAH_NR", STAT_TASTER_FA_FAH_NR, "\"0-n\""); unsigned char STAT_TASTER_FA_BFH_NR = (RXBUF_UCHAR(3)); // Driver's side (keypad): Rear passenger button see table / Fahrerseite (Tastenblock): Taster Beifahrer hinten // siehe Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_TASTER", "STAT_TASTER_FA_BFH_NR", STAT_TASTER_FA_BFH_NR, "\"0-n\""); unsigned char STAT_TASTER_FA_HS_NR = (RXBUF_UCHAR(4)); // Driver's side (keypad): button H rear window see table / Fahrerseite (Tastenblock): Taster HEckscheibe siehe // Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_TASTER", "STAT_TASTER_FA_HS_NR", STAT_TASTER_FA_HS_NR, "\"0-n\""); unsigned long STAT_TASTER_FA_RESERVE = (RXBUF_UINT32(5)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FA_TASTER", "STAT_TASTER_FA_RESERVE", STAT_TASTER_FA_RESERVE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BF_TASTER: { // 0xD189 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BF_TASTER", 1); break; } unsigned char STAT_TASTER_BF_BF_NR = (RXBUF_UCHAR(0)); // Passenger side (local button): Window lifter, passenger side 0: Button not pressed 1: Open window 2: Close // window 3: Open toll window 4: Close toll window / Beifahrerseite (lokaler Taster): Fensterheber // Beifahrerseite 0: Taster nicht gedrueckt 1: Fenster oeffnen 2: Fenster schliessen 3: Fenster Maut oeffnen 4: // Fenster Maut schliessen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_TASTER", "STAT_TASTER_BF_BF_NR", STAT_TASTER_BF_BF_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FAH_TASTER: { // 0xD18A if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FAH_TASTER", 1); break; } unsigned char STAT_TASTER_FAH_FAH_NR = (RXBUF_UCHAR(0)); // Rear driver's side (local button): Windows rear driver's side 0: Button not pressed 1: Open window 2: Close // window 3: Open toll window 4: Close toll window / Fahrerseite hinten (lokaler Taster): Fensterheber // Fahrerseite hinten 0: Taster nicht gedrueckt 1: Fenster oeffnen 2: Fenster schliessen 3: Fenster Maut oeffnen // 4: Fenster Maut schliessen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_TASTER", "STAT_TASTER_FAH_FAH_NR", STAT_TASTER_FAH_FAH_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BFH_TASTER: { // 0xD18B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BFH_TASTER", 1); break; } unsigned char STAT_TASTER_BFH_BFH_NR = (RXBUF_UCHAR(0)); // Rear passenger side (local button): Windows passenger side 0: button not pressed 1: open window 2: close // window 3: open window toll 4: close window toll / Beifahrerseite hinten (lokaler Taster): Fensterheber // Beifahrerseite 0: Taster nicht gedrueckt 1: oeffnen Fenster 2: schliessen Fenster 3: oeffnen Fenster Maut // 4: schliessen Fenster Maut ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_TASTER", "STAT_TASTER_BFH_BFH_NR", STAT_TASTER_BFH_BFH_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_KISI_LED: { // 0xD18D if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_KISI_LED", 2); break; } short STAT_KISI_LED_EIN = (RXBUF_SINT(0)); // 0: Status LED child lock off 1: Status LED child lock on / 0: Status LED Kindersicherung aus 1: Status LED // Kindersicherung ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_KISI_LED", "STAT_KISI_LED_EIN", STAT_KISI_LED_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FA_BEWEGUNG: { // 0xD1A7 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FA_BEWEGUNG", 20); break; } unsigned char STAT_FH_FA_INIT_NR = (RXBUF_UCHAR(0)); // 0x01 - INIT window regulator complete IO 0x02 - 0x08 One or more errors have occurred / 0x01 - Fensterheber // INIT vollständig IO 0x02 - 0x08 Ein oder mehrere Fehler sind aufgetreten ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_INIT_NR", STAT_FH_FA_INIT_NR, "\"0-n\""); unsigned char STAT_FH_FA_BEWEGUNG_NR = (RXBUF_UCHAR(1)); // Current direction of movement / Aktuelle Bewegungsrichtung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_BEWEGUNG_NR", STAT_FH_FA_BEWEGUNG_NR, "\"0-n\""); unsigned char STAT_FH_FA_POSITION_NR = (RXBUF_UCHAR(2)); // Current position of the window regulator / Aktuelle Position des Fensterhebers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_POSITION_NR", STAT_FH_FA_POSITION_NR, "\"0-n\""); short STAT_FH_FA_POSITION_HALL_WERT = (RXBUF_SINT(3)); // Current window regulator position in Hall pulses (0 means completely closed) / Aktuelle Fensterheber-Position // in Hall-Pulsen (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_POSITION_HALL_WERT", STAT_FH_FA_POSITION_HALL_WERT, "\"Ink\""); short STAT_FH_FA_POSITION_HALL_MAX_WERT = (RXBUF_SINT(5)); // Maximum window regulator position in Hall pulses / Maximale Fensterheber-Position in Hall-Pulsen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_POSITION_HALL_MAX_WERT", STAT_FH_FA_POSITION_HALL_MAX_WERT, "\"Ink\""); short STAT_FH_FA_POSITION_MM_WERT = (RXBUF_SINT(7)); // Current window regulator position in millimeters (0 means completely closed) / Aktuelle Fensterheber-Position // in Millimeter (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_POSITION_MM_WERT", STAT_FH_FA_POSITION_MM_WERT, "\"mm\""); short STAT_FH_FA_POSITION_MM_MAX_WERT = (RXBUF_SINT(9)); // Maximum window regulator position in millimeters / Maximale Fensterheber-Position in Millimeter ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_POSITION_MM_MAX_WERT", STAT_FH_FA_POSITION_MM_MAX_WERT, "\"mm\""); unsigned char STAT_FH_FA_POSITION_PROZENT_WERT = (RXBUF_UCHAR(11)); // % of the maximum travel / % vom maximalen Verfahrweg ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_POSITION_PROZENT_WERT", STAT_FH_FA_POSITION_PROZENT_WERT, "\"%\""); unsigned char STAT_FH_FA_LAGE_NR = (RXBUF_UCHAR(12)); // 0xFF: Window regulator value not used! / 0xFF: Wert von Fensterheber nicht belegt! ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_LAGE_NR", STAT_FH_FA_LAGE_NR, "\"0-n\""); unsigned char STAT_FH_FA_ZUSTAND_TUER_NR = (RXBUF_UCHAR(13)); // Status of the door contact that is available to the motor driver. / Status Türkontakt, der den Motortreiber // zur Verfügung steht. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_ZUSTAND_TUER_NR", STAT_FH_FA_ZUSTAND_TUER_NR, "\"0-n\""); unsigned char STAT_FH_FA_FREIGABE_AKTIV_NR = (RXBUF_UCHAR(14)); // Current status release from the ZV master / Aktueller Zustand Freigabe vom ZV-Master ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_FREIGABE_AKTIV_NR", STAT_FH_FA_FREIGABE_AKTIV_NR, "\"0-n\""); unsigned char STAT_FH_FA_PANIKMODUS_AKTIV_NR = (RXBUF_UCHAR(15)); // Status link enable panic mode / Status Verknüpfung Freigabe Panikmodus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_PANIKMODUS_AKTIV_NR", STAT_FH_FA_PANIKMODUS_AKTIV_NR, "\"0-n\""); unsigned long STAT_FH_FA_RESERVE = (RXBUF_UINT32(16)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FA_BEWEGUNG", "STAT_FH_FA_RESERVE", STAT_FH_FA_RESERVE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BF_BEWEGUNG: { // 0xD1A8 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BF_BEWEGUNG", 20); break; } unsigned char STAT_FH_BF_INIT_NR = (RXBUF_UCHAR(0)); // 0x01 - INIT window regulator complete IO 0x02 - 0x08 One or more errors have occurred / 0x01 - Fensterheber // INIT vollständig IO 0x02 - 0x08 Ein oder mehrere Fehler sind aufgetreten ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_INIT_NR", STAT_FH_BF_INIT_NR, "\"0-n\""); unsigned char STAT_FH_BF_BEWEGUNG_NR = (RXBUF_UCHAR(1)); // Current direction of movement / Aktuelle Bewegungsrichtung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_BEWEGUNG_NR", STAT_FH_BF_BEWEGUNG_NR, "\"0-n\""); unsigned char STAT_FH_BF_POSITION_NR = (RXBUF_UCHAR(2)); // Current position of the window regulator / Aktuelle Position des Fensterhebers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_POSITION_NR", STAT_FH_BF_POSITION_NR, "\"0-n\""); short STAT_FH_BF_POSITION_HALL_WERT = (RXBUF_SINT(3)); // Current window regulator position in Hall pulses (0 means completely closed) / Aktuelle Fensterheber-Position // in Hall-Pulsen (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_POSITION_HALL_WERT", STAT_FH_BF_POSITION_HALL_WERT, "\"Ink\""); short STAT_FH_BF_POSITION_HALL_MAX_WERT = (RXBUF_SINT(5)); // Maximum window regulator position in Hall pulses / Maximale Fensterheber-Position in Hall-Pulsen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_POSITION_HALL_MAX_WERT", STAT_FH_BF_POSITION_HALL_MAX_WERT, "\"Ink\""); short STAT_FH_BF_POSITION_MM_WERT = (RXBUF_SINT(7)); // Current window regulator position in millimeters (0 means completely closed) / Aktuelle Fensterheber-Position // in Millimeter (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_POSITION_MM_WERT", STAT_FH_BF_POSITION_MM_WERT, "\"mm\""); short STAT_FH_BF_POSITION_MM_MAX_WERT = (RXBUF_SINT(9)); // Maximum window regulator position in millimeters / Maximale Fensterheber-Position in Millimeter ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_POSITION_MM_MAX_WERT", STAT_FH_BF_POSITION_MM_MAX_WERT, "\"mm\""); unsigned char STAT_FH_BF_POSITION_PROZENT_WERT = (RXBUF_UCHAR(11)); // % of the maximum travel / % vom maximalen Verfahrweg ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_POSITION_PROZENT_WERT", STAT_FH_BF_POSITION_PROZENT_WERT, "\"%\""); unsigned char STAT_FH_BF_LAGE_NR = (RXBUF_UCHAR(12)); // 0xFF: Value from window regulator not used! / 0xFF: Wert vom Fensterheber nicht belegt! ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_LAGE_NR", STAT_FH_BF_LAGE_NR, "\"0-n\""); unsigned char STAT_FH_BF_ZUSTAND_TUER_NR = (RXBUF_UCHAR(13)); // Status of the door contact that is available to the motor driver. / Status Türkontakt, der den Motortreiber // zur Verfügung steht. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_ZUSTAND_TUER_NR", STAT_FH_BF_ZUSTAND_TUER_NR, "\"0-n\""); unsigned char STAT_FH_BF_FREIGABE_AKTIV_NR = (RXBUF_UCHAR(14)); // Current status release from the ZV master / Aktueller Zustand Freigabe vom ZV-Master ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_FREIGABE_AKTIV_NR", STAT_FH_BF_FREIGABE_AKTIV_NR, "\"0-n\""); unsigned char STAT_FH_BF_PANIKMODUS_AKTIV_NR = (RXBUF_UCHAR(15)); // Status link enable panic mode / Status Verknüpfung Freigabe Panikmodus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_PANIKMODUS_AKTIV_NR", STAT_FH_BF_PANIKMODUS_AKTIV_NR, "\"0-n\""); unsigned long STAT_FH_BF_RESERVE = (RXBUF_UINT32(16)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BF_BEWEGUNG", "STAT_FH_BF_RESERVE", STAT_FH_BF_RESERVE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FAH_BEWEGUNG: { // 0xD1A9 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FAH_BEWEGUNG", 20); break; } unsigned char STAT_FH_FAH_INIT_NR = (RXBUF_UCHAR(0)); // 0x01 - INIT window regulator complete IO 0x02 - 0x08 One or more errors have occurred / 0x01 - Fensterheber // INIT vollständig IO 0x02 - 0x08 Ein oder mehrere Fehler sind aufgetreten ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_INIT_NR", STAT_FH_FAH_INIT_NR, "\"0-n\""); unsigned char STAT_FH_FAH_BEWEGUNG_NR = (RXBUF_UCHAR(1)); // Current direction of movement / Aktuelle Bewegungsrichtung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_BEWEGUNG_NR", STAT_FH_FAH_BEWEGUNG_NR, "\"0-n\""); unsigned char STAT_FH_FAH_POSITION_NR = (RXBUF_UCHAR(2)); // Current position of the window regulator / Aktuelle Position des Fensterhebers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_POSITION_NR", STAT_FH_FAH_POSITION_NR, "\"0-n\""); short STAT_FH_FAH_POSITION_HALL_WERT = (RXBUF_SINT(3)); // Current window regulator position in Hall pulses (0 means completely closed) / Aktuelle Fensterheber-Position // in Hall-Pulsen (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_POSITION_HALL_WERT", STAT_FH_FAH_POSITION_HALL_WERT, "\"Ink\""); short STAT_FH_FAH_POSITION_HALL_MAX_WERT = (RXBUF_SINT(5)); // Maximum window regulator position in Hall pulses / Maximale Fensterheber-Position in Hall-Pulsen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_POSITION_HALL_MAX_WERT", STAT_FH_FAH_POSITION_HALL_MAX_WERT, "\"Ink\""); short STAT_FH_FAH_POSITION_MM_WERT = (RXBUF_SINT(7)); // Current window regulator position in millimeters (0 means completely closed) / Aktuelle Fensterheber-Position // in Millimeter (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_POSITION_MM_WERT", STAT_FH_FAH_POSITION_MM_WERT, "\"mm\""); short STAT_FH_FAH_POSITION_MM_MAX_WERT = (RXBUF_SINT(9)); // Maximum window regulator position in millimeters / Maximale Fensterheber-Position in Millimeter ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_POSITION_MM_MAX_WERT", STAT_FH_FAH_POSITION_MM_MAX_WERT, "\"mm\""); unsigned char STAT_FH_FAH_POSITION_PROZENT_WERT = (RXBUF_UCHAR(11)); // % of the maximum travel / % vom maximalen Verfahrweg ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_POSITION_PROZENT_WERT", STAT_FH_FAH_POSITION_PROZENT_WERT, "\"%\""); unsigned char STAT_FH_FAH_LAGE_NR = (RXBUF_UCHAR(12)); // 0xFF: Value from window regulator not used! / 0xFF: Wert vom Fensterheber nicht belegt! ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_LAGE_NR", STAT_FH_FAH_LAGE_NR, "\"0-n\""); unsigned char STAT_FH_FAH_ZUSTAND_TUER_NR = (RXBUF_UCHAR(13)); // Status of the door contact that is available to the motor driver. / Status Türkontakt, der den Motortreiber // zur Verfügung steht. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_ZUSTAND_TUER_NR", STAT_FH_FAH_ZUSTAND_TUER_NR, "\"0-n\""); unsigned char STAT_FH_FAH_FREIGABE_AKTIV_NR = (RXBUF_UCHAR(14)); // Current status release from the ZV master / Aktueller Zustand Freigabe vom ZV-Master ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_FREIGABE_AKTIV_NR", STAT_FH_FAH_FREIGABE_AKTIV_NR, "\"0-n\""); unsigned char STAT_FH_FAH_PANIKMODUS_AKTIV_NR = (RXBUF_UCHAR(15)); // Status link enable panic mode / Status Verknüpfung Freigabe Panikmodus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_PANIKMODUS_AKTIV_NR", STAT_FH_FAH_PANIKMODUS_AKTIV_NR, "\"0-n\""); unsigned long STAT_FH_FAH_RESERVE = (RXBUF_UINT32(16)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FAH_BEWEGUNG", "STAT_FH_FAH_RESERVE", STAT_FH_FAH_RESERVE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BFH_BEWEGUNG: { // 0xD1AA if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BFH_BEWEGUNG", 20); break; } unsigned char STAT_FH_BFH_INIT_NR = (RXBUF_UCHAR(0)); // 0x01 - INIT window regulator complete IO 0x02 - 0x08 One or more errors have occurred / 0x01 - Fensterheber // INIT vollständig IO 0x02 - 0x08 Ein oder mehrere Fehler sind aufgetreten ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_INIT_NR", STAT_FH_BFH_INIT_NR, "\"0-n\""); unsigned char STAT_FH_BFH_BEWEGUNG_NR = (RXBUF_UCHAR(1)); // Current direction of movement / Aktuelle Bewegungsrichtung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_BEWEGUNG_NR", STAT_FH_BFH_BEWEGUNG_NR, "\"0-n\""); unsigned char STAT_FH_BFH_POSITION_NR = (RXBUF_UCHAR(2)); // Current position of the window regulator / Aktuelle Position des Fensterhebers ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_POSITION_NR", STAT_FH_BFH_POSITION_NR, "\"0-n\""); short STAT_FH_BFH_POSITION_HALL_WERT = (RXBUF_SINT(3)); // Current window regulator position in Hall pulses (0 means completely closed) / Aktuelle Fensterheber-Position // in Hall-Pulsen (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_POSITION_HALL_WERT", STAT_FH_BFH_POSITION_HALL_WERT, "\"Ink\""); short STAT_FH_BFH_POSITION_HALL_MAX_WERT = (RXBUF_SINT(5)); // Maximum window regulator position in Hall pulses / Maximale Fensterheber-Position in Hall-Pulsen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_POSITION_HALL_MAX_WERT", STAT_FH_BFH_POSITION_HALL_MAX_WERT, "\"Ink\""); short STAT_FH_BFH_POSITION_MM_WERT = (RXBUF_SINT(7)); // Current window regulator position in millimeters (0 means completely closed) / Aktuelle Fensterheber-Position // in Millimeter (0 bedeutet komplett geschlossen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_POSITION_MM_WERT", STAT_FH_BFH_POSITION_MM_WERT, "\"mm\""); short STAT_FH_BFH_POSITION_MM_MAX_WERT = (RXBUF_SINT(9)); // Maximum window regulator position in millimeters / Maximale Fensterheber-Position in Millimeter ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_POSITION_MM_MAX_WERT", STAT_FH_BFH_POSITION_MM_MAX_WERT, "\"mm\""); unsigned char STAT_FH_BFH_POSITION_PROZENT_WERT = (RXBUF_UCHAR(11)); // % of the maximum travel / % vom maximalen Verfahrweg ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_POSITION_PROZENT_WERT", STAT_FH_BFH_POSITION_PROZENT_WERT, "\"%\""); unsigned char STAT_FH_BFH_LAGE_NR = (RXBUF_UCHAR(12)); // 0xFF: Value from window regulator not used! / 0xFF: Wert vom Fensterheber nicht belegt! ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_LAGE_NR", STAT_FH_BFH_LAGE_NR, "\"0-n\""); unsigned char STAT_FH_BFH_ZUSTAND_TUER_NR = (RXBUF_UCHAR(13)); // Status of the door contact that is available to the motor driver. / Status Türkontakt, der den Motortreiber // zur Verfügung steht. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_ZUSTAND_TUER_NR", STAT_FH_BFH_ZUSTAND_TUER_NR, "\"0-n\""); unsigned char STAT_FH_BFH_FREIGABE_AKTIV_NR = (RXBUF_UCHAR(14)); // Current status release from the ZV master / Aktueller Zustand Freigabe vom ZV-Master ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_FREIGABE_AKTIV_NR", STAT_FH_BFH_FREIGABE_AKTIV_NR, "\"0-n\""); unsigned char STAT_FH_BFH_PANIKMODUS_AKTIV_NR = (RXBUF_UCHAR(15)); // Status link enable panic mode / Status Verknüpfung Freigabe Panikmodus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_PANIKMODUS_AKTIV_NR", STAT_FH_BFH_PANIKMODUS_AKTIV_NR, "\"0-n\""); unsigned long STAT_FH_BFH_RESERVE = (RXBUF_UINT32(16)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BFH_BEWEGUNG", "STAT_FH_BFH_RESERVE", STAT_FH_BFH_RESERVE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BFH_RELAIS: { // 0xD1AD if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BFH_RELAIS", 8); break; } unsigned char STAT_RELAIS_A_ANSTEUERUNG_EIN = (RXBUF_UCHAR(0)); // Status control relay A 0: off 1: on / Status Ansteuerung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_RELAIS", "STAT_RELAIS_A_ANSTEUERUNG_EIN", STAT_RELAIS_A_ANSTEUERUNG_EIN, "\"0/1\""); unsigned char STAT_RELAIS_A_RUECK_EIN = (RXBUF_UCHAR(1)); // Status of the read-back line relay A 0: off 1: on / Status Rückleseleitung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_RELAIS", "STAT_RELAIS_A_RUECK_EIN", STAT_RELAIS_A_RUECK_EIN, "\"0/1\""); unsigned char STAT_RELAIS_B_ANSTEUERUNG_EIN = (RXBUF_UCHAR(2)); // Status control relay B 0: off 1: on / Status Ansteuerung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_RELAIS", "STAT_RELAIS_B_ANSTEUERUNG_EIN", STAT_RELAIS_B_ANSTEUERUNG_EIN, "\"0/1\""); unsigned char STAT_RELAIS_B_RUECK_EIN = (RXBUF_UCHAR(3)); // Status of the readback line relay B 0: off 1: on / Status Rückleseleitung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_RELAIS", "STAT_RELAIS_B_RUECK_EIN", STAT_RELAIS_B_RUECK_EIN, "\"0/1\""); unsigned short STAT_RELAIS_A_VERSORGUNG_WERT = (RXBUF_UINT(4)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_BFH_RELAIS", "STAT_RELAIS_A_VERSORGUNG_WERT", STAT_RELAIS_A_VERSORGUNG_WERT, "\"mV\""); unsigned short STAT_RELAIS_B_VERSORGUNG_WERT = (RXBUF_UINT(6)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_BFH_RELAIS", "STAT_RELAIS_B_VERSORGUNG_WERT", STAT_RELAIS_B_VERSORGUNG_WERT, "\"mV\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BFH_HALLSENSOREN: { // 0xD1AE if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BFH_HALLSENSOREN", 6); break; } unsigned char STAT_HALL_A_SCHALTZUSTAND_EIN = (RXBUF_UCHAR(0)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_HALLSENSOREN", "STAT_HALL_A_SCHALTZUSTAND_EIN", STAT_HALL_A_SCHALTZUSTAND_EIN, "\"0/1\""); unsigned char STAT_HALL_A_VERSORGUNG_EIN = (RXBUF_UCHAR(1)); // Switching status of Hall element A supply / Schaltzustand Hallelement A Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_HALLSENSOREN", "STAT_HALL_A_VERSORGUNG_EIN", STAT_HALL_A_VERSORGUNG_EIN, "\"0/1\""); unsigned char STAT_HALL_A_FEHLERZUSZTAND_NR = (RXBUF_UCHAR(2)); // Hall element A fault condition / Fehlerzustand Hallelement A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_HALLSENSOREN", "STAT_HALL_A_FEHLERZUSZTAND_NR", STAT_HALL_A_FEHLERZUSZTAND_NR, "\"0-n\""); unsigned char STAT_HALL_B_SCHALTZUSTAND_EIN = (RXBUF_UCHAR(3)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_HALLSENSOREN", "STAT_HALL_B_SCHALTZUSTAND_EIN", STAT_HALL_B_SCHALTZUSTAND_EIN, "\"0/1\""); unsigned char STAT_HALL_B_VERSORGUNG_EIN = (RXBUF_UCHAR(4)); // Switching state of Hall element B supply / Schaltzustand Hallelement B Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_HALLSENSOREN", "STAT_HALL_B_VERSORGUNG_EIN", STAT_HALL_B_VERSORGUNG_EIN, "\"0/1\""); unsigned char STAT_HALL_B_FEHLERZUSZTAND_NR = (RXBUF_UCHAR(5)); // Hall element error condition B / Fehlerzustand Hallelement B ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_HALLSENSOREN", "STAT_HALL_B_FEHLERZUSZTAND_NR", STAT_HALL_B_FEHLERZUSZTAND_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FAH_RELAIS: { // 0xD1AF if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FAH_RELAIS", 8); break; } unsigned char STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1AF = (RXBUF_UCHAR(0)); // Status control relay A 0: off 1: on / Status Ansteuerung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_RELAIS", "STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1AF", STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1AF, "\"0/1\""); unsigned char STAT_RELAIS_A_RUECK_EIN_0XD1AF = (RXBUF_UCHAR(1)); // Status of the read-back line relay A 0: off 1: on / Status Rückleseleitung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_RELAIS", "STAT_RELAIS_A_RUECK_EIN_0XD1AF", STAT_RELAIS_A_RUECK_EIN_0XD1AF, "\"0/1\""); unsigned char STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1AF = (RXBUF_UCHAR(2)); // Status control relay B 0: off 1: on / Status Ansteuerung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_RELAIS", "STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1AF", STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1AF, "\"0/1\""); unsigned char STAT_RELAIS_B_RUECK_EIN_0XD1AF = (RXBUF_UCHAR(3)); // Status of the readback line relay B 0: off 1: on / Status Rückleseleitung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_RELAIS", "STAT_RELAIS_B_RUECK_EIN_0XD1AF", STAT_RELAIS_B_RUECK_EIN_0XD1AF, "\"0/1\""); unsigned short STAT_RELAIS_A_VERSORGUNG_WERT_0XD1AF = (RXBUF_UINT(4)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_FAH_RELAIS", "STAT_RELAIS_A_VERSORGUNG_WERT_0XD1AF", STAT_RELAIS_A_VERSORGUNG_WERT_0XD1AF, "\"mV\""); unsigned short STAT_RELAIS_B_VERSORGUNG_WERT_0XD1AF = (RXBUF_UINT(6)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_FAH_RELAIS", "STAT_RELAIS_B_VERSORGUNG_WERT_0XD1AF", STAT_RELAIS_B_VERSORGUNG_WERT_0XD1AF, "\"mV\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FAH_HALLSENSOREN: { // 0xD1B0 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FAH_HALLSENSOREN", 6); break; } unsigned char STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B0 = (RXBUF_UCHAR(0)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_HALLSENSOREN", "STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B0", STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B0, "\"0/1\""); unsigned char STAT_HALL_A_VERSORGUNG_EIN_0XD1B0 = (RXBUF_UCHAR(1)); // Switching status of Hall element A supply / Schaltzustand Hallelement A Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_HALLSENSOREN", "STAT_HALL_A_VERSORGUNG_EIN_0XD1B0", STAT_HALL_A_VERSORGUNG_EIN_0XD1B0, "\"0/1\""); unsigned char STAT_HALL_A_FEHLERZUSZTAND_NR_0XD1B0 = (RXBUF_UCHAR(2)); // Hall element A fault condition / Fehlerzustand Hallelement A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_HALLSENSOREN", "STAT_HALL_A_FEHLERZUSZTAND_NR_0XD1B0", STAT_HALL_A_FEHLERZUSZTAND_NR_0XD1B0, "\"0-n\""); unsigned char STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B0 = (RXBUF_UCHAR(3)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_HALLSENSOREN", "STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B0", STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B0, "\"0/1\""); unsigned char STAT_HALL_B_VERSORGUNG_EIN_1 = (RXBUF_UCHAR(4)); // Switching state of Hall element B supply / Schaltzustand Hallelement B Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_HALLSENSOREN", "STAT_HALL_B_VERSORGUNG_EIN_1", STAT_HALL_B_VERSORGUNG_EIN_1, "\"0/1\""); unsigned char STAT_HALL_B_FEHLERZUSZTAND_NR_0XD1B0 = (RXBUF_UCHAR(5)); // Hall element error condition B / Fehlerzustand Hallelement B ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_HALLSENSOREN", "STAT_HALL_B_FEHLERZUSZTAND_NR_0XD1B0", STAT_HALL_B_FEHLERZUSZTAND_NR_0XD1B0, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FA_RELAIS: { // 0xD1B1 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FA_RELAIS", 8); break; } unsigned char STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1B1 = (RXBUF_UCHAR(0)); // Status control relay A 0: off 1: on / Status Ansteuerung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_RELAIS", "STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1B1", STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1B1, "\"0/1\""); unsigned char STAT_RELAIS_A_RUECK_EIN_0XD1B1 = (RXBUF_UCHAR(1)); // Status of the read-back line relay A 0: off 1: on / Status Rückleseleitung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_RELAIS", "STAT_RELAIS_A_RUECK_EIN_0XD1B1", STAT_RELAIS_A_RUECK_EIN_0XD1B1, "\"0/1\""); unsigned char STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1B1 = (RXBUF_UCHAR(2)); // Status control relay B 0: off 1: on / Status Ansteuerung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_RELAIS", "STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1B1", STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1B1, "\"0/1\""); unsigned char STAT_RELAIS_B_RUECK_EIN_0XD1B1 = (RXBUF_UCHAR(3)); // Status of the readback line relay B 0: off 1: on / Status Rückleseleitung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_RELAIS", "STAT_RELAIS_B_RUECK_EIN_0XD1B1", STAT_RELAIS_B_RUECK_EIN_0XD1B1, "\"0/1\""); unsigned short STAT_RELAIS_A_VERSORGUNG_WERT_0XD1B1 = (RXBUF_UINT(4)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_FA_RELAIS", "STAT_RELAIS_A_VERSORGUNG_WERT_0XD1B1", STAT_RELAIS_A_VERSORGUNG_WERT_0XD1B1, "\"mV\""); unsigned short STAT_RELAIS_B_VERSORGUNG_WERT_0XD1B1 = (RXBUF_UINT(6)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_FA_RELAIS", "STAT_RELAIS_B_VERSORGUNG_WERT_0XD1B1", STAT_RELAIS_B_VERSORGUNG_WERT_0XD1B1, "\"mV\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FA_HALLSENSOREN: { // 0xD1B2 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FA_HALLSENSOREN", 6); break; } unsigned char STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B2 = (RXBUF_UCHAR(0)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_HALLSENSOREN", "STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B2", STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B2, "\"0/1\""); unsigned char STAT_HALL_A_VERSORGUNG_EIN_0XD1B2 = (RXBUF_UCHAR(1)); // Switching status of Hall element A supply / Schaltzustand Hallelement A Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_HALLSENSOREN", "STAT_HALL_A_VERSORGUNG_EIN_0XD1B2", STAT_HALL_A_VERSORGUNG_EIN_0XD1B2, "\"0/1\""); unsigned char STAT_HALL_A_FEHLERZUSTAND_NR = (RXBUF_UCHAR(2)); // Hall element A fault condition / Fehlerzustand Hallelement A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_HALLSENSOREN", "STAT_HALL_A_FEHLERZUSTAND_NR", STAT_HALL_A_FEHLERZUSTAND_NR, "\"0-n\""); unsigned char STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B2 = (RXBUF_UCHAR(3)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_HALLSENSOREN", "STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B2", STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B2, "\"0/1\""); unsigned char STAT_HALL_B_VERSORGUNG_EIN_0XD1B2 = (RXBUF_UCHAR(4)); // Switching state of Hall element B supply / Schaltzustand Hallelement B Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_HALLSENSOREN", "STAT_HALL_B_VERSORGUNG_EIN_0XD1B2", STAT_HALL_B_VERSORGUNG_EIN_0XD1B2, "\"0/1\""); unsigned char STAT_HALL_B_FEHLERZUSTAND_NR = (RXBUF_UCHAR(5)); // Hall element error condition B / Fehlerzustand Hallelement B ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_HALLSENSOREN", "STAT_HALL_B_FEHLERZUSTAND_NR", STAT_HALL_B_FEHLERZUSTAND_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BF_RELAIS: { // 0xD1B3 if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BF_RELAIS", 8); break; } unsigned char STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1B3 = (RXBUF_UCHAR(0)); // Status control relay A 0: off 1: on / Status Ansteuerung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_RELAIS", "STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1B3", STAT_RELAIS_A_ANSTEUERUNG_EIN_0XD1B3, "\"0/1\""); unsigned char STAT_RELAIS_A_RUECK_EIN_0XD1B3 = (RXBUF_UCHAR(1)); // Status of the read-back line relay A 0: off 1: on / Status Rückleseleitung Relais A 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_RELAIS", "STAT_RELAIS_A_RUECK_EIN_0XD1B3", STAT_RELAIS_A_RUECK_EIN_0XD1B3, "\"0/1\""); unsigned char STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1B3 = (RXBUF_UCHAR(2)); // Status control relay B 0: off 1: on / Status Ansteuerung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_RELAIS", "STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1B3", STAT_RELAIS_B_ANSTEUERUNG_EIN_0XD1B3, "\"0/1\""); unsigned char STAT_RELAIS_B_RUECK_EIN_0XD1B3 = (RXBUF_UCHAR(3)); // Status of the readback line relay B 0: off 1: on / Status Rückleseleitung Relais B 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_RELAIS", "STAT_RELAIS_B_RUECK_EIN_0XD1B3", STAT_RELAIS_B_RUECK_EIN_0XD1B3, "\"0/1\""); unsigned short STAT_RELAIS_A_VERSORGUNG_WERT_0XD1B3 = (RXBUF_UINT(4)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_BF_RELAIS", "STAT_RELAIS_A_VERSORGUNG_WERT_0XD1B3", STAT_RELAIS_A_VERSORGUNG_WERT_0XD1B3, "\"mV\""); unsigned short STAT_RELAIS_B_VERSORGUNG_WERT_0XD1B3 = (RXBUF_UINT(6)); // The input voltage at the relay is measured. This is ultimately also the terminal voltage of the motor if you // neglect contact resistances on relays and plugs as well as line resistances. The function is carried out by // the BSW. / Es wird die Eingangsspannung am Relais gemessen. Dies ist dann letztendlich auch die // Klemmenspannung des Motors, wenn man Kontaktwiderstände an Relais und Stecker sowie Leitungswiderstände // vernachlässigt. Die Funktion wird von der BSW ausgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "FH_BF_RELAIS", "STAT_RELAIS_B_VERSORGUNG_WERT_0XD1B3", STAT_RELAIS_B_VERSORGUNG_WERT_0XD1B3, "\"mV\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BF_HALLSENSOREN: { // 0xD1B4 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BF_HALLSENSOREN", 6); break; } unsigned char STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B4 = (RXBUF_UCHAR(0)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_HALLSENSOREN", "STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B4", STAT_HALL_A_SCHALTZUSTAND_EIN_0XD1B4, "\"0/1\""); unsigned char STAT_HALL_A_VERSORGUNG_EIN_0XD1B4 = (RXBUF_UCHAR(1)); // Switching status of Hall element A supply / Schaltzustand Hallelement A Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_HALLSENSOREN", "STAT_HALL_A_VERSORGUNG_EIN_0XD1B4", STAT_HALL_A_VERSORGUNG_EIN_0XD1B4, "\"0/1\""); unsigned char STAT_HALL_A_FEHLERZUSTAND_NR_0XD1B4 = (RXBUF_UCHAR(2)); // Hall element A fault condition / Fehlerzustand Hallelement A ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_HALLSENSOREN", "STAT_HALL_A_FEHLERZUSTAND_NR_0XD1B4", STAT_HALL_A_FEHLERZUSTAND_NR_0XD1B4, "\"0-n\""); unsigned char STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B4 = (RXBUF_UCHAR(3)); // The function is carried out by the BSW. 0: off 1: on / Die Funktion wird von der BSW ausgeführt. 0: aus 1: ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_HALLSENSOREN", "STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B4", STAT_HALL_B_SCHALTZUSTAND_EIN_0XD1B4, "\"0/1\""); unsigned char STAT_HALL_B_VERSORGUNG_EIN_0XD1B4 = (RXBUF_UCHAR(4)); // Switching state of Hall element B supply / Schaltzustand Hallelement B Versorgung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_HALLSENSOREN", "STAT_HALL_B_VERSORGUNG_EIN_0XD1B4", STAT_HALL_B_VERSORGUNG_EIN_0XD1B4, "\"0/1\""); unsigned char STAT_HALL_B_FEHLERZUSTAND_NR_0XD1B4 = (RXBUF_UCHAR(5)); // Hall element error condition B / Fehlerzustand Hallelement B ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_HALLSENSOREN", "STAT_HALL_B_FEHLERZUSTAND_NR_0XD1B4", STAT_HALL_B_FEHLERZUSTAND_NR_0XD1B4, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FA_STATUS_DETAIL: { // 0xD1B5 if (datalen < 26) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FA_STATUS_DETAIL", 26); break; } unsigned char STAT_FH_FA_KURZHUB_VORHANDEN = (RXBUF_UCHAR(0)); // Coding option status / Status der Kodieroption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_KURZHUB_VORHANDEN", STAT_FH_FA_KURZHUB_VORHANDEN, "\"0-n\""); unsigned char STAT_FH_FA_MOTORTEMPERATUR_NR = (RXBUF_UCHAR(1)); // Motor temperature status / Status Motortemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_MOTORTEMPERATUR_NR", STAT_FH_FA_MOTORTEMPERATUR_NR, "\"0-n\""); float STAT_FH_FA_AUSSENTEMPERATUR_WERT = (RXBUF_UCHAR(2)/2.0f-40.0); // Vehicle outside temperature (via CAN) / Fahrzeugaussentemperatur (über CAN) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_AUSSENTEMPERATUR_WERT", STAT_FH_FA_AUSSENTEMPERATUR_WERT, "\"°C\""); unsigned char STAT_FH_FA_MT_LIEFERANT_NR = (RXBUF_UCHAR(3)); // Supplier MT / Lieferant MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_MT_LIEFERANT_NR", STAT_FH_FA_MT_LIEFERANT_NR, "\"0-n\""); unsigned long STAT_FH_FA_MT_SW_VERSION_WERT = (RXBUF_UINT32(4)); // SW version number / SW-Versionsnummer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_MT_SW_VERSION_WERT", STAT_FH_FA_MT_SW_VERSION_WERT, "\"HEX\""); unsigned long STAT_FH_FA_MT_PARAMETER_VERSION_WERT = (RXBUF_UINT32(8)); // Description: Parameter version information / Beschreibung: Parameter-Versionsinfo ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_MT_PARAMETER_VERSION_WERT", STAT_FH_FA_MT_PARAMETER_VERSION_WERT, "\"HEX\""); unsigned char STAT_FH_FA_EEPROM_PRUEFSUMME_NR = (RXBUF_UCHAR(12)); // Status EEPROM checksum / Status EEPROM Checksumme ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_EEPROM_PRUEFSUMME_NR", STAT_FH_FA_EEPROM_PRUEFSUMME_NR, "\"0-n\""); unsigned char STAT_FH_FA_STATUS_VON_FAH = (RXBUF_UCHAR(13)); // Status of other window same side / Status anderes Fenster gleiche Seite ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_STATUS_VON_FAH", STAT_FH_FA_STATUS_VON_FAH, "\"0-n\""); unsigned char STAT_FH_FA_WACHHALTEN = (RXBUF_UCHAR(14)); // Status asleep prevention / Status Einschlaf-Verhinderung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_WACHHALTEN", STAT_FH_FA_WACHHALTEN, "\"0-n\""); unsigned char STAT_FH_FA_FZG_GESCHWINDIGKEIT_WERT = (RXBUF_UCHAR(15)); // Vehicle speed via CAN / Fahrzeuggeschwindigkeit über CAN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_FZG_GESCHWINDIGKEIT_WERT", STAT_FH_FA_FZG_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned long STAT_FH_FA_RELATIVZEIT_WERT = (RXBUF_UINT32(16)); // Current relative time (as received from the bus) / Aktuelle Relativ-Zeit (wie vom Bus erhalten) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_RELATIVZEIT_WERT", STAT_FH_FA_RELATIVZEIT_WERT, "\"s\""); unsigned char STAT_FH_FA_TEMPERATUR_UEBERWACHUNG = (RXBUF_UCHAR(20)); // Status activation temperature monitoring / Status Aktivierung Temperaturüberwachung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_TEMPERATUR_UEBERWACHUNG", STAT_FH_FA_TEMPERATUR_UEBERWACHUNG, "\"0/1\""); unsigned char STAT_FH_FA_EKS_AKTIV = (RXBUF_UCHAR(21)); // Status activation EKS / Status Aktivierung EKS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_EKS_AKTIV", STAT_FH_FA_EKS_AKTIV, "\"0/1\""); unsigned char STAT_FH_FA_SYSTEMTYP = (RXBUF_UCHAR(22)); // Placeholder for live system / Platzhalter für Stromgeführtes System ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FA_STATUS_DETAIL", "STAT_FH_FA_SYSTEMTYP", STAT_FH_FA_SYSTEMTYP, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BF_STATUS_DETAIL: { // 0xD1B6 if (datalen < 26) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BF_STATUS_DETAIL", 26); break; } unsigned char STAT_FH_BF_KURZHUB_VORHANDEN = (RXBUF_UCHAR(0)); // Coding option status / Status der Kodieroption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_KURZHUB_VORHANDEN", STAT_FH_BF_KURZHUB_VORHANDEN, "\"0-n\""); unsigned char STAT_FH_BF_MOTORTEMPERATUR = (RXBUF_UCHAR(1)); // Motor temperature status / Status Motortemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_MOTORTEMPERATUR", STAT_FH_BF_MOTORTEMPERATUR, "\"0-n\""); float STAT_FH_BF_AUSSENTEMPERATUR_WERT = (RXBUF_UCHAR(2)/2.0f-40.0); // Vehicle outside temperature (via CAN) / Fahrzeugaussentemperatur (über CAN) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_AUSSENTEMPERATUR_WERT", STAT_FH_BF_AUSSENTEMPERATUR_WERT, "\"°C\""); unsigned char STAT_FH_BF_MT_LIEFERANT = (RXBUF_UCHAR(3)); // Supplier MT / Lieferant MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_MT_LIEFERANT", STAT_FH_BF_MT_LIEFERANT, "\"0-n\""); unsigned long STAT_FH_BF_MT_SW_VERSION_WERT = (RXBUF_UINT32(4)); // SW version number / SW-Versionsnummer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_MT_SW_VERSION_WERT", STAT_FH_BF_MT_SW_VERSION_WERT, "\"HEX\""); unsigned long STAT_FH_BF_MT_PARAMETER_VERSION_WERT = (RXBUF_UINT32(8)); // Description: Parameter version information / Beschreibung: Parameter-Versionsinfo ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_MT_PARAMETER_VERSION_WERT", STAT_FH_BF_MT_PARAMETER_VERSION_WERT, "\"HEX\""); unsigned char STAT_FH_BF_EEPROM_PRUEFSUMME_NR = (RXBUF_UCHAR(12)); // Status EEPROM checksum / Status EEPROM Checksumme ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_EEPROM_PRUEFSUMME_NR", STAT_FH_BF_EEPROM_PRUEFSUMME_NR, "\"0-n\""); unsigned char STAT_FH_BF_STATUS_VON_BFH = (RXBUF_UCHAR(13)); // Status of other window same side / Status anderes Fenster gleiche Seite ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_STATUS_VON_BFH", STAT_FH_BF_STATUS_VON_BFH, "\"0-n\""); unsigned char STAT_FH_BF_WACHHALTEN = (RXBUF_UCHAR(14)); // Status asleep prevention / Status Einschlaf-Verhinderung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_WACHHALTEN", STAT_FH_BF_WACHHALTEN, "\"0-n\""); unsigned char STAT_FH_BF_FZG_GESCHWINDIGKEIT_WERT = (RXBUF_UCHAR(15)); // Vehicle speed via CAN / Fahrzeuggeschwindigkeit über CAN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_FZG_GESCHWINDIGKEIT_WERT", STAT_FH_BF_FZG_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned long STAT_FH_BF_RELATIVZEIT_WERT = (RXBUF_UINT32(16)); // Current relative time (as received from the bus) / Aktuelle Relativ-Zeit (wie vom Bus erhalten) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_RELATIVZEIT_WERT", STAT_FH_BF_RELATIVZEIT_WERT, "\"s\""); unsigned char STAT_FH_BF_TEMPERATUR_UEBERWACHUNG = (RXBUF_UCHAR(20)); // Status activation temperature monitoring / Status Aktivierung Temperaturüberwachung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_TEMPERATUR_UEBERWACHUNG", STAT_FH_BF_TEMPERATUR_UEBERWACHUNG, "\"0/1\""); unsigned char STAT_FH_BF_EKS_AKTIV = (RXBUF_UCHAR(21)); // Status activation EKS / Status Aktivierung EKS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_EKS_AKTIV", STAT_FH_BF_EKS_AKTIV, "\"0/1\""); unsigned char STAT_FH_BF_SYSTEMTYP = (RXBUF_UCHAR(22)); // Placeholder for live system / Platzhalter für Stromgeführtes System ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BF_STATUS_DETAIL", "STAT_FH_BF_SYSTEMTYP", STAT_FH_BF_SYSTEMTYP, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_FAH_STATUS_DETAIL: { // 0xD1B7 if (datalen < 26) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_FAH_STATUS_DETAIL", 26); break; } unsigned char STAT_FH_FAH_KURZHUB_VORHANDEN = (RXBUF_UCHAR(0)); // Coding option status / Status der Kodieroption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_KURZHUB_VORHANDEN", STAT_FH_FAH_KURZHUB_VORHANDEN, "\"0-n\""); unsigned char STAT_FH_FAH_MOTORTEMPERATUR = (RXBUF_UCHAR(1)); // Motor temperature status / Status Motortemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_MOTORTEMPERATUR", STAT_FH_FAH_MOTORTEMPERATUR, "\"0-n\""); float STAT_FH_FAH_AUSSENTEMPERATUR_WERT = (RXBUF_UCHAR(2)/2.0f-40.0); // Vehicle outside temperature (via CAN) / Fahrzeugaussentemperatur (über CAN) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_AUSSENTEMPERATUR_WERT", STAT_FH_FAH_AUSSENTEMPERATUR_WERT, "\"°C\""); unsigned char STAT_FH_FAH_MT_LIEFERANT = (RXBUF_UCHAR(3)); // Supplier MT / Lieferant MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_MT_LIEFERANT", STAT_FH_FAH_MT_LIEFERANT, "\"0-n\""); unsigned long STAT_FH_FAH_MT_SW_VERSION_WERT = (RXBUF_UINT32(4)); // SW version number / SW-Versionsnummer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_MT_SW_VERSION_WERT", STAT_FH_FAH_MT_SW_VERSION_WERT, "\"HEX\""); unsigned long STAT_FH_FAH_MT_PARAMETER_VERSION_WERT = (RXBUF_UINT32(8)); // Description: Parameter version information / Beschreibung: Parameter-Versionsinfo ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_MT_PARAMETER_VERSION_WERT", STAT_FH_FAH_MT_PARAMETER_VERSION_WERT, "\"HEX\""); unsigned char STAT_FH_FAH_EEPROM_PRUEFSUMME_NR = (RXBUF_UCHAR(12)); // Status EEPROM checksum / Status EEPROM Checksumme ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_EEPROM_PRUEFSUMME_NR", STAT_FH_FAH_EEPROM_PRUEFSUMME_NR, "\"0-n\""); unsigned char STAT_FH_FAH_STATUS_VON_FA = (RXBUF_UCHAR(13)); // Status of other window same side / Status anderes Fenster gleiche Seite ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_STATUS_VON_FA", STAT_FH_FAH_STATUS_VON_FA, "\"0-n\""); unsigned char STAT_FH_FAH_WACHHALTEN = (RXBUF_UCHAR(14)); // Status asleep prevention / Status Einschlaf-Verhinderung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_WACHHALTEN", STAT_FH_FAH_WACHHALTEN, "\"0-n\""); unsigned char STAT_FH_FAH_FZG_GESCHWINDIGKEIT_WERT = (RXBUF_UCHAR(15)); // Vehicle speed via CAN / Fahrzeuggeschwindigkeit über CAN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_FZG_GESCHWINDIGKEIT_WERT", STAT_FH_FAH_FZG_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned long STAT_FH_FAH_RELATIVZEIT_WERT = (RXBUF_UINT32(16)); // Current relative time (as received from the bus) / Aktuelle Relativ-Zeit (wie vom Bus erhalten) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_RELATIVZEIT_WERT", STAT_FH_FAH_RELATIVZEIT_WERT, "\"s\""); unsigned char STAT_FH_FAH_TEMPERATUR_UEBERWACHUNG = (RXBUF_UCHAR(20)); // Status activation temperature monitoring / Status Aktivierung Temperaturüberwachung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_TEMPERATUR_UEBERWACHUNG", STAT_FH_FAH_TEMPERATUR_UEBERWACHUNG, "\"0/1\""); unsigned char STAT_FH_FAH_EKS_AKTIV = (RXBUF_UCHAR(21)); // Status activation EKS / Status Aktivierung EKS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_EKS_AKTIV", STAT_FH_FAH_EKS_AKTIV, "\"0/1\""); unsigned char STAT_FH_FAH_SYSTEMTYP = (RXBUF_UCHAR(22)); // Placeholder for live system / Platzhalter für Stromgeführtes System ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_FAH_STATUS_DETAIL", "STAT_FH_FAH_SYSTEMTYP", STAT_FH_FAH_SYSTEMTYP, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FH_BFH_STATUS_DETAIL: { // 0xD1B8 if (datalen < 26) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FH_BFH_STATUS_DETAIL", 26); break; } unsigned char STAT_FH_BFH_KURZHUB_VORHANDEN = (RXBUF_UCHAR(0)); // Coding option status / Status der Kodieroption ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_KURZHUB_VORHANDEN", STAT_FH_BFH_KURZHUB_VORHANDEN, "\"0-n\""); unsigned char STAT_FH_BFH_MOTORTEMPERATUR = (RXBUF_UCHAR(1)); // Motor temperature status / Status Motortemperatur ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_MOTORTEMPERATUR", STAT_FH_BFH_MOTORTEMPERATUR, "\"0-n\""); float STAT_FH_BFH_AUSSENTEMPERATUR_WERT = (RXBUF_UCHAR(2)/2.0f-40.0); // Vehicle outside temperature (via CAN) / Fahrzeugaussentemperatur (über CAN) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_AUSSENTEMPERATUR_WERT", STAT_FH_BFH_AUSSENTEMPERATUR_WERT, "\"°C\""); unsigned char STAT_FH_BFH_MT_LIEFERANT = (RXBUF_UCHAR(3)); // Supplier MT / Lieferant MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_MT_LIEFERANT", STAT_FH_BFH_MT_LIEFERANT, "\"0-n\""); unsigned long STAT_FH_BFH_MT_SW_VERSION_WERT = (RXBUF_UINT32(4)); // SW version number / SW-Versionsnummer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_MT_SW_VERSION_WERT", STAT_FH_BFH_MT_SW_VERSION_WERT, "\"HEX\""); unsigned long STAT_FH_BFH_MT_PARAMETER_VERSION_WERT = (RXBUF_UINT32(8)); // Description: Parameter version information / Beschreibung: Parameter-Versionsinfo ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_MT_PARAMETER_VERSION_WERT", STAT_FH_BFH_MT_PARAMETER_VERSION_WERT, "\"HEX\""); unsigned char STAT_FH_BFH_EEPROM_PRUEFSUMME_NR = (RXBUF_UCHAR(12)); // Status EEPROM checksum / Status EEPROM Checksumme ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_EEPROM_PRUEFSUMME_NR", STAT_FH_BFH_EEPROM_PRUEFSUMME_NR, "\"0-n\""); unsigned char STAT_FH_BFH_STATUS_VON_BF = (RXBUF_UCHAR(13)); // Status of other window same side / Status anderes Fenster gleiche Seite ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_STATUS_VON_BF", STAT_FH_BFH_STATUS_VON_BF, "\"0-n\""); unsigned char STAT_FH_BFH_WACHHALTEN = (RXBUF_UCHAR(14)); // Status asleep prevention / Status Einschlaf-Verhinderung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_WACHHALTEN", STAT_FH_BFH_WACHHALTEN, "\"0-n\""); unsigned char STAT_FH_BFH_FZG_GESCHWINDIGKEIT_WERT = (RXBUF_UCHAR(15)); // Vehicle speed via CAN / Fahrzeuggeschwindigkeit über CAN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_FZG_GESCHWINDIGKEIT_WERT", STAT_FH_BFH_FZG_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned long STAT_FH_BFH_RELATIVZEIT_WERT = (RXBUF_UINT32(16)); // Current relative time (as received from the bus) / Aktuelle Relativ-Zeit (wie vom Bus erhalten) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_RELATIVZEIT_WERT", STAT_FH_BFH_RELATIVZEIT_WERT, "\"s\""); unsigned char STAT_FH_BFH_TEMPERATUR_UEBERWACHUNG = (RXBUF_UCHAR(20)); // Status activation temperature monitoring / Status Aktivierung Temperaturüberwachung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_TEMPERATUR_UEBERWACHUNG", STAT_FH_BFH_TEMPERATUR_UEBERWACHUNG, "\"0/1\""); unsigned char STAT_FH_BFH_EKS_AKTIV = (RXBUF_UCHAR(21)); // Status activation EKS / Status Aktivierung EKS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_EKS_AKTIV", STAT_FH_BFH_EKS_AKTIV, "\"0/1\""); unsigned char STAT_FH_BFH_SYSTEMTYP = (RXBUF_UCHAR(22)); // Placeholder for live system / Platzhalter für Stromgeführtes System ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FH_BFH_STATUS_DETAIL", "STAT_FH_BFH_SYSTEMTYP", STAT_FH_BFH_SYSTEMTYP, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_SITZEXT_TASTEN: { // 0xD1CA if (datalen < 12) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_SITZEXT_TASTEN", 12); break; } unsigned char STAT_SITZMEMORY_FA = (RXBUF_UCHAR(0)); // Transmitted signal value for memory button / Übermittelter Signalwert für Memory-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_SITZMEMORY_FA", STAT_SITZMEMORY_FA, "\"0-n\""); unsigned char STAT_SITZMEMORY_BF = (RXBUF_UCHAR(1)); // Transmitted signal value for memory button / Übermittelter Signalwert für Memory-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_SITZMEMORY_BF", STAT_SITZMEMORY_BF, "\"0-n\""); unsigned char STAT_SITZMEMORY_FAH = (RXBUF_UCHAR(2)); // Transmitted signal value for memory button / Übermittelter Signalwert für Memory-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_SITZMEMORY_FAH", STAT_SITZMEMORY_FAH, "\"0-n\""); unsigned char STAT_SITZMEMORY_BFH = (RXBUF_UCHAR(3)); // Transmitted signal value for memory button / Übermittelter Signalwert für Memory-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_SITZMEMORY_BFH", STAT_SITZMEMORY_BFH, "\"0-n\""); unsigned char STAT_MASSAGE_FA = (RXBUF_UCHAR(4)); // Transmitted signal value for MASSAGE button / Übermittelter Signalwert für MASSAGE-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_MASSAGE_FA", STAT_MASSAGE_FA, "\"0-n\""); unsigned char STAT_MASSAGE_BF = (RXBUF_UCHAR(5)); // Transmitted signal value for MASSAGE button / Übermittelter Signalwert für MASSAGE-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_MASSAGE_BF", STAT_MASSAGE_BF, "\"0-n\""); unsigned char STAT_MASSAGE_FAH = (RXBUF_UCHAR(6)); // Transmitted signal value for MASSAGE button / Übermittelter Signalwert für MASSAGE-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_MASSAGE_FAH", STAT_MASSAGE_FAH, "\"0-n\""); unsigned char STAT_MASSAGE_BFH = (RXBUF_UCHAR(7)); // Transmitted signal value for MASSAGE button / Übermittelter Signalwert für MASSAGE-Taster ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_MASSAGE_BFH", STAT_MASSAGE_BFH, "\"0-n\""); unsigned char STAT_FERNBEDIENUNG_FA = (RXBUF_UCHAR(8)); // Signal value for remote control button button on driver's door / Signalwert für Fernbedienungstaste-Taste an // der Fahrertür ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_FERNBEDIENUNG_FA", STAT_FERNBEDIENUNG_FA, "\"0-n\""); unsigned char STAT_RESET_TASTE_BF = (RXBUF_UCHAR(9)); // Signal value for reset button on BFT / Signalwert für Reset-Taste an BFT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_RESET_TASTE_BF", STAT_RESET_TASTE_BF, "\"0-n\""); unsigned char STAT_SCHLAFPOSITION_TASTE_BFTH = (RXBUF_UCHAR(10)); // Signal value of the sleeping position button on the rear passenger door / Signalwert der Taste Schlafposition // an der Beifahrertür Fond ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_SCHLAFPOSITION_TASTE_BFTH", STAT_SCHLAFPOSITION_TASTE_BFTH, "\"0-n\""); unsigned char STAT_SITZPOSITION_TASTE_BFTH = (RXBUF_UCHAR(11)); // Signal value for remote control button button on driver's door / Signalwert für Fernbedienungstaste-Taste an // der Fahrertür ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_TASTEN", "STAT_SITZPOSITION_TASTE_BFTH", STAT_SITZPOSITION_TASTE_BFTH, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_SITZEXT_VORHANDEN: { // 0xD1CB if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_SITZEXT_VORHANDEN", 2); break; } unsigned char STAT_VORHANDEN_SITZEXT_VORNE = (RXBUF_UCHAR(0)); // SB_SitzExt available for FA, BF / SB_SitzExt vorhanden für FA,BF ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_VORHANDEN", "STAT_VORHANDEN_SITZEXT_VORNE", STAT_VORHANDEN_SITZEXT_VORNE, "\"0-n\""); unsigned char STAT_VORHANDEN_SITZEXT_HINTEN = (RXBUF_UCHAR(1)); // SB_SitzExt available for FA, BF / SB_SitzExt vorhanden für FA,BF ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_SITZEXT_VORHANDEN", "STAT_VORHANDEN_SITZEXT_HINTEN", STAT_VORHANDEN_SITZEXT_HINTEN, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_TANK_FUELLSTAND_LINKS: { // 0xD258 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_TANK_FUELLSTAND_LINKS", 2); break; } unsigned short STAT_FUELLSTAND_TANK_LI_WERT = (RXBUF_UINT(0)); // Returns the level value of the left tank sensor. The work area and IO area must be filled by the developer. / // Rückgabe des Füllstandwerts des linken Tanksensor. Arbeitsbereich und IO-Bereich muss vom Entwickler befüllt // werden. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "TANK_FUELLSTAND_LINKS", "STAT_FUELLSTAND_TANK_LI_WERT", STAT_FUELLSTAND_TANK_LI_WERT, "\"Ohm\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_TANK_FUELLSTAND_RECHTS: { // 0xD259 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_TANK_FUELLSTAND_RECHTS", 2); break; } unsigned short STAT_FUELLSTAND_TANK_RE_WERT = (RXBUF_UINT(0)); // Returns the fill level of the right tank sensor. The work area and IO area must be filled by the developer. / // Rückgabe des Füllstands des rechten Tanksensors. Arbeitsbereich und IO-Bereich muss vom Entwickler befüllt // werden. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "TANK_FUELLSTAND_RECHTS", "STAT_FUELLSTAND_TANK_RE_WERT", STAT_FUELLSTAND_TANK_RE_WERT, "\"Ohm\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HUPE_TASTER: { // 0xD297 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HUPE_TASTER", 1); break; } char STAT_TASTER_HUPE_EIN = (RXBUF_SCHAR(0)); // 0 = horn button not actuated 1 = horn button actuated / 0= Taster Hupe nicht betätigt 1= Taster Hupe betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HUPE_TASTER", "STAT_TASTER_HUPE_EIN", STAT_TASTER_HUPE_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_THERMOSCHUTZ: { // 0xD321 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_THERMOSCHUTZ", 2); break; } short STAT_SPIEGEL_THERMOSCHUTZ_AKTIV = (RXBUF_SINT(0)); // 0: not active 1: active / 0: nicht aktiv 1: aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_THERMOSCHUTZ", "STAT_SPIEGEL_THERMOSCHUTZ_AKTIV", STAT_SPIEGEL_THERMOSCHUTZ_AKTIV, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_LIN: { // 0xD329 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_LIN", 2); break; } short STAT_VORHANDEN_LIN_SPIEGEL_EIN = (RXBUF_SINT(0)); // 0: No LIN outside mirror 1: LIN outside mirror / 0: Kein LIN-Aussenspiegel 1: LIN-Aussenspiegel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_LIN", "STAT_VORHANDEN_LIN_SPIEGEL_EIN", STAT_VORHANDEN_LIN_SPIEGEL_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_MEM_VORHANDEN: { // 0xD32B if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_MEM_VORHANDEN", 2); break; } short STAT_VORHANDEN_SPIEGEL_MEMORY_EIN = (RXBUF_SINT(0)); // 0: No memory function 1: Memory function / 0: Keine Memoryfunktion 1: Memoryfunktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_MEM_VORHANDEN", "STAT_VORHANDEN_SPIEGEL_MEMORY_EIN", STAT_VORHANDEN_SPIEGEL_MEMORY_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_HEIZUNG_VERBAUT: { // 0xD32E if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_HEIZUNG_VERBAUT", 2); break; } short STAT_VORHANDEN_SPIEGEL_HEIZUNG_EIN = (RXBUF_SINT(0)); // 0: No mirror heating 1: Mirror heating / 0: Keine Spiegelheizung 1: Spiegelheizung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_HEIZUNG_VERBAUT", "STAT_VORHANDEN_SPIEGEL_HEIZUNG_EIN", STAT_VORHANDEN_SPIEGEL_HEIZUNG_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_EC_SPIEGEL_VORHANDEN: { // 0xD330 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_EC_SPIEGEL_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_EC_SPIEGEL = (RXBUF_UCHAR(0)); // 0: EC level not available; 1: EC mirror available / 0: EC-Spiegel nicht vorhanden; 1: EC-Spiegel vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "EC_SPIEGEL_VORHANDEN", "STAT_VORHANDEN_EC_SPIEGEL", STAT_VORHANDEN_EC_SPIEGEL, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_TASTER: { // 0xD331 if (datalen < 14) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_TASTER", 14); break; } short STAT_SPIEGEL_BEIKLAPPEN_EIN = (RXBUF_SINT(0)); // 0: Fold-in mirror button not pressed 1: Fold-in mirror button pressed / 0: Taster Spiegel Beiklappen nicht // gedrückt 1: Taster Spiegel Beiklappen gedrückt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_BEIKLAPPEN_EIN", STAT_SPIEGEL_BEIKLAPPEN_EIN, "\"0/1\""); short STAT_SPIEGEL_SCHALTER_FA_EIN = (RXBUF_SINT(2)); // Driver / passenger mirror selection 0: passenger mirror 1: driver mirror / Spiegelauswahl Fahrer / Beifahrer // 0: Beifahrerspiegel 1: Fahrerspiegel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_SCHALTER_FA_EIN", STAT_SPIEGEL_SCHALTER_FA_EIN, "\"0/1\""); short STAT_SPIEGEL_TASTER_LINKS_EIN = (RXBUF_SINT(4)); // 0: button not pressed 1: button pressed / 0: Taster nicht gedrückt 1: Taster gedrückt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_TASTER_LINKS_EIN", STAT_SPIEGEL_TASTER_LINKS_EIN, "\"0/1\""); short STAT_SPIEGEL_TASTER_OBEN_EIN = (RXBUF_SINT(6)); // 0: button not pressed 1: button pressed / 0: Taster nicht gedrückt 1: Taster gedrückt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_TASTER_OBEN_EIN", STAT_SPIEGEL_TASTER_OBEN_EIN, "\"0/1\""); short STAT_SPIEGEL_TASTER_RECHTS_EIN = (RXBUF_SINT(8)); // 0: button not pressed 1: button pressed / 0: Taster nicht gedrückt 1: Taster gedrückt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_TASTER_RECHTS_EIN", STAT_SPIEGEL_TASTER_RECHTS_EIN, "\"0/1\""); short STAT_SPIEGEL_TASTER_UNTEN_EIN = (RXBUF_SINT(10)); // 0: button not pressed 1: button pressed / 0: Taster nicht gedrückt 1: Taster gedrückt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_TASTER_UNTEN_EIN", STAT_SPIEGEL_TASTER_UNTEN_EIN, "\"0/1\""); short STAT_SPIEGEL_TASTER_NR = (RXBUF_SINT(12)); // VS result, see table / VS-Result, siehe Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_TASTER", "STAT_SPIEGEL_TASTER_NR", STAT_SPIEGEL_TASTER_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_KLAPPEN_VORHANDEN: { // 0xD332 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_KLAPPEN_VORHANDEN", 2); break; } short STAT_VORHANDEN_SPIEGEL_BEIKLAPPEN_EIN = (RXBUF_SINT(0)); // 0: No folding in possible 1: Folding in possible / 0: Kein Beiklappen möglich 1: Beiklappne möglich ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_KLAPPEN_VORHANDEN", "STAT_VORHANDEN_SPIEGEL_BEIKLAPPEN_EIN", STAT_VORHANDEN_SPIEGEL_BEIKLAPPEN_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_UGDO_VORHANDEN: { // 0xD33A if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_UGDO_VORHANDEN", 2); break; } short STAT_VORHANDEN_UGDO = (RXBUF_SINT(0)); // 0: UGDO not available; 1: UGDO available / 0: UGDO nicht vorhanden; 1: UGDO vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "UGDO_VORHANDEN", "STAT_VORHANDEN_UGDO", STAT_VORHANDEN_UGDO, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSENSPIEGEL_ABBLENDEN_VORHANDEN: { // 0xD33C if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSENSPIEGEL_ABBLENDEN_VORHANDEN", 2); break; } short STAT_VORHANDEN_SPIEGEL_ABBLENDEN_EIN = (RXBUF_SINT(0)); // Returns whether the exterior mirrors can be dimmed and which ones. See table TAB_AUSSENSPIEGEL_ABBLENDEN / // Liefert zurück ob die Außenspiegel abblendbar sind und welche. Siehe Table TAB_AUSSENSPIEGEL_ABBLENDEN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "AUSSENSPIEGEL_ABBLENDEN_VORHANDEN", "STAT_VORHANDEN_SPIEGEL_ABBLENDEN_EIN", STAT_VORHANDEN_SPIEGEL_ABBLENDEN_EIN, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_UGDO_LAND: { // 0xD33D if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_UGDO_LAND", 1); break; } unsigned char STAT_UGDO_LAND_NR = (RXBUF_UCHAR(0)); // Set country / Eingestelltes Land ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "UGDO_LAND", "STAT_UGDO_LAND_NR", STAT_UGDO_LAND_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_UGDO_MODE: { // 0xD33E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_UGDO_MODE", 1); break; } unsigned char STAT_UGDO_MODE_NR = (RXBUF_UCHAR(0)); // Fashion of the UGDO / Mode des UGDO ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "UGDO_MODE", "STAT_UGDO_MODE_NR", STAT_UGDO_MODE_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KOMPASS_SPIEGEL_VORHANDEN: { // 0xD343 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KOMPASS_SPIEGEL_VORHANDEN", 1); break; } unsigned char STAT_KOMPASS_SPIEGEL_VORHANDEN_EIN = (RXBUF_UCHAR(0)); // 0: Compass mirror not installed 1: Compass mirror installed / 0: Kompass-Spiegel nicht verbaut 1: // Kompass-Spiegel verbaut ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KOMPASS_SPIEGEL_VORHANDEN", "STAT_KOMPASS_SPIEGEL_VORHANDEN_EIN", STAT_KOMPASS_SPIEGEL_VORHANDEN_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KOMPASS_SPIEGEL_MAGNET: { // 0xD344 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KOMPASS_SPIEGEL_MAGNET", 1); break; } unsigned char STAT_KOMPASS_SPIEGEL_MAGNET_ZONE_NR = (RXBUF_UCHAR(0)); // Output magnetic zone (from slave) For a listing, see table TAB_MAGNETZONE / Ausgabe Magnetzone (aus Slave) // Auflistung siehe Tabelle TAB_MAGNETZONE ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KOMPASS_SPIEGEL_MAGNET", "STAT_KOMPASS_SPIEGEL_MAGNET_ZONE_NR", STAT_KOMPASS_SPIEGEL_MAGNET_ZONE_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KOMPASS_SPIEGEL_SPRACHE: { // 0xD345 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KOMPASS_SPIEGEL_SPRACHE", 1); break; } unsigned char STAT_KOMPASS_SPIEGEL_SPRACHE_NR = (RXBUF_UCHAR(0)); // Coding parameters from the master language setting list see table TAB_KOMPASS_SPRACHE / Codierparameter aus // dem Master Spracheinstellung Auflistung siehe Tabelle TAB_KOMPASS_SPRACHE ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KOMPASS_SPIEGEL_SPRACHE", "STAT_KOMPASS_SPIEGEL_SPRACHE_NR", STAT_KOMPASS_SPIEGEL_SPRACHE_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KOMPASS_SPIEGEL_LENKUNG: { // 0xD346 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KOMPASS_SPIEGEL_LENKUNG", 1); break; } unsigned char STAT_KOMPASS_SPIEGEL_LENKUNG_NR = (RXBUF_UCHAR(0)); // Coding parameters from the master 0: right-hand drive 1: left-hand drive / Codierparameter aus dem Master 0: // Rechtslenker 1: Linkslenker ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KOMPASS_SPIEGEL_LENKUNG", "STAT_KOMPASS_SPIEGEL_LENKUNG_NR", STAT_KOMPASS_SPIEGEL_LENKUNG_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_FRONT_MOTOR: { // 0xD351 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_FRONT_MOTOR", 1); break; } unsigned char STAT_MOTOR_FRONTWISCHER_EIN = (RXBUF_UCHAR(0)); // Supplies the status of the control of the front wiper: 0 = control of the front wiper not active; 1 = control // of windscreen wiper active / Liefert den Zustand der Ansteuerung des Frontscheibenwischers: 0= Ansteuerung // Frontscheibenwischer nicht aktiv; 1= Ansteuerung Frontscheibenwischer aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_FRONT_MOTOR", "STAT_MOTOR_FRONTWISCHER_EIN", STAT_MOTOR_FRONTWISCHER_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_HECK_MOTOR: { // 0xD353 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_HECK_MOTOR", 1); break; } unsigned char STAT_MOTOR_HECKWISCHER_EIN = (RXBUF_UCHAR(0)); // Returns the status of the activation of the rear window wiper: 0 = activation of the rear window wiper not // active; 1 = control of rear window wiper active / Liefert den Zustand der Ansteuerung des // Heckscheibenwischers: 0= Ansteuerung Heckscheibenwischer nicht aktiv; 1= Ansteuerung Heckscheibenwischer // aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_HECK_MOTOR", "STAT_MOTOR_HECKWISCHER_EIN", STAT_MOTOR_HECKWISCHER_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SRA_RELAIS: { // 0xD354 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SRA_RELAIS", 1); break; } unsigned char STAT_RELAIS_SRA_EIN = (RXBUF_UCHAR(0)); // Supplies the status of the relay of the headlight cleaning system: 0 = relay headlight cleaning system not // active; 1 = Relay headlight cleaning system active / Liefert den Zustand des Relais der // Scheinwerferreinigungsanlage: 0= Relais Scheinwerferreinigungsanlage nicht aktiv; 1= Relais // Scheinwerferreinigungsanlage aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SRA_RELAIS", "STAT_RELAIS_SRA_EIN", STAT_RELAIS_SRA_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WASCHWASSERSTAND: { // 0xD357 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WASCHWASSERSTAND", 3); break; } unsigned char STAT_WASCHWASSERSTAND_EIN = (RXBUF_UCHAR(0)); // Filling status of the washing water tank: 0 = washing water tank not sufficiently filled; 1 = washing water // tank sufficiently filled / Befüllungszustand des Waschwasserbehälters: 0= Waschwasserbehälter nicht // ausreichend befüllt; 1= Waschwasserbehälter ausreichend befüllt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WASCHWASSERSTAND", "STAT_WASCHWASSERSTAND_EIN", STAT_WASCHWASSERSTAND_EIN, "\"0/1\""); unsigned short STAT_WASCHWASSERSTAND_WERT = (RXBUF_UINT(1)); // Specification of the level value in mv. 0xFFFF: invalid value or value not supported / Angabe des Pegelwerts // in mv. 0xFFFF: ungültiger Wert oder Wert nicht unterstützt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "WASCHWASSERSTAND", "STAT_WASCHWASSERSTAND_WERT", STAT_WASCHWASSERSTAND_WERT, "\"mV\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_HECK_VORHANDEN: { // 0xD358 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_HECK_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_HECKWISCHER_EIN = (RXBUF_UCHAR(0)); // 0: rear wiper not coded; 1: Coded rear wiper / 0: Heckwischer nicht codiert; 1: Heckwischer codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_HECK_VORHANDEN", "STAT_VORHANDEN_HECKWISCHER_EIN", STAT_VORHANDEN_HECKWISCHER_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SRA_VORHANDEN: { // 0xD359 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SRA_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_SRA = (RXBUF_UCHAR(0)); // Indicates whether the headlight cleaning system is coded: 0 = headlight cleaning system not coded; 1 = coded // headlight cleaning system / Gibt an, ob die Scheinwerferreinigungsanlage codiert ist: 0= // Scheinwerferreinigungsanlage nicht codiert; 1= Scheinwerferreinigungsanlage codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SRA_VORHANDEN", "STAT_VORHANDEN_SRA", STAT_VORHANDEN_SRA, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKSTOCK_WISCHER: { // 0xD35B if (datalen < 11) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKSTOCK_WISCHER", 11); break; } char STAT_LENKSTOCK_WISCHER_TASTER_AXIAL_EIN = (RXBUF_SCHAR(0)); // Result not relevant / Ergebnis nicht relevant ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_TASTER_AXIAL_EIN", STAT_LENKSTOCK_WISCHER_TASTER_AXIAL_EIN, "\"0-n\""); char STAT_LENKSTOCK_WISCHER_FRONTWASCHEN = (RXBUF_SCHAR(1)); // 0 = steering column wiper not in front wash position; 1 = steering column wiper in front washing position / 0= // Lenkstock Wischer nicht in Stellung Frontwaschen; 1= Lenkstock Wischer in Stellung Frontwaschen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_FRONTWASCHEN", STAT_LENKSTOCK_WISCHER_FRONTWASCHEN, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_HECKWASCHEN = (RXBUF_SCHAR(2)); // 0 = steering column wiper not in rear wash position; 1 = Wiper steering column in rear wash position / 0= // Lenkstock Wischer nicht in Stellung Heckwaschen; 1= Lenkstock Wischer in Stellung Heckwaschen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_HECKWASCHEN", STAT_LENKSTOCK_WISCHER_HECKWASCHEN, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_HECKWISCHEN = (RXBUF_SCHAR(3)); // 0 = steering column wiper not in rear wipe position; 1 = Wiper steering column in rear wiping position / 0= // Lenkstock Wischer nicht in Stellung Heckwischen; 1= Lenkstock Wischer in Stellung Heckwischen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_HECKWISCHEN", STAT_LENKSTOCK_WISCHER_HECKWISCHEN, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_POS_INTERVALL = (RXBUF_SCHAR(4)); // 0 = steering column wiper not in position interval or automatic; 1 = steering column wiper in position // interval or automatic / 0= Lenkstock Wischer nicht in Stellung Intervall oder Automatik; 1= Lenkstock Wischer // in Stellung Intervall oder Automatik ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_POS_INTERVALL", STAT_LENKSTOCK_WISCHER_POS_INTERVALL, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_NULLSTELLUNG = (RXBUF_SCHAR(5)); // 0 = steering column wiper not zero position; 1 = steering column wiper zero position; Note: With a switch, the // zero position corresponds to the Off stage, with a button, the zero position corresponds to the middle // position / 0= Lenkstock Wischer nicht Nullstellung; 1= Lenkstock Wischer Nullstellung; Hinweis: Bei einem // Schalter entspricht die Nullstellung der Stufe Aus, bei einem Taster entspricht die Nullstellung der // Mittelstellung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_NULLSTELLUNG", STAT_LENKSTOCK_WISCHER_NULLSTELLUNG, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_POS_1 = (RXBUF_SCHAR(6)); // 0 = steering column wiper not in position 1; 1 = steering column wiper in position 1 / 0= Lenkstock Wischer // nicht in Stellung Position 1; 1= Lenkstock Wischer in Position 1 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_POS_1", STAT_LENKSTOCK_WISCHER_POS_1, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_POS_2 = (RXBUF_SCHAR(7)); // 0 = steering column wiper not in position 2; 1 = steering column wiper in position 2 / 0= Lenkstock Wischer // nicht in Stellung Position 2; 1= Lenkstock Wischer in Position 2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_POS_2", STAT_LENKSTOCK_WISCHER_POS_2, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_RAENDEL_NR = (RXBUF_SCHAR(8)); // VS-Result steering column wiper; 0 = wiper knurled wheel level 1; 1 = wiper knurled wheel level 2; 2 = wiper // knurled wheel level 3; 3 = wiper knurled wheel level 4; 4 = wiper knurled wheel invalid position; Note: // Numbering is retained even if one or more functions are omitted / VS-Result Lenkstock Wischer; 0= Wischer // Rändelrad Stufe 1; 1= Wischer Rändelrad Stufe 2; 2= Wischer Rändelrad Stufe 3; 3= Wischer Rändelrad Stufe // 4; 4= Wischer Rändelrad ungültige Position; Hinweis: Numerierung bleibt erhalten, auch bei Entfall einer oder // mehrerer Funktionen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_RAENDEL_NR", STAT_LENKSTOCK_WISCHER_RAENDEL_NR, "\"0-n\""); char STAT_LENKSTOCK_WISCHER_TIPPWISCHEN = (RXBUF_SCHAR(9)); // 0 = steering column wiper not in tip wipe position; 1 = Wiper steering column in tip wipe position / 0= // Lenkstock Wischer nicht in Stellung Tippwischen; 1= Lenkstock Wischer in Stellung Tippwischen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_TIPPWISCHEN", STAT_LENKSTOCK_WISCHER_TIPPWISCHEN, "\"0/1\""); char STAT_LENKSTOCK_WISCHER_NR = (RXBUF_SCHAR(10)); // VS-Result steering column wiper; See sub-table / VS-Result Lenkstock Wischer; Siehe Sub-Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_WISCHER", "STAT_LENKSTOCK_WISCHER_NR", STAT_LENKSTOCK_WISCHER_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_FRONT_LIN: { // 0xD35E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_FRONT_LIN", 1); break; } unsigned char STAT_VORHANDEN_LIN_FRONTWISCHER = (RXBUF_UCHAR(0)); // Indicates whether the front wiper is installed as a LIN module: 0 = no LIN front wiper; 1 = LIN front wiper / // Gibt an, ob der Frontwischer als LIN-Modul verbaut ist: 0= kein LIN-Frontwischer; 1= LIN-Frontwischer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_FRONT_LIN", "STAT_VORHANDEN_LIN_FRONTWISCHER", STAT_VORHANDEN_LIN_FRONTWISCHER, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_REGENSENSOR_VORHANDEN: { // 0xD373 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_REGENSENSOR_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_REGENSENSOR_EIN = (RXBUF_UCHAR(0)); // 0: rain sensor not available / coded; 1: Rain sensor available / coded / 0: Regensensor nicht vorhanden / // codiert; 1: Regensensor vorhanden / codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "REGENSENSOR_VORHANDEN", "STAT_VORHANDEN_REGENSENSOR_EIN", STAT_VORHANDEN_REGENSENSOR_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_REGENSENSOR_INIT: { // 0xD375 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_REGENSENSOR_INIT", 1); break; } unsigned char STAT_REGENSENSOR_INIT = (RXBUF_UCHAR(0)); // 0x00 rain sensor not measured 0x01 rain sensor measured / 0x00 Regensensor nicht eingemessen 0x01 Regensensor // eingemessen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "REGENSENSOR_INIT", "STAT_REGENSENSOR_INIT", STAT_REGENSENSOR_INIT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_REGENSENSOR_INT_WERT: { // 0xD376 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_REGENSENSOR_INT_WERT", 6); break; } float STAT_REGEN_INT_WERT = (RXBUF_SINT(0)/2.0f); // Rain intensity in 0 .. 75% / Regenintensität in 0 .. 75 % ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "REGENSENSOR_INT_WERT", "STAT_REGEN_INT_WERT", STAT_REGEN_INT_WERT, "\"%\""); unsigned long STAT_RESERVE_WERT = (RXBUF_UINT32(2)); // Reserve for future changes / Reserve für zukünftige Änderungen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "REGENSENSOR_INT_WERT", "STAT_RESERVE_WERT", STAT_RESERVE_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FAHRLICHTSENSOR: { // 0xD3BE if (datalen < 14) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FAHRLICHTSENSOR", 14); break; } float STAT_FRONTLICHT_WERT = (RXBUF_UINT(0)*6.7f); // unfiltered front light value. Is between 0 and 1701.8 mW / m² / ungefilterter Frontlichtwert. Liegt zwischen 0 // und 1701,8 mW/m² ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FAHRLICHTSENSOR", "STAT_FRONTLICHT_WERT", STAT_FRONTLICHT_WERT, "\"mW/m²\""); float STAT_FRONTLICHT_GEMITTELT_WERT = (RXBUF_UINT(2)*6.7f); // averaged front light value. Is between 0 and 1701.7 mW / m² / gemittelter Frontlichtwert. Liegt zwischen 0 und // 1701,7 mW/m² ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FAHRLICHTSENSOR", "STAT_FRONTLICHT_GEMITTELT_WERT", STAT_FRONTLICHT_GEMITTELT_WERT, "\"mW/m²\""); float STAT_UMGEBUNGSLICHT_WERT = (RXBUF_SINT(4)*100.0f); // unfiltered ambient light. Range 0 to 25500 lux / ungefiltetes Umgebungslicht. Bereich 0 bis 25500 Lux ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FAHRLICHTSENSOR", "STAT_UMGEBUNGSLICHT_WERT", STAT_UMGEBUNGSLICHT_WERT, "\"Lux\""); float STAT_UMGEBUNGSLICHT_GEMITTELT_WERT = (RXBUF_SINT(6)*100.0f); // Average value of ambient light. Range 0 to 25500 lux / gemittelter Wert Umgebungslicht. Bereich 0 bis 25500 // Lux ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "FAHRLICHTSENSOR", "STAT_UMGEBUNGSLICHT_GEMITTELT_WERT", STAT_UMGEBUNGSLICHT_GEMITTELT_WERT, "\"Lux\""); short STAT_HUD_WERT = (RXBUF_SINT(8)); // unfiltered background brightness value. Range 0 to 255 / ungefilterter Wert Hintergrund-Helligkeit. Bereich 0 // bis 255 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "FAHRLICHTSENSOR", "STAT_HUD_WERT", STAT_HUD_WERT, "\"Digit\""); unsigned long STAT_RESERVE_WERT_0XD3BE = (RXBUF_UINT32(10)); // Reserve for future changes / Reserve für zukünftige Änderungen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "FAHRLICHTSENSOR", "STAT_RESERVE_WERT_0XD3BE", STAT_RESERVE_WERT_0XD3BE, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FAHRLICHTSENSOR_VORHANDEN: { // 0xD3BF if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FAHRLICHTSENSOR_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_FAHRLICHTSENSOR = (RXBUF_UCHAR(0)); // 1: Driving light sensor available / coded / 1:Fahrlichtsensor vorhanden/codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FAHRLICHTSENSOR_VORHANDEN", "STAT_VORHANDEN_FAHRLICHTSENSOR", STAT_VORHANDEN_FAHRLICHTSENSOR, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOD_LENKRAD: { // 0xD3F0 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOD_LENKRAD", 1); break; } unsigned char STAT_HOD_STATUS_NR = (RXBUF_UCHAR(0)); // Returns the status of the HOD sensor / Liefert den Status des HOD Sensors ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOD_LENKRAD", "STAT_HOD_STATUS_NR", STAT_HOD_STATUS_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOD_ZUSTAND_GAP: { // 0xD3F1 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOD_ZUSTAND_GAP", 1); break; } char STAT_ADC_ROHWERT_WERT = (RXBUF_SCHAR(0)); // Raw value measured by the A / D converter for the distance or the contact area between hand and steering wheel // / Vom A/D-Wandler gemessener Rohwert des Abstands bzw. der Berührungsfläche zwischen Hand und Lenkrad ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOD_ZUSTAND_GAP", "STAT_ADC_ROHWERT_WERT", STAT_ADC_ROHWERT_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_LIN_DATEN_LESEN: { // 0xD505 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_LIN_DATEN_LESEN", 3); break; } float STAT_ANZAHL_WISCHZYKLEN_WERT = (RXBUF_UINT(0)*100.0f); // Number of wiping cycles in steps of 100 / Anzahl der Wischzyklen in 100er Schritten ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "WISCHER_LIN_DATEN_LESEN", "STAT_ANZAHL_WISCHZYKLEN_WERT", STAT_ANZAHL_WISCHZYKLEN_WERT, ""); unsigned char STAT_CARCODE = (RXBUF_UCHAR(2)); // Provides the carcode of the wiper motor / Liefert den Carcode des Wischermotors ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_LIN_DATEN_LESEN", "STAT_CARCODE", STAT_CARCODE, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_WISCHER_HECK_MOTOR_2: { // 0xD507 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_WISCHER_HECK_MOTOR_2", 1); break; } unsigned char STAT_MOTOR_HECKWISCHER_2_EIN = (RXBUF_UCHAR(0)); // Returns the status of the activation of the 2nd rear window wiper: 0 = activation of the 2nd rear window wiper // not active; 1 = activation of 2nd rear window wiper active / Liefert den Zustand der Ansteuerung des 2. // Heckscheibenwischers: 0= Ansteuerung 2. Heckscheibenwischer nicht aktiv; 1= Ansteuerung 2. // Heckscheibenwischer aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "WISCHER_HECK_MOTOR_2", "STAT_MOTOR_HECKWISCHER_2_EIN", STAT_MOTOR_HECKWISCHER_2_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_INNENLICHTEINHEIT_DRITTE_SITZREIHE: { // 0xD52C if (datalen < 7) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_INNENLICHTEINHEIT_DRITTE_SITZREIHE", 7); break; } unsigned char STAT_INNENLICHT = (RXBUF_UCHAR(0)); // LIN status feedback ILE ¿status interior light Values: 0 - off, 1 - on / LIN Status-Rückmeldung ILE ¿ Status // Innenlicht Werte: 0 - Aus, 1 - Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_INNENLICHT", STAT_INNENLICHT, "\"0/1\""); unsigned char STAT_LESELICHT_LINKS = (RXBUF_UCHAR(1)); // LIN status feedback ILE ¿status reading light left Values: 0 - off, 1 - on / LIN Status-Rückmeldung ILE ¿ // Status Leselicht links Werte: 0 - Aus, 1 - Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_LESELICHT_LINKS", STAT_LESELICHT_LINKS, "\"0/1\""); unsigned char STAT_LESELICHT_RECHTS = (RXBUF_UCHAR(2)); // LIN status feedback ILE ¿status reading light right Values: 0 - off, 1 - on / LIN Status-Rückmeldung ILE ¿ // Status Leselicht rechts Werte: 0 - Aus, 1 - Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_LESELICHT_RECHTS", STAT_LESELICHT_RECHTS, "\"0/1\""); unsigned char STAT_WELCOMELIGHT = (RXBUF_UCHAR(3)); // LIN status feedback ILE ¿status welcome light Values: 0 - off, 1 - on / LIN Status-Rückmeldung ILE ¿ Status // Welcomelight Werte: 0 - Aus, 1 - Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_WELCOMELIGHT", STAT_WELCOMELIGHT, "\"0/1\""); unsigned char STAT_AMBIENTELICHT = (RXBUF_UCHAR(4)); // LIN status feedback ILE ¿Ambient light status Values: 0 - Off, 1 - On / LIN Status-Rückmeldung ILE ¿ Status // Ambientelicht Werte: 0 - Aus, 1 - Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_AMBIENTELICHT", STAT_AMBIENTELICHT, "\"0/1\""); unsigned char STAT_TASTER_LESELICHT_LINKS = (RXBUF_UCHAR(5)); // LIN status feedback ILE ¿Status button reading light left Values: 0 - not activated, 1 - activated / LIN // Status-Rückmeldung ILE ¿ Status Taster Leselicht links Werte: 0 - nicht betätigt, 1 - betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_TASTER_LESELICHT_LINKS", STAT_TASTER_LESELICHT_LINKS, "\"0/1\""); unsigned char STAT_TASTER_LESELICHT_RECHTS = (RXBUF_UCHAR(6)); // LIN status feedback ILE ¿Status button reading light right Values: 0 - not activated, 1 - activated / LIN // Status-Rückmeldung ILE ¿ Status Taster Leselicht rechts Werte: 0 - nicht betätigt, 1 - betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHTEINHEIT_DRITTE_SITZREIHE", "STAT_TASTER_LESELICHT_RECHTS", STAT_TASTER_LESELICHT_RECHTS, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_VORNE: { // 0xD53A if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_VORNE", 4); break; } short STAT_LESELICHT_LINKS_VORNE = (RXBUF_SINT(0)); // 1: Reading light on front left / 1: Leselicht links vorne ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_VORNE", "STAT_LESELICHT_LINKS_VORNE", STAT_LESELICHT_LINKS_VORNE, "\"0/1\""); short STAT_LESELICHT_RECHTS_VORNE = (RXBUF_SINT(2)); // 1: Reading light on front right / 1: Leselicht rechts vorne ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_VORNE", "STAT_LESELICHT_RECHTS_VORNE", STAT_LESELICHT_RECHTS_VORNE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LICHTSCHALTER_WBL_TASTER_BEL: { // 0xD53D if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LICHTSCHALTER_WBL_TASTER_BEL", 2); break; } short STAT_TASTER_WBL_BEL_EIN = (RXBUF_SINT(0)); // 0: Bel. Hazard warning lights button off 1: Bel. Hazard warning lights button on / 0: Bel. Taster // Warnblinkanlage aus 1: Bel. Taster Warnblinkanlage ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LICHTSCHALTER_WBL_TASTER_BEL", "STAT_TASTER_WBL_BEL_EIN", STAT_TASTER_WBL_BEL_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_RUECKWAERTSGANG_SCHALTER: { // 0xD540 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_RUECKWAERTSGANG_SCHALTER", 2); break; } short STAT_SCHALTER_RUECK_EIN = (RXBUF_SINT(0)); // 0: not active 1: active / 0: nicht aktiv 1: aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "RUECKWAERTSGANG_SCHALTER", "STAT_SCHALTER_RUECK_EIN", STAT_SCHALTER_RUECK_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SCHEINWERFER_GRUNDSTELLUNG_STATUS: { // 0xD541 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SCHEINWERFER_GRUNDSTELLUNG_STATUS", 2); break; } short STAT_GRUNDSTELLUNG_SCHEINWERFER_EIN = (RXBUF_SINT(0)); // 0: Headlight reacts to normal mechanism (manual LWR: reaction to small wheel automatic / dynamic LWR: reaction // to the height sensors 1: Headlights stay in their basic position (can only be canceled by diagnosis or // changing clamps) / 0: Scheinwerfer reagiert auf normalen Mechanismus (manuelle LWR: Reaktion auf Rädchen // automatische / dynamische LWR: Reaktion auf die Höhenstndssenoren 1: Scheinwerfer bleiben in Grundstellung // (aufheben nur per Diagnose oder Klemmenwechsel möglich) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "SCHEINWERFER_GRUNDSTELLUNG_STATUS", "STAT_GRUNDSTELLUNG_SCHEINWERFER_EIN", STAT_GRUNDSTELLUNG_SCHEINWERFER_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_VORNE_VORHANDEN: { // 0xD544 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_VORNE_VORHANDEN", 2); break; } short STAT_VORHANDEN_LESELICHT_VORNE = (RXBUF_SINT(0)); // 0 = front reading light not available, 1 = front reading light available / 0= Leselicht vorn nicht vorhanden, // 1= Leselicht vorne vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_VORNE_VORHANDEN", "STAT_VORHANDEN_LESELICHT_VORNE", STAT_VORHANDEN_LESELICHT_VORNE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_HINTEN_VORHANDEN: { // 0xD545 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_HINTEN_VORHANDEN", 2); break; } short STAT_VORHANDEN_LESELICHT_HINTEN = (RXBUF_SINT(0)); // 0 = rear reading light not available, 1 = rear reading light available / 0= Leselicht hinten nicht vorhanden, // 1= Leselicht hinten vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_HINTEN_VORHANDEN", "STAT_VORHANDEN_LESELICHT_HINTEN", STAT_VORHANDEN_LESELICHT_HINTEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LWR_DYNAMISCH_SCHRITTE_REFLAUF: { // 0xD548 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LWR_DYNAMISCH_SCHRITTE_REFLAUF", 2); break; } short STAT_VORHANDEN_LWR_SCHRITTE_REF_LAUF_WERT = (RXBUF_SINT(0)); // Number of steps for the reference run of the headlight range control / Schrittanzahl fuer den Referenzlauf der // Leuchtweitenregelung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LWR_DYNAMISCH_SCHRITTE_REFLAUF", "STAT_VORHANDEN_LWR_SCHRITTE_REF_LAUF_WERT", STAT_VORHANDEN_LWR_SCHRITTE_REF_LAUF_WERT, "\"Ink\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_INNENLICHT_HINTEN_TASTER: { // 0xD54B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_INNENLICHT_HINTEN_TASTER", 1); break; } unsigned char STAT_INNENLICHT_TASTER_HINTEN_EIN = (RXBUF_UCHAR(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betaetigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_HINTEN_TASTER", "STAT_INNENLICHT_TASTER_HINTEN_EIN", STAT_INNENLICHT_TASTER_HINTEN_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_INNENLICHT_VORNE_TASTER: { // 0xD54C if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_INNENLICHT_VORNE_TASTER", 2); break; } unsigned char STAT_INNENLICHT_TASTER_VORNE_EIN = (RXBUF_UCHAR(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betaetigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_VORNE_TASTER", "STAT_INNENLICHT_TASTER_VORNE_EIN", STAT_INNENLICHT_TASTER_VORNE_EIN, "\"0/1\""); unsigned char STAT_INNENLICHT_VORNE_DAUER_AUS_AKTIV = (RXBUF_UCHAR(1)); // 0: permanently off not active 1: permanently off active / 0: Daueraus nicht aktiv 1: Daueraus aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_VORNE_TASTER", "STAT_INNENLICHT_VORNE_DAUER_AUS_AKTIV", STAT_INNENLICHT_VORNE_DAUER_AUS_AKTIV, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_BELADUNGSSENSOR: { // 0xD54D if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_BELADUNGSSENSOR", 4); break; } short STAT_BUS_IN_BELADUNGSSENSOR_VORNE_WERT = (RXBUF_SINT(0)); // Bus message front load sensor in mm / Busnachricht Beladungssensor vorne in mm ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "BUS_IN_BELADUNGSSENSOR", "STAT_BUS_IN_BELADUNGSSENSOR_VORNE_WERT", STAT_BUS_IN_BELADUNGSSENSOR_VORNE_WERT, "\"mm\""); short STAT_BUS_IN_BELADUNGSSENSOR_HINTEN_WERT = (RXBUF_SINT(2)); // Bus message rear load sensor in mm / Busnachricht Beladungssensor hinten in mm ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "BUS_IN_BELADUNGSSENSOR", "STAT_BUS_IN_BELADUNGSSENSOR_HINTEN_WERT", STAT_BUS_IN_BELADUNGSSENSOR_HINTEN_WERT, "\"mm\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_HINTEN_RECHTS_TASTER: { // 0xD54E if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_HINTEN_RECHTS_TASTER", 2); break; } short STAT_TASTER_LESELICHT_HINTEN_RECHTS_EIN = (RXBUF_SINT(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_HINTEN_RECHTS_TASTER", "STAT_TASTER_LESELICHT_HINTEN_RECHTS_EIN", STAT_TASTER_LESELICHT_HINTEN_RECHTS_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LWR_MANUELL_POTI: { // 0xD54F if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LWR_MANUELL_POTI", 2); break; } short STAT_POTI_MAN_LWR_WERT = (RXBUF_SINT(0)); // Value of the knurled wheel of the manual LWR 0 - 254 valid value range 255 invalid / Wert des Rändelsrads der // manuellen LWR 0 - 254 gültiger Wertebereich 255 ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LWR_MANUELL_POTI", "STAT_POTI_MAN_LWR_WERT", STAT_POTI_MAN_LWR_WERT, "\"Ink\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LICHTSCHALTEREINHEIT: { // 0xD550 if (datalen < 5) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LICHTSCHALTEREINHEIT", 5); break; } unsigned char STAT_LICHTSCHALTEREINHEIT_AL_EIN = (RXBUF_UCHAR(0)); // 0: switch not in low beam position 1: switch in low beam position / 0: Schalter nicht in Stellung Abblendlicht // 1: Schalter in Stellung Abblendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTEREINHEIT", "STAT_LICHTSCHALTEREINHEIT_AL_EIN", STAT_LICHTSCHALTEREINHEIT_AL_EIN, "\"0/1\""); unsigned char STAT_LICHTSCHALTEREINHEIT_FLC_EIN = (RXBUF_UCHAR(1)); // 0: switch not in position driving light control (FLC) 1: switch in position driving light control (FLC) / 0: // Schalter nicht in Stellung Fahrlichtkontrolle (FLC) 1: Schalter in Stellung Fahrlichtkontrolle (FLC) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTEREINHEIT", "STAT_LICHTSCHALTEREINHEIT_FLC_EIN", STAT_LICHTSCHALTEREINHEIT_FLC_EIN, "\"0/1\""); unsigned char STAT_LICHTSCHALTEREINHEIT_NEUTRAL_EIN = (RXBUF_UCHAR(2)); // 0: Switch not in neutral position 1: Switch in neutral position / 0: Schalter nicht in Stellung Neutral 1: // Schalter in Stellung Neutral ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTEREINHEIT", "STAT_LICHTSCHALTEREINHEIT_NEUTRAL_EIN", STAT_LICHTSCHALTEREINHEIT_NEUTRAL_EIN, "\"0/1\""); unsigned char STAT_LICHTSCHALTEREINHEIT_STL_EIN = (RXBUF_UCHAR(3)); // 0: switch not in position light 1: switch in position position light / 0: Schalter nicht in Stellung // Standlicht 1: Schalter in Stellung Standlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTEREINHEIT", "STAT_LICHTSCHALTEREINHEIT_STL_EIN", STAT_LICHTSCHALTEREINHEIT_STL_EIN, "\"0/1\""); unsigned char STAT_LICHTSCHALTEREINHEIT_NR = (RXBUF_UCHAR(4)); // VS result, meaning see table / VS-Result, Bedeutung siehe Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTEREINHEIT", "STAT_LICHTSCHALTEREINHEIT_NR", STAT_LICHTSCHALTEREINHEIT_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LICHTSCHALTER_WBL_TASTER: { // 0xD552 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LICHTSCHALTER_WBL_TASTER", 1); break; } unsigned char STAT_TASTER_WBL_EIN = (RXBUF_UCHAR(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTER_WBL_TASTER", "STAT_TASTER_WBL_EIN", STAT_TASTER_WBL_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_HINTEN: { // 0xD553 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_HINTEN", 4); break; } short STAT_LESELICHT_LINKS_HINTEN = (RXBUF_SINT(0)); // 1 = rear left reading light on / 1= Leselicht links hinten ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_HINTEN", "STAT_LESELICHT_LINKS_HINTEN", STAT_LESELICHT_LINKS_HINTEN, "\"0/1\""); short STAT_LESELICHT_RECHTS_HINTEN = (RXBUF_SINT(2)); // 1: Reading light at the rear right on / 1: Leselicht rechts hinten ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_HINTEN", "STAT_LESELICHT_RECHTS_HINTEN", STAT_LESELICHT_RECHTS_HINTEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_PIA_FLA_FOLLOW: { // 0xD555 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_PIA_FLA_FOLLOW", 3); break; } unsigned char STAT_PIA_FLA_EIN = (RXBUF_UCHAR(0)); // PIA high beam assistant 0: Off 1: On / PIA Fernlichtassistent 0: Aus 1: Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_FLA_FOLLOW", "STAT_PIA_FLA_EIN", STAT_PIA_FLA_EIN, "\"0/1\""); unsigned char STAT_PIA_FOLLOW_ME_HOME_ZEIT_WERT = (RXBUF_UCHAR(1)); // Set time for Follow Me Home / Eingestellte Zeit für Follow Me Home ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_FLA_FOLLOW", "STAT_PIA_FOLLOW_ME_HOME_ZEIT_WERT", STAT_PIA_FOLLOW_ME_HOME_ZEIT_WERT, "\"s\""); unsigned char STAT_PIA_WELCOMELIGHT_EIN = (RXBUF_UCHAR(2)); // PIA Welcomelight 0: Off 1: On / PIA Welcomelight 0: Aus 1: Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_FLA_FOLLOW", "STAT_PIA_WELCOMELIGHT_EIN", STAT_PIA_WELCOMELIGHT_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SCHALTERBELEUCHTUNG_RAENDELRAD: { // 0xD557 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SCHALTERBELEUCHTUNG_RAENDELRAD", 2); break; } short STAT_POTI_DIMMUNG_WERT = (RXBUF_SINT(0)); // 0 - 254: valid value range 255 invalid / 0 - 254: gültiger Wertebereich 255 ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "SCHALTERBELEUCHTUNG_RAENDELRAD", "STAT_POTI_DIMMUNG_WERT", STAT_POTI_DIMMUNG_WERT, "\"Ink\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_PIA_ABBIEGELICHT: { // 0xD559 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_PIA_ABBIEGELICHT", 1); break; } unsigned char STAT_PIA_ABBIEGELICHT_PIA_EIN = (RXBUF_UCHAR(0)); // 0: PIA: turning light currently not active 1: PIA: turning light currently active / 0: PIA: Abbiegelicht // momentan nicht aktiv 1: PIA: Abbiegelicht momentan aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_ABBIEGELICHT", "STAT_PIA_ABBIEGELICHT_PIA_EIN", STAT_PIA_ABBIEGELICHT_PIA_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_PIA_TIPPBLINKEN: { // 0xD55E if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_PIA_TIPPBLINKEN", 3); break; } unsigned char STAT_PIA_MIND_ANZAHL_BLINKZYKLEN_BEI_TIPP_WERT = (RXBUF_UCHAR(0)); // Minimum number of flashing cycles for jog flashing at the moment / Mind.-Anzahl Blinkzyklen bei Tippblinken // momentan ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_TIPPBLINKEN", "STAT_PIA_MIND_ANZAHL_BLINKZYKLEN_BEI_TIPP_WERT", STAT_PIA_MIND_ANZAHL_BLINKZYKLEN_BEI_TIPP_WERT, "\"Ink\""); unsigned char STAT_PIA_QUITT_BLINK_ENTRIEGELN_EIN = (RXBUF_UCHAR(1)); // Acknowledgment flashing momentarily when unlocking 0: Off 1: On / Quittierungsblinken bei Entriegeln momentan // 0: Aus 1: Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_TIPPBLINKEN", "STAT_PIA_QUITT_BLINK_ENTRIEGELN_EIN", STAT_PIA_QUITT_BLINK_ENTRIEGELN_EIN, "\"0/1\""); unsigned char STAT_PIA_QUITT_BLINK_SICHERN_EIN = (RXBUF_UCHAR(2)); // Acknowledgment flashing when saving is currently 0: Off 1: On / Quittierungsblinken bei Sichern momentan 0: // Aus 1: Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_TIPPBLINKEN", "STAT_PIA_QUITT_BLINK_SICHERN_EIN", STAT_PIA_QUITT_BLINK_SICHERN_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LWR_MANUELL: { // 0xD55F if (datalen < 8) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LWR_MANUELL", 8); break; } short STAT_MAN_LWR_MAXPOS_WERT = (RXBUF_SINT(0)); // Controlled angle value when the LWR knurled wheel is in the MAX position / Angesteuerter Winkelwert bei // MAX-Stellung des LWR-Rändelrads ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LWR_MANUELL", "STAT_MAN_LWR_MAXPOS_WERT", STAT_MAN_LWR_MAXPOS_WERT, "\"°\""); short STAT_MAN_LWR_MINPOS_WERT = (RXBUF_SINT(2)); // Controlled angle value with the MIN position of the LWR knurled wheel / Angesteuerter Winkelwert bei // MIN-Stellung des LWR-Rändelrads ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LWR_MANUELL", "STAT_MAN_LWR_MINPOS_WERT", STAT_MAN_LWR_MINPOS_WERT, "\"°\""); short STAT_MAN_LWR_LINKS_WERT = (RXBUF_SINT(4)); // Current angle value LWR left / Aktueller Winkelwert LWR links ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LWR_MANUELL", "STAT_MAN_LWR_LINKS_WERT", STAT_MAN_LWR_LINKS_WERT, "\"°\""); short STAT_MAN_LWR_RECHTS_WERT = (RXBUF_SINT(6)); // Current LWR angle value right / Aktueller Winkelwert LWR rechts ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LWR_MANUELL", "STAT_MAN_LWR_RECHTS_WERT", STAT_MAN_LWR_RECHTS_WERT, "\"°\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_PIA_TAGFAHRLICHT: { // 0xD573 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_PIA_TAGFAHRLICHT", 1); break; } unsigned char STAT_PIA_TAGFAHRLICHT_EIN = (RXBUF_UCHAR(0)); // Daytime running lights momentarily: 0 = OFF; 1 = ON / Tagfahrlicht momentan: 0= AUS; 1= EIN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "PIA_TAGFAHRLICHT", "STAT_PIA_TAGFAHRLICHT_EIN", STAT_PIA_TAGFAHRLICHT_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_INNENLICHT_HINTEN: { // 0xD57B if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_INNENLICHT_HINTEN", 4); break; } short STAT_INNENLICHT_HINTEN_EIN = (RXBUF_SINT(0)); // 0: Off 1: On / 0: Aus 1: Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "INNENLICHT_HINTEN", "STAT_INNENLICHT_HINTEN_EIN", STAT_INNENLICHT_HINTEN_EIN, "\"0/1\""); short STAT_INNENLICHT_HINTEN_WERT = (RXBUF_SINT(2)); // Specification of luminosity in% value range 0-100% / Angabe Leuchtkraft in % Wertebereich 0-100% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "INNENLICHT_HINTEN", "STAT_INNENLICHT_HINTEN_WERT", STAT_INNENLICHT_HINTEN_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LWR_MODUS: { // 0xD57E if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LWR_MODUS", 4); break; } char STAT_KEINE_LWR_EIN = (RXBUF_SCHAR(0)); // 0: LWR coded 1: no LWR coded / 0: LWR codiert 1: keine LWR codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LWR_MODUS", "STAT_KEINE_LWR_EIN", STAT_KEINE_LWR_EIN, "\"0/1\""); char STAT_MAN_LWR_EIN = (RXBUF_SCHAR(1)); // 0: manual LWR not coded 1: manual LWR coded / 0: manuelle LWR nicht codiert 1: manuelle LWR codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LWR_MODUS", "STAT_MAN_LWR_EIN", STAT_MAN_LWR_EIN, "\"0/1\""); char STAT_AUT_LWR_EIN = (RXBUF_SCHAR(2)); // 0: automatic LWR not coded 1: automatic LWR coded / 0: automatische LWR nicht codiert 1: automatische LWR // codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LWR_MODUS", "STAT_AUT_LWR_EIN", STAT_AUT_LWR_EIN, "\"0/1\""); char STAT_DYN_LWR_EIN = (RXBUF_SCHAR(3)); // 0: dynamic LWR not coded 1: dynamic LWR coded / 0: dynamische LWR nicht codiert 1: dynamische LWR codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LWR_MODUS", "STAT_DYN_LWR_EIN", STAT_DYN_LWR_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_INNENLICHT_KLEMME_VA: { // 0xD57F if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_INNENLICHT_KLEMME_VA", 4); break; } short STAT_INNENLICHT_KLEMME_VA_EIN = (RXBUF_SINT(0)); // Terminal VA: 0: Off 1: On / Klemme VA: 0: Aus 1: Ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "INNENLICHT_KLEMME_VA", "STAT_INNENLICHT_KLEMME_VA_EIN", STAT_INNENLICHT_KLEMME_VA_EIN, "\"0/1\""); float STAT_INNENLICHT_KLEMME_VA_NACHLAUFZEIT_WERT = (RXBUF_SINT(2)/10.0f); // Follow-up time in seconds Value range 0-1800 seconds (corresponds to 30 minutes) / Nachlaufzeit in Sekunden // Wertebereich 0-1800 Sekunden (entspricht 30 Minuten) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "INNENLICHT_KLEMME_VA", "STAT_INNENLICHT_KLEMME_VA_NACHLAUFZEIT_WERT", STAT_INNENLICHT_KLEMME_VA_NACHLAUFZEIT_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKSTOCK_BLINKER_TASTER_FLA: { // 0xD580 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKSTOCK_BLINKER_TASTER_FLA", 1); break; } char STAT_LENKSTOCK_BLINKER_TASTER_FLA_EIN = (RXBUF_SCHAR(0)); // 0: steering column indicator, axial button high beam assistant not actuated; 1: Steering column indicator, // axial button high beam assistant actuated / 0: Lenkstock Blinker axialer Taster Fernlichtassistent nicht // betätigt; 1: Lenkstock Blinker axialer Taster Fernlichtassistent betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_TASTER_FLA", "STAT_LENKSTOCK_BLINKER_TASTER_FLA_EIN", STAT_LENKSTOCK_BLINKER_TASTER_FLA_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKSTOCK_BLINKER_TASTER_BC: { // 0xD581 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKSTOCK_BLINKER_TASTER_BC", 1); break; } char STAT_LENKSTOCK_BLINKER_TASTER_BC_EIN = (RXBUF_SCHAR(0)); // 0: steering column indicator, axial button on-board computer not activated; 1: Steering column indicator, // axial button on-board computer actuated / 0: Lenkstock Blinker axialer Taster Bordcomputer nicht betätigt; 1: // Lenkstock Blinker axialer Taster Bordcomputer betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_TASTER_BC", "STAT_LENKSTOCK_BLINKER_TASTER_BC_EIN", STAT_LENKSTOCK_BLINKER_TASTER_BC_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKSTOCK_BLINKER_FRA: { // 0xD582 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKSTOCK_BLINKER_FRA", 6); break; } char STAT_LENKSTOCK_BLINKER_LINKS_EIN = (RXBUF_SCHAR(0)); // 0: steering column turn signal not in position turn signal tip left; 1: Steering column indicator in left // indicator position / 0: Lenkstock Blinker nicht in Stellung Blinker Tipp links; 1: Lenkstock Blinker in // Stellung Blinker links ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_FRA", "STAT_LENKSTOCK_BLINKER_LINKS_EIN", STAT_LENKSTOCK_BLINKER_LINKS_EIN, "\"0/1\""); char STAT_LENKSTOCK_BLINKER_LINKS_DAUER_EIN = (RXBUF_SCHAR(1)); // 0: Steering column indicator not in position indicator permanent left; 1: Steering column indicator in // position indicator permanent left / 0: Lenkstock Blinker nicht in Stellung Blinker Dauer links; 1: Lenkstock // Blinker in Stellung Blinker Dauer links ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_FRA", "STAT_LENKSTOCK_BLINKER_LINKS_DAUER_EIN", STAT_LENKSTOCK_BLINKER_LINKS_DAUER_EIN, "\"0/1\""); char STAT_LENKSTOCK_BLINKER_RECHTS_EIN = (RXBUF_SCHAR(2)); // 0: steering column indicator not in position indicator tip right; 1: Steering column indicator in position // indicator right / 0: Lenkstock Blinker nicht in Stellung Blinker Tipp rechts; 1: Lenkstock Blinker in Stellung // Blinker rechts ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_FRA", "STAT_LENKSTOCK_BLINKER_RECHTS_EIN", STAT_LENKSTOCK_BLINKER_RECHTS_EIN, "\"0/1\""); char STAT_LENKSTOCK_BLINKER_RECHTS_DAUER_EIN = (RXBUF_SCHAR(3)); // 0: Steering column indicator not in position indicator permanent right; 1: Steering column indicator in // position indicator permanent right / 0: Lenkstock Blinker nicht in Stellung Blinker Dauer rechts; 1: Lenkstock // Blinker in Stellung Blinker Dauer rechts ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_FRA", "STAT_LENKSTOCK_BLINKER_RECHTS_DAUER_EIN", STAT_LENKSTOCK_BLINKER_RECHTS_DAUER_EIN, "\"0/1\""); char STAT_LENKSTOCK_BLINKER_NULLSTELLUNG_EIN = (RXBUF_SCHAR(4)); // 0: steering column indicator not in neutral position; 1: Steering column turn signal in neutral position / 0: // Lenkstock Blinker nicht in Nullstellung; 1: Lenkstock Blinker in Nullstellung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_FRA", "STAT_LENKSTOCK_BLINKER_NULLSTELLUNG_EIN", STAT_LENKSTOCK_BLINKER_NULLSTELLUNG_EIN, "\"0/1\""); char STAT_LENKSTOCK_BLINKER_NR = (RXBUF_SCHAR(5)); // List see sub-table / Auflistung siehe Sub-Tabelle ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_FRA", "STAT_LENKSTOCK_BLINKER_NR", STAT_LENKSTOCK_BLINKER_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKSTOCK_BLINKER_LICHTHUPE_FERNLICHT: { // 0xD583 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKSTOCK_BLINKER_LICHTHUPE_FERNLICHT", 2); break; } char STAT_LENKSTOCK_BLINKER_FERNLICHT_BETAETIGT = (RXBUF_SCHAR(0)); // 0: Steering column turn signal button high beam not actuated; 1: Steering column turn signal button high beam // not actuated / 0: Lenkstock Blinker Taster Fernlicht nicht betätigt; 1: Lenkstock Blinker Taster Fernlicht // nicht betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_LICHTHUPE_FERNLICHT", "STAT_LENKSTOCK_BLINKER_FERNLICHT_BETAETIGT", STAT_LENKSTOCK_BLINKER_FERNLICHT_BETAETIGT, "\"0/1\""); char STAT_LENKSTOCK_BLINKER_LICHTHUPE_BETAETIGT = (RXBUF_SCHAR(1)); // 0: Steering column turn signal button headlight flasher not actuated; 1: Steering column turn signal button // headlight flasher actuated / 0: Lenkstock Blinker Taster Lichthupe nicht betätigt; 1: Lenkstock Blinker Taster // Lichthupe betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_LICHTHUPE_FERNLICHT", "STAT_LENKSTOCK_BLINKER_LICHTHUPE_BETAETIGT", STAT_LENKSTOCK_BLINKER_LICHTHUPE_BETAETIGT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKSTOCK_BLINKER_WIPPE: { // 0xD585 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKSTOCK_BLINKER_WIPPE", 4); break; } unsigned char STAT_LENKSTOCK_BLINKER_WIPPE_NACH_OBEN = (RXBUF_UCHAR(0)); // 0: Steering column turn signal rocker up not actuated; 1: Steering column turn signal rocker operated upwards // / 0: Lenkstock Blinker Wippe nach oben nicht betätigt; 1: Lenkstock Blinker Wippe nach oben betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_WIPPE", "STAT_LENKSTOCK_BLINKER_WIPPE_NACH_OBEN", STAT_LENKSTOCK_BLINKER_WIPPE_NACH_OBEN, "\"0/1\""); unsigned char STAT_LENKSTOCK_BLINKER_WIPPE_NACH_UNTEN = (RXBUF_UCHAR(1)); // 0: Steering column turn signal rocker down not activated; 1: Steering column turn signal rocker operated // downwards / 0: Lenkstock Blinker Wippe nach unten nicht betätigt; 1: Lenkstock Blinker Wippe nach unten // betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_WIPPE", "STAT_LENKSTOCK_BLINKER_WIPPE_NACH_UNTEN", STAT_LENKSTOCK_BLINKER_WIPPE_NACH_UNTEN, "\"0/1\""); unsigned char STAT_LENKSTOCK_BLINKER_WIPPE_NULLSTELLUNG = (RXBUF_UCHAR(2)); // 0: Steering column indicator rocker not in neutral position; 1: Steering column turn signal rocker in neutral // position / 0: Lenkstock Blinker Wippe nicht in Nullstellung; 1: Lenkstock Blinker Wippe in Nullstellung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_WIPPE", "STAT_LENKSTOCK_BLINKER_WIPPE_NULLSTELLUNG", STAT_LENKSTOCK_BLINKER_WIPPE_NULLSTELLUNG, "\"0/1\""); unsigned char STAT_LENKSTOCK_BLINKER_TASTER_WIPPE_NR = (RXBUF_UCHAR(3)); // VS-Result 0: Steering column indicator rocker not actuated; 1: Steering column turn signal rocker operated // upwards; 2: Steering column turn signal rocker operated downwards / VS-Result 0: Lenkstock Blinker Wippe nicht // betätigt; 1: Lenkstock Blinker Wippe nach oben betätigt; 2: Lenkstock Blinker Wippe nach unten betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKSTOCK_BLINKER_WIPPE", "STAT_LENKSTOCK_BLINKER_TASTER_WIPPE_NR", STAT_LENKSTOCK_BLINKER_TASTER_WIPPE_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_HINTEN_LINKS_TASTER: { // 0xD587 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_HINTEN_LINKS_TASTER", 2); break; } short STAT_TASTER_LESELICHT_HINTEN_LINKS_EIN = (RXBUF_SINT(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_HINTEN_LINKS_TASTER", "STAT_TASTER_LESELICHT_HINTEN_LINKS_EIN", STAT_TASTER_LESELICHT_HINTEN_LINKS_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_VORNE_RECHTS_TASTER: { // 0xD588 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_VORNE_RECHTS_TASTER", 2); break; } short STAT_TASTER_LESELICHT_VORNE_RECHTS_EIN = (RXBUF_SINT(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_VORNE_RECHTS_TASTER", "STAT_TASTER_LESELICHT_VORNE_RECHTS_EIN", STAT_TASTER_LESELICHT_VORNE_RECHTS_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LESELICHT_VORNE_LINKS_TASTER: { // 0xD589 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LESELICHT_VORNE_LINKS_TASTER", 2); break; } short STAT_TASTER_LESELICHT_VORNE_LINKS_EIN = (RXBUF_SINT(0)); // 0: button not pressed 1: button pressed / 0: Taster nicht betätigt 1: Taster betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "LESELICHT_VORNE_LINKS_TASTER", "STAT_TASTER_LESELICHT_VORNE_LINKS_EIN", STAT_TASTER_LESELICHT_VORNE_LINKS_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LWR_POSITION_MIN_MAX: { // 0xD58A if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LWR_POSITION_MIN_MAX", 2); break; } unsigned char STAT_LWR_POSITION_MAX_EIN = (RXBUF_UCHAR(0)); // 0: Knurled wheel not in MAX position 1: Knurled wheel in MAX position / 0: Rändelrad nicht in Stellung MAX 1: // Rändelrad in Stellung MAX ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LWR_POSITION_MIN_MAX", "STAT_LWR_POSITION_MAX_EIN", STAT_LWR_POSITION_MAX_EIN, "\"0/1\""); unsigned char STAT_LWR_POSITION_MIN_EIN = (RXBUF_UCHAR(1)); // 0: Knurled wheel not in MIN position 1: Knurled wheel in MIN position / 0: Rändelrad nicht in Stellung MIN 1: // Rändelrad in Stellung MIN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LWR_POSITION_MIN_MAX", "STAT_LWR_POSITION_MIN_EIN", STAT_LWR_POSITION_MIN_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LICHTSCHALTER_NSW_TASTER: { // 0xD58B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LICHTSCHALTER_NSW_TASTER", 1); break; } unsigned char STAT_TASTER_NSW_EIN = (RXBUF_UCHAR(0)); // 0: Fog light button not actuated; 1: Fog light button pressed / 0: Taster Nebelscheinwerfer nicht betätigt; 1: // Taster Nebelscheinwerfer betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTER_NSW_TASTER", "STAT_TASTER_NSW_EIN", STAT_TASTER_NSW_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LICHTSCHALTER_NSL_TASTER: { // 0xD58C if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LICHTSCHALTER_NSL_TASTER", 1); break; } unsigned char STAT_TASTER_NSL_EIN = (RXBUF_UCHAR(0)); // 0: Rear fog light button not actuated 1: Rear fog light button actuated / 0: Taster Nebelschlussleuchte nicht // betätigt 1: Taster Nebelschlussleuchte betätigt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LICHTSCHALTER_NSL_TASTER", "STAT_TASTER_NSL_EIN", STAT_TASTER_NSL_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AMBIENTE_BELEUCHTUNG: { // 0xD5D3 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AMBIENTE_BELEUCHTUNG", 2); break; } unsigned char STAT_AMBIENTE_EIN = (RXBUF_UCHAR(0)); // 0 = ambience OFF; 1 = ambience ON / 0= Ambiente AUS; 1= Ambiente EIN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AMBIENTE_BELEUCHTUNG", "STAT_AMBIENTE_EIN", STAT_AMBIENTE_EIN, "\"0/1\""); unsigned char STAT_AMBIENTE_WERT = (RXBUF_UCHAR(1)); // Specification of the luminosity in% value range 0-100% / Angabe der Leuchtkraft in % Wertebereich 0-100% ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AMBIENTE_BELEUCHTUNG", "STAT_AMBIENTE_WERT", STAT_AMBIENTE_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_INNENLICHT_MAPPING: { // 0xD5DE if (datalen < 9) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_INNENLICHT_MAPPING", 9); break; } unsigned char STAT_BELEGUNG_LCI_0 = (RXBUF_UCHAR(0)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_0", STAT_BELEGUNG_LCI_0, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_1 = (RXBUF_UCHAR(1)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_1", STAT_BELEGUNG_LCI_1, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_2 = (RXBUF_UCHAR(2)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_2", STAT_BELEGUNG_LCI_2, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_3 = (RXBUF_UCHAR(3)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_3", STAT_BELEGUNG_LCI_3, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_4 = (RXBUF_UCHAR(4)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_4", STAT_BELEGUNG_LCI_4, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_5 = (RXBUF_UCHAR(5)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_5", STAT_BELEGUNG_LCI_5, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_6 = (RXBUF_UCHAR(6)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_6", STAT_BELEGUNG_LCI_6, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_7 = (RXBUF_UCHAR(7)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_7", STAT_BELEGUNG_LCI_7, "\"0-n\""); unsigned char STAT_BELEGUNG_LCI_8 = (RXBUF_UCHAR(8)); // Assignment of PIN to function / Zuordnung PIN zu Funktion ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "INNENLICHT_MAPPING", "STAT_BELEGUNG_LCI_8", STAT_BELEGUNG_LCI_8, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AHL_LWR_TMS_ID_LESEN: { // 0xD5E5 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AHL_LWR_TMS_ID_LESEN", 4); break; } unsigned short STAT_TMS_ID_LINKS_WERT = (RXBUF_UINT(0)); // Coding ID TMS left <<< Details to be filled in by the supplier !!! >>> / Codierkennung TMS // links <<< Details sind vom Lieferanten zu befüllen !!! >>> ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "AHL_LWR_TMS_ID_LESEN", "STAT_TMS_ID_LINKS_WERT", STAT_TMS_ID_LINKS_WERT, "\"HEX\""); unsigned short STAT_TMS_ID_RECHTS_WERT = (RXBUF_UINT(2)); // Coding ID TMS right <<< Details to be filled in by the supplier !!! >>> / Codierkennung TMS // rechts <<< Details sind vom Lieferanten zu befüllen !!! >>> ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "AHL_LWR_TMS_ID_LESEN", "STAT_TMS_ID_RECHTS_WERT", STAT_TMS_ID_RECHTS_WERT, "\"HEX\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOEHENSTAENDE_SENSOREN: { // 0xD601 if (datalen < 12) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOEHENSTAENDE_SENSOREN", 12); break; } float STAT_HOEHENSTAND_ROHWERT_VR_WERT = (RXBUF_SINT(0)/1000.0f); // Raw signal from the front height sensor. / Rohsignal Sensor Höhenstand vorn. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_ROHWERT_VR_WERT", STAT_HOEHENSTAND_ROHWERT_VR_WERT, "\"V\""); float STAT_HOEHENSTAND_ROHWERT_HR_WERT = (RXBUF_SINT(2)/1000.0f); // Raw signal from the rear height sensor. / Rohsignal Sensor Höhenstand hinten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_ROHWERT_HR_WERT", STAT_HOEHENSTAND_ROHWERT_HR_WERT, "\"V\""); short STAT_HOEHENSTAND_SENSOR_VR_NR = (RXBUF_SINT(4)); // Status query of the front height level sensor. / Zustandsabfrage Höhenstandssensor vorn. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_SENSOR_VR_NR", STAT_HOEHENSTAND_SENSOR_VR_NR, "\"0-n\""); short STAT_HOEHENSTAND_SENSOR_HR_NR = (RXBUF_SINT(6)); // Status query of the rear height level sensor. / Zustandsabfrage Höhenstandssensor hinten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_SENSOR_HR_NR", STAT_HOEHENSTAND_SENSOR_HR_NR, "\"0-n\""); unsigned char STAT_HOEHENSTAND_VR_NR = (RXBUF_UCHAR(8)); // Plausibility level offset. / Plausiblilisierung Höhenstandsoffset. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_VR_NR", STAT_HOEHENSTAND_VR_NR, "\"0-n\""); unsigned char STAT_HOEHENSTAND_HR_NR = (RXBUF_UCHAR(9)); // Plausibility level offset. / Plausiblilisierung Höhenstandsoffset. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_HR_NR", STAT_HOEHENSTAND_HR_NR, "\"0-n\""); unsigned char STAT_HOEHENSTAND_VR_NR_1 = (RXBUF_UCHAR(10)); // Plausibility check of altitude gradient / Plausiblilisierung Höhenstandssteigung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_VR_NR_1", STAT_HOEHENSTAND_VR_NR_1, "\"0-n\""); unsigned char STAT_HOEHENSTAND_HR_NR_1 = (RXBUF_UCHAR(11)); // Plausibility check of altitude gradient / Plausiblilisierung Höhenstandssteigung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOEHENSTAENDE_SENSOREN", "STAT_HOEHENSTAND_HR_NR_1", STAT_HOEHENSTAND_HR_NR_1, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOEHENSTAENDE_VERSORGUNG: { // 0xD603 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOEHENSTAENDE_VERSORGUNG", 4); break; } float STAT_HOEHENSTAND_VERSORGUNG_VR_WERT = (RXBUF_SINT(0)/1000.0f); // Output of the supply voltage of the front height sensor in mV. / Ausgabe der Versorgungsspannung des Sensor // Höhenstand vorn in mV. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "HOEHENSTAENDE_VERSORGUNG", "STAT_HOEHENSTAND_VERSORGUNG_VR_WERT", STAT_HOEHENSTAND_VERSORGUNG_VR_WERT, "\"V\""); float STAT_HOEHENSTAND_VERSORGUNG_HR_WERT = (RXBUF_SINT(2)/1000.0f); // Output of the supply voltage of the rear height sensor in mV. / Ausgabe der Versorgungsspannung des Sensor // Höhenstand hinten in mV. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "HOEHENSTAENDE_VERSORGUNG", "STAT_HOEHENSTAND_VERSORGUNG_HR_WERT", STAT_HOEHENSTAND_VERSORGUNG_HR_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOEHENSTAENDE_KALIBRIERUNG_LESEN: { // 0xD604 if (datalen < 0) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOEHENSTAENDE_KALIBRIERUNG_LESEN", 0); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_FES_MODUS: { // 0xD611 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_FES_MODUS", 1); break; } unsigned char STAT_FES_MODUS = (RXBUF_UCHAR(0)); // current FES mode / aktueller FES Modus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_FES_MODUS", "STAT_FES_MODUS", STAT_FES_MODUS, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_FES_STATISTIK: { // 0xD612 if (datalen < 12) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_FES_STATISTIK", 12); break; } unsigned long STAT_ECO_GRUPPE_WERT = (RXBUF_UINT32(0)); // ECO and ECO + / ECO und ECO+ ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "STATUS_FES_STATISTIK", "STAT_ECO_GRUPPE_WERT", STAT_ECO_GRUPPE_WERT, "\"s\""); unsigned long STAT_COMFORT_GRUPPE_WERT = (RXBUF_UINT32(4)); // Basis and comfort / Basis und Komfort ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "STATUS_FES_STATISTIK", "STAT_COMFORT_GRUPPE_WERT", STAT_COMFORT_GRUPPE_WERT, "\"s\""); unsigned long STAT_SONSTIGE_WERT = (RXBUF_UINT32(8)); // Other modes / Sonstige Modi ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "STATUS_FES_STATISTIK", "STAT_SONSTIGE_WERT", STAT_SONSTIGE_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SWITCH_BOARD_TASTEN: { // 0xD622 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SWITCH_BOARD_TASTEN", 1); break; } unsigned char RES_0xD622_D = (RXBUF_UCHAR(0)); // DID for reading out and controlling the switchboard buttons / DID zum Auslesen und Ansteuern der // Switchboard-Tasten // RES_0xD622_D is a BITFIELD of unknown size. We don't have definitions for each bit, and we GUESSED it is one byte *** ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lx%s\n", "BDC", "SWITCH_BOARD_TASTEN", "RES_0xD622_D", (unsigned long)RES_0xD622_D, "\"bit\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_FES_DATEN: { // 0xD625 if (datalen < 5) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_FES_DATEN", 5); break; } unsigned char STAT_FES_LASTMODE = (RXBUF_UCHAR(0)); // Start-up mode / Aufstart Modus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_FES_DATEN", "STAT_FES_LASTMODE", STAT_FES_LASTMODE, "\"0-n\""); unsigned long STAT_FES_SLEEPTIME_WERT = (RXBUF_UINT32(1)); // Time off at Kl15 / Zeit bei Kl15 aus ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "STATUS_FES_DATEN", "STAT_FES_SLEEPTIME_WERT", STAT_FES_SLEEPTIME_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SWITCHBOARD_TASTE_VERBAU: { // 0xD627 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SWITCHBOARD_TASTE_VERBAU", 6); break; } unsigned char STAT_VERBAU_HDC_TASTE = (RXBUF_UCHAR(0)); // Information on the installation status of the button: 0 = not available, 1 = available / Angabe Verbauzustand // Taste: 0 = nicht vorhanden, 1 = vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SWITCHBOARD_TASTE_VERBAU", "STAT_VERBAU_HDC_TASTE", STAT_VERBAU_HDC_TASTE, "\"0/1\""); unsigned char STAT_VERBAU_PDC_TASTE = (RXBUF_UCHAR(1)); // Status installation PDC button / Status Verbau PDC Taste ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SWITCHBOARD_TASTE_VERBAU", "STAT_VERBAU_PDC_TASTE", STAT_VERBAU_PDC_TASTE, "\"0/1\""); unsigned char STAT_VERBAU_SV_TASTE = (RXBUF_UCHAR(2)); // Status installation SV button / Status Verbau SV Taste ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SWITCHBOARD_TASTE_VERBAU", "STAT_VERBAU_SV_TASTE", STAT_VERBAU_SV_TASTE, "\"0/1\""); unsigned char STAT_VERBAU_DSC_TASTE = (RXBUF_UCHAR(3)); // DSC button installation status / Status Verbau DSC Taste ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SWITCHBOARD_TASTE_VERBAU", "STAT_VERBAU_DSC_TASTE", STAT_VERBAU_DSC_TASTE, "\"0/1\""); unsigned char STAT_VERBAU_FES_WIPPE = (RXBUF_UCHAR(4)); // Indicates whether the FES rocker is installed / Gibt an ob die FES Wippe verbaut ist ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SWITCHBOARD_TASTE_VERBAU", "STAT_VERBAU_FES_WIPPE", STAT_VERBAU_FES_WIPPE, "\"0/1\""); unsigned char STAT_VERBAU_HUD_TASTE = (RXBUF_UCHAR(5)); // Indicates whether the HUD button is installed / Gibt an ob die HUD Taste verbaut ist ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SWITCHBOARD_TASTE_VERBAU", "STAT_VERBAU_HUD_TASTE", STAT_VERBAU_HUD_TASTE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUSSTATTUNG_CORONA_LED: { // 0xD62B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUSSTATTUNG_CORONA_LED", 1); break; } char STAT_VORHANDEN_CORONA_LED = (RXBUF_SCHAR(0)); // 0: CORONA LED not available; 1: CORONA LED available / 0: CORONA LED nicht vorhanden; 1: CORONA LED vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AUSSTATTUNG_CORONA_LED", "STAT_VORHANDEN_CORONA_LED", STAT_VORHANDEN_CORONA_LED, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FES_MASTER_SW_FEHLER_INFO: { // 0xD62D if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FES_MASTER_SW_FEHLER_INFO", 4); break; } long STAT_FES_MASTER_SW_FEHLER_INFO_WERT = (RXBUF_SINT32(0)); // FES Master SW error / FES Master SW Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%ld%s\n", "BDC", "FES_MASTER_SW_FEHLER_INFO", "STAT_FES_MASTER_SW_FEHLER_INFO_WERT", STAT_FES_MASTER_SW_FEHLER_INFO_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SWITCH_BOARD_TASTEN_VERBAU: { // 0xD669 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SWITCH_BOARD_TASTEN_VERBAU", 1); break; } unsigned char RES_0xD669_D = (RXBUF_UCHAR(0)); // DID for reading out the assembly of individual switchboard buttons / DID zum Auslesen des Verbaus einzelner // Switchboard-Tasten // RES_0xD669_D is a BITFIELD of unknown size. We don't have definitions for each bit, and we GUESSED it is one byte *** ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lx%s\n", "BDC", "SWITCH_BOARD_TASTEN_VERBAU", "RES_0xD669_D", (unsigned long)RES_0xD669_D, "\"bit\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KUEHLMITTELSTAND: { // 0xD672 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KUEHLMITTELSTAND", 3); break; } unsigned char STAT_KUEHLMITTELSTAND_EIN = (RXBUF_UCHAR(0)); // 0 = coolant tank not sufficiently filled; 1 = coolant tank sufficiently filled / 0= Kühlmittelbehaelter nicht // ausreichend befüllt; 1= Kühlmittelbehällter ausreichend befüllt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KUEHLMITTELSTAND", "STAT_KUEHLMITTELSTAND_EIN", STAT_KUEHLMITTELSTAND_EIN, "\"0/1\""); unsigned short STAT_KUEHLMITTELSTAND_WERT = (RXBUF_UINT(1)); // Specification of the level value in mv. 0xFFFF: invalid value or value not supported / Angabe des Pegelwerts // in mv. 0xFFFF: ungültiger Wert oder Wert nicht unterstützt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "KUEHLMITTELSTAND", "STAT_KUEHLMITTELSTAND_WERT", STAT_KUEHLMITTELSTAND_WERT, "\"mV\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_GURTZUBRINGER_FA: { // 0xD71A if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_GURTZUBRINGER_FA", 3); break; } unsigned short STAT_GZB_FA_POS_WERT = (RXBUF_UINT(0)); // Current position of the driver's seat belt feeder / Aktuelle Position Gurtzubringer Fahrer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "GURTZUBRINGER_FA", "STAT_GZB_FA_POS_WERT", STAT_GZB_FA_POS_WERT, "\"Ink\""); unsigned char STAT_GZB_FA_ENDLAGE_EIN = (RXBUF_UCHAR(2)); // Belt feeder driver end position reached / Gurtzubringer Fahrer Endlage erreicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "GURTZUBRINGER_FA", "STAT_GZB_FA_ENDLAGE_EIN", STAT_GZB_FA_ENDLAGE_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_GURTZUBRINGER_BF: { // 0xD71B if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_GURTZUBRINGER_BF", 3); break; } unsigned short STAT_GZB_BF_POS_WERT = (RXBUF_UINT(0)); // Current position of the passenger seat belt feeder / Aktuelle Position Gurtzubringer Beifahrer ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "GURTZUBRINGER_BF", "STAT_GZB_BF_POS_WERT", STAT_GZB_BF_POS_WERT, "\"Ink\""); unsigned char STAT_GZB_BF_ENDLAGE_EIN = (RXBUF_UCHAR(2)); // Belt feeder passenger end position reached / Gurtzubringer Beifahrer Endlage erreicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "GURTZUBRINGER_BF", "STAT_GZB_BF_ENDLAGE_EIN", STAT_GZB_BF_ENDLAGE_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_FA_VORHANDEN: { // 0xD726 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_FA_VORHANDEN", 1); break; } unsigned char STAT_SITZHEIZUNG_FA_VORHANDEN = (RXBUF_UCHAR(0)); // 0: Seat heating not available 1: Seat heating available / 0: Sitzheizung nicht vorhanden 1: Sitzheizung // vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FA_VORHANDEN", "STAT_SITZHEIZUNG_FA_VORHANDEN", STAT_SITZHEIZUNG_FA_VORHANDEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_BF_VORHANDEN: { // 0xD727 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_BF_VORHANDEN", 1); break; } unsigned char STAT_SITZHEIZUNG_BF_VORHANDEN = (RXBUF_UCHAR(0)); // 0: Seat heating not available 1: Seat heating available / 0: Sitzheizung nicht vorhanden 1: Sitzheizung // vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BF_VORHANDEN", "STAT_SITZHEIZUNG_BF_VORHANDEN", STAT_SITZHEIZUNG_BF_VORHANDEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_FAH_VORHANDEN: { // 0xD728 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_FAH_VORHANDEN", 1); break; } unsigned char STAT_SITZHEIZUNG_FAH_VORHANDEN = (RXBUF_UCHAR(0)); // 0: Seat heating not available 1: Seat heating available / 0: Sitzheizung nicht vorhanden 1: Sitzheizung // vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FAH_VORHANDEN", "STAT_SITZHEIZUNG_FAH_VORHANDEN", STAT_SITZHEIZUNG_FAH_VORHANDEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_BFH_VORHANDEN: { // 0xD729 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_BFH_VORHANDEN", 1); break; } unsigned char STAT_SITZHEIZUNG_BFH_VORHANDEN = (RXBUF_UCHAR(0)); // 0: Seat heating not available 1: Seat heating available / 0: Sitzheizung nicht vorhanden 1: Sitzheizung // vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BFH_VORHANDEN", "STAT_SITZHEIZUNG_BFH_VORHANDEN", STAT_SITZHEIZUNG_BFH_VORHANDEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_SITZHEIZUNG_STUFE_BF: { // 0xD72D if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_SITZHEIZUNG_STUFE_BF", 1); break; } unsigned char STAT_BUS_IN_SITZHEIZUNG_BF_NR = (RXBUF_UCHAR(0)); // Bus message level seat heating passenger side, 0: OFF; 1: level 1; 2: level 2; 3: Level 3 / Busnachricht Stufe // Sitzheizung Beifahrerseite, 0: AUS; 1: Stufe 1; 2: Stufe 2; 3: Stufe 3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_SITZHEIZUNG_STUFE_BF", "STAT_BUS_IN_SITZHEIZUNG_BF_NR", STAT_BUS_IN_SITZHEIZUNG_BF_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_BF: { // 0xD730 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_BF", 4); break; } unsigned char STAT_SITZHEIZUNG_BF_EIN = (RXBUF_UCHAR(0)); // 0: seat heating off 1: seat heating on / 0: Sitzheizung aus 1: Sitzheizung ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BF", "STAT_SITZHEIZUNG_BF_EIN", STAT_SITZHEIZUNG_BF_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_BF_VERBRAUCHSREDUZIERUNG_EIN = (RXBUF_UCHAR(1)); // 0: Consumption reduction not active 1: Consumption reduction active / 0: Verbrauchsreduzierung nicht aktiv 1: // Verbrauchsreduzierung aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BF", "STAT_SITZHEIZUNG_BF_VERBRAUCHSREDUZIERUNG_EIN", STAT_SITZHEIZUNG_BF_VERBRAUCHSREDUZIERUNG_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_BF_NOTBETRIEB_EIN = (RXBUF_UCHAR(2)); // 0: Seat heating not in emergency mode 1: Seat heating in emergency mode / 0: Sitzheizung nicht in Notbetrieb // 1: Sitzheizung in Notbetrieb ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BF", "STAT_SITZHEIZUNG_BF_NOTBETRIEB_EIN", STAT_SITZHEIZUNG_BF_NOTBETRIEB_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_BF_TIMEOUT = (RXBUF_UCHAR(3)); // 0: No off due to time-out 1: Off due to time-out / 0: Kein Aus wegen Time-Out 1: Aus wegen Time-Out ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BF", "STAT_SITZHEIZUNG_BF_TIMEOUT", STAT_SITZHEIZUNG_BF_TIMEOUT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_SITZHEIZUNG_STUFE_FA: { // 0xD731 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_SITZHEIZUNG_STUFE_FA", 1); break; } unsigned char STAT_BUS_IN_SITZHEIZUNG_FA_NR = (RXBUF_UCHAR(0)); // Bus message level seat heating driver side, 0: OFF; 1: level 1; 2: level 2; 3: Level 3 / Busnachricht Stufe // Sitzheizung Fahrerseite, 0: AUS; 1: Stufe 1; 2: Stufe 2; 3: Stufe 3 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_SITZHEIZUNG_STUFE_FA", "STAT_BUS_IN_SITZHEIZUNG_FA_NR", STAT_BUS_IN_SITZHEIZUNG_FA_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_VORHANDEN_DRITTE_SITZREIHE_EIN: { // 0xD762 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_VORHANDEN_DRITTE_SITZREIHE_EIN", 2); break; } short STAT_VORHANDEN_DRITTE_SITZREIHE_EIN = (RXBUF_SINT(0)); // Indicates whether the 3rd row of seats is available: 0 = Third row of seats not coded; 1 = third row of seats // coded / Gibt an, ob die 3. Sitzreihe vorhanden ist: 0= Dritte Sitzreihe nicht codiert; 1= Dritte Sitzreihe // codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "VORHANDEN_DRITTE_SITZREIHE_EIN", "STAT_VORHANDEN_DRITTE_SITZREIHE_EIN", STAT_VORHANDEN_DRITTE_SITZREIHE_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_VERRIEGELUNG_ZWEITE_SITZREIHE: { // 0xD763 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_VERRIEGELUNG_ZWEITE_SITZREIHE", 2); break; } short STAT_VERRIEGELUNG_ZWEITE_SITZREIHE_EIN = (RXBUF_SINT(0)); // 0: Second row of seats not locked; 1: Second row of seats locked / 0: Zweite Sitzreihe nicht verriegelt; 1: // Zweite Sitzreihe verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "VERRIEGELUNG_ZWEITE_SITZREIHE", "STAT_VERRIEGELUNG_ZWEITE_SITZREIHE_EIN", STAT_VERRIEGELUNG_ZWEITE_SITZREIHE_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_FA: { // 0xD771 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_FA", 4); break; } unsigned char STAT_SITZHEIZUNG_FA_EIN = (RXBUF_UCHAR(0)); // 0: seat heating off 1: seat heating on / 0: Sitzheizung aus 1: Sitzheizung ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FA", "STAT_SITZHEIZUNG_FA_EIN", STAT_SITZHEIZUNG_FA_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_FA_VERBRAUCHSREDUZIERUNG_EIN = (RXBUF_UCHAR(1)); // 0: Consumption reduction not active 1: Consumption reduction active / 0: Verbrauchsreduzierung nicht aktiv 1: // Verbrauchsreduzierung aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FA", "STAT_SITZHEIZUNG_FA_VERBRAUCHSREDUZIERUNG_EIN", STAT_SITZHEIZUNG_FA_VERBRAUCHSREDUZIERUNG_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_FA_NOTBETRIEB_EIN = (RXBUF_UCHAR(2)); // 0: Seat heating not in emergency mode 1: Seat heating in emergency mode / 0: Sitzheizung nicht in Notbetrieb // 1: Sitzheizung in Notbetrieb ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FA", "STAT_SITZHEIZUNG_FA_NOTBETRIEB_EIN", STAT_SITZHEIZUNG_FA_NOTBETRIEB_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_FA_TIMEOUT = (RXBUF_UCHAR(3)); // 0: No off due to time-out 1: Off due to time-out / 0: Kein Aus wegen Time-Out 1: Aus wegen Time-Out ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FA", "STAT_SITZHEIZUNG_FA_TIMEOUT", STAT_SITZHEIZUNG_FA_TIMEOUT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_FAH: { // 0xD7EA if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_FAH", 4); break; } unsigned char STAT_SITZHEIZUNG_FAH_EIN = (RXBUF_UCHAR(0)); // 0: seat heating off 1: seat heating on / 0: Sitzheizung aus 1: Sitzheizung ein ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FAH", "STAT_SITZHEIZUNG_FAH_EIN", STAT_SITZHEIZUNG_FAH_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_FAH_VERBRAUCHSREDUZIERUNG_EIN = (RXBUF_UCHAR(1)); // 0: Consumption reduction not active 1: Consumption reduction active / 0: Verbrauchsreduzierung nicht aktiv 1: // Verbrauchsreduzierung aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FAH", "STAT_SITZHEIZUNG_FAH_VERBRAUCHSREDUZIERUNG_EIN", STAT_SITZHEIZUNG_FAH_VERBRAUCHSREDUZIERUNG_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_FAH_NOTBETRIEB_EIN = (RXBUF_UCHAR(2)); // 0: Seat heating not in emergency mode 1: Seat heating in emergency mode / 0: Sitzheizung nicht in Notbetrieb // 1: Sitzheizung in Notbetrieb ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FAH", "STAT_SITZHEIZUNG_FAH_NOTBETRIEB_EIN", STAT_SITZHEIZUNG_FAH_NOTBETRIEB_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_FAH_TIMEOUT = (RXBUF_UCHAR(3)); // 0: No off due to time-out 1: Off due to time-out / 0: Kein Aus wegen Time-Out 1: Aus wegen Time-Out ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_FAH", "STAT_SITZHEIZUNG_FAH_TIMEOUT", STAT_SITZHEIZUNG_FAH_TIMEOUT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_BFH: { // 0xD7EC if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_BFH", 4); break; } unsigned char STAT_SITZHEIZUNG_BFH_EIN = (RXBUF_UCHAR(0)); // 0: Seat heating OFF 1: Seat heating ON / 0: Sitzheizung AUS 1: Sitzheizung EIN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BFH", "STAT_SITZHEIZUNG_BFH_EIN", STAT_SITZHEIZUNG_BFH_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_BFH_VERBRAUCHSREDUZIERUNG_EIN = (RXBUF_UCHAR(1)); // 0: Consumption reduction not active 1: Consumption reduction active / 0: Verbrauchsreduzierung nicht aktiv 1: // Verbrauchsreduzierung aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BFH", "STAT_SITZHEIZUNG_BFH_VERBRAUCHSREDUZIERUNG_EIN", STAT_SITZHEIZUNG_BFH_VERBRAUCHSREDUZIERUNG_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_BFH_NOTBETRIEB_EIN = (RXBUF_UCHAR(2)); // 0: Seat heating not in emergency mode 1: Seat heating in emergency mode / 0: Sitzheizung nicht in Notbetrieb // 1: Sitzheizung in Notbetrieb ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BFH", "STAT_SITZHEIZUNG_BFH_NOTBETRIEB_EIN", STAT_SITZHEIZUNG_BFH_NOTBETRIEB_EIN, "\"0/1\""); unsigned char STAT_SITZHEIZUNG_BFH_TIMEOUT = (RXBUF_UCHAR(3)); // 0: No off due to time-out 1: Off due to time-out / 0: Kein Aus wegen Time-Out 1: Aus wegen Time-Out ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_BFH", "STAT_SITZHEIZUNG_BFH_TIMEOUT", STAT_SITZHEIZUNG_BFH_TIMEOUT, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SITZHEIZUNG_HINTEN_TASTER_VORHANDEN: { // 0xD86C if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SITZHEIZUNG_HINTEN_TASTER_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_SITZHEIZUNG_TASTER_HINTEN = (RXBUF_UCHAR(0)); // 0 = not available 1 = available / 0=nicht vorhanden 1=vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SITZHEIZUNG_HINTEN_TASTER_VORHANDEN", "STAT_VORHANDEN_SITZHEIZUNG_TASTER_HINTEN", STAT_VORHANDEN_SITZHEIZUNG_TASTER_HINTEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_VORHANDEN_FONDSCHICHTUNG: { // 0xD8AA if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_VORHANDEN_FONDSCHICHTUNG", 1); break; } unsigned char STAT_VORHANDEN_FONDSCHICHTUNGSPOTI = (RXBUF_UCHAR(0)); // 0 = rear stratification potentiometer not available 1 = rear stratification potentiometer available / // 0=Fondschichtungspotentiometer nicht vorhanden 1=Fondschichtungspotentiometer vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "VORHANDEN_FONDSCHICHTUNG", "STAT_VORHANDEN_FONDSCHICHTUNGSPOTI", STAT_VORHANDEN_FONDSCHICHTUNGSPOTI, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SOLARSENSOR_VORHANDEN: { // 0xD8AB if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SOLARSENSOR_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_SOLARSENSOR_EIN = (RXBUF_UCHAR(0)); // Solar sensor: 0 = not available / coded; 1 = present / coded / Solarsensor: 0 = nicht vorhanden / codiert; 1 = // vorhanden / codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "SOLARSENSOR_VORHANDEN", "STAT_VORHANDEN_SOLARSENSOR_EIN", STAT_VORHANDEN_SOLARSENSOR_EIN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUC_SENSOR_VORHANDEN: { // 0xD8AC if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUC_SENSOR_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_AUC_SENSOR = (RXBUF_UCHAR(0)); // AUC sensor: 0 = not available; 1 = present / AUC-Sensor: 0 = nicht vorhanden; 1 = vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AUC_SENSOR_VORHANDEN", "STAT_VORHANDEN_AUC_SENSOR", STAT_VORHANDEN_AUC_SENSOR, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FENSTERHEBER_VORHANDEN: { // 0xD8FE if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FENSTERHEBER_VORHANDEN", 1); break; } unsigned char STAT_ANZAHL_FH_KODIERT = (RXBUF_UCHAR(0)); // Reading out the number of coded window regulators. / Auslesen der Anzahl von kodierten Fensterheber. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FENSTERHEBER_VORHANDEN", "STAT_ANZAHL_FH_KODIERT", STAT_ANZAHL_FH_KODIERT, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KLIMAKOMPRESSOR: { // 0xD906 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KLIMAKOMPRESSOR", 3); break; } short STAT_KLIMAKOMPRESSOR_EIN = (RXBUF_SINT(0)); // Air conditioning compressor: 0 = OFF, 1 = ON / Klimakompressor: 0 = AUS, 1 = EIN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "KLIMAKOMPRESSOR", "STAT_KLIMAKOMPRESSOR_EIN", STAT_KLIMAKOMPRESSOR_EIN, "\"0/1\""); unsigned char STAT_KLIMAKOMPRESSOR_PWM_WERT = (RXBUF_UCHAR(2)); // Air conditioning compressor: PWM signal in percent / Klimakompressor: PWM-Signal in Prozent ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KLIMAKOMPRESSOR", "STAT_KLIMAKOMPRESSOR_PWM_WERT", STAT_KLIMAKOMPRESSOR_PWM_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_VORHANDEN_KOMPRESSORKUPPLUNG: { // 0xD916 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_VORHANDEN_KOMPRESSORKUPPLUNG", 1); break; } unsigned char RES_0xD916_D = (RXBUF_UCHAR(0)); // Read out whether a compressor clutch is available. In the case of PHEV vehicles, the job returns whether a // switching valve is present. / Auslesen ob eine Kompressorkupplung vorhanden ist. Bei PHEV-Fahrzeugen gibt der // Job zurück, ob ein Umschaltventil vorhanden ist. // RES_0xD916_D is a BITFIELD of unknown size. We don't have definitions for each bit, and we GUESSED it is one byte *** ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lx%s\n", "BDC", "VORHANDEN_KOMPRESSORKUPPLUNG", "RES_0xD916_D", (unsigned long)RES_0xD916_D, "\"bit\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_DRUCKSENSOR_VORHANDEN: { // 0xD959 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_DRUCKSENSOR_VORHANDEN", 1); break; } unsigned char STAT_DRUCKSENSOR_VORHANDEN = (RXBUF_UCHAR(0)); // Indicates whether a pressure sensor is installed for R134A: 0 = not available, 1 = available / Gibt aus, ob // ein Drucksensor für R134A verbaut ist: 0 = nicht vorhanden, 1 = vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "DRUCKSENSOR_VORHANDEN", "STAT_DRUCKSENSOR_VORHANDEN", STAT_DRUCKSENSOR_VORHANDEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_VORHANDEN_WASSERVENTIL: { // 0xD95A if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_VORHANDEN_WASSERVENTIL", 2); break; } unsigned char STAT_VORHANDEN_WASSERVENTIL_MONO = (RXBUF_UCHAR(0)); // 0 = not available, 1 = available / 0=nicht vorhanden, 1=vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "VORHANDEN_WASSERVENTIL", "STAT_VORHANDEN_WASSERVENTIL_MONO", STAT_VORHANDEN_WASSERVENTIL_MONO, "\"0/1\""); unsigned char STAT_VORHANDEN_WASSERVENTIL_DUO = (RXBUF_UCHAR(1)); // 0 = not available, 1 = available / 0=nicht vorhanden, 1=vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "VORHANDEN_WASSERVENTIL", "STAT_VORHANDEN_WASSERVENTIL_DUO", STAT_VORHANDEN_WASSERVENTIL_DUO, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SOLARSENSOR: { // 0xD961 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SOLARSENSOR", 4); break; } float STAT_SOLARSENSOR_FA_WERT = (RXBUF_UINT(0)*4.0158f); // Solar sensor, solar value FA. Range 0 to 1020 W / m2 / Solarsensor, Solarwert FA. Bereich 0 bis 1020 W/m2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SOLARSENSOR", "STAT_SOLARSENSOR_FA_WERT", STAT_SOLARSENSOR_FA_WERT, "\"W/m²\""); float STAT_SOLARSENSOR_BF_WERT = (RXBUF_UINT(2)*4.0158f); // Solar sensor, solar value BF. Range 0 to 1020 W / m2 / Solarsensor, Solarwert BF. Bereich 0 bis 1020 W/m2 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SOLARSENSOR", "STAT_SOLARSENSOR_BF_WERT", STAT_SOLARSENSOR_BF_WERT, "\"W/m²\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_AUC_SENSOR: { // 0xD963 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_AUC_SENSOR", 1); break; } unsigned char STAT_AUC_SENSOR_NR = (RXBUF_UCHAR(0)); // Indicates which pollutant level the AUC sensor has determined. / Gibt aus, welche Schadstoffstufe der // AUC-Sensor ermittelt hat. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "AUC_SENSOR", "STAT_AUC_SENSOR_NR", STAT_AUC_SENSOR_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_DRUCKSENSOR: { // 0xD967 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_DRUCKSENSOR", 1); break; } unsigned char STAT_R134A_DRUCK_WERT = (RXBUF_UCHAR(0)); // Output refrigerant pressure in bar. / Ausgabe Kältemitteldruck in bar. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "DRUCKSENSOR", "STAT_R134A_DRUCK_WERT", STAT_R134A_DRUCK_WERT, "\"bar\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BESCHLAGSENSOR: { // 0xD96C if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BESCHLAGSENSOR", 3); break; } float STAT_BESCHLAGSENSOR_WERT = (RXBUF_SINT(0)/2.0f); // Indication of relative humidity in percent 0 ... 100% / Angabe relative Feuchte in Prozent 0 ... 100 % ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "BESCHLAGSENSOR", "STAT_BESCHLAGSENSOR_WERT", STAT_BESCHLAGSENSOR_WERT, "\"%\""); float STAT_BESCHLAGSENSOR_TEMP_WERT = (RXBUF_UCHAR(2)/2.0f-40.0); // Measured temperature in ° C -40 ... 85 ° C / Gemessene Temperatur in °C -40 ... 85 °C ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "BESCHLAGSENSOR", "STAT_BESCHLAGSENSOR_TEMP_WERT", STAT_BESCHLAGSENSOR_TEMP_WERT, "\"°C\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BESCHLAGSENSOR_VORHANDEN: { // 0xD96D if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BESCHLAGSENSOR_VORHANDEN", 1); break; } unsigned char STAT_VORHANDEN_BESCHLAGSENSOR = (RXBUF_UCHAR(0)); // 0: Condensation sensor not available / coded 1: Condensation sensor available / coded / 0: Beschlagsensor // nicht vorhanden / codiert 1: Beschlagsensor vorhanden / codiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BESCHLAGSENSOR_VORHANDEN", "STAT_VORHANDEN_BESCHLAGSENSOR", STAT_VORHANDEN_BESCHLAGSENSOR, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_FONDSCHICHTUNGS_POTI: { // 0xD96E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_FONDSCHICHTUNGS_POTI", 1); break; } unsigned char STAT_FONDSCHICHTUNGS_POTI_WERT = (RXBUF_UCHAR(0)); // Output of the setting of the rear stratification potentiometer: 0-100%, 0xFF: value invalid / Ausgabe der // Einstellung des Fond-Schichtungspotentiometer: 0-100 %, 0xFF: Wert ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "FONDSCHICHTUNGS_POTI", "STAT_FONDSCHICHTUNGS_POTI_WERT", STAT_FONDSCHICHTUNGS_POTI_WERT, "\"%\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_DRUCKSENSOR_HOCHAUFLOESEND: { // 0xD9B8 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_DRUCKSENSOR_HOCHAUFLOESEND", 2); break; } float STAT_DRUCK_WERT = (RXBUF_UINT(0)/100.0f); // High-resolution refrigerant pressure output: 0.00 - 40.89 bar; 40.90 = short circuit to ground; 40.91 = open // circuit or short circuit to battery; 40.92 = not installed; 40.93 = function interface not available; 40.94 = // function reporting error; 40.95 = signal unfilled / Ausgabe Kältemitteldruck hochauflösend: 0,00 - 40,89 bar ; // 40,90 = Kurzschluss nach Masse; 40,91 = Leitungsunterbrechung oder Kurzschluss nach Batterie; 40,92 = Nicht // verbaut; 40,93 = Funktionsschnittstelle nicht verfügbar; 40,94 = Funktion melder Fehler; 40,95 = Signal // unbefüllt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "DRUCKSENSOR_HOCHAUFLOESEND", "STAT_DRUCK_WERT", STAT_DRUCK_WERT, "\"bar\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LENKRAD_SCHALTPADDLES: { // 0xDA24 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LENKRAD_SCHALTPADDLES", 3); break; } unsigned char STAT_LENKRAD_SCHALTPADDLE_NR = (RXBUF_UCHAR(0)); // Status shift paddles / Status Schaltpaddles ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "LENKRAD_SCHALTPADDLES", "STAT_LENKRAD_SCHALTPADDLE_NR", STAT_LENKRAD_SCHALTPADDLE_NR, "\"0-n\""); float STAT_SCHALTPADDLES_AD_WERT = (RXBUF_UINT(1)/10.0f); // AD value shift paddles / AD-Wert Schaltpaddles ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "LENKRAD_SCHALTPADDLES", "STAT_SCHALTPADDLES_AD_WERT", STAT_SCHALTPADDLES_AD_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_DC_DC_WANDLER_VORHANDEN: { // 0xDA54 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_DC_DC_WANDLER_VORHANDEN", 2); break; } unsigned char STAT_DC_DC_WANDLER_1_VORHANDEN = (RXBUF_UCHAR(0)); // 0: DC / DC converter 1 not available 1: DC / DC converter 1 available / 0: DC/DC-Wandler 1 nicht vorhanden 1: // DC/DC-Wandler 1 vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "DC_DC_WANDLER_VORHANDEN", "STAT_DC_DC_WANDLER_1_VORHANDEN", STAT_DC_DC_WANDLER_1_VORHANDEN, "\"0/1\""); unsigned char STAT_DC_DC_WANDLER_2_VORHANDEN = (RXBUF_UCHAR(1)); // 0: DC / DC converter 2 not available 1: DC / DC converter 2 available / 0: DC/DC-Wandler 2 nicht vorhanden 1: // DC/DC-Wandler 2 vorhanden ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "DC_DC_WANDLER_VORHANDEN", "STAT_DC_DC_WANDLER_2_VORHANDEN", STAT_DC_DC_WANDLER_2_VORHANDEN, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STAT_LIN_LAYERING: { // 0xDA5F if (datalen < 260) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STAT_LIN_LAYERING", 260); break; } unsigned char STAT_SLAVE_NAME_1_WERT = (RXBUF_UCHAR(0)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_1_WERT", STAT_SLAVE_NAME_1_WERT, ""); unsigned char STAT_LED_BLUE_1_WERT = (RXBUF_UCHAR(1)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_1_WERT", STAT_LED_BLUE_1_WERT, ""); unsigned char STAT_LED_GREEN_1_WERT = (RXBUF_UCHAR(2)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_1_WERT", STAT_LED_GREEN_1_WERT, ""); unsigned char STAT_LED_RED_1_WERT = (RXBUF_UCHAR(3)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_1_WERT", STAT_LED_RED_1_WERT, ""); unsigned char STAT_BRIGHTNESS_1_WERT = (RXBUF_UCHAR(4)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_1_WERT", STAT_BRIGHTNESS_1_WERT, ""); unsigned char STAT_LED_WHITE_1_WERT = (RXBUF_UCHAR(5)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_1_WERT", STAT_LED_WHITE_1_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_1_WERT = (RXBUF_UCHAR(6)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_1_WERT", STAT_FEHLER_KURZSCHLUSS_1_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_1_WERT = (RXBUF_UCHAR(7)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_1_WERT", STAT_FEHLER_OVERTEMP_1_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_1_WERT = (RXBUF_UCHAR(8)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_1_WERT", STAT_FEHLER_OPEN_LOAD_1_WERT, ""); unsigned char STAT_FEHLER_INTERN_1_WERT = (RXBUF_UCHAR(9)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_1_WERT", STAT_FEHLER_INTERN_1_WERT, ""); unsigned char STAT_SLAVE_NAME_2_WERT = (RXBUF_UCHAR(10)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_2_WERT", STAT_SLAVE_NAME_2_WERT, ""); unsigned char STAT_LED_BLUE_2_WERT = (RXBUF_UCHAR(11)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_2_WERT", STAT_LED_BLUE_2_WERT, ""); unsigned char STAT_LED_GREEN_2_WERT = (RXBUF_UCHAR(12)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_2_WERT", STAT_LED_GREEN_2_WERT, ""); unsigned char STAT_LED_RED_2_WERT = (RXBUF_UCHAR(13)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_2_WERT", STAT_LED_RED_2_WERT, ""); unsigned char STAT_BRIGHTNESS_2_WERT = (RXBUF_UCHAR(14)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_2_WERT", STAT_BRIGHTNESS_2_WERT, ""); unsigned char STAT_LED_WHITE_2_WERT = (RXBUF_UCHAR(15)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_2_WERT", STAT_LED_WHITE_2_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_2_WERT = (RXBUF_UCHAR(16)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_2_WERT", STAT_FEHLER_KURZSCHLUSS_2_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_2_WERT = (RXBUF_UCHAR(17)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_2_WERT", STAT_FEHLER_OVERTEMP_2_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_2_WERT = (RXBUF_UCHAR(18)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_2_WERT", STAT_FEHLER_OPEN_LOAD_2_WERT, ""); unsigned char STAT_FEHLER_INTERN_2_WERT = (RXBUF_UCHAR(19)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_2_WERT", STAT_FEHLER_INTERN_2_WERT, ""); unsigned char STAT_SLAVE_NAME_3_WERT = (RXBUF_UCHAR(20)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_3_WERT", STAT_SLAVE_NAME_3_WERT, ""); unsigned char STAT_LED_BLUE_3_WERT = (RXBUF_UCHAR(21)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_3_WERT", STAT_LED_BLUE_3_WERT, ""); unsigned char STAT_LED_GREEN_3_WERT = (RXBUF_UCHAR(22)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_3_WERT", STAT_LED_GREEN_3_WERT, ""); unsigned char STAT_LED_RED_3_WERT = (RXBUF_UCHAR(23)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_3_WERT", STAT_LED_RED_3_WERT, ""); unsigned char STAT_BRIGHTNESS_3_WERT = (RXBUF_UCHAR(24)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_3_WERT", STAT_BRIGHTNESS_3_WERT, ""); unsigned char STAT_LED_WHITE_3_WERT = (RXBUF_UCHAR(25)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_3_WERT", STAT_LED_WHITE_3_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_3_WERT = (RXBUF_UCHAR(26)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_3_WERT", STAT_FEHLER_KURZSCHLUSS_3_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_3_WERT = (RXBUF_UCHAR(27)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_3_WERT", STAT_FEHLER_OVERTEMP_3_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_3_WERT = (RXBUF_UCHAR(28)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_3_WERT", STAT_FEHLER_OPEN_LOAD_3_WERT, ""); unsigned char STAT_FEHLER_INTERN_3_WERT = (RXBUF_UCHAR(29)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_3_WERT", STAT_FEHLER_INTERN_3_WERT, ""); unsigned char STAT_SLAVE_NAME_4_WERT = (RXBUF_UCHAR(30)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_4_WERT", STAT_SLAVE_NAME_4_WERT, ""); unsigned char STAT_LED_BLUE_4_WERT = (RXBUF_UCHAR(31)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_4_WERT", STAT_LED_BLUE_4_WERT, ""); unsigned char STAT_LED_GREEN_4_WERT = (RXBUF_UCHAR(32)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_4_WERT", STAT_LED_GREEN_4_WERT, ""); unsigned char STAT_LED_RED_4_WERT = (RXBUF_UCHAR(33)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_4_WERT", STAT_LED_RED_4_WERT, ""); unsigned char STAT_BRIGHTNESS_4_WERT = (RXBUF_UCHAR(34)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_4_WERT", STAT_BRIGHTNESS_4_WERT, ""); unsigned char STAT_LED_WHITE_4_WERT = (RXBUF_UCHAR(35)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_4_WERT", STAT_LED_WHITE_4_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_4_WERT = (RXBUF_UCHAR(36)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_4_WERT", STAT_FEHLER_KURZSCHLUSS_4_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_4_WERT = (RXBUF_UCHAR(37)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_4_WERT", STAT_FEHLER_OVERTEMP_4_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_4_WERT = (RXBUF_UCHAR(38)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_4_WERT", STAT_FEHLER_OPEN_LOAD_4_WERT, ""); unsigned char STAT_FEHLER_INTERN_4_WERT = (RXBUF_UCHAR(39)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_4_WERT", STAT_FEHLER_INTERN_4_WERT, ""); unsigned char STAT_SLAVE_NAME_5_WERT = (RXBUF_UCHAR(40)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_5_WERT", STAT_SLAVE_NAME_5_WERT, ""); unsigned char STAT_LED_BLUE_5_WERT = (RXBUF_UCHAR(41)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_5_WERT", STAT_LED_BLUE_5_WERT, ""); unsigned char STAT_LED_GREEN_5_WERT = (RXBUF_UCHAR(42)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_5_WERT", STAT_LED_GREEN_5_WERT, ""); unsigned char STAT_LED_RED_5_WERT = (RXBUF_UCHAR(43)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_5_WERT", STAT_LED_RED_5_WERT, ""); unsigned char STAT_BRIGHTNESS_5_WERT = (RXBUF_UCHAR(44)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_5_WERT", STAT_BRIGHTNESS_5_WERT, ""); unsigned char STAT_LED_WHITE_5_WERT = (RXBUF_UCHAR(45)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_5_WERT", STAT_LED_WHITE_5_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_5_WERT = (RXBUF_UCHAR(46)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_5_WERT", STAT_FEHLER_KURZSCHLUSS_5_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_5_WERT = (RXBUF_UCHAR(47)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_5_WERT", STAT_FEHLER_OVERTEMP_5_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_5_WERT = (RXBUF_UCHAR(48)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_5_WERT", STAT_FEHLER_OPEN_LOAD_5_WERT, ""); unsigned char STAT_FEHLER_INTERN_5_WERT = (RXBUF_UCHAR(49)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_5_WERT", STAT_FEHLER_INTERN_5_WERT, ""); unsigned char STAT_SLAVE_NAME_6_WERT = (RXBUF_UCHAR(50)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_6_WERT", STAT_SLAVE_NAME_6_WERT, ""); unsigned char STAT_LED_BLUE_6_WERT = (RXBUF_UCHAR(51)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_6_WERT", STAT_LED_BLUE_6_WERT, ""); unsigned char STAT_LED_GREEN_6_WERT = (RXBUF_UCHAR(52)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_6_WERT", STAT_LED_GREEN_6_WERT, ""); unsigned char STAT_LED_RED_6_WERT = (RXBUF_UCHAR(53)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_6_WERT", STAT_LED_RED_6_WERT, ""); unsigned char STAT_BRIGHTNESS_6_WERT = (RXBUF_UCHAR(54)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_6_WERT", STAT_BRIGHTNESS_6_WERT, ""); unsigned char STAT_LED_WHITE_6_WERT = (RXBUF_UCHAR(55)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_6_WERT", STAT_LED_WHITE_6_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_6_WERT = (RXBUF_UCHAR(56)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_6_WERT", STAT_FEHLER_KURZSCHLUSS_6_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_6_WERT = (RXBUF_UCHAR(57)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_6_WERT", STAT_FEHLER_OVERTEMP_6_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_6_WERT = (RXBUF_UCHAR(58)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_6_WERT", STAT_FEHLER_OPEN_LOAD_6_WERT, ""); unsigned char STAT_FEHLER_INTERN_6_WERT = (RXBUF_UCHAR(59)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_6_WERT", STAT_FEHLER_INTERN_6_WERT, ""); unsigned char STAT_SLAVE_NAME_7_WERT = (RXBUF_UCHAR(60)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_7_WERT", STAT_SLAVE_NAME_7_WERT, ""); unsigned char STAT_LED_BLUE_7_WERT = (RXBUF_UCHAR(61)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_7_WERT", STAT_LED_BLUE_7_WERT, ""); unsigned char STAT_LED_GREEN_7_WERT = (RXBUF_UCHAR(62)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_7_WERT", STAT_LED_GREEN_7_WERT, ""); unsigned char STAT_LED_RED_7_WERT = (RXBUF_UCHAR(63)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_7_WERT", STAT_LED_RED_7_WERT, ""); unsigned char STAT_BRIGHTNESS_7_WERT = (RXBUF_UCHAR(64)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_7_WERT", STAT_BRIGHTNESS_7_WERT, ""); unsigned char STAT_LED_WHITE_7_WERT = (RXBUF_UCHAR(65)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_7_WERT", STAT_LED_WHITE_7_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_7_WERT = (RXBUF_UCHAR(66)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_7_WERT", STAT_FEHLER_KURZSCHLUSS_7_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_7_WERT = (RXBUF_UCHAR(67)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_7_WERT", STAT_FEHLER_OVERTEMP_7_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_7_WERT = (RXBUF_UCHAR(68)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_7_WERT", STAT_FEHLER_OPEN_LOAD_7_WERT, ""); unsigned char STAT_FEHLER_INTERN_7_WERT = (RXBUF_UCHAR(69)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_7_WERT", STAT_FEHLER_INTERN_7_WERT, ""); unsigned char STAT_SLAVE_NAME_8_WERT = (RXBUF_UCHAR(70)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_8_WERT", STAT_SLAVE_NAME_8_WERT, ""); unsigned char STAT_LED_BLUE_8_WERT = (RXBUF_UCHAR(71)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_8_WERT", STAT_LED_BLUE_8_WERT, ""); unsigned char STAT_LED_GREEN_8_WERT = (RXBUF_UCHAR(72)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_8_WERT", STAT_LED_GREEN_8_WERT, ""); unsigned char STAT_LED_RED_8_WERT = (RXBUF_UCHAR(73)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_8_WERT", STAT_LED_RED_8_WERT, ""); unsigned char STAT_BRIGHTNESS_8_WERT = (RXBUF_UCHAR(74)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_8_WERT", STAT_BRIGHTNESS_8_WERT, ""); unsigned char STAT_LED_WHITE_8_WERT = (RXBUF_UCHAR(75)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_8_WERT", STAT_LED_WHITE_8_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_8_WERT = (RXBUF_UCHAR(76)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_8_WERT", STAT_FEHLER_KURZSCHLUSS_8_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_8_WERT = (RXBUF_UCHAR(77)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_8_WERT", STAT_FEHLER_OVERTEMP_8_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_8_WERT = (RXBUF_UCHAR(78)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_8_WERT", STAT_FEHLER_OPEN_LOAD_8_WERT, ""); unsigned char STAT_FEHLER_INTERN_8_WERT = (RXBUF_UCHAR(79)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_8_WERT", STAT_FEHLER_INTERN_8_WERT, ""); unsigned char STAT_SLAVE_NAME_9_WERT = (RXBUF_UCHAR(80)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_9_WERT", STAT_SLAVE_NAME_9_WERT, ""); unsigned char STAT_LED_BLUE_9_WERT = (RXBUF_UCHAR(81)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_9_WERT", STAT_LED_BLUE_9_WERT, ""); unsigned char STAT_LED_GREEN_9_WERT = (RXBUF_UCHAR(82)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_9_WERT", STAT_LED_GREEN_9_WERT, ""); unsigned char STAT_LED_RED_9_WERT = (RXBUF_UCHAR(83)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_9_WERT", STAT_LED_RED_9_WERT, ""); unsigned char STAT_BRIGHTNESS_9_WERT = (RXBUF_UCHAR(84)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_9_WERT", STAT_BRIGHTNESS_9_WERT, ""); unsigned char STAT_LED_WHITE_9_WERT = (RXBUF_UCHAR(85)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_9_WERT", STAT_LED_WHITE_9_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_9_WERT = (RXBUF_UCHAR(86)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_9_WERT", STAT_FEHLER_KURZSCHLUSS_9_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_9_WERT = (RXBUF_UCHAR(87)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_9_WERT", STAT_FEHLER_OVERTEMP_9_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_9_WERT = (RXBUF_UCHAR(88)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_9_WERT", STAT_FEHLER_OPEN_LOAD_9_WERT, ""); unsigned char STAT_FEHLER_INTERN_9_WERT = (RXBUF_UCHAR(89)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_9_WERT", STAT_FEHLER_INTERN_9_WERT, ""); unsigned char STAT_SLAVE_NAME_10_WERT = (RXBUF_UCHAR(90)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_10_WERT", STAT_SLAVE_NAME_10_WERT, ""); unsigned char STAT_LED_BLUE_10_WERT = (RXBUF_UCHAR(91)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_10_WERT", STAT_LED_BLUE_10_WERT, ""); unsigned char STAT_LED_GREEN_10_WERT = (RXBUF_UCHAR(92)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_10_WERT", STAT_LED_GREEN_10_WERT, ""); unsigned char STAT_LED_RED_10_WERT = (RXBUF_UCHAR(93)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_10_WERT", STAT_LED_RED_10_WERT, ""); unsigned char STAT_BRIGHTNESS_10_WERT = (RXBUF_UCHAR(94)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_10_WERT", STAT_BRIGHTNESS_10_WERT, ""); unsigned char STAT_LED_WHITE_10_WERT = (RXBUF_UCHAR(95)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_10_WERT", STAT_LED_WHITE_10_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_10_WERT = (RXBUF_UCHAR(96)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_10_WERT", STAT_FEHLER_KURZSCHLUSS_10_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_10_WERT = (RXBUF_UCHAR(97)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_10_WERT", STAT_FEHLER_OVERTEMP_10_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_10_WERT = (RXBUF_UCHAR(98)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_10_WERT", STAT_FEHLER_OPEN_LOAD_10_WERT, ""); unsigned char STAT_FEHLER_INTERN_10_WERT = (RXBUF_UCHAR(99)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_10_WERT", STAT_FEHLER_INTERN_10_WERT, ""); unsigned char STAT_SLAVE_NAME_11_WERT = (RXBUF_UCHAR(100)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_11_WERT", STAT_SLAVE_NAME_11_WERT, ""); unsigned char STAT_LED_BLUE_11_WERT = (RXBUF_UCHAR(101)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_11_WERT", STAT_LED_BLUE_11_WERT, ""); unsigned char STAT_LED_GREEN_11_WERT = (RXBUF_UCHAR(102)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_11_WERT", STAT_LED_GREEN_11_WERT, ""); unsigned char STAT_LED_RED_11_WERT = (RXBUF_UCHAR(103)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_11_WERT", STAT_LED_RED_11_WERT, ""); unsigned char STAT_BRIGHTNESS_11_WERT = (RXBUF_UCHAR(104)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_11_WERT", STAT_BRIGHTNESS_11_WERT, ""); unsigned char STAT_LED_WHITE_11_WERT = (RXBUF_UCHAR(105)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_11_WERT", STAT_LED_WHITE_11_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_11_WERT = (RXBUF_UCHAR(106)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_11_WERT", STAT_FEHLER_KURZSCHLUSS_11_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_11_WERT = (RXBUF_UCHAR(107)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_11_WERT", STAT_FEHLER_OVERTEMP_11_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_11_WERT = (RXBUF_UCHAR(108)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_11_WERT", STAT_FEHLER_OPEN_LOAD_11_WERT, ""); unsigned char STAT_FEHLER_INTERN_11_WERT = (RXBUF_UCHAR(109)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_11_WERT", STAT_FEHLER_INTERN_11_WERT, ""); unsigned char STAT_SLAVE_NAME_12_WERT = (RXBUF_UCHAR(110)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_12_WERT", STAT_SLAVE_NAME_12_WERT, ""); unsigned char STAT_LED_BLUE_12_WERT = (RXBUF_UCHAR(111)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_12_WERT", STAT_LED_BLUE_12_WERT, ""); unsigned char STAT_LED_GREEN_12_WERT = (RXBUF_UCHAR(112)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_12_WERT", STAT_LED_GREEN_12_WERT, ""); unsigned char STAT_LED_RED_12_WERT = (RXBUF_UCHAR(113)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_12_WERT", STAT_LED_RED_12_WERT, ""); unsigned char STAT_BRIGHTNESS_12_WERT = (RXBUF_UCHAR(114)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_12_WERT", STAT_BRIGHTNESS_12_WERT, ""); unsigned char STAT_LED_WHITE_12_WERT = (RXBUF_UCHAR(115)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_12_WERT", STAT_LED_WHITE_12_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_12_WERT = (RXBUF_UCHAR(116)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_12_WERT", STAT_FEHLER_KURZSCHLUSS_12_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_12_WERT = (RXBUF_UCHAR(117)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_12_WERT", STAT_FEHLER_OVERTEMP_12_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_12_WERT = (RXBUF_UCHAR(118)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_12_WERT", STAT_FEHLER_OPEN_LOAD_12_WERT, ""); unsigned char STAT_FEHLER_INTERN_12_WERT = (RXBUF_UCHAR(119)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_12_WERT", STAT_FEHLER_INTERN_12_WERT, ""); unsigned char STAT_SLAVE_NAME_13_WERT = (RXBUF_UCHAR(120)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_13_WERT", STAT_SLAVE_NAME_13_WERT, ""); unsigned char STAT_LED_BLUE_13_WERT = (RXBUF_UCHAR(121)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_13_WERT", STAT_LED_BLUE_13_WERT, ""); unsigned char STAT_LED_GREEN_13_WERT = (RXBUF_UCHAR(122)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_13_WERT", STAT_LED_GREEN_13_WERT, ""); unsigned char STAT_LED_RED_13_WERT = (RXBUF_UCHAR(123)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_13_WERT", STAT_LED_RED_13_WERT, ""); unsigned char STAT_BRIGHTNESS_13_WERT = (RXBUF_UCHAR(124)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_13_WERT", STAT_BRIGHTNESS_13_WERT, ""); unsigned char STAT_LED_WHITE_13_WERT = (RXBUF_UCHAR(125)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_13_WERT", STAT_LED_WHITE_13_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_13_WERT = (RXBUF_UCHAR(126)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_13_WERT", STAT_FEHLER_KURZSCHLUSS_13_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_13_WERT = (RXBUF_UCHAR(127)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_13_WERT", STAT_FEHLER_OVERTEMP_13_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_13_WERT = (RXBUF_UCHAR(128)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_13_WERT", STAT_FEHLER_OPEN_LOAD_13_WERT, ""); unsigned char STAT_FEHLER_INTERN_13_WERT = (RXBUF_UCHAR(129)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_13_WERT", STAT_FEHLER_INTERN_13_WERT, ""); unsigned char STAT_SLAVE_NAME_14_WERT = (RXBUF_UCHAR(130)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_14_WERT", STAT_SLAVE_NAME_14_WERT, ""); unsigned char STAT_LED_BLUE_14_WERT = (RXBUF_UCHAR(131)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_14_WERT", STAT_LED_BLUE_14_WERT, ""); unsigned char STAT_LED_GREEN_14_WERT = (RXBUF_UCHAR(132)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_14_WERT", STAT_LED_GREEN_14_WERT, ""); unsigned char STAT_LED_RED_14_WERT = (RXBUF_UCHAR(133)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_14_WERT", STAT_LED_RED_14_WERT, ""); unsigned char STAT_BRIGHTNESS_14_WERT = (RXBUF_UCHAR(134)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_14_WERT", STAT_BRIGHTNESS_14_WERT, ""); unsigned char STAT_LED_WHITE_14_WERT = (RXBUF_UCHAR(135)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_14_WERT", STAT_LED_WHITE_14_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_14_WERT = (RXBUF_UCHAR(136)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_14_WERT", STAT_FEHLER_KURZSCHLUSS_14_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_14_WERT = (RXBUF_UCHAR(137)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_14_WERT", STAT_FEHLER_OVERTEMP_14_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_14_WERT = (RXBUF_UCHAR(138)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_14_WERT", STAT_FEHLER_OPEN_LOAD_14_WERT, ""); unsigned char STAT_FEHLER_INTERN_14_WERT = (RXBUF_UCHAR(139)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_14_WERT", STAT_FEHLER_INTERN_14_WERT, ""); unsigned char STAT_SLAVE_NAME_15_WERT = (RXBUF_UCHAR(140)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_15_WERT", STAT_SLAVE_NAME_15_WERT, ""); unsigned char STAT_LED_BLUE_15_WERT = (RXBUF_UCHAR(141)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_15_WERT", STAT_LED_BLUE_15_WERT, ""); unsigned char STAT_LED_GREEN_15_WERT = (RXBUF_UCHAR(142)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_15_WERT", STAT_LED_GREEN_15_WERT, ""); unsigned char STAT_LED_RED_15_WERT = (RXBUF_UCHAR(143)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_15_WERT", STAT_LED_RED_15_WERT, ""); unsigned char STAT_BRIGHTNESS_15_WERT = (RXBUF_UCHAR(144)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_15_WERT", STAT_BRIGHTNESS_15_WERT, ""); unsigned char STAT_LED_WHITE_15_WERT = (RXBUF_UCHAR(145)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_15_WERT", STAT_LED_WHITE_15_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_15_WERT = (RXBUF_UCHAR(146)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_15_WERT", STAT_FEHLER_KURZSCHLUSS_15_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_15_WERT = (RXBUF_UCHAR(147)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_15_WERT", STAT_FEHLER_OVERTEMP_15_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_15_WERT = (RXBUF_UCHAR(148)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_15_WERT", STAT_FEHLER_OPEN_LOAD_15_WERT, ""); unsigned char STAT_FEHLER_INTERN_15_WERT = (RXBUF_UCHAR(149)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_15_WERT", STAT_FEHLER_INTERN_15_WERT, ""); unsigned char STAT_SLAVE_NAME_16_WERT = (RXBUF_UCHAR(150)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_16_WERT", STAT_SLAVE_NAME_16_WERT, ""); unsigned char STAT_LED_BLUE_16_WERT = (RXBUF_UCHAR(151)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_16_WERT", STAT_LED_BLUE_16_WERT, ""); unsigned char STAT_LED_GREEN_16_WERT = (RXBUF_UCHAR(152)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_16_WERT", STAT_LED_GREEN_16_WERT, ""); unsigned char STAT_LED_RED_16_WERT = (RXBUF_UCHAR(153)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_16_WERT", STAT_LED_RED_16_WERT, ""); unsigned char STAT_BRIGHTNESS_16_WERT = (RXBUF_UCHAR(154)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_16_WERT", STAT_BRIGHTNESS_16_WERT, ""); unsigned char STAT_LED_WHITE_16_WERT = (RXBUF_UCHAR(155)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_16_WERT", STAT_LED_WHITE_16_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_16_WERT = (RXBUF_UCHAR(156)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_16_WERT", STAT_FEHLER_KURZSCHLUSS_16_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_16_WERT = (RXBUF_UCHAR(157)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_16_WERT", STAT_FEHLER_OVERTEMP_16_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_16_WERT = (RXBUF_UCHAR(158)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_16_WERT", STAT_FEHLER_OPEN_LOAD_16_WERT, ""); unsigned char STAT_FEHLER_INTERN_16_WERT = (RXBUF_UCHAR(159)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_16_WERT", STAT_FEHLER_INTERN_16_WERT, ""); unsigned char STAT_SLAVE_NAME_17_WERT = (RXBUF_UCHAR(160)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_17_WERT", STAT_SLAVE_NAME_17_WERT, ""); unsigned char STAT_LED_BLUE_17_WERT = (RXBUF_UCHAR(161)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_17_WERT", STAT_LED_BLUE_17_WERT, ""); unsigned char STAT_LED_GREEN_17_WERT = (RXBUF_UCHAR(162)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_17_WERT", STAT_LED_GREEN_17_WERT, ""); unsigned char STAT_LED_RED_17_WERT = (RXBUF_UCHAR(163)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_17_WERT", STAT_LED_RED_17_WERT, ""); unsigned char STAT_BRIGHTNESS_17_WERT = (RXBUF_UCHAR(164)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_17_WERT", STAT_BRIGHTNESS_17_WERT, ""); unsigned char STAT_LED_WHITE_17_WERT = (RXBUF_UCHAR(165)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_17_WERT", STAT_LED_WHITE_17_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_17_WERT = (RXBUF_UCHAR(166)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_17_WERT", STAT_FEHLER_KURZSCHLUSS_17_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_17_WERT = (RXBUF_UCHAR(167)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_17_WERT", STAT_FEHLER_OVERTEMP_17_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_17_WERT = (RXBUF_UCHAR(168)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_17_WERT", STAT_FEHLER_OPEN_LOAD_17_WERT, ""); unsigned char STAT_FEHLER_INTERN_17_WERT = (RXBUF_UCHAR(169)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_17_WERT", STAT_FEHLER_INTERN_17_WERT, ""); unsigned char STAT_SLAVE_NAME_18_WERT = (RXBUF_UCHAR(170)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_18_WERT", STAT_SLAVE_NAME_18_WERT, ""); unsigned char STAT_LED_BLUE_18_WERT = (RXBUF_UCHAR(171)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_18_WERT", STAT_LED_BLUE_18_WERT, ""); unsigned char STAT_LED_GREEN_18_WERT = (RXBUF_UCHAR(172)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_18_WERT", STAT_LED_GREEN_18_WERT, ""); unsigned char STAT_LED_RED_18_WERT = (RXBUF_UCHAR(173)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_18_WERT", STAT_LED_RED_18_WERT, ""); unsigned char STAT_BRIGHTNESS_18_WERT = (RXBUF_UCHAR(174)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_18_WERT", STAT_BRIGHTNESS_18_WERT, ""); unsigned char STAT_LED_WHITE_18_WERT = (RXBUF_UCHAR(175)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_18_WERT", STAT_LED_WHITE_18_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_18_WERT = (RXBUF_UCHAR(176)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_18_WERT", STAT_FEHLER_KURZSCHLUSS_18_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_18_WERT = (RXBUF_UCHAR(177)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_18_WERT", STAT_FEHLER_OVERTEMP_18_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_18_WERT = (RXBUF_UCHAR(178)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_18_WERT", STAT_FEHLER_OPEN_LOAD_18_WERT, ""); unsigned char STAT_FEHLER_INTERN_18_WERT = (RXBUF_UCHAR(179)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_18_WERT", STAT_FEHLER_INTERN_18_WERT, ""); unsigned char STAT_SLAVE_NAME_19_WERT = (RXBUF_UCHAR(180)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_19_WERT", STAT_SLAVE_NAME_19_WERT, ""); unsigned char STAT_LED_BLUE_19_WERT = (RXBUF_UCHAR(181)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_19_WERT", STAT_LED_BLUE_19_WERT, ""); unsigned char STAT_LED_GREEN_19_WERT = (RXBUF_UCHAR(182)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_19_WERT", STAT_LED_GREEN_19_WERT, ""); unsigned char STAT_LED_RED_19_WERT = (RXBUF_UCHAR(183)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_19_WERT", STAT_LED_RED_19_WERT, ""); unsigned char STAT_BRIGHTNESS_19_WERT = (RXBUF_UCHAR(184)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_19_WERT", STAT_BRIGHTNESS_19_WERT, ""); unsigned char STAT_LED_WHITE_19_WERT = (RXBUF_UCHAR(185)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_19_WERT", STAT_LED_WHITE_19_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_19_WERT = (RXBUF_UCHAR(186)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_19_WERT", STAT_FEHLER_KURZSCHLUSS_19_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_19_WERT = (RXBUF_UCHAR(187)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_19_WERT", STAT_FEHLER_OVERTEMP_19_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_19_WERT = (RXBUF_UCHAR(188)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_19_WERT", STAT_FEHLER_OPEN_LOAD_19_WERT, ""); unsigned char STAT_FEHLER_INTERN_19_WERT = (RXBUF_UCHAR(189)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_19_WERT", STAT_FEHLER_INTERN_19_WERT, ""); unsigned char STAT_SLAVE_NAME_20_WERT = (RXBUF_UCHAR(190)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_20_WERT", STAT_SLAVE_NAME_20_WERT, ""); unsigned char STAT_LED_BLUE_20_WERT = (RXBUF_UCHAR(191)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_20_WERT", STAT_LED_BLUE_20_WERT, ""); unsigned char STAT_LED_GREEN_20_WERT = (RXBUF_UCHAR(192)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_20_WERT", STAT_LED_GREEN_20_WERT, ""); unsigned char STAT_LED_RED_20_WERT = (RXBUF_UCHAR(193)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_20_WERT", STAT_LED_RED_20_WERT, ""); unsigned char STAT_BRIGHTNESS_20_WERT = (RXBUF_UCHAR(194)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_20_WERT", STAT_BRIGHTNESS_20_WERT, ""); unsigned char STAT_LED_WHITE_20_WERT = (RXBUF_UCHAR(195)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_20_WERT", STAT_LED_WHITE_20_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_20_WERT = (RXBUF_UCHAR(196)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_20_WERT", STAT_FEHLER_KURZSCHLUSS_20_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_20_WERT = (RXBUF_UCHAR(197)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_20_WERT", STAT_FEHLER_OVERTEMP_20_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_20_WERT = (RXBUF_UCHAR(198)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_20_WERT", STAT_FEHLER_OPEN_LOAD_20_WERT, ""); unsigned char STAT_FEHLER_INTERN_20_WERT = (RXBUF_UCHAR(199)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_20_WERT", STAT_FEHLER_INTERN_20_WERT, ""); unsigned char STAT_SLAVE_NAME_21_WERT = (RXBUF_UCHAR(200)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_21_WERT", STAT_SLAVE_NAME_21_WERT, ""); unsigned char STAT_LED_BLUE_21_WERT = (RXBUF_UCHAR(201)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_21_WERT", STAT_LED_BLUE_21_WERT, ""); unsigned char STAT_LED_GREEN_21_WERT = (RXBUF_UCHAR(202)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_21_WERT", STAT_LED_GREEN_21_WERT, ""); unsigned char STAT_LED_RED_21_WERT = (RXBUF_UCHAR(203)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_21_WERT", STAT_LED_RED_21_WERT, ""); unsigned char STAT_BRIGHTNESS_21_WERT = (RXBUF_UCHAR(204)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_21_WERT", STAT_BRIGHTNESS_21_WERT, ""); unsigned char STAT_LED_WHITE_21_WERT = (RXBUF_UCHAR(205)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_21_WERT", STAT_LED_WHITE_21_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_21_WERT = (RXBUF_UCHAR(206)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_21_WERT", STAT_FEHLER_KURZSCHLUSS_21_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_21_WERT = (RXBUF_UCHAR(207)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_21_WERT", STAT_FEHLER_OVERTEMP_21_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_21_WERT = (RXBUF_UCHAR(208)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_21_WERT", STAT_FEHLER_OPEN_LOAD_21_WERT, ""); unsigned char STAT_FEHLER_INTERN_21_WERT = (RXBUF_UCHAR(209)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_21_WERT", STAT_FEHLER_INTERN_21_WERT, ""); unsigned char STAT_SLAVE_NAME_22_WERT = (RXBUF_UCHAR(210)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_22_WERT", STAT_SLAVE_NAME_22_WERT, ""); unsigned char STAT_LED_BLUE_22_WERT = (RXBUF_UCHAR(211)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_22_WERT", STAT_LED_BLUE_22_WERT, ""); unsigned char STAT_LED_GREEN_22_WERT = (RXBUF_UCHAR(212)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_22_WERT", STAT_LED_GREEN_22_WERT, ""); unsigned char STAT_LED_RED_22_WERT = (RXBUF_UCHAR(213)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_22_WERT", STAT_LED_RED_22_WERT, ""); unsigned char STAT_BRIGHTNESS_22_WERT = (RXBUF_UCHAR(214)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_22_WERT", STAT_BRIGHTNESS_22_WERT, ""); unsigned char STAT_LED_WHITE_22_WERT = (RXBUF_UCHAR(215)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_22_WERT", STAT_LED_WHITE_22_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_22_WERT = (RXBUF_UCHAR(216)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_22_WERT", STAT_FEHLER_KURZSCHLUSS_22_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_22_WERT = (RXBUF_UCHAR(217)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_22_WERT", STAT_FEHLER_OVERTEMP_22_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_22_WERT = (RXBUF_UCHAR(218)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_22_WERT", STAT_FEHLER_OPEN_LOAD_22_WERT, ""); unsigned char STAT_FEHLER_INTERN_22_WERT = (RXBUF_UCHAR(219)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_22_WERT", STAT_FEHLER_INTERN_22_WERT, ""); unsigned char STAT_SLAVE_NAME_23_WERT = (RXBUF_UCHAR(220)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_23_WERT", STAT_SLAVE_NAME_23_WERT, ""); unsigned char STAT_LED_BLUE_23_WERT = (RXBUF_UCHAR(221)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_23_WERT", STAT_LED_BLUE_23_WERT, ""); unsigned char STAT_LED_GREEN_23_WERT = (RXBUF_UCHAR(222)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_23_WERT", STAT_LED_GREEN_23_WERT, ""); unsigned char STAT_LED_RED_23_WERT = (RXBUF_UCHAR(223)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_23_WERT", STAT_LED_RED_23_WERT, ""); unsigned char STAT_BRIGHTNESS_23_WERT = (RXBUF_UCHAR(224)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_23_WERT", STAT_BRIGHTNESS_23_WERT, ""); unsigned char STAT_LED_WHITE_23_WERT = (RXBUF_UCHAR(225)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_23_WERT", STAT_LED_WHITE_23_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_23_WERT = (RXBUF_UCHAR(226)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_23_WERT", STAT_FEHLER_KURZSCHLUSS_23_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_23_WERT = (RXBUF_UCHAR(227)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_23_WERT", STAT_FEHLER_OVERTEMP_23_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_23_WERT = (RXBUF_UCHAR(228)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_23_WERT", STAT_FEHLER_OPEN_LOAD_23_WERT, ""); unsigned char STAT_FEHLER_INTERN_23_WERT = (RXBUF_UCHAR(229)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_23_WERT", STAT_FEHLER_INTERN_23_WERT, ""); unsigned char STAT_SLAVE_NAME_24_WERT = (RXBUF_UCHAR(230)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_24_WERT", STAT_SLAVE_NAME_24_WERT, ""); unsigned char STAT_LED_BLUE_24_WERT = (RXBUF_UCHAR(231)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_24_WERT", STAT_LED_BLUE_24_WERT, ""); unsigned char STAT_LED_GREEN_24_WERT = (RXBUF_UCHAR(232)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_24_WERT", STAT_LED_GREEN_24_WERT, ""); unsigned char STAT_LED_RED_24_WERT = (RXBUF_UCHAR(233)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_24_WERT", STAT_LED_RED_24_WERT, ""); unsigned char STAT_BRIGHTNESS_24_WERT = (RXBUF_UCHAR(234)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_24_WERT", STAT_BRIGHTNESS_24_WERT, ""); unsigned char STAT_LED_WHITE_24_WERT = (RXBUF_UCHAR(235)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_24_WERT", STAT_LED_WHITE_24_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_24_WERT = (RXBUF_UCHAR(236)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_24_WERT", STAT_FEHLER_KURZSCHLUSS_24_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_24_WERT = (RXBUF_UCHAR(237)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_24_WERT", STAT_FEHLER_OVERTEMP_24_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_24_WERT = (RXBUF_UCHAR(238)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_24_WERT", STAT_FEHLER_OPEN_LOAD_24_WERT, ""); unsigned char STAT_FEHLER_INTERN_24_WERT = (RXBUF_UCHAR(239)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_24_WERT", STAT_FEHLER_INTERN_24_WERT, ""); unsigned char STAT_SLAVE_NAME_25_WERT = (RXBUF_UCHAR(240)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_25_WERT", STAT_SLAVE_NAME_25_WERT, ""); unsigned char STAT_LED_BLUE_25_WERT = (RXBUF_UCHAR(241)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_25_WERT", STAT_LED_BLUE_25_WERT, ""); unsigned char STAT_LED_GREEN_25_WERT = (RXBUF_UCHAR(242)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_25_WERT", STAT_LED_GREEN_25_WERT, ""); unsigned char STAT_LED_RED_25_WERT = (RXBUF_UCHAR(243)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_25_WERT", STAT_LED_RED_25_WERT, ""); unsigned char STAT_BRIGHTNESS_25_WERT = (RXBUF_UCHAR(244)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_25_WERT", STAT_BRIGHTNESS_25_WERT, ""); unsigned char STAT_LED_WHITE_25_WERT = (RXBUF_UCHAR(245)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_25_WERT", STAT_LED_WHITE_25_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_25_WERT = (RXBUF_UCHAR(246)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_25_WERT", STAT_FEHLER_KURZSCHLUSS_25_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_25_WERT = (RXBUF_UCHAR(247)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_25_WERT", STAT_FEHLER_OVERTEMP_25_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_25_WERT = (RXBUF_UCHAR(248)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_25_WERT", STAT_FEHLER_OPEN_LOAD_25_WERT, ""); unsigned char STAT_FEHLER_INTERN_25_WERT = (RXBUF_UCHAR(249)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_25_WERT", STAT_FEHLER_INTERN_25_WERT, ""); unsigned char STAT_SLAVE_NAME_26_WERT = (RXBUF_UCHAR(250)); // Lin slave name read from the coding. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT / Lin Slave Name aus der // Kodierung ausgelesen. Slave 1 = Status_LRL_1_LIN = RGB_LIN_SLAVE_1_FKT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_SLAVE_NAME_26_WERT", STAT_SLAVE_NAME_26_WERT, ""); unsigned char STAT_LED_BLUE_26_WERT = (RXBUF_UCHAR(251)); // Reported status of the blue LED of the LIN slave / Rückgemeldeter Status der Blauen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_BLUE_26_WERT", STAT_LED_BLUE_26_WERT, ""); unsigned char STAT_LED_GREEN_26_WERT = (RXBUF_UCHAR(252)); // Reported status of the green LED of the LIN slave / Rückgemeldeter Status der grünen LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_GREEN_26_WERT", STAT_LED_GREEN_26_WERT, ""); unsigned char STAT_LED_RED_26_WERT = (RXBUF_UCHAR(253)); // Reported status of the red LED of the LIN slave / Rückgemeldeter Status der roten LED des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_RED_26_WERT", STAT_LED_RED_26_WERT, ""); unsigned char STAT_BRIGHTNESS_26_WERT = (RXBUF_UCHAR(254)); // Status value brightness of the LIN slave / Statuswert Helligkeit des LIN-Slaves ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_BRIGHTNESS_26_WERT", STAT_BRIGHTNESS_26_WERT, ""); unsigned char STAT_LED_WHITE_26_WERT = (RXBUF_UCHAR(255)); // Status of the white footwell LED / Status der weißen Fussraum LED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_LED_WHITE_26_WERT", STAT_LED_WHITE_26_WERT, ""); unsigned char STAT_FEHLER_KURZSCHLUSS_26_WERT = (RXBUF_UCHAR(256)); // Reported short circuit fault / Gemeldeter Kurzschlussfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_KURZSCHLUSS_26_WERT", STAT_FEHLER_KURZSCHLUSS_26_WERT, ""); unsigned char STAT_FEHLER_OVERTEMP_26_WERT = (RXBUF_UCHAR(257)); // Reported overtemperature error / Gemeldeter Übertemperaturfehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OVERTEMP_26_WERT", STAT_FEHLER_OVERTEMP_26_WERT, ""); unsigned char STAT_FEHLER_OPEN_LOAD_26_WERT = (RXBUF_UCHAR(258)); // Reported open load error / Gemeldeter Open Load Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_OPEN_LOAD_26_WERT", STAT_FEHLER_OPEN_LOAD_26_WERT, ""); unsigned char STAT_FEHLER_INTERN_26_WERT = (RXBUF_UCHAR(259)); // Reported internal error / Gemeldeter interer Fehler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STAT_LIN_LAYERING", "STAT_FEHLER_INTERN_26_WERT", STAT_FEHLER_INTERN_26_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_CODIERUNG_FAHRZEUGKLAPPEN: { // 0xDA61 if (datalen < 5) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_CODIERUNG_FAHRZEUGKLAPPEN", 5); break; } unsigned char STAT_CODIERUNG_FRONTKLAPPE = (RXBUF_UCHAR(0)); // The result returns whether the front flap is activated in the coding. 0 = not active 1 = active / Das Ergebnis // gibt zurück ob die Frontklappe in den Codierung aktiviert ist. 0 = Nicht aktiv 1 = Aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_CODIERUNG_FAHRZEUGKLAPPEN", "STAT_CODIERUNG_FRONTKLAPPE", STAT_CODIERUNG_FRONTKLAPPE, "\"0/1\""); unsigned char STAT_CODIERUNG_HECKKLAPPE = (RXBUF_UCHAR(1)); // The result returns whether the tailgate is activated in the coding. 0 = not active 1 = active / Das Ergebnis // gibt zurück ob die Heckklappe in den Codierung aktiviert ist. 0 = Nicht aktiv 1 = Aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_CODIERUNG_FAHRZEUGKLAPPEN", "STAT_CODIERUNG_HECKKLAPPE", STAT_CODIERUNG_HECKKLAPPE, "\"0/1\""); unsigned char STAT_CODIERUNG_HECKSCHEIBE = (RXBUF_UCHAR(2)); // The result returns whether the rear window is activated in the coding. 0 = not active 1 = active / Das // Ergebnis gibt zurück ob die Heckscheibe in den Codierung aktiviert ist. 0 = Nicht aktiv 1 = Aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_CODIERUNG_FAHRZEUGKLAPPEN", "STAT_CODIERUNG_HECKSCHEIBE", STAT_CODIERUNG_HECKSCHEIBE, "\"0/1\""); unsigned char STAT_CODIERUNG_MOTORHAUBE = (RXBUF_UCHAR(3)); // The result returns whether the bonnet is activated in the coding. 0 = not active 1 = active / Das Ergebnis // gibt zurück ob die Motorhaube in den Codierung aktiviert ist. 0 = Nicht aktiv 1 = Aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_CODIERUNG_FAHRZEUGKLAPPEN", "STAT_CODIERUNG_MOTORHAUBE", STAT_CODIERUNG_MOTORHAUBE, "\"0/1\""); unsigned char STAT_CODIERUNG_SPLITDOORS = (RXBUF_UCHAR(4)); // The result returns whether the split doors are activated in the coding. 0 = not active 1 = active / Das // Ergebnis gibt zurück ob die Split Doors in den Codierung aktiviert sind. 0 = Nicht aktiv 1 = Aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_CODIERUNG_FAHRZEUGKLAPPEN", "STAT_CODIERUNG_SPLITDOORS", STAT_CODIERUNG_SPLITDOORS, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_TUERKONTAKT_BFH_OBEN: { // 0xDA7B if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_TUERKONTAKT_BFH_OBEN", 1); break; } unsigned char STAT_TUERKONTAKT_BFH_OBEN = (RXBUF_UCHAR(0)); // STAT_TUERKONTAKT_BFH_OBEN / STAT_TUERKONTAKT_BFH_OBEN ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "TUERKONTAKT_BFH_OBEN", "STAT_TUERKONTAKT_BFH_OBEN", STAT_TUERKONTAKT_BFH_OBEN, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_TUERKONTAKT_FAH_OBEN: { // 0xDA7E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_TUERKONTAKT_FAH_OBEN", 1); break; } unsigned char STAT_TUERKONTAKT_FA_OBEN = (RXBUF_UCHAR(0)); // The result contains the current state of the HW input, door contact, driver's door top rear. Note: For value 8 // = contact not installed, the coding value CLI_REAR_DOOR_CONTACT_TOP_ASSEMBLED must be evaluated. / Das Result // enthält den aktuellen Zustand des HW-Eingang Türkontakt Fahrertür hinten oben. Hinweis: Für Wert 8 = Kontakt // nicht verbaut muss der Codierwert CLI_REAR_DOOR_CONTACT_TOP_ASSEMBLED ausgewertet werden. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "TUERKONTAKT_FAH_OBEN", "STAT_TUERKONTAKT_FA_OBEN", STAT_TUERKONTAKT_FA_OBEN, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_BEIFAHRER: { // 0xDA81 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_BEIFAHRER", 3); break; } unsigned char STAT_ZV_BF_ENTRIEGELT = (RXBUF_UCHAR(0)); // 0: Front passenger door lock not unlocked 1: Front passenger door lock unlocked / 0: Schloss Beifahrertuer // nicht entriegelt 1: Schloss Beifahrertuer entriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_BEIFAHRER", "STAT_ZV_BF_ENTRIEGELT", STAT_ZV_BF_ENTRIEGELT, "\"0-n\""); unsigned char STAT_ZV_BF_VERRIEGELT = (RXBUF_UCHAR(1)); // 0: Lock front passenger door not locked 1: Lock front passenger door locked / 0: Schloss Beifahrertuer nicht // verriegelt 1: Schloss Beifahrertuer verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_BEIFAHRER", "STAT_ZV_BF_VERRIEGELT", STAT_ZV_BF_VERRIEGELT, "\"0-n\""); unsigned char STAT_ZV_BF_GESICHERT = (RXBUF_UCHAR(2)); // 0: Passenger door lock not secured 1: Passenger door lock secured / 0: Schloss Beifahrertuer nicht gesichert // 1: Schloss Beifahrertuer gesichert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_BEIFAHRER", "STAT_ZV_BF_GESICHERT", STAT_ZV_BF_GESICHERT, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_BEIFAHRER_HINTEN: { // 0xDA82 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_BEIFAHRER_HINTEN", 3); break; } unsigned char STAT_ZV_BFH_ENTRIEGELT = (RXBUF_UCHAR(0)); // 0: Rear passenger door lock not unlocked 1: Rear passenger door lock unlocked / 0: Schloss Beifahrertuer // hinten nicht entriegelt 1: Schloss Beifahrertuer hinten entriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_BEIFAHRER_HINTEN", "STAT_ZV_BFH_ENTRIEGELT", STAT_ZV_BFH_ENTRIEGELT, "\"0-n\""); unsigned char STAT_ZV_BFH_VERRIEGELT = (RXBUF_UCHAR(1)); // 0: Rear passenger door lock not locked 1: Rear passenger door lock locked / 0: Schloss Beifahrertuer hinten // nicht verriegelt 1: Schloss Beifahrertuer hinten verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_BEIFAHRER_HINTEN", "STAT_ZV_BFH_VERRIEGELT", STAT_ZV_BFH_VERRIEGELT, "\"0-n\""); unsigned char STAT_ZV_BFH_GESICHERT = (RXBUF_UCHAR(2)); // 0: Rear passenger door lock not secured 1: Rear passenger door lock secured / 0: Schloss Beifahrertuer hinten // nicht gesichert 1: Schloss Beifahrertuer hinten gesichert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_BEIFAHRER_HINTEN", "STAT_ZV_BFH_GESICHERT", STAT_ZV_BFH_GESICHERT, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_FAHRER: { // 0xDA83 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_FAHRER", 3); break; } unsigned char STAT_ZV_FA_ENTRIEGELT = (RXBUF_UCHAR(0)); // 0: Driver's door lock not unlocked 1: Driver's door lock unlocked / 0: Schloss Fahrertuer nicht entriegelt 1: // Schloss Fahrertuer entriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_FAHRER", "STAT_ZV_FA_ENTRIEGELT", STAT_ZV_FA_ENTRIEGELT, "\"0-n\""); unsigned char STAT_ZV_FA_VERRIEGELT = (RXBUF_UCHAR(1)); // 0: Driver's door lock not locked 1: Driver's door lock locked / 0: Schloss Fahrertuer nicht verriegelt 1: // Schloss Fahrertuer verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_FAHRER", "STAT_ZV_FA_VERRIEGELT", STAT_ZV_FA_VERRIEGELT, "\"0-n\""); unsigned char STAT_ZV_FA_GESICHERT = (RXBUF_UCHAR(2)); // 0: Driver's door lock not secured 1: Driver's door lock secured / 0: Schloss Fahrertuer nicht gesichert 1: // Schloss Fahrertuer gesichert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_FAHRER", "STAT_ZV_FA_GESICHERT", STAT_ZV_FA_GESICHERT, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_FAHRER_HINTEN: { // 0xDA84 if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_FAHRER_HINTEN", 3); break; } unsigned char STAT_ZV_FAH_ENTRIEGELT = (RXBUF_UCHAR(0)); // 0: Rear driver door lock not unlocked 1: Rear driver door lock unlocked / 0: Schloss Fahrertuer hinten nicht // entriegelt 1: Schloss Fahrertuer hinten entriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_FAHRER_HINTEN", "STAT_ZV_FAH_ENTRIEGELT", STAT_ZV_FAH_ENTRIEGELT, "\"0-n\""); unsigned char STAT_ZV_FAH_VERRIEGELT = (RXBUF_UCHAR(1)); // 0: Rear driver door lock not locked 1: Rear driver door lock locked / 0: Schloss Fahrertuer hinten nicht // verriegelt 1: Schloss Fahrertuer hinten verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_FAHRER_HINTEN", "STAT_ZV_FAH_VERRIEGELT", STAT_ZV_FAH_VERRIEGELT, "\"0-n\""); unsigned char STAT_ZV_FAH_GESICHERT = (RXBUF_UCHAR(2)); // 0: Rear driver door lock not secured 1: Rear driver door lock secured / 0: Schloss Fahrertuer hinten nicht // gesichert 1: Schloss Fahrertuer hinten gesichert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_FAHRER_HINTEN", "STAT_ZV_FAH_GESICHERT", STAT_ZV_FAH_GESICHERT, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_HECKKLAPPE: { // 0xDA85 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_HECKKLAPPE", 2); break; } unsigned char STAT_ZV_HECKKLAPPE_ENTRIEGELT_NR = (RXBUF_UCHAR(0)); // 0: lock is not unlocked (not active); 1: lock is unlocked (active); 255: Signal invalid / implausible / 0: // Schloss ist nicht entriegelt (nicht aktiv ); 1: Schloss ist entriegelt (aktiv); 255: Signal ungültig / // unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_HECKKLAPPE", "STAT_ZV_HECKKLAPPE_ENTRIEGELT_NR", STAT_ZV_HECKKLAPPE_ENTRIEGELT_NR, "\"0-n\""); unsigned char STAT_ZV_HECKKLAPPE_VERRIEGELT_NR = (RXBUF_UCHAR(1)); // 0: lock is not locked (not active); 1: lock is locked (active); 255: Signal invalid / implausible / 0: Schloss // ist nicht verriegelt (nicht aktiv ); 1: Schloss ist verriegelt (aktiv); 255: Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_HECKKLAPPE", "STAT_ZV_HECKKLAPPE_VERRIEGELT_NR", STAT_ZV_HECKKLAPPE_VERRIEGELT_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_HECKSCHEIBE: { // 0xDA86 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_HECKSCHEIBE", 2); break; } unsigned char STAT_ZV_HECKSCHEIBE_ENTRIEGELT_NR = (RXBUF_UCHAR(0)); // 0: Rear window lock not unlocked 1: Rear window lock unlocked / 0: Schloss Heckscheibe nicht entriegelt 1: // Schloss Heckscheibe entriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_HECKSCHEIBE", "STAT_ZV_HECKSCHEIBE_ENTRIEGELT_NR", STAT_ZV_HECKSCHEIBE_ENTRIEGELT_NR, "\"0-n\""); unsigned char STAT_ZV_HECKSCHEIBE_VERRIEGELT_NR = (RXBUF_UCHAR(1)); // 0: Rear window lock not locked 1: Rear window lock locked / 0: Schloss Heckscheibe nicht verriegelt 1: // Schloss Heckscheibe verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_HECKSCHEIBE", "STAT_ZV_HECKSCHEIBE_VERRIEGELT_NR", STAT_ZV_HECKSCHEIBE_VERRIEGELT_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_GESAMT: { // 0xDA87 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_GESAMT", 4); break; } unsigned char STAT_ZV_FA_NR = (RXBUF_UCHAR(0)); // The result contains the current ZV status of the driver's door. / Das Result enthält den aktuellen ZV-Zustand // der Fahrertüre. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_GESAMT", "STAT_ZV_FA_NR", STAT_ZV_FA_NR, "\"0-n\""); unsigned char STAT_ZV_BF_NR = (RXBUF_UCHAR(1)); // The result contains the current ZV status of the passenger door. / Das Result enthält den aktuellen ZV-Zustand // der Beifahrertüre. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_GESAMT", "STAT_ZV_BF_NR", STAT_ZV_BF_NR, "\"0-n\""); unsigned char STAT_ZV_FAH_NR = (RXBUF_UCHAR(2)); // The result contains the current ZV status of the rear driver's door. / Das Result enthält den aktuellen // ZV-Zustand der Fahrertüre hinten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_GESAMT", "STAT_ZV_FAH_NR", STAT_ZV_FAH_NR, "\"0-n\""); unsigned char STAT_ZV_BFH_NR = (RXBUF_UCHAR(3)); // The result contains the current ZV status of the rear passenger door. / Das Result enthält den aktuellen // ZV-Zustand der Beifahrertüre hinten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_GESAMT", "STAT_ZV_BFH_NR", STAT_ZV_BFH_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ZV_KURZSCHLUSSABSCHALTUNG: { // 0xDA95 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ZV_KURZSCHLUSSABSCHALTUNG", 2); break; } unsigned char STAT_HECKKLAPPE_KURZSCHLUSSABSCHALTUNG_AKTIV = (RXBUF_UCHAR(0)); // The result contains the activation status of the short-circuit shutdown of the tailgate. / Das Result enthält // den Aktivierungsstatus der Kurzschlussabschaltung der Heckklappe. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_KURZSCHLUSSABSCHALTUNG", "STAT_HECKKLAPPE_KURZSCHLUSSABSCHALTUNG_AKTIV", STAT_HECKKLAPPE_KURZSCHLUSSABSCHALTUNG_AKTIV, "\"0-n\""); unsigned char STAT_HECKSCHEIBE_KURZSCHLUSSABSCHALTUNG_AKTIV = (RXBUF_UCHAR(1)); // The result contains the activation status of the short-circuit shutdown of the rear window. / Das Result // enthält den Aktivierungsstatus der Kurzschlussabschaltung der Heckscheibe. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ZV_KURZSCHLUSSABSCHALTUNG", "STAT_HECKSCHEIBE_KURZSCHLUSSABSCHALTUNG_AKTIV", STAT_HECKSCHEIBE_KURZSCHLUSSABSCHALTUNG_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SPANNUNG_KLEMMEN: { // 0xDAB3 if (datalen < 30) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SPANNUNG_KLEMMEN", 30); break; } float STAT_SPANNUNG_KLEMME_30B_1_WERT = (RXBUF_UINT(0)/1000.0f); // The result contains the voltage value of terminal 30B_1. / Das Result enthält den Spannungswert Klemme 30B_1. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_30B_1_WERT", STAT_SPANNUNG_KLEMME_30B_1_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_30B_2_WERT = (RXBUF_UINT(2)/1000.0f); // The result contains the voltage value of terminal 30B_2. / Das Result enthält den Spannungswert Klemme 30B_2. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_30B_2_WERT", STAT_SPANNUNG_KLEMME_30B_2_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_30B_3_WERT = (RXBUF_UINT(4)/1000.0f); // The result contains the voltage value of terminal 30B_3. / Das Result enthält den Spannungswert Klemme 30B_3. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_30B_3_WERT", STAT_SPANNUNG_KLEMME_30B_3_WERT, "\"V\""); unsigned short STAT_SPANNUNG_KLEMME_15WUP = (RXBUF_UINT(6)); // The result contains the voltage value of terminal 15_WUP at the FEM output. Possible values: 1 = active, 0 = // not active / Das Result enthält den Spannungswert Klemme 15_WUP am FEM Ausgang. Mögliche Werte: 1 = Aktiv, 0 = // nicht aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_15WUP", STAT_SPANNUNG_KLEMME_15WUP, "\"0/1\""); float STAT_SPANNUNG_KLEMME_15N1_WERT = (RXBUF_UINT(8)/1000.0f); // The result contains the voltage value of terminal 15_N1 at the FEM output. / Das Result enthält den // Spannungswert Klemme 15_N1 am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_15N1_WERT", STAT_SPANNUNG_KLEMME_15N1_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_15N2_WERT = (RXBUF_UINT(10)/1000.0f); // The result contains the voltage value of terminal 15_N2 at the FEM output. / Das Result enthält den // Spannungswert Klemme 15_N2 am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_15N2_WERT", STAT_SPANNUNG_KLEMME_15N2_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_15_WERT = (RXBUF_UINT(12)/1000.0f); // The result contains the voltage value at terminal 15 at the FEM output. / Das Result enthält den Spannungswert // Klemme 15 am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_15_WERT", STAT_SPANNUNG_KLEMME_15_WERT, "\"V\""); float STAT_STROM_KLEMME_15_50_WERT = (RXBUF_UINT(14)/1000.0f); // The result contains the current value at terminals 15 and 50 at the FEM output. / Das Result enthält den // Stromwert an Klemme 15 und 50 am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_STROM_KLEMME_15_50_WERT", STAT_STROM_KLEMME_15_50_WERT, "\"A\""); float STAT_SPANNUNG_KLEMME_50_WERT = (RXBUF_UINT(16)/1000.0f); // The result contains the voltage value at terminal 50 at the FEM output. / Das Result enthält den Spannungswert // Klemme 50 am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_50_WERT", STAT_SPANNUNG_KLEMME_50_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_50MSA_WERT = (RXBUF_UINT(18)/1000.0f); // The result contains the voltage value of terminal 50_MSA at the FEM output. / Das Result enthält den // Spannungswert Klemme 50_MSA am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_50MSA_WERT", STAT_SPANNUNG_KLEMME_50MSA_WERT, "\"V\""); float STAT_STROM_LF_WERT = (RXBUF_UINT(20)/1000.0f); // The result contains the current value at LF (CA antennas) at the FEM output. / Das Result enthält den // Stromwert an LF (CA-Antennen) am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_STROM_LF_WERT", STAT_STROM_LF_WERT, "\"A\""); float STAT_DIAG_LF_WERT = (RXBUF_UINT(22)/1000.0f); // The result contains the voltage value at the LF (CA antennas) at the FEM output. / Das Result enthält den // Spannungswert an LF (CA-Antennen) am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_DIAG_LF_WERT", STAT_DIAG_LF_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_31ELV_WERT = (RXBUF_UINT(24)/1000.0f); // The result contains the voltage value at terminal 31ELV at the FEM output. / Das Result enthält den // Spannungswert Klemme 31ELV am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_31ELV_WERT", STAT_SPANNUNG_KLEMME_31ELV_WERT, "\"V\""); float STAT_SPANNUNG_KLEMME_30ELV_WERT = (RXBUF_UINT(26)/1000.0f); // The result contains the voltage value at terminal 30ELV at the FEM output. / Das Result enthält den // Spannungswert Klemme 30ELV am FEM Ausgang. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_KLEMME_30ELV_WERT", STAT_SPANNUNG_KLEMME_30ELV_WERT, "\"V\""); float STAT_SPANNUNG_INNENTEMPERATUR_WERT = (RXBUF_UINT(28)/1000.0f); // The result contains the voltage value at the PTC / NTC in the control unit to determine the internal // temperature. / Das Result enthält den Spannungswert am PTC/NTC im Steuergerät zur Ermittlung der // Innentemperatur. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMMEN", "STAT_SPANNUNG_INNENTEMPERATUR_WERT", STAT_SPANNUNG_INNENTEMPERATUR_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KEY_VALID_NR_AKTUELL: { // 0xDAB4 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KEY_VALID_NR_AKTUELL", 1); break; } unsigned char STAT_KEY_VAILD_NR_AKTUELL = (RXBUF_UCHAR(0)); // The result contains the number (according to the transponder table) of the currently valid key. Values: 0-19 // key number, 255 currently not a valid key. / Das Result enthält die Nummer (gemäß Transpondertabelle) des // aktuell gültigen Schlüssel. Werte: 0-19 Schlüsselnummer, 255 momentan kein gültiger Schlüssel. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KEY_VALID_NR_AKTUELL", "STAT_KEY_VAILD_NR_AKTUELL", STAT_KEY_VAILD_NR_AKTUELL, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_CA_TAGE_ER_LEITUNG: { // 0xDAB5 if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_CA_TAGE_ER_LEITUNG", 4); break; } unsigned char STAT_TAGE_ER_FT = (RXBUF_UCHAR(0)); // The result contains the status of the line between the ZSG and the CA button / TAGE in the driver's door. // Notes: - Assignment via table TAB_CAS_CA_TAGE_ER_LEITUNG. / Das Result enthält den Status der Leitung zwischen // ZSG und CA-Taster/TAGE in der Fahrertür. Hinweise: - Zuordnung über Tabelle TAB_CAS_CA_TAGE_ER_LEITUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_ER_LEITUNG", "STAT_TAGE_ER_FT", STAT_TAGE_ER_FT, "\"0-n\""); unsigned char STAT_TAGE_ER_BFT = (RXBUF_UCHAR(1)); // The result contains the status of the line between the ZSG and the CA button / TAGE in the passenger door. // Notes: - Allocation via table TAB_CAS_CA_TAGE_ER_LEITUNG. / Das Result enthält den Status der Leitung zwischen // ZSG und CA-Taster/TAGE in der Beifahrertür.. Hinweise: - Zuordnung über Tabelle TAB_CAS_CA_TAGE_ER_LEITUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_ER_LEITUNG", "STAT_TAGE_ER_BFT", STAT_TAGE_ER_BFT, "\"0-n\""); unsigned char STAT_TAGE_ER_FTH = (RXBUF_UCHAR(2)); // The result contains the status of the line between the ZSG and the CA button / TAGE in the rear driver's door. // Notes: - Assignment via table TAB_CAS_CA_TAGE_ER_LEITUNG. / Das Result enthält den Status der Leitung zwischen // ZSG und CA-Taster/TAGE in der Fahrertür hinten. Hinweise: - Zuordnung über Tabelle // TAB_CAS_CA_TAGE_ER_LEITUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_ER_LEITUNG", "STAT_TAGE_ER_FTH", STAT_TAGE_ER_FTH, "\"0-n\""); unsigned char STAT_TAGE_ER_BFTH = (RXBUF_UCHAR(3)); // The result contains the status of the line between the ZSG and the CA button / TAGE in the rear passenger // door. Notes: - Assignment via table TAB_CAS_CA_TAGE_ER_LEITUNG. / Das Result enthält den Status der Leitung // zwischen ZSG und CA-Taster/TAGE in der Beifahrertür hinten. Hinweise: - Zuordnung über Tabelle // TAB_CAS_CA_TAGE_ER_LEITUNG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_ER_LEITUNG", "STAT_TAGE_ER_BFTH", STAT_TAGE_ER_BFTH, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_START_STOP_TASTER: { // 0xDAB6 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_START_STOP_TASTER", 1); break; } unsigned char STAT_TASTER_SST_AKTIV = (RXBUF_UCHAR(0)); // The result contains the current logical state of the start / stop button. / Das Result enthält den aktuellen // logischen Zustand des Start-Stopp-Tasters. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "START_STOP_TASTER", "STAT_TASTER_SST_AKTIV", STAT_TASTER_SST_AKTIV, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_KLEMMEN_VERHINDERER: { // 0xDABA if (datalen < 3) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_KLEMMEN_VERHINDERER", 3); break; } unsigned char STAT_KL15_EIN_VERHINDERER = (RXBUF_UCHAR(0)); // The result contains the cause that currently prevents the KL15 from being switched on if a terminal change to // KL15 is requested via the StartStop button (SST) or via diagnosis. Notes: - Allocation takes place in // accordance with table 0 = No obstacle present 1 = Current key not valid 14 = ELV locked / Das Result enthält // die Ursache, die momentan ein Einschalten der KL15 verhindert, wenn eine Klemmenänderung zu KL15 über // StartStop-Taster (SST) oder über Diagnose angefordert würde. Hinweise: - Zuordnung erfolgt gemäß Tabelle 0 = // Kein Hinderungsgrund vorliegend 1 = Aktueller Schlüssel nicht gültig 14 = ELV verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KLEMMEN_VERHINDERER", "STAT_KL15_EIN_VERHINDERER", STAT_KL15_EIN_VERHINDERER, "\"0-n\""); unsigned char STAT_KL15_AUS_VERHINDERER = (RXBUF_UCHAR(1)); // The result contains the cause that currently prevents the KL15 from switching off if a terminal change is // requested via the StartStop button (SST) or via diagnosis. Notes: - Allocation takes place according to table // 0 = No reason for hindrance present 3 = Speed of travel detected 4 = Speed signal invalid / Das Result enthält // die Ursache, die momentan ein Ausschalten der KL15 verhindert, wenn eine Klemmenänderung über StartStop-Taster // (SST) oder über Diagnose angefordert würde. Hinweise: - Zuordnung erfolgt gemäß Tabelle 0 = Kein // Hinderungsgrund vorliegend 3 = Geschwindigkeit Fahrt erkannt 4 = Geschwindigkeitsignal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KLEMMEN_VERHINDERER", "STAT_KL15_AUS_VERHINDERER", STAT_KL15_AUS_VERHINDERER, "\"0-n\""); unsigned char STAT_KL50_EIN_VERHINDERER = (RXBUF_UCHAR(2)); // The result contains the cause that currently prevents activation of the KL50 if a terminal change is requested // via the StartStop button (SST), Telestart hand transmitter or via diagnosis. Notes: - Allocation takes place // according to table 0 = No obstacle present 1 = No valid key 5 = Brake not pressed 6 = Brake implausible 7 = // Clutch not pressed 8 = Clutch implausible 9 = Abort DME / DDE (engine running detected / no engine start // allowed via CAN ) 10 = frictional connection detected (P or N not inserted) 13 = assembly mode KL50 14 = ELV // locked / Das Result enthält die Ursache, die momentan ein Ansteuern der KL50 verhindert, wenn eine // Klemmenänderung über StartStop-Taster (SST), Telestarthandsender oder über Diagnose angefordert würde. // Hinweise: - Zuordnung erfolgt gemäß Tabelle 0 = Kein Hinderungsgrund vorliegend 1 = Kein gültiger Schlüssel // 5 = Bremse nicht gedrückt 6 = Bremse unplausibel 7 = Kupplung nicht gedrückt 8 = Kupplung unplausibel 9 = // Abbruch DME/DDE (Motorlauf erkannt/Kein Motorstart erlaubt über CAN) 10 = Kraftschluss erkannt (P oder N nicht // eingelegt) 13 = Montagmodus KL50 14 = ELV verriegelt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KLEMMEN_VERHINDERER", "STAT_KL50_EIN_VERHINDERER", STAT_KL50_EIN_VERHINDERER, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_DATUM_ZEIT: { // 0xDABB if (datalen < 12) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_DATUM_ZEIT", 12); break; } unsigned char STAT_BUS_IN_ZEIT_STUNDEN_WERT = (RXBUF_UCHAR(0)); // Hours: 0-23; 253 corresponds to -; 254 No answer; 255 signal invalid / Stunden: 0 - 23; 253 entspricht --; 254 // Keine Angabe; 255 Signal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_ZEIT_STUNDEN_WERT", STAT_BUS_IN_ZEIT_STUNDEN_WERT, ""); unsigned char STAT_BUS_IN_ZEIT_MINUTEN_WERT = (RXBUF_UCHAR(1)); // Minutes: 0 - 59; 253 corresponds to -; 254 No answer; 255 signal invalid / Minuten: 0 - 59; 253 entspricht --; // 254 Keine Angabe; 255 Signal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_ZEIT_MINUTEN_WERT", STAT_BUS_IN_ZEIT_MINUTEN_WERT, ""); unsigned char STAT_BUS_IN_DATUM_TAG_WERT = (RXBUF_UCHAR(2)); // Day: 0 - 31; 255 signal invalid / Tag: 0 - 31; 255 Signal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_DATUM_TAG_WERT", STAT_BUS_IN_DATUM_TAG_WERT, ""); unsigned char STAT_BUS_IN_DATUM_MONAT_WERT = (RXBUF_UCHAR(3)); // Month: 1 - 12; 255 signal invalid / Monat: 1 - 12; 255 Signal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_DATUM_MONAT_WERT", STAT_BUS_IN_DATUM_MONAT_WERT, ""); unsigned short STAT_BUS_IN_DATUM_JAHR_WERT = (RXBUF_UINT(4)); // Year: 2000 - 9999; 65535 Signal invalid / Jahr: 2000 - 9999; 65535 Signal ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_DATUM_JAHR_WERT", STAT_BUS_IN_DATUM_JAHR_WERT, ""); unsigned long STAT_BUS_IN_ZEIT_RELATIV_WERT = (RXBUF_UINT32(6)); // Current relative time in seconds since 01/01/2000, seconds: 0 - 4.2 billion, 4294967295 invalid / Aktuelle // Relative Zeit in Sekunden seit 01.01.2000, Sekunden: 0 - 4,2 Millarden, 4294967295 ungültig ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_ZEIT_RELATIV_WERT", STAT_BUS_IN_ZEIT_RELATIV_WERT, "\"s\""); unsigned short STAT_BUS_IN_ZEIT_TAGE_RELATIV_WERT = (RXBUF_UINT(10)); // Current relative time in days since 01.01.2000; Days: 1 corresponds to 01/01/2000, 65535 corresponds to // invalid. / Aktuelle Relative Zeit in Tagen seit 01.01.2000; Tage: 1 entspricht 01.01.2000, 65535 entspricht // ungültig. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "BUS_IN_DATUM_ZEIT", "STAT_BUS_IN_ZEIT_TAGE_RELATIV_WERT", STAT_BUS_IN_ZEIT_TAGE_RELATIV_WERT, "\"d\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_DME1: { // 0xDABC if (datalen < 7) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_DME1", 7); break; } unsigned char STAT_BUS_IN_GANG = (RXBUF_UCHAR(0)); // The result contains the current value for the gear (received via CAN). Notes: - The value is determined from // the CAN signal ST_GRSEL_DRV. - Allocation takes place according to table TAB_CAS_GANG. / Das Result enthält // den aktuellen Wert für den Gang (über CAN empfangen). Hinweise: - Der Wert wird aus CAN-Signal ST_GRSEL_DRV // ermittelt. - Zuordnung erfolgt gemäß Tabelle TAB_CAS_GANG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DME1", "STAT_BUS_IN_GANG", STAT_BUS_IN_GANG, "\"0-n\""); unsigned char STAT_BUS_IN_MOTOR_LAEUFT = (RXBUF_UCHAR(1)); // The result contains the current value (received via CAN) for engine running. Notes: - The value is determined // from bit 0 & 1 of the CAN signal ST_DRV_VEH. - Allocation takes place according to table TAB_CAS_MOTOR_STATUS // / Das Result enthält den aktuellen Wert (über CAN empfangen) für Motor läuft. Hinweise: - Der Wert wird // ermittelt aus Bit 0 & 1 des CAN-Signals ST_DRV_VEH. - Zuordnung erfolgt gemäß Tabelle TAB_CAS_MOTOR_STATUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DME1", "STAT_BUS_IN_MOTOR_LAEUFT", STAT_BUS_IN_MOTOR_LAEUFT, "\"0-n\""); unsigned char STAT_BUS_IN_MOTOR_FREIGABE = (RXBUF_UCHAR(2)); // The result contains the current value (received via CAN) for the motor enable. Note: - The value is determined // from the CAN signal RLS_ENGSTA. - Allocation takes place according to table TAB_CAS_MOTORSTART_FREIGABE / Das // Result enthält den aktuellen Wert (über CAN empfangen) für die Motor Freigabe. Hinweis: - Der Wert wird // ermittelt aus CAN-Signal RLS_ENGSTA. - Zuordnung erfolgt gemäß Tabelle TAB_CAS_MOTORSTART_FREIGABE ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DME1", "STAT_BUS_IN_MOTOR_FREIGABE", STAT_BUS_IN_MOTOR_FREIGABE, "\"0-n\""); unsigned char STAT_BUS_IN_ANLASSER_SPERRE = (RXBUF_UCHAR(3)); // The result contains the current value (received via CAN) for the starter lock. Note: - The value is determined // from the CAN signal ST_ILK_STRT_DRV. - Allocation takes place according to table TAB_CAS_MOTOR_ANLASSERSPERRE // / Das Result enthält den aktuellen Wert (über CAN empfangen) für die Anlassersperre. Hinweis: - Der Wert wird // ermittelt aus CAN-Signal ST_ILK_STRT_DRV. - Zuordnung erfolgt gemäß Tabelle TAB_CAS_MOTOR_ANLASSERSPERRE ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DME1", "STAT_BUS_IN_ANLASSER_SPERRE", STAT_BUS_IN_ANLASSER_SPERRE, "\"0-n\""); unsigned char STAT_BUS_IN_KUPPLUNG = (RXBUF_UCHAR(4)); // The result contains the current value (received via CAN) for the clutch. Notes: - The value is determined from // the CAN signal ST_SW_CLT_DRV. - Allocation takes place according to table TAB_CAS_DIGITAL_EINGANG. Only the // values 0, 1 and 255 are returned. / Das Result enthält den aktuellen Wert (über CAN empfangen) für die // Kupplung. Hinweise: - Der Wert wird ermittelt aus CAN-Signal ST_SW_CLT_DRV. - Zuordnung erfolgt gemäß Tabelle // TAB_CAS_DIGITAL_EINGANG. Nur die Werte 0, 1 und 255 werden zurückgeliefert. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DME1", "STAT_BUS_IN_KUPPLUNG", STAT_BUS_IN_KUPPLUNG, "\"0-n\""); float STAT_BUS_IN_DREHZAHL_WERT = (RXBUF_UINT(5)/4.0f); // The result contains the current value (received via CAN) for the speed. Notes: - The value is determined from // the CAN signal AVL_RPM_ENG_CRSH. - The SGBD divides the value from the telegram by 4, since the // AVL_RPM_ENG_CRSH signal is accurate to a quarter of a turn. / Das Result enthält den aktuellen Wert (über CAN // empfangen) für die Drehzahl. Hinweise: - Der Wert wird ermittelt aus CAN-Signal AVL_RPM_ENG_CRSH. - Der Wert // aus dem Telegramm wird von der SGBD durch 4 geteilt, da das Signal AVL_RPM_ENG_CRSH Viertel-Umdrehungs-genau // ist. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "BUS_IN_DME1", "STAT_BUS_IN_DREHZAHL_WERT", STAT_BUS_IN_DREHZAHL_WERT, "\"1/min\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_DSC: { // 0xDABD if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_DSC", 4); break; } float STAT_BUS_IN_GESCHW_WERT = (RXBUF_UINT(0)/64.0f); // The result contains the current value (received via CAN) for the speed. Notes: - The value is determined from // the signal V_VEH_COG. - Value range 0-350, Invalid 1023 - The raw value is divided by 64 by the SGBD, since // the V_VEH_COG signal is accurate to 64. / Das Result enthält den aktuellen Wert (über CAN empfangen) für die // Geschwindigkeit. Hinweise: - Der Wert wird ermittelt aus dem Signal V_VEH_COG. - Wertebereich 0-350, Ungültig // 1023 - Der Rohwert wird von der SGBD durch 64 geteilt, da das Signal V_VEH_COG 64-tel-genau ist. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "BUS_IN_DSC", "STAT_BUS_IN_GESCHW_WERT", STAT_BUS_IN_GESCHW_WERT, "\"km/h\""); unsigned char STAT_BUS_IN_GESCHW_STATUS = (RXBUF_UCHAR(2)); // The result contains the current value (received via CAN) for the speed as status. Notes: - Allocation takes // place according to table TAB_CAS_GESCHW_STATUS - The value is determined from the signal DVCO_VEH. / Das // Result enthält den aktuellen Wert (über CAN empfangen) für die Geschwindigkeit als Status Hinweise: - // Zuordnung erfolgt gemäß Tabelle TAB_CAS_GESCHW_STATUS - Der Wert wird ermittelt aus dem Signal DVCO_VEH. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DSC", "STAT_BUS_IN_GESCHW_STATUS", STAT_BUS_IN_GESCHW_STATUS, "\"0-n\""); unsigned char STAT_BUS_IN_BREMSPEDAL = (RXBUF_UCHAR(3)); // The result contains the current value (received via CAN) for the position of the brake pedal. Notes: - CAN // signal Status_Bremsung_Fahrer (ST_BRG_DV), evaluation of the bit coding Activation_Bremssystem_Fahrer + total // signal invalid must take place in the CAS. - Allocation takes place according to table TAB_CAS_DIGITAL_EINGANG // / Das Result enthält den aktuellen Wert (über CAN empfangen) für die Stellung des Bremspedals. Hinweise: - // CAN-Signal Status_Bremsung_Fahrer (ST_BRG_DV), Auswertung der Bit-Kodierung Betätigung_Bremssystem_Fahrer + // Gesamtsignal ungültig muss im CAS erfolgen. - Zuordnung erfolgt gemäß Tabelle TAB_CAS_DIGITAL_EINGANG ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_DSC", "STAT_BUS_IN_BREMSPEDAL", STAT_BUS_IN_BREMSPEDAL, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BUS_IN_FH: { // 0xDABF if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BUS_IN_FH", 4); break; } unsigned char STAT_BUS_IN_FH_FT = (RXBUF_UCHAR(0)); // CAN signal for the driver's door window regulator status. Notes: - The content comes from the CAN signal // ST_PO_WRG_DRD. - Allocation takes place according to table TAB_CAS_FH_STATUS. / CAN-Signal Status Fensterheber // Fahrertür. Hinweise: - Inhalt stammt aus CAN-Signal ST_PO_WRG_DRD. - Zuordnung erfolgt gemäß Tabelle // TAB_CAS_FH_STATUS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_FH", "STAT_BUS_IN_FH_FT", STAT_BUS_IN_FH_FT, "\"0-n\""); unsigned char STAT_BUS_IN_FH_BFT = (RXBUF_UCHAR(1)); // CAN signal for the status of the passenger door window regulator. Notes: - Content from the CAN signal // ST_PO_WRG_PSD. - Allocation takes place according to table TAB_CAS_FH_STATUS. / CAN-Signal Status Fensterheber // Beifahrertür. Hinweise: - Inhalt aus dem CAN-Signal ST_PO_WRG_PSD. - Zuordnung erfolgt gemäß Tabelle // TAB_CAS_FH_STATUS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_FH", "STAT_BUS_IN_FH_BFT", STAT_BUS_IN_FH_BFT, "\"0-n\""); unsigned char STAT_BUS_IN_FH_FTH = (RXBUF_UCHAR(2)); // CAN signal for the status of the rear window regulator in the driver's door. Notes: - Content from the CAN // signal ST_PO_WRG_DVDR. - Allocation takes place according to table TAB_CAS_FH_STATUS. / CAN-Signal Status // Fensterheber Fahrertür hinten. Hinweise: - Inhalt aus dem CAN-Signal ST_PO_WRG_DVDR. - Zuordnung erfolgt // gemäß Tabelle TAB_CAS_FH_STATUS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_FH", "STAT_BUS_IN_FH_FTH", STAT_BUS_IN_FH_FTH, "\"0-n\""); unsigned char STAT_BUS_IN_FH_BFTH = (RXBUF_UCHAR(3)); // CAN signal for the status of the window lifter, rear passenger door. Notes: - Content from the CAN signal // ST_PO_WRG_PSDR. - Allocation takes place according to table TAB_CAS_FH_STATUS. / CAN-Signal Status // Fensterheber Beifahrertür hinten. Hinweise: - Inhalt aus dem CAN-Signal ST_PO_WRG_PSDR. - Zuordnung erfolgt // gemäß Tabelle TAB_CAS_FH_STATUS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BUS_IN_FH", "STAT_BUS_IN_FH_BFTH", STAT_BUS_IN_FH_BFTH, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_CA_TAGE_STATUS: { // 0xDACA if (datalen < 4) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_CA_TAGE_STATUS", 4); break; } unsigned char STAT_TAGE_FT = (RXBUF_UCHAR(0)); // The result contains the status of the CA button or the TAGE driver's door. Notes: - The assignment is made via // table TAB_CAS_CA_TAGE_STATUS / Das Result enthält den Status des CA-Tasters oder der TAGE Fahrertüre.. // Hinweise: - Die Zuordnung erfolgt über Tabelle TAB_CAS_CA_TAGE_STATUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_STATUS", "STAT_TAGE_FT", STAT_TAGE_FT, "\"0-n\""); unsigned char STAT_TAGE_BFT = (RXBUF_UCHAR(1)); // The result contains the status of the CA button or the TAGE passenger door. Notes: - The assignment is made // via table TAB_CAS_CA_TAGE_STATUS / Das Result enthält den Status des CA-Tasters oder der TAGE Beifahrertüre.. // Hinweise: - Die Zuordnung erfolgt über Tabelle TAB_CAS_CA_TAGE_STATUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_STATUS", "STAT_TAGE_BFT", STAT_TAGE_BFT, "\"0-n\""); unsigned char STAT_TAGE_FTH = (RXBUF_UCHAR(2)); // The result contains the status of the CA button or the TAGE back door on the driver's side. Notes: - The // assignment is made via table TAB_CAS_CA_TAGE_STATUS / Das Result enthält den Status des CA-Tasters oder der // TAGE Hintertüre Fahrerseite.. Hinweise: - Die Zuordnung erfolgt über Tabelle TAB_CAS_CA_TAGE_STATUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_STATUS", "STAT_TAGE_FTH", STAT_TAGE_FTH, "\"0-n\""); unsigned char STAT_TAGE_BFTH = (RXBUF_UCHAR(3)); // The result contains the status of the CA button or the TAGE back door on the passenger side. Notes: - The // assignment is made via table TAB_CAS_CA_TAGE_STATUS / Das Result enthält den Status des CA-Tasters oder der // TAGE Hintertüre Beifahrerseite. Hinweise: - Die Zuordnung erfolgt über Tabelle TAB_CAS_CA_TAGE_STATUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "CA_TAGE_STATUS", "STAT_TAGE_BFTH", STAT_TAGE_BFTH, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SPANNUNG_KLEMME_30L1: { // 0xDAD6 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SPANNUNG_KLEMME_30L1", 2); break; } float STAT_SPANNUNG_KLEMME_30L1_WERT = (RXBUF_SINT(0)/10.0f); // Voltage value at the control unit at terminal 30L (to one decimal place) Notes: - The SGBD divides the value // supplied by the control unit by 10 (one decimal place). / Spannungswert am Steuergerät an Klemme 30L (auf eine // Nachkommastelle genau) Hinweise: - Der vom Steuergerät gelieferte Wert wird von der SGBD durch 10 geteilt // (eine Nachkommastelle). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMME_30L1", "STAT_SPANNUNG_KLEMME_30L1_WERT", STAT_SPANNUNG_KLEMME_30L1_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_SPANNUNG_KLEMME_30L2: { // 0xDAD7 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_SPANNUNG_KLEMME_30L2", 2); break; } float STAT_SPANNUNG_KLEMME_30L2_WERT = (RXBUF_SINT(0)/10.0f); // Voltage value at the control unit at terminal 30L (to one decimal place) Notes: - The SGBD divides the value // supplied by the control unit by 10 (one decimal place). / Spannungswert am Steuergerät an Klemme 30L (auf eine // Nachkommastelle genau) Hinweise: - Der vom Steuergerät gelieferte Wert wird von der SGBD durch 10 geteilt // (eine Nachkommastelle). ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "SPANNUNG_KLEMME_30L2", "STAT_SPANNUNG_KLEMME_30L2_WERT", STAT_SPANNUNG_KLEMME_30L2_WERT, "\"V\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG: { // 0xDB12 if (datalen < 5) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG", 5); break; } unsigned char STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_15N1_AKTIV = (RXBUF_UCHAR(0)); // The result contains the activation status of the short-circuit shutdown of the HW driver KL15N1. / Das Result // enthält den Aktivierungsstatus der Kurzschlussabschaltung des HW-Treiber KL15N1. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG", "STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_15N1_AKTIV", STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_15N1_AKTIV, "\"0-n\""); unsigned char STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_15N2_AKTIV = (RXBUF_UCHAR(1)); // The result contains the activation status of the short-circuit shutdown of the HW driver KL15N2. / Das Result // enthält den Aktivierungsstatus der Kurzschlussabschaltung des HW-Treiber KL15N2. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG", "STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_15N2_AKTIV", STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_15N2_AKTIV, "\"0-n\""); unsigned char STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL30BACSM_AKTIV = (RXBUF_UCHAR(2)); // The result contains the activation status of the short-circuit shutdown of the HW driver KL30B-ACSM. / Das // Result enthält den Aktivierungsstatus der Kurzschlussabschaltung des HW-Treiber KL30B-ACSM. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG", "STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL30BACSM_AKTIV", STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL30BACSM_AKTIV, "\"0-n\""); unsigned char STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL301_AKTIV = (RXBUF_UCHAR(3)); // The result contains the activation status of the short-circuit shutdown of the KL30B1 HW driver. / Das Result // enthält den Aktivierungsstatus der Kurzschlussabschaltung des HW-Treiber KL30B1. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG", "STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL301_AKTIV", STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL301_AKTIV, "\"0-n\""); unsigned char STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL302_AKTIV = (RXBUF_UCHAR(4)); // The result contains the activation status of the short-circuit shutdown of the KL30B2 HW driver. / Das Result // enthält den Aktivierungsstatus der Kurzschlussabschaltung des HW-Treiber KL30B2. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG", "STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL302_AKTIV", STAT_KURZSCHLUSSABSCHALTUNG_TREIBER_KL302_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HECKKLAPPENSENSOR: { // 0xDB16 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HECKKLAPPENSENSOR", 1); break; } unsigned char STAT_HECKKLAPPENSENSOR = (RXBUF_UCHAR(0)); // Current status of the tailgate sensor / Aktueller Zustand des Heckklappensensors ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HECKKLAPPENSENSOR", "STAT_HECKKLAPPENSENSOR", STAT_HECKKLAPPENSENSOR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_NACHLAUFZEIT_KLEMME_15N: { // 0xDB2D if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_NACHLAUFZEIT_KLEMME_15N", 2); break; } unsigned short STAT_NACHLAUFZEIT_KLEMME_15N_WERT = (RXBUF_UINT(0)); // The result contains the follow-up time of terminal 15N in seconds. / Das Result enthält die Nachlaufzeit der // Klemme 15N in Sekunden. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "NACHLAUFZEIT_KLEMME_15N", "STAT_NACHLAUFZEIT_KLEMME_15N_WERT", STAT_NACHLAUFZEIT_KLEMME_15N_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_NACHLAUFZEIT_KLEMME_30B: { // 0xDB2E if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_NACHLAUFZEIT_KLEMME_30B", 2); break; } unsigned short STAT_NACHLAUFZEIT_KLEMME_30B_WERT = (RXBUF_UINT(0)); // The result contains the delay time of terminal 30B in seconds. / Das Result enthält die Nachlaufzeit der // Klemme 30B in Sekunden. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "NACHLAUFZEIT_KLEMME_30B", "STAT_NACHLAUFZEIT_KLEMME_30B_WERT", STAT_NACHLAUFZEIT_KLEMME_30B_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_KLEMMEN: { // 0xDC56 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_KLEMMEN", 1); break; } unsigned char STAT_KLEMMENSTATUS = (RXBUF_UCHAR(0)); // The result contains the status of the terminals in the CAS control unit. Notes: - Allocation takes place // according to table TAB_CAS_KLEMMENSTATUS. / Das Result enthält den Status der Klemmen im CAS-Steuergerät. // Hinweise: - Zuordnung erfolgt gemäß Tabelle TAB_CAS_KLEMMENSTATUS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KLEMMEN", "STAT_KLEMMENSTATUS", STAT_KLEMMENSTATUS, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_STATUS_KL15_ABSCHALTUNG: { // 0xDC57 if (datalen < 23) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_STATUS_KL15_ABSCHALTUNG", 23); break; } unsigned char STAT_CODIERUNG_KL15_ABSCHALTUNG = (RXBUF_UCHAR(0)); // The result indicates whether shutdown is enabled by coding. Notes: - 0 = not active, 1 = active / Das Result // gibt an, ob Abschaltung per Codierung freigeschaltet ist. Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_CODIERUNG_KL15_ABSCHALTUNG", STAT_CODIERUNG_KL15_ABSCHALTUNG, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_OBDKOMMUNIKATION_AKTIV = (RXBUF_UCHAR(1)); // The result indicates whether the switch-off preventer OBD communication (OBD-relevant diagnostic communication // via D-CAN) is currently active. Notes: - 0 = not active, 1 = active / Das Result gibt an, ob der // Abschaltverhinderer OBD-Kommunikation (OBD-relevante Diagnosekommunikation über D-CAN) gerade aktiv ist. // Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_OBDKOMMUNIKATION_AKTIV", STAT_ABSCHALTVERHINDERER_OBDKOMMUNIKATION_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_BREMSE_AKTIV = (RXBUF_UCHAR(2)); // The result indicates whether the switch-off preventer brake pedal is currently active. Notes: - 0 = not // active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer Bremspedal betätigt ist gerade aktiv. // Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_BREMSE_AKTIV", STAT_ABSCHALTVERHINDERER_BREMSE_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_MOTORLAUF_AKTIV = (RXBUF_UCHAR(3)); // The result indicates whether the shutdown preventer motor run is currently active. Note: - 0 = not active, 1 = // active / Das Result gibt an, ob der Abschaltverhinderer Motorlauf gerade aktiv ist. Hinweis: - 0=nicht aktiv, // 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_MOTORLAUF_AKTIV", STAT_ABSCHALTVERHINDERER_MOTORLAUF_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_KUPPLUNG_AKTIV = (RXBUF_UCHAR(4)); // The result indicates whether the switch-off preventer clutch pedal is currently active. Notes: - 0 = not // active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer Kupplungspedal betätigt gerade aktiv ist. // Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_KUPPLUNG_AKTIV", STAT_ABSCHALTVERHINDERER_KUPPLUNG_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_ENERGIESPARMODE_AKTIV = (RXBUF_UCHAR(5)); // The result indicates whether the switch-off preventer energy mode active (FETRAFLA) is currently active. Note: // The KL15 shutdown is deactivated here due to the energy manager in the FEM. / Das Result gibt an, ob der // Abschaltverhinderer Energiemode aktiv(FETRAFLA) gerade aktiv ist. Hinweis: Die KL15-Abschaltung ist hier // aufgrund des Energymanager im FEM deaktiviert. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_ENERGIESPARMODE_AKTIV", STAT_ABSCHALTVERHINDERER_ENERGIESPARMODE_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_GESCHWINDIGKEIT_AKTIV = (RXBUF_UCHAR(6)); // The result indicates whether the speed switch-off preventer is currently active. Notes: - 0 = not active, 1 = // active / Das Result gibt an, ob der Abschaltverhinderer Geschwindigkeit gerade aktiv ist. Hinweise: - 0=nicht // aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_GESCHWINDIGKEIT_AKTIV", STAT_ABSCHALTVERHINDERER_GESCHWINDIGKEIT_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_MSA_AKTIV = (RXBUF_UCHAR(7)); // MSA is currently (L6, L7) no switch-off preventer for the KL15. This result is only available as a lead and is // always filled with ¿0¿. / MSA ist aktuell (L6,L7) kein Abschaltverhinderer für die KL15. Dieses Result ist nur // als Vorhalt vorhanden und wird immer mit ¿0¿ befüllt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_MSA_AKTIV", STAT_ABSCHALTVERHINDERER_MSA_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_ABBLENDLICHT_AKTIV = (RXBUF_UCHAR(8)); // The result indicates whether the switch-off preventer dipped beam is currently active. Notes: - 0 = not // active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer Abblendlicht gerade aktiv ist. Hinweise: - // 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_ABBLENDLICHT_AKTIV", STAT_ABSCHALTVERHINDERER_ABBLENDLICHT_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_WAEHLHEBEL_IN_N_AKTIV = (RXBUF_UCHAR(9)); // The result indicates whether the switch-off preventer selector lever in N is currently active (car wash // function). Notes: - 0 = not active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer Wählhebel in N // gerade aktiv ist (Waschstrassen-Funktion). Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_WAEHLHEBEL_IN_N_AKTIV", STAT_ABSCHALTVERHINDERER_WAEHLHEBEL_IN_N_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_DIAGNOSE_AKTIV = (RXBUF_UCHAR(10)); // The result indicates whether the shutdown prevention diagnosis (speed threshold set) is currently active. // Notes: - 0 = not active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer Diagnose // (Geschwindigkeitsschwelle gesetzt) gerade aktiv ist. Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_DIAGNOSE_AKTIV", STAT_ABSCHALTVERHINDERER_DIAGNOSE_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_FLA_MODE = (RXBUF_UCHAR(11)); // This result is only available as a lead and is always filled with 0. / Dieses Result ist nur als Vorhalt // vorhanden und wird immer mit 0 befüllt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_FLA_MODE", STAT_ABSCHALTVERHINDERER_FLA_MODE, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_AKTIV = (RXBUF_UCHAR(12)); // The result indicates whether at least one switch-off preventer is currently active. Notes: - 0 = no switch-off // preventer active - 1 = at least one switch-off preventer active / Das Result gibt an, ob mindestens ein // Abschaltverhinderer gerade aktiv ist. Hinweise: - 0=kein Abschaltverhinderer aktiv - 1=mindestens ein // Abschaltverhinderer aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_AKTIV", STAT_ABSCHALTVERHINDERER_AKTIV, "\"0/1\""); unsigned char STAT_AUTOMATISCHE_ABSCHALTUNG_DURCHGEFUEHRT = (RXBUF_UCHAR(13)); // The result indicates whether the last KL15 shutdown was an automatic KL15 shutdown or not. Notes: - The value // is set to active as soon as an autom. KL15 shutdown has been carried out. - The value is reset to not active // as soon as a non-automatic KL15 switch-off (e.g. via SST) has been carried out. 0 = automatic KL15 switch-off // was not carried out 1 = automatic KL15 switch-off was carried out / Das Result gibt an, ob die letzte // KL15-Abschaltung eine automatische KL15-Abschaltung war oder nicht. Hinweise: - Der Wert wird auf aktiv // gesetzt, sobald eine autom. KL15-Abschaltung durchgeführt wurde. - Der Wert wird auf nicht aktiv rückgesetzt, // sobald eine nicht-automatische KL15-Abschaltung (z.B. per SST) durchgeführt wurde. 0 = automatische // KL15-Abschaltung wurde nicht durchgeführt 1 = automatische KL15-Abschaltung wurde durchgeführt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_AUTOMATISCHE_ABSCHALTUNG_DURCHGEFUEHRT", STAT_AUTOMATISCHE_ABSCHALTUNG_DURCHGEFUEHRT, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_PRAESENTATIONSMODUS_AKTIV = (RXBUF_UCHAR(14)); // The result indicates whether the shutdown preventer presentation mode (CAS assembly mode) is currently active. // Notes: - 0 = not active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer // Präsentationsmodus(CAS-Montagemodus) gerade aktiv ist. Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_PRAESENTATIONSMODUS_AKTIV", STAT_ABSCHALTVERHINDERER_PRAESENTATIONSMODUS_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_GESCHWINDIGKEIT_UNPLAUSIBEL_AKTIV = (RXBUF_UCHAR(15)); // The result indicates whether the speed implausible switch-off preventer (CAS has received an implausible speed // value via both the HW input and CAN) is currently active. Notes: - 0 = not active, 1 = active / Das Result // gibt an, ob der Abschaltverhinderer Geschwindigkeit unplausibel (CAS hat sowohl über HW-Eingang als auch CAN // einen unplausiblen Geschwindigkeitswert erhalten) gerade aktiv ist. Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_GESCHWINDIGKEIT_UNPLAUSIBEL_AKTIV", STAT_ABSCHALTVERHINDERER_GESCHWINDIGKEIT_UNPLAUSIBEL_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_FREMDLADUNG_HYBRID_AKTIV = (RXBUF_UCHAR(16)); // The result indicates whether the switch-off preventer for external charging is currently active in hybrid // vehicles. Notes: - 0 = not active, 1 = active / Das Result gibt an, ob der Abschaltverhinderer Fremdladung bei // Hybridfahrzeugen gerade aktiv ist. Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_FREMDLADUNG_HYBRID_AKTIV", STAT_ABSCHALTVERHINDERER_FREMDLADUNG_HYBRID_AKTIV, "\"0/1\""); unsigned char STAT_ABSCHALTVERHINDERER_GURT_FAHRER_GESTECKT_AKTIV = (RXBUF_UCHAR(17)); // The result indicates whether the switch-off preventer seat belt driver is currently active. Notes: - 0 = no // shutdown performed, 1 = shutdown performed. / Das Result gibt an, ob der Abschaltverhinderer Gurt Fahrer // gesteckt gerade aktiv ist. Hinweise: - 0=keine Abschaltung durchgeführt, 1=Abschaltung durchgeführt. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_ABSCHALTVERHINDERER_GURT_FAHRER_GESTECKT_AKTIV", STAT_ABSCHALTVERHINDERER_GURT_FAHRER_GESTECKT_AKTIV, "\"0/1\""); unsigned char STAT_CODIERUNG_KL15_ABSCHALTUNG_GURT_AKTIV = (RXBUF_UCHAR(18)); // The result indicates whether the KL15 is switched off by opening the driver's seat belt by coding. / Das // Result gibt an, ob Abschaltung der KL15 durch Öffnen Fahrergurt per Codierung freigeschaltet ist. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_CODIERUNG_KL15_ABSCHALTUNG_GURT_AKTIV", STAT_CODIERUNG_KL15_ABSCHALTUNG_GURT_AKTIV, "\"0/1\""); unsigned char STAT_CODIERUNG_KL15_ABSCHALTUNG_KLAPPENWECHSEL_AKTIV = (RXBUF_UCHAR(19)); // The result indicates whether shutdown of the KL15 by opening / closing the door is enabled by coding. / Das // Result gibt an, ob Abschaltung der KL15 durch Tür auf/zu per Codierung freigeschaltet ist. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_CODIERUNG_KL15_ABSCHALTUNG_KLAPPENWECHSEL_AKTIV", STAT_CODIERUNG_KL15_ABSCHALTUNG_KLAPPENWECHSEL_AKTIV, "\"0/1\""); unsigned char STAT_CODIERUNG_KL15_ABSCHALTUNG_OSFG_ERREICHT_AKTIV = (RXBUF_UCHAR(20)); // The result indicates whether shutdown of KL15 by reaching the OSFG (upper startability limit) is enabled by // coding. / Das Result gibt an, ob Abschaltung der KL15 durch Erreichen der OSFG (Obere Startfähigkeitsgrenze) // per Codierung freigeschaltet ist. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_CODIERUNG_KL15_ABSCHALTUNG_OSFG_ERREICHT_AKTIV", STAT_CODIERUNG_KL15_ABSCHALTUNG_OSFG_ERREICHT_AKTIV, "\"0/1\""); unsigned char STAT_CODIERUNG_KL15_ABSCHALTUNG_TIMEOUT_OSFG_AKTIV = (RXBUF_UCHAR(21)); // The result indicates whether shutdown of the KL15 is enabled by coding due to OSFG with or without timeout. / // Das Result gibt an, ob Abschaltung der KL15 wegen OSFG mit oder ohne Timeout per Codierung freigeschaltet ist. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_CODIERUNG_KL15_ABSCHALTUNG_TIMEOUT_OSFG_AKTIV", STAT_CODIERUNG_KL15_ABSCHALTUNG_TIMEOUT_OSFG_AKTIV, "\"0/1\""); unsigned char STAT_CODIERUNG_KL15_ABSCHALTUNG_ZV_SICHERN_AKTIV = (RXBUF_UCHAR(22)); // The result indicates whether shutdown of the KL15 is enabled by ZV Secure by coding. Notes: - 0 = not active, // 1 = active / Das Result gibt an, ob Abschaltung der KL15 durch ZV Sichern per Codierung freigeschaltet ist. // Hinweise: - 0=nicht aktiv, 1=aktiv ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "STATUS_KL15_ABSCHALTUNG", "STAT_CODIERUNG_KL15_ABSCHALTUNG_ZV_SICHERN_AKTIV", STAT_CODIERUNG_KL15_ABSCHALTUNG_ZV_SICHERN_AKTIV, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_ANSTEUERUNG_KL30F_HINTEN: { // 0xDC5A if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_ANSTEUERUNG_KL30F_HINTEN", 2); break; } unsigned char STAT_KL30F_HINTEN_AN = (RXBUF_UCHAR(0)); // The result contains the current state of the HW output for switching on the KL30F rear. / Das Result enthält // den aktuellen Zustand des HW-Ausgangs zum Einschalten der KL30F hinten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ANSTEUERUNG_KL30F_HINTEN", "STAT_KL30F_HINTEN_AN", STAT_KL30F_HINTEN_AN, "\"0-n\""); unsigned char STAT_KL30F_HINTEN_AUS = (RXBUF_UCHAR(1)); // The result contains the current state of the HW output for switching off the KL30F rear. / Das Result enthält // den aktuellen Zustand des HW-Ausgangs zum Ausschalten der KL30F hinten. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "ANSTEUERUNG_KL30F_HINTEN", "STAT_KL30F_HINTEN_AUS", STAT_KL30F_HINTEN_AUS, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_BREMSLICHT_SCHALTER: { // 0xDC61 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_BREMSLICHT_SCHALTER", 1); break; } unsigned char STAT_SCHALTER_BREMSLICHT_AKTIV = (RXBUF_UCHAR(0)); // The result contains the current status of the brake light switch / Das Result enthält den aktuellen Zustand // des Bremslichtschalters ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "BREMSLICHT_SCHALTER", "STAT_SCHALTER_BREMSLICHT_AKTIV", STAT_SCHALTER_BREMSLICHT_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_KUPPL_PN_SCHALTER: { // 0xDC63 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_KUPPL_PN_SCHALTER", 1); break; } unsigned char STAT_SCHALTER_KUPPL_PN_AKTIV = (RXBUF_UCHAR(0)); // The result contains the current status of the clutch switch (manual gearbox) or PN signal (automatic gearbox) // from the EGS. Notes: - Allocation takes place according to table TAB_CAS_DIGITAL_EINGANG. / Das Result enthält // den aktuellen Zustand des Kupplungsschalters (Manuelles Getriebe) oder PN-Signal (Automatikgetriebe) vom EGS. // Hinweise: - Zuordnung erfolgt gemäß Tabelle TAB_CAS_DIGITAL_EINGANG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "KUPPL_PN_SCHALTER", "STAT_SCHALTER_KUPPL_PN_AKTIV", STAT_SCHALTER_KUPPL_PN_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_MOTORHAUBE_SCHALTER: { // 0xDC65 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_MOTORHAUBE_SCHALTER", 1); break; } unsigned char STAT_SCHALTER_MOTORHAUBE_AKTIV = (RXBUF_UCHAR(0)); // The result contains the current status of the engine hood contact input. Notes: - Allocation takes place // according to table TAB_CAS_DIGITAL_EINGANG. / Das Result enthält den aktuellen Zustand des Eingangs // Motorhaubenkontakt. Hinweise: - Zuordnung erfolgt gemäß Tabelle TAB_CAS_DIGITAL_EINGANG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "MOTORHAUBE_SCHALTER", "STAT_SCHALTER_MOTORHAUBE_AKTIV", STAT_SCHALTER_MOTORHAUBE_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HOTEL_SCHALTER: { // 0xDC66 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HOTEL_SCHALTER", 1); break; } unsigned char STAT_SCHALTER_HOTEL_AKTIV = (RXBUF_UCHAR(0)); // The result contains the current status of the HOTEL switch input. Note: - Allocation takes place according to // table TAB_CAS_DIGITAL_EINGANG. / Das Result enthält den aktuellen Zustand des Eingangs HOTEL-Schalters. // Hinweis: - Zuordnung erfolgt gemäß Tabelle TAB_CAS_DIGITAL_EINGANG. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "HOTEL_SCHALTER", "STAT_SCHALTER_HOTEL_AKTIV", STAT_SCHALTER_HOTEL_AKTIV, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_READHWMODIFICATIONINDEX: { // 0xF152 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_READHWMODIFICATIONINDEX", 2); break; } unsigned char STAT_HW_MODIFICATION_INDEX_WERT = (RXBUF_UCHAR(0)); // Index of hardware modification: FF: Not supported index / Index of hardware modification: FF: Not supported // index ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "READHWMODIFICATIONINDEX", "STAT_HW_MODIFICATION_INDEX_WERT", STAT_HW_MODIFICATION_INDEX_WERT, "\"HEX\""); unsigned char BF_22_F152_SUPPLIERINFO = (RXBUF_UCHAR(1)); // Supplier info tab / Tab Supplierinfo // BF_22_F152_SUPPLIERINFO is a BITFIELD of size unsigned char. We don't yet generate definitions for each bit, we treat as the host data type // STAT_HWMODEL: Mask: 0xC0 - hardware model // STAT_SUPPLIERINFOFIELD: Mask: 0x3F - supplierInfo ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lx%s\n", "BDC", "READHWMODIFICATIONINDEX", "BF_22_F152_SUPPLIERINFO", (unsigned long)BF_22_F152_SUPPLIERINFO, "\"Bit\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_LWR_STATISTIK: { // 0x2302 if (datalen < 60) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_LWR_STATISTIK", 60); break; } unsigned long STAT_BETRIEBSMINUTEN_AL_AKTIV_WERT = (RXBUF_UINT32(0)); // Total system time with active low beam / Gesamtsystemzeit mit aktivem Abblendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_AL_AKTIV_WERT", STAT_BETRIEBSMINUTEN_AL_AKTIV_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0000_WERT = (RXBUF_UINT(4)); // Only driver + low beam / Nur Fahrer + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0000_WERT", STAT_BETRIEBSMINUTEN_0000_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0001_WERT = (RXBUF_UINT(6)); // Driver with trailer + low beam / Fahrer mit Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0001_WERT", STAT_BETRIEBSMINUTEN_0001_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1000_WERT = (RXBUF_UINT(8)); // Driver and passenger + low beam / Fahrer und Beifahrer + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1000_WERT", STAT_BETRIEBSMINUTEN_1000_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1001_WERT = (RXBUF_UINT(10)); // Driver and passenger with trailer + low beam / Fahrer und Beifahrer mit Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1001_WERT", STAT_BETRIEBSMINUTEN_1001_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1010_WERT = (RXBUF_UINT(12)); // Driver, co-driver, 1 person in the rear + vent light / Fahrer, Beifahrer, 1 Pers in Fond + Ablentlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1010_WERT", STAT_BETRIEBSMINUTEN_1010_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1100_WERT = (RXBUF_UINT(14)); // Driver, passenger, 2 people in the rear + low beam / Fahrer, Beifahrer, 2 Pers in Fond + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1100_WERT", STAT_BETRIEBSMINUTEN_1100_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1110_WERT = (RXBUF_UINT(16)); // Driver, passenger, 3 people in the rear + low beam / Fahrer, Beifahrer, 3 Pers in Fond + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1110_WERT", STAT_BETRIEBSMINUTEN_1110_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1011_WERT = (RXBUF_UINT(18)); // Driver, passenger, 1 person in the rear with trailer + low beam / Fahrer, Beifahrer, 1 Pers in Fond mit // Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1011_WERT", STAT_BETRIEBSMINUTEN_1011_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1101_WERT = (RXBUF_UINT(20)); // Driver, passenger, 2 people in the rear with trailer + low beam / Fahrer, Beifahrer, 2 Pers in Fond mit // Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1101_WERT", STAT_BETRIEBSMINUTEN_1101_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_1111_WERT = (RXBUF_UINT(22)); // Driver, co-driver, 3 people in the rear with trailer + low beam / Fahrer, Beifahrer, 3 Pers in Fond mit // Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_1111_WERT", STAT_BETRIEBSMINUTEN_1111_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0010_WERT = (RXBUF_UINT(24)); // Driver, 1 person in the rear + vent / Fahrer, 1 Pers in Fond + Ablentlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0010_WERT", STAT_BETRIEBSMINUTEN_0010_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0100_WERT = (RXBUF_UINT(26)); // Driver, 2 people in the rear + low beam / Fahrer, 2 Pers in Fond + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0100_WERT", STAT_BETRIEBSMINUTEN_0100_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0110_WERT = (RXBUF_UINT(28)); // Driver, 3 people in the rear + low beam / Fahrer, 3 Pers in Fond + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0110_WERT", STAT_BETRIEBSMINUTEN_0110_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0011_WERT = (RXBUF_UINT(30)); // Driver, 1 person in the rear with trailer + vent / Fahrer, 1 Pers in Fond mit Anhänger + Ablentlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0011_WERT", STAT_BETRIEBSMINUTEN_0011_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0101_WERT = (RXBUF_UINT(32)); // Driver, 2 people in the rear with trailer + low beam / Fahrer, 2 Pers in Fond mit Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0101_WERT", STAT_BETRIEBSMINUTEN_0101_WERT, ""); unsigned short STAT_BETRIEBSMINUTEN_0111_WERT = (RXBUF_UINT(34)); // Driver, 3 people in the rear with trailer + low beam / Fahrer, 3 Pers in Fond mit Anhänger + Ablendlicht ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_BETRIEBSMINUTEN_0111_WERT", STAT_BETRIEBSMINUTEN_0111_WERT, ""); unsigned long STAT_ANZAHL_GES_WERT = (RXBUF_UINT32(36)); // Total situation counter / Gesamt Situationszähler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_GES_WERT", STAT_ANZAHL_GES_WERT, ""); unsigned short STAT_ANZAHL_GES_KL_20_WERT = (RXBUF_UINT(40)); // No matter or under -20m / Leuchtweite egal oder unter -20m ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_GES_KL_20_WERT", STAT_ANZAHL_GES_KL_20_WERT, ""); unsigned short STAT_ANZAHL_GES_KL_10_WERT = (RXBUF_UINT(42)); // Lighting range between -20m and -10m (included) / Leuchtweite zwischen -20m und -10m (inklusive) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_GES_KL_10_WERT", STAT_ANZAHL_GES_KL_10_WERT, ""); unsigned short STAT_ANZAHL_GES_GR_10_WERT = (RXBUF_UINT(44)); // Lighting range between 10m (included) and 20m. / Leuchtweite zwischen 10m (inklusive) und 20m. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_GES_GR_10_WERT", STAT_ANZAHL_GES_GR_10_WERT, ""); unsigned short STAT_ANZAHL_GES_GR_20_WERT = (RXBUF_UINT(46)); // Lighting range higher or no matter than 20m. / Leuchtweite höher oder egal als 20m. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_GES_GR_20_WERT", STAT_ANZAHL_GES_GR_20_WERT, ""); unsigned long STAT_ANZAHL_AL_WERT = (RXBUF_UINT32(48)); // Night situation counter / Nacht Situationszähler ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_AL_WERT", STAT_ANZAHL_AL_WERT, ""); unsigned short STAT_ANZAHL_AL_KL_20_WERT = (RXBUF_UINT(52)); // No matter or under -20m / Leuchtweite egal oder unter -20m ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_AL_KL_20_WERT", STAT_ANZAHL_AL_KL_20_WERT, ""); unsigned short STAT_ANZAHL_AL_KL_10_WERT = (RXBUF_UINT(54)); // Lighting range between -20m and -10m (included) / Leuchtweite zwischen -20m und -10m (inklusive) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_AL_KL_10_WERT", STAT_ANZAHL_AL_KL_10_WERT, ""); unsigned short STAT_ANZAHL_AL_GR_10_WERT = (RXBUF_UINT(56)); // Lighting range between 10m (included) and 20m. / Leuchtweite zwischen 10m (inklusive) und 20m. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_AL_GR_10_WERT", STAT_ANZAHL_AL_GR_10_WERT, ""); unsigned short STAT_ANZAHL_AL_GR_20_WERT = (RXBUF_UINT(58)); // Lighting range higher or no matter than 20m. / Leuchtweite höher oder egal als 20m. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "LWR_STATISTIK", "STAT_ANZAHL_AL_GR_20_WERT", STAT_ANZAHL_AL_GR_20_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_COUNT_NSC_MIRRORHEATING_ACTIVATIONS: { // 0x2303 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_COUNT_NSC_MIRRORHEATING_ACTIVATIONS", 2); break; } unsigned short STAT_ANZAHL_AKTIVIERUNGEN_ASP_NSC_WERT = (RXBUF_UINT(0)); // Number of activations of ASP heating due to NSC / Anzahl der Aktivierungen der ASP-Heizung aufgrund NSC ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "COUNT_NSC_MIRRORHEATING_ACTIVATIONS", "STAT_ANZAHL_AKTIVIERUNGEN_ASP_NSC_WERT", STAT_ANZAHL_AKTIVIERUNGEN_ASP_NSC_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__LWR_DIAG: { // 0x4507 if (datalen < 13) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__LWR_DIAG", 13); break; } unsigned char STAT_LWR_ENABLE = (RXBUF_UCHAR(0)); // LWR activated / deactivated / LWR aktiviert / deaktiviert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_ENABLE", STAT_LWR_ENABLE, "\"0/1\""); unsigned char STAT_LWR_SPUL_ERR_STOP = (RXBUF_UCHAR(1)); // no motor stop in case of problems with the coil test / kein Motorstop bei Problemen mit der Spulenprüfung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_SPUL_ERR_STOP", STAT_LWR_SPUL_ERR_STOP, "\"0/1\""); unsigned char STAT_LWR_SPUL_EINTR = (RXBUF_UCHAR(2)); // no error entry in case of problems with the coil test / kein Fehlereintrag bei Problemen mit der Spulenprüfung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_SPUL_EINTR", STAT_LWR_SPUL_EINTR, "\"0/1\""); unsigned char STAT_SP_PRUEF_AKTIV = (RXBUF_UCHAR(3)); // Coil check activated / Spulenprüfung aktiviert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_SP_PRUEF_AKTIV", STAT_SP_PRUEF_AKTIV, "\"0/1\""); unsigned char STAT_LWR_DIAGNOSE_PARAM_WERT = (RXBUF_UCHAR(4)); // Coil test: Limit value characteristic offset / Spulenprüfung: Grenzwertkennlinie Offset ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_DIAGNOSE_PARAM_WERT", STAT_LWR_DIAGNOSE_PARAM_WERT, ""); unsigned char STAT_LWR_DIAGNOSE_PARAM_A_WERT = (RXBUF_UCHAR(5)); // Coil test: Limit value characteristic slope / Spulenprüfung: Grenzwertkennlinie Steigung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_DIAGNOSE_PARAM_A_WERT", STAT_LWR_DIAGNOSE_PARAM_A_WERT, ""); float STAT_LWR_CHECKGRENZE_WERT = (RXBUF_UCHAR(6)/10.0f); // LWR test limit / LWR-Prüfgrenze ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_CHECKGRENZE_WERT", STAT_LWR_CHECKGRENZE_WERT, "\"V\""); float STAT_LWR_PRUEF_SPANNUNG_WERT = (RXBUF_UCHAR(7)/10.0f); // Diagnosis of LWR coil test: measured value voltage / Diagnose LWR Spulenprüfung: Messwert Spannung ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_PRUEF_SPANNUNG_WERT", STAT_LWR_PRUEF_SPANNUNG_WERT, "\"V\""); float STAT_LWR_DIAG_HEAT_TIME_WERT = (RXBUF_UCHAR(8)*512.0f); // Lwr-Diag-Heat-Time / Lwr-Diag-Heat-Time ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_DIAG_HEAT_TIME_WERT", STAT_LWR_DIAG_HEAT_TIME_WERT, "\"s\""); float STAT_LWR_DIAG_COOL_TIME_WERT = (RXBUF_UCHAR(9)*512.0f); // Lwr-Diag-Cool-Time / Lwr-Diag-Cool-Time ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_DIAG_COOL_TIME_WERT", STAT_LWR_DIAG_COOL_TIME_WERT, "\"s\""); unsigned char STAT_LWR_FRONT_LIGHT_HOT = (RXBUF_UCHAR(10)); // Status detection headlights: hot = 1, cold = 0 / Zustandserkennung Scheinwerfer: hot = 1, cold = 0 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_FRONT_LIGHT_HOT", STAT_LWR_FRONT_LIGHT_HOT, "\"0/1\""); float STAT_LWR_FRONT_LIGHT_THERMO_TIMER_WERT = (RXBUF_UINT(11)/2.0f); // Timer headlight thermal model / Timer Scheinwerfer Thermomodell ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "_LWR_DIAG", "STAT_LWR_FRONT_LIGHT_THERMO_TIMER_WERT", STAT_LWR_FRONT_LIGHT_THERMO_TIMER_WERT, "\"s\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__LICHT_UEBERSPANNUNGSCOUNTER: { // 0x4508 if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__LICHT_UEBERSPANNUNGSCOUNTER", 2); break; } unsigned short STAT_LICHT_UESPANNUNG_COUNTER_WERT = (RXBUF_UINT(0)); // Total number of light overvoltage counter activations / Anzahl Licht Überspannungscounter Aktivierungen // insgesamt ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_LICHT_UEBERSPANNUNGSCOUNTER", "STAT_LICHT_UESPANNUNG_COUNTER_WERT", STAT_LICHT_UESPANNUNG_COUNTER_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER: { // 0x4700 if (datalen < 14) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", 14); break; } unsigned long STAT_HECKKLAPPE_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(0)); // The result contains the current count for the short-circuits to ground detected so far. Valid values: 0 - // 100000 = current counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result // enthält den aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse. Gültige Werte: 0 - // 100000 = Aktueller Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_HECKKLAPPE_ZAEHLER_COUNT_MAX_WERT", STAT_HECKKLAPPE_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_HECKKLAPPE_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(4)); // The result contains the number of reconnection attempts carried out so far in cycle KL15 on -> KL15 off Valid // values: 0 - 254 = current counter value for reclosing attempts 255 = signal invalid / implausible / Das Result // enthält die Anzahl der bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus Gültige // Werte: 0 - 254 = Aktueller Zählerwert für die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_HECKKLAPPE_ZAEHLER_KS_RESTARTS_WERT", STAT_HECKKLAPPE_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_HECKKLAPPE_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(5)); // The result contains the current number of resets that have already been carried out for short-circuit shutdown // by KL15. Valid values: 0 - 254 = current counter value for the number of resets already carried out for // short-circuit shutdown 255 = signal invalid / implausible / Das Result enthält den aktuelle Anzahl an bereits // durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein. Gültige Werte: 0 - 254 = Aktueller Zählerwert // für die Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_HECKKLAPPE_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_HECKKLAPPE_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned long STAT_HECKSCHEIBE_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(6)); // The result contains the current count for the short-circuits to ground detected so far. Valid values: ¿0 - // 100000 = current counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result // enthält den aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse. Gültige Werte: ¿ 0 - // 100000 =Aktueller Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_HECKSCHEIBE_ZAEHLER_COUNT_MAX_WERT", STAT_HECKSCHEIBE_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_HECKSCHEIBE_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(10)); // The result contains the number of reconnection attempts carried out so far in cycle KL15 on -> KL15 off Valid // values: 0 - 254 = current counter value for reclosing attempts 255 = signal invalid / implausible / Das Result // enthält die Anzahl der bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus Gültige // Werte: 0 - 254 = Aktueller Zählerwert für die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_HECKSCHEIBE_ZAEHLER_KS_RESTARTS_WERT", STAT_HECKSCHEIBE_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_HECKSCHEIBE_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(11)); // The result contains the current number of resets that have already been carried out for short-circuit shutdown // by KL15. Valid values: 0 - 254 = current counter value for the number of resets already carried out for // short-circuit shutdown 255 = signal invalid / implausible / Das Result enthält den aktuelle Anzahl an bereits // durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein. Gültige Werte: 0 - 254 = Aktueller Zählerwert // für die Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_HECKSCHEIBE_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_HECKSCHEIBE_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned char STAT_KODIERUNG_RESTARTS_WERT = (RXBUF_UCHAR(12)); // The result contains the maximum value that can be coded for restart attempts in cycle KL15 on -> KL15 off -> // KL15 on. Valid values: 0 - 254 = maximum value for the restart attempts 255 = signal invalid / implausible / // Das Result enthält den codierbaren maximalen Wert an Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus -> // KL15 ein. Gültige Werte: 0 - 254 = maximaler Wert für die Wiedereinschaltversuche 255 = Signal ungültig / // unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_KODIERUNG_RESTARTS_WERT", STAT_KODIERUNG_RESTARTS_WERT, ""); unsigned char STAT_KODIERUNG_KL15_CYCLES_WERT = (RXBUF_UCHAR(13)); // The result contains the codable maximum value of resets of the short-circuit shutdown by KL15. Valid values: 0 // - 254 = maximum value for the resets of the short-circuit disconnection 255 = invalid / implausible / Das // Result enthält den codierbaren maximalen Wert an Resets des Kurzschlussabschaltung durch KL15 ein. Gültige // Werte: 0 - 254 = maximaler Wert für die Resets der Kurzschlussabschaltung 255 = Ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ZV_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_KODIERUNG_KL15_CYCLES_WERT", STAT_KODIERUNG_KL15_CYCLES_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__INNENBELEUCHTUNG_DAUERAUS: { // 0x4801 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__INNENBELEUCHTUNG_DAUERAUS", 1); break; } unsigned char STAT_INNENLICHT_IB_1_DAUER_AUS = (RXBUF_UCHAR(0)); // STAT_INNENLICHT_IB_1_DAUER_AUS / STAT_INNENLICHT_IB_1_DAUER_AUS ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_INNENBELEUCHTUNG_DAUERAUS", "STAT_INNENLICHT_IB_1_DAUER_AUS", STAT_INNENLICHT_IB_1_DAUER_AUS, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__SARAH_STATISTIK: { // 0x4910 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__SARAH_STATISTIK", 20); break; } float STAT_FAHRDAUER_WERT = (RXBUF_UINT(0)*10.0f/60.0f); // Accumulated driving time (trips <10 min are discarded) / Akkumulierte Fahrzeit (Fahrten < 10 min werden // verworfen) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "BDC", "_SARAH_STATISTIK", "STAT_FAHRDAUER_WERT", STAT_FAHRDAUER_WERT, "\"h\""); unsigned short STAT_FAHRZYKLEN_WERT = (RXBUF_UINT(2)); // Number of driving cycles> 10 min / Anzahl der Fahrzyklen > 10 min ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_FAHRZYKLEN_WERT", STAT_FAHRZYKLEN_WERT, "\"Counts\""); unsigned short STAT_SARAH_TASTER_WERT = (RXBUF_UINT(4)); // Number of SARAH key presses / Anzahl SARAH Tastendrücke ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_SARAH_TASTER_WERT", STAT_SARAH_TASTER_WERT, "\"Counts\""); unsigned short STAT_SARAH_CONFIG_WERT = (RXBUF_UINT(6)); // Number of SARAH configurations / Anzahl der SARAH Konfigurationen ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_SARAH_CONFIG_WERT", STAT_SARAH_CONFIG_WERT, "\"Counts\""); unsigned char STAT_SARAH_CONFIG_DIREKT_WERT = (RXBUF_UCHAR(8)); // Number of SARAH configurations via the settings menu (last key operation more than 5 minutes ago) / Anzahl der // SARAH Konfigurationen über Einstellungsmenu (letzte Tastenbedienung mehr als 5 min zurückliegend) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_SARAH_STATISTIK", "STAT_SARAH_CONFIG_DIREKT_WERT", STAT_SARAH_CONFIG_DIREKT_WERT, "\"Counts\""); unsigned char STAT_RESERVE1_WERT = (RXBUF_UCHAR(9)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_SARAH_STATISTIK", "STAT_RESERVE1_WERT", STAT_RESERVE1_WERT, ""); unsigned short STAT_RESERVE2_WERT = (RXBUF_UINT(10)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_RESERVE2_WERT", STAT_RESERVE2_WERT, ""); unsigned short STAT_RESERVE3_WERT = (RXBUF_UINT(12)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_RESERVE3_WERT", STAT_RESERVE3_WERT, ""); unsigned short STAT_RESERVE4_WERT = (RXBUF_UINT(14)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_RESERVE4_WERT", STAT_RESERVE4_WERT, ""); unsigned short STAT_RESERVE5_WERT = (RXBUF_UINT(16)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_RESERVE5_WERT", STAT_RESERVE5_WERT, ""); unsigned short STAT_RESERVE6_WERT = (RXBUF_UINT(18)); // reserve / Reserve ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_SARAH_STATISTIK", "STAT_RESERVE6_WERT", STAT_RESERVE6_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__STATUS_BASESTATION: { // 0x4E07 if (datalen < 6) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__STATUS_BASESTATION", 6); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_IBS_WAKEUP_GRUND: { // 0x4F0E if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_IBS_WAKEUP_GRUND", 1); break; } unsigned char STAT_IBS_WAKEUP = (RXBUF_UCHAR(0)); // The result contains the last wake-up reason from the IBS stored in the FEM. / Das Result enthält den im FEM // gespeicherten letzten Wakeupgrund vom IBS. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "IBS_WAKEUP_GRUND", "STAT_IBS_WAKEUP", STAT_IBS_WAKEUP, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__STATUS_DFZ_SK: { // 0x5001 if (datalen < 0) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__STATUS_DFZ_SK", 0); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__STATUS_DFZ_GUELTIGKEIT: { // 0x5003 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__STATUS_DFZ_GUELTIGKEIT", 1); break; } unsigned char STAT_DFZ_GUELTIGKEITSZAEHLER_WERT = (RXBUF_UCHAR(0)); // The result contains the value of the DFZ validity counter. 0-255 / Das Result enthält den Wert des DFZ // Gültigkeitszählers. 0-255 ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_STATUS_DFZ_GUELTIGKEIT", "STAT_DFZ_GUELTIGKEITSZAEHLER_WERT", STAT_DFZ_GUELTIGKEITSZAEHLER_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER: { // 0x5020 if (datalen < 32) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", 32); break; } unsigned long STAT_TREIBER_15N1_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(0)); // The result contains the current count for the previously detected short circuits to ground of the KL15N1 // driver. Note: ¿The start value is 100000 and is decremented by 1 for each SW or HW-related short circuit // detected (see also request ZSG_BF_13075). If the value 0 is reached, the output is permanently deactivated and // cannot be reset using terminal switching or a diagnostic job. -> SG exchange necessary. 0 - 100000 = current // counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result enthält den // aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse des Treibers KL15N1. Hinweis: ¿ // Startwert ist 100000 und wird pro SW- oder HW-mäßigem erkanntem Kurzschluss um 1 dekrementiert (Siehe hierzu // auch Anforderung ZSG_BF_13075).Wird der Wert 0 erreicht, so wird der Ausgang dauerhaft deaktiviert kann weder // mittels Klemmenschalten noch per Diagnosejob zurückgesetzt werden. -> SG-Tausch nötig. 0 - 100000 =Aktueller // Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_15N1_ZAEHLER_COUNT_MAX_WERT", STAT_TREIBER_15N1_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_TREIBER_15N1_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(4)); // The result contains the number of reconnection attempts carried out so far in cycle KL15 on -> KL15 off of // driver KL15N1. Note: After a short circuit is detected (on the software or hardware side), the driver is // reactivated as often as the maximum defined by the coding. Afterwards, a terminal change KL15 off -> KL15 on // is necessary in order to restart the restart attempts (see requirements ZSG_BF_13096 and ZSG_BF_13097) 0 - 254 // = current counter value for the restart attempts 255 = signal invalid / implausible / Das Result enthält die // Anzahl der bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus des Treibers KL15N1. // Hinweis: Nach erkanntem Kurzschluss (SW- oder HW-seitig) wird der Treiber so oft wieder aktiviert, wie // maximal per Codierung definiert. Danach ist ein Klemmenwechsel KL15 aus -> KL15 ein nötig, um die // Wiedereinschaltversuche erneut zu starten (Siehe hierzu Anfoderungen ZSG_BF_13096 und ZSG_BF_13097) 0 - 254 = // Aktueller Zählerwert für die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_15N1_ZAEHLER_KS_RESTARTS_WERT", STAT_TREIBER_15N1_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_TREIBER_15N1_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(5)); // The result contains the current number of already performed resets of the short-circuit shutdown by KL15 on of // the driver KL15N1. Note: The coding defines how often the short-circuit switch-off can be reset by switching // terminal 15. (See requirements ZSG_BF_13098) 0 - 254 = Current counter value for the number of resets already // carried out for short-circuit shutdown 255 = Signal invalid / implausible / Das Result enthält den aktuelle // Anzahl an bereits durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein des Treibers KL15N1. // Hinweis: Per Kodierung ist festgelegt wie oft die Kurzschlussabschaltung durch Schalten der Klemme 15 // zurückgesetzt werden kann. (Siehe hierzu Anfoderungen ZSG_BF_13098) 0 - 254 = Aktueller Zählerwert für die // Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_15N1_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_TREIBER_15N1_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned long STAT_TREIBER_15N2_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(6)); // The result contains the current counter status for the previously detected short circuits to ground of the // KL15N2 driver. Note: The start value is 100000 and is decremented by 1 for each SW or HW-related short circuit // detected (see also requirement ZSG_BF_13075). If the value 0 is reached, the output is permanently deactivated // and cannot be reset using terminal switching or a diagnostic job. -> SG exchange necessary. 0 - 100000 = // current counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result enthält // den aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse des Treibers KL15N2. Hinweis: // Startwert ist 100000 und wird pro SW- oder HW-mäßigem erkanntem Kurzschluss um 1 dekrementiert (Siehe hierzu // auch Anforderung ZSG_BF_13075).Wird der Wert 0 erreicht, so wird der Ausgang dauerhaft deaktiviert kann weder // mittels Klemmenschalten noch per Diagnosejob zurückgesetzt werden. -> SG-Tausch nötig. 0 - 100000 =Aktueller // Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_15N2_ZAEHLER_COUNT_MAX_WERT", STAT_TREIBER_15N2_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_TREIBER_15N2_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(10)); // The result contains the number of reconnection attempts carried out so far in cycle KL15 on -> KL15 off of // driver KL15N2. Note: After a short circuit is detected (on the software or hardware side), the driver is // reactivated as often as the maximum defined by the coding. Afterwards, a terminal change KL15 off -> KL15 on // is necessary in order to restart the restart attempts (see requirements ZSG_BF_13096 and ZSG_BF_13097) 0 - 254 // = current counter value for the restart attempts 255 = signal invalid / implausible / Das Result enthält die // Anzahl der bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus des Treibers KL15N2. // Hinweis: Nach erkanntem Kurzschluss (SW- oder HW-seitig) wird der Treiber so oft wieder aktiviert, wie // maximal per Codierung definiert. Danach ist ein Klemmenwechsel KL15 aus -> KL15 ein nötig, um die // Wiedereinschaltversuche erneut zu starten (Siehe hierzu Anfoderungen ZSG_BF_13096 und ZSG_BF_13097) 0 - 254 = // Aktueller Zählerwert für die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_15N2_ZAEHLER_KS_RESTARTS_WERT", STAT_TREIBER_15N2_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_TREIBER_15N2_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(11)); // The result contains the current number of already performed resets of the short-circuit shutdown by KL15 on of // the driver KL15N2. Note: The coding defines how often the short-circuit switch-off can be reset by switching // terminal 15. (See requirements ZSG_BF_13098) 0 - 254 = Current counter value for the number of resets already // carried out for short-circuit shutdown 255 = Signal invalid / implausible / Das Result enthält den aktuelle // Anzahl an bereits durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein des Treibers KL15N2. // Hinweis: Per Kodierung ist festgelegt wie oft die Kurzschlussabschaltung durch Schalten der Klemme 15 // zurückgesetzt werden kann. (Siehe hierzu Anfoderungen ZSG_BF_13098) 0 - 254 = Aktueller Zählerwert für die // Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_15N2_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_TREIBER_15N2_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned long STAT_TREIBER_KL30BACSM_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(12)); // The result contains the current counter status for the previously detected short circuits to ground of the // KL30B-ACSM driver. Note: ¿The start value is 100000 and is decremented by 1 for each SW or HW-related short // circuit detected (see also request ZSG_BF_13075). If the value 0 is reached, the output is permanently // deactivated and cannot be reset using terminal switching or a diagnostic job. -> SG exchange necessary. 0 - // 100000 = current counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result // enthält den aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse des Treibers KL30B-ACSM. // Hinweis: ¿ Startwert ist 100000 und wird pro SW- oder HW-mäßigem erkanntem Kurzschluss um 1 dekrementiert // (Siehe hierzu auch Anforderung ZSG_BF_13075).Wird der Wert 0 erreicht, so wird der Ausgang dauerhaft // deaktiviert kann weder mittels Klemmenschalten noch per Diagnosejob zurückgesetzt werden. -> SG-Tausch nötig. // 0 - 100000 =Aktueller Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30BACSM_ZAEHLER_COUNT_MAX_WERT", STAT_TREIBER_KL30BACSM_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_TREIBER_KL30BACSM_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(16)); // The result contains the number of reconnection attempts carried out so far in cycle KL15 on -> KL15 off of the // KL30B-ACSM driver. Note: After a short circuit is detected (on the software or hardware side), the driver is // reactivated as often as the maximum defined by the coding. Afterwards, a terminal change KL15 off -> KL15 on // is necessary in order to restart the restart attempts (see requirements ZSG_BF_13096 and ZSG_BF_13097). 0 - // 254 = current counter value for the restart attempts 255 = signal invalid / implausible / Das Result enthält // die Anzahl der bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus des Treibers // KL30B-ACSM. Hinweis: Nach erkanntem Kurzschluss (SW- oder HW-seitig) wird der Treiber so oft wieder // aktiviert, wie maximal per Codierung definiert. Danach ist ein Klemmenwechsel KL15 aus -> KL15 ein nötig, um // die Wiedereinschaltversuche erneut zu starten (Siehe hierzu Anfoderungen ZSG_BF_13096 und ZSG_BF_13097). 0 - // 254 = Aktueller Zählerwert für die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30BACSM_ZAEHLER_KS_RESTARTS_WERT", STAT_TREIBER_KL30BACSM_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_TREIBER_KL30BACSM_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(17)); // The result contains the current number of already performed resets of the short-circuit shutdown by KL15 on // the KL30B-ACSM driver. Note: The coding defines how often the short-circuit switch-off can be reset by // switching terminal 15. (See requirements ZSG_BF_13098) 0 - 254 = Current counter value for the number of // resets already carried out for short-circuit shutdown 255 = Signal invalid / implausible / Das Result enthält // den aktuelle Anzahl an bereits durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein des Treibers // KL30B-ACSM. Hinweis: Per Kodierung ist festgelegt wie oft die Kurzschlussabschaltung durch Schalten der // Klemme 15 zurückgesetzt werden kann. (Siehe hierzu Anfoderungen ZSG_BF_13098) 0 - 254 = Aktueller Zählerwert // für die Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30BACSM_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_TREIBER_KL30BACSM_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned long STAT_TREIBER_KL30B1_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(18)); // The result contains the current counter status for the previously recognized short circuits to ground of the // KL30B-1 driver. Note: The start value is 100000 and is decremented by 1 for each SW or HW-related short // circuit detected (see also requirement ZSG_BF_13075). If the value 0 is reached, the output is permanently // deactivated and cannot be reset using terminal switching or a diagnostic job. -> SG exchange necessary. 0 - // 100000 = current counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result // enthält den aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse des Treibers KL30B-1. // Hinweis: Startwert ist 100000 und wird pro SW- oder HW-mäßigem erkanntem Kurzschluss um 1 dekrementiert // (Siehe hierzu auch Anforderung ZSG_BF_13075).Wird der Wert 0 erreicht, so wird der Ausgang dauerhaft // deaktiviert kann weder mittels Klemmenschalten noch per Diagnosejob zurückgesetzt werden. -> SG-Tausch nötig. // 0 - 100000 =Aktueller Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30B1_ZAEHLER_COUNT_MAX_WERT", STAT_TREIBER_KL30B1_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_TREIBER_KL30B1_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(22)); // The result contains the number of reconnection attempts carried out so far in cycle KL15 on -> KL15 off of // driver KL30B-1. Note: After a short circuit is detected (on the software or hardware side), the driver is // reactivated as often as the maximum defined by the coding. Afterwards, a terminal change KL15 off -> KL15 on // is necessary in order to restart the restart attempts (see requirements ZSG_BF_13096 and ZSG_BF_13097) 0 - 254 // = current counter value for the restart attempts 255 = signal invalid / implausible / Das Result enthält die // Anzahl der bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus des Treibers KL30B-1. // Hinweis: Nach erkanntem Kurzschluss (SW- oder HW-seitig) wird der Treiber so oft wieder aktiviert, wie // maximal per Codierung definiert. Danach ist ein Klemmenwechsel KL15 aus -> KL15 ein nötig, um die // Wiedereinschaltversuche erneut zu starten (Siehe hierzu Anfoderungen ZSG_BF_13096 und ZSG_BF_13097) 0 - 254 = // Aktueller Zählerwert für die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30B1_ZAEHLER_KS_RESTARTS_WERT", STAT_TREIBER_KL30B1_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_TREIBER_KL30B1_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(23)); // The result contains the current number of already performed resets of the short-circuit shutdown by KL15 on of // the KL30B-1 driver. Note: The coding defines how often the short-circuit switch-off can be reset by switching // terminal 15. (See requirements ZSG_BF_13098) 0 - 254 = Current counter value for the number of resets already // carried out for short-circuit shutdown 255 = Signal invalid / implausible / Das Result enthält den aktuelle // Anzahl an bereits durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein des Treibers KL30B-1. // Hinweis: Per Kodierung ist festgelegt wie oft die Kurzschlussabschaltung durch Schalten der Klemme 15 // zurückgesetzt werden kann. (Siehe hierzu Anfoderungen ZSG_BF_13098) 0 - 254 = Aktueller Zählerwert für die // Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30B1_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_TREIBER_KL30B1_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned long STAT_TREIBER_KL30B2_ZAEHLER_COUNT_MAX_WERT = (RXBUF_UINT32(24)); // The result contains the current counter status for the previously recognized short circuits to ground of the // KL30B-2 driver. Note: The start value is 100000 and is decremented by 1 for each SW or HW-related short // circuit detected (see also requirement ZSG_BF_13075). If the value 0 is reached, the output is permanently // deactivated and cannot be reset using terminal switching or a diagnostic job. -> SG exchange necessary. 0 - // 100000 = current counter value for the restart attempts FFFFFFFFh = signal invalid / implausible / Das Result // enthält den aktuellen Zählerstand für die bisher erkannten Kurzschlüsse gegen Masse des Treibers KL30B-2. // Hinweis: Startwert ist 100000 und wird pro SW- oder HW-mäßigem erkanntem Kurzschluss um 1 dekrementiert // (Siehe hierzu auch Anforderung ZSG_BF_13075).Wird der Wert 0 erreicht, so wird der Ausgang dauerhaft // deaktiviert kann weder mittels Klemmenschalten noch per Diagnosejob zurückgesetzt werden. -> SG-Tausch nötig. // 0 - 100000 =Aktueller Zählerwert für die Wiedereinschaltversuche FFFFFFFFh = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30B2_ZAEHLER_COUNT_MAX_WERT", STAT_TREIBER_KL30B2_ZAEHLER_COUNT_MAX_WERT, ""); unsigned char STAT_TREIBER_KL30B2_ZAEHLER_KS_RESTARTS_WERT = (RXBUF_UCHAR(28)); // The result contains the number of reconnection attempts carried out in cycle KL15 on -> KL15 off of driver // KL30B-2. Note: After a short circuit is detected (on the software or hardware side), the driver is reactivated // as often as the maximum defined by the coding. Afterwards, a terminal change KL15 off -> KL15 on is necessary // in order to restart the restart attempts (see requirements ZSG_BF_13096 and ZSG_BF_13097) 0 - 254 = current // counter value for the restart attempts 255 = signal invalid / implausible / Das Result enthält die Anzahl der // bisher durchgeführten Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus des Treibers KL30B-2. Hinweis: // Nach erkanntem Kurzschluss (SW- oder HW-seitig) wird der Treiber so oft wieder aktiviert, wie maximal per // Codierung definiert. Danach ist ein Klemmenwechsel KL15 aus -> KL15 ein nötig, um die Wiedereinschaltversuche // erneut zu starten (Siehe hierzu Anfoderungen ZSG_BF_13096 und ZSG_BF_13097) 0 - 254 = Aktueller Zählerwert für // die Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30B2_ZAEHLER_KS_RESTARTS_WERT", STAT_TREIBER_KL30B2_ZAEHLER_KS_RESTARTS_WERT, ""); unsigned char STAT_TREIBER_KL30B2_ZAEHLER_KS_KL15_CYCLES_WERT = (RXBUF_UCHAR(29)); // The result contains the current number of already performed resets of the short-circuit shutdown by KL15 on // the KL30B-2 driver. Note: The coding defines how often the short-circuit switch-off can be reset by switching // terminal 15. (See requirements ZSG_BF_13098) 0 - 254 = Current counter value for the number of resets already // carried out for short-circuit shutdown 255 = Signal invalid / implausible / Das Result enthält den aktuelle // Anzahl an bereits durchgeführten Resets des Kurzschlussabschaltung durch KL15 ein des Treibers KL30B-2. // Hinweis: Per Kodierung ist festgelegt wie oft die Kurzschlussabschaltung durch Schalten der Klemme 15 // zurückgesetzt werden kann. (Siehe hierzu Anfoderungen ZSG_BF_13098) 0 - 254 = Aktueller Zählerwert für die // Anzahl an bereits durchgeführten Resets der Kurzschlussabschaltung 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_TREIBER_KL30B2_ZAEHLER_KS_KL15_CYCLES_WERT", STAT_TREIBER_KL30B2_ZAEHLER_KS_KL15_CYCLES_WERT, ""); unsigned char STAT_KODIERUNG_RESTARTS_WERT_0X5020 = (RXBUF_UCHAR(30)); // The result contains the maximum value that can be coded for restart attempts in cycle KL15 on -> KL15 off -> // KL15 on. Note: The content corresponds to the coding SCD_RESTART (see requirements ZSG_BF_13073) 0 - 254 = // maximum value for the restart attempts 255 = signal invalid / implausible / Das Result enthält den codierbaren // maximalen Wert an Wiedereinschaltversuche im Zyklus KL15 ein -> KL15 aus -> KL15 ein. Hinweis: Inhalt // entspricht der Codierung SCD_RESTART (Siehe hierzu Anfoderungen ZSG_BF_13073) 0 - 254 = maximaler Wert für die // Wiedereinschaltversuche 255 = Signal ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_KODIERUNG_RESTARTS_WERT_0X5020", STAT_KODIERUNG_RESTARTS_WERT_0X5020, ""); unsigned char STAT_KODIERUNG_KL15_CYCLES_WERT_0X5020 = (RXBUF_UCHAR(31)); // The result contains the codable maximum value of resets of the short-circuit shutdown by KL15. Note: The // content corresponds to the coding SCD_KL15_CYCLES (see requirements ZSG_BF_13073) 0 - 254 = maximum value for // the resets of the short-circuit shutdown 255 = invalid / implausible / Das Result enthält den codierbaren // maximalen Wert an Resets des Kurzschlussabschaltung durch KL15 ein. Hinweis: Inhalt entspricht der Codierung // SCD_KL15_CYCLES (Siehe hierzu Anfoderungen ZSG_BF_13073) 0 - 254 = maximaler Wert für die Resets der // Kurzschlussabschaltung 255 = Ungültig / unplausibel ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_KLEMMENSTEUERUNG_KURZSCHLUSSABSCHALTUNG_ZAEHLER", "STAT_KODIERUNG_KL15_CYCLES_WERT_0X5020", STAT_KODIERUNG_KL15_CYCLES_WERT_0X5020, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__ECUMA_INTERN: { // 0x5101 if (datalen < 13) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__ECUMA_INTERN", 13); break; } unsigned long STAT_ECUMA_LAST_HW_WAKEUP_ID_WERT = (RXBUF_UINT32(0)); // ECUMA_LAST_HW_WAKEUP_ID / ECUMA_LAST_HW_WAKEUP_ID ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_ECUMA_INTERN", "STAT_ECUMA_LAST_HW_WAKEUP_ID_WERT", STAT_ECUMA_LAST_HW_WAKEUP_ID_WERT, ""); unsigned char STAT_ECUMA_LAST_SW_WAKEUP_ID = (RXBUF_UCHAR(4)); // ECUMA_LAST_SW_WAKEUP_ID / ECUMA_LAST_SW_WAKEUP_ID ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ECUMA_INTERN", "STAT_ECUMA_LAST_SW_WAKEUP_ID", STAT_ECUMA_LAST_SW_WAKEUP_ID, "\"0-n\""); unsigned char STAT_ECUMA_LAST_BUS_WAKEUP_ID = (RXBUF_UCHAR(5)); // ECUMA_LAST_BUS_WAKEUP_ID / ECUMA_LAST_BUS_WAKEUP_ID ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ECUMA_INTERN", "STAT_ECUMA_LAST_BUS_WAKEUP_ID", STAT_ECUMA_LAST_BUS_WAKEUP_ID, "\"0-n\""); unsigned char STAT_ECUMA_LAST_RESET_ID = (RXBUF_UCHAR(6)); // ECUMA_LAST_RESET_ID / ECUMA_LAST_RESET_ID ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ECUMA_INTERN", "STAT_ECUMA_LAST_RESET_ID", STAT_ECUMA_LAST_RESET_ID, "\"0-n\""); unsigned short STAT_ECUMA_CAN_WAKEUP_ID_WERT = (RXBUF_UINT(7)); // ECUMA_CAN_WAKEUP_ID / ECUMA_CAN_WAKEUP_ID ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_ECUMA_INTERN", "STAT_ECUMA_CAN_WAKEUP_ID_WERT", STAT_ECUMA_CAN_WAKEUP_ID_WERT, ""); unsigned long STAT_RESERVED_WERT = (RXBUF_UINT32(9)); // RESERVED / RESERVED ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_ECUMA_INTERN", "STAT_RESERVED_WERT", STAT_RESERVED_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__ECUMA_SLEEP_MODE_NRC: { // 0x5109 if (datalen < 1) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__ECUMA_SLEEP_MODE_NRC", 1); break; } unsigned char STAT_SLEEP_MODE_NRC = (RXBUF_UCHAR(0)); // contains the response to sleep mode / beinhaltet den Response auf Sleep Mode ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_ECUMA_SLEEP_MODE_NRC", "STAT_SLEEP_MODE_NRC", STAT_SLEEP_MODE_NRC, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_HW_INFO_PROVIDER: { // 0x510A if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_HW_INFO_PROVIDER", 2); break; } unsigned short STAT_HW_VERSION = (RXBUF_UINT(0)); // Hardware code / Hardware Code ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "HW_INFO_PROVIDER", "STAT_HW_VERSION", STAT_HW_VERSION, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__JTAGLOCK: { // 0x510B if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__JTAGLOCK", 2); break; } unsigned char STAT_NORMAL_LOCK_STATE = (RXBUF_UCHAR(0)); // Jtag normal lock status. (0x00 ¿jtag is unlocked; 0x01 ¿jtag is locked) / Jtag normal lock status. (0x00 ¿ // jtag is unlocked; 0x01 ¿ jtag is locked) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_JTAGLOCK", "STAT_NORMAL_LOCK_STATE", STAT_NORMAL_LOCK_STATE, "\"0/1\""); unsigned char STAT_PERMANENT_LOCK_STATE = (RXBUF_UCHAR(1)); // Jtag permanent lock status. (0x00 ¿permanent lock not done; 0x01 ¿permanent lock done) / Jtag permanent lock // status. (0x00 ¿ permanent lock not done; 0x01 ¿ permanent lock done) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_JTAGLOCK", "STAT_PERMANENT_LOCK_STATE", STAT_PERMANENT_LOCK_STATE, "\"0/1\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_READ_PULLUP_REF_RESFUEL_TANK_0: { // 0x5DBE if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_READ_PULLUP_REF_RESFUEL_TANK_0", 2); break; } unsigned short STAT_PULLUP_REF_RESFUEL_TANK_LEFT_WERT = (RXBUF_UINT(0)); // represents resistance value for tank left / represents resistance value for tank left ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "READ_PULLUP_REF_RESFUEL_TANK_0", "STAT_PULLUP_REF_RESFUEL_TANK_LEFT_WERT", STAT_PULLUP_REF_RESFUEL_TANK_LEFT_WERT, "\"Ohm\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC_READ_PULLUP_REF_RESFUEL_TANK_1: { // 0x5DBF if (datalen < 2) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC_READ_PULLUP_REF_RESFUEL_TANK_1", 2); break; } unsigned short STAT_PULLUP_REF_RESFUEL_TANK_RIGHT_WERT = (RXBUF_UINT(0)); // represents resistance value for tank right / represents resistance value for tank right ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "READ_PULLUP_REF_RESFUEL_TANK_1", "STAT_PULLUP_REF_RESFUEL_TANK_RIGHT_WERT", STAT_PULLUP_REF_RESFUEL_TANK_RIGHT_WERT, "\"Ohm\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_FA_STATISTIKZAEHLER_LESEN: { // 0x6020 if (datalen < 64) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_FA_STATISTIKZAEHLER_LESEN", 64); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_BF_STATISTIKZAEHLER_LESEN: { // 0x6021 if (datalen < 64) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_BF_STATISTIKZAEHLER_LESEN", 64); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_FAH_STATISTIKZAEHLER_LESEN: { // 0x6022 if (datalen < 64) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_FAH_STATISTIKZAEHLER_LESEN", 64); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_BFH_STATISTIKZAEHLER_LESEN: { // 0x6023 if (datalen < 64) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_BFH_STATISTIKZAEHLER_LESEN", 64); break; } // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_DENORMIERUNGS_LOGGER_LESEN_FRONT: { // 0x603A if (datalen < 92) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", 92); break; } unsigned char STAT_FA_DENORM_ZAEHLER_WERT = (RXBUF_UCHAR(0)); // The denormalization frequency is incremented with each denormalization / Die Denormierh¿ufigkeit wird bei // jeder Denormierung inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_ZAEHLER_WERT", STAT_FA_DENORM_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_FA_DENORM_1_URSACHE_NR = (RXBUF_UCHAR(1)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_1_URSACHE_NR", STAT_FA_DENORM_1_URSACHE_NR, "\"0-n\""); short STAT_FA_DENORM_1_POS_HALL_WERT = (RXBUF_SINT(2)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_1_POS_HALL_WERT", STAT_FA_DENORM_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_DENORM_1_KM_WERT = (RXBUF_UINT32(4)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_1_KM_WERT", STAT_FA_DENORM_1_KM_WERT, "\"Ink\""); unsigned short STAT_FA_RESERVED_1_WERT = (RXBUF_UINT(8)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_RESERVED_1_WERT", STAT_FA_RESERVED_1_WERT, ""); unsigned char STAT_FA_DENORM_2_URSACHE_NR = (RXBUF_UCHAR(10)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_2_URSACHE_NR", STAT_FA_DENORM_2_URSACHE_NR, "\"0-n\""); short STAT_FA_DENORM_2_POS_HALL_WERT = (RXBUF_SINT(11)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_2_POS_HALL_WERT", STAT_FA_DENORM_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_DENORM_2_KM_WERT = (RXBUF_UINT32(13)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_2_KM_WERT", STAT_FA_DENORM_2_KM_WERT, "\"Ink\""); unsigned short STAT_FA_RESERVED_2_WERT = (RXBUF_UINT(17)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_RESERVED_2_WERT", STAT_FA_RESERVED_2_WERT, ""); unsigned char STAT_FA_DENORM_3_URSACHE_NR = (RXBUF_UCHAR(19)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_3_URSACHE_NR", STAT_FA_DENORM_3_URSACHE_NR, "\"0-n\""); short STAT_FA_DENORM_3_POS_HALL_WERT = (RXBUF_SINT(20)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_3_POS_HALL_WERT", STAT_FA_DENORM_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_DENORM_3_KM_WERT = (RXBUF_UINT32(22)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_3_KM_WERT", STAT_FA_DENORM_3_KM_WERT, "\"Ink\""); unsigned short STAT_FA_RESERVED_3_WERT = (RXBUF_UINT(26)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_RESERVED_3_WERT", STAT_FA_RESERVED_3_WERT, ""); unsigned char STAT_FA_DENORM_4_URSACHE_NR = (RXBUF_UCHAR(28)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_4_URSACHE_NR", STAT_FA_DENORM_4_URSACHE_NR, "\"0-n\""); short STAT_FA_DENORM_4_POS_HALL_WERT = (RXBUF_SINT(29)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_4_POS_HALL_WERT", STAT_FA_DENORM_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_DENORM_4_KM_WERT = (RXBUF_UINT32(31)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_4_KM_WERT", STAT_FA_DENORM_4_KM_WERT, "\"Ink\""); unsigned short STAT_FA_RESERVED_4_WERT = (RXBUF_UINT(35)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_RESERVED_4_WERT", STAT_FA_RESERVED_4_WERT, ""); unsigned char STAT_FA_DENORM_5_URSACHE_NR = (RXBUF_UCHAR(37)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_5_URSACHE_NR", STAT_FA_DENORM_5_URSACHE_NR, "\"0-n\""); short STAT_FA_DENORM_5_POS_HALL_WERT = (RXBUF_SINT(38)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_5_POS_HALL_WERT", STAT_FA_DENORM_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_DENORM_5_KM_WERT = (RXBUF_UINT32(40)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_DENORM_5_KM_WERT", STAT_FA_DENORM_5_KM_WERT, "\"Ink\""); unsigned short STAT_FA_RESERVED_5_WERT = (RXBUF_UINT(44)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_FA_RESERVED_5_WERT", STAT_FA_RESERVED_5_WERT, ""); unsigned char STAT_BF_DENORM_ZAEHLER_WERT = (RXBUF_UCHAR(46)); // The denormalization frequency is incremented with each denormalization / Die Denormierh¿ufigkeit wird bei // jeder Denormierung inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_ZAEHLER_WERT", STAT_BF_DENORM_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_BF_DENORM_1_URSACHE_NR = (RXBUF_UCHAR(47)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_1_URSACHE_NR", STAT_BF_DENORM_1_URSACHE_NR, "\"0-n\""); short STAT_BF_DENORM_1_POS_HALL_WERT = (RXBUF_SINT(48)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_1_POS_HALL_WERT", STAT_BF_DENORM_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_DENORM_1_KM_WERT = (RXBUF_UINT32(50)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_1_KM_WERT", STAT_BF_DENORM_1_KM_WERT, "\"Ink\""); unsigned short STAT_BF_RESERVED_1_WERT = (RXBUF_UINT(54)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_RESERVED_1_WERT", STAT_BF_RESERVED_1_WERT, ""); unsigned char STAT_BF_DENORM_2_URSACHE_NR = (RXBUF_UCHAR(56)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_2_URSACHE_NR", STAT_BF_DENORM_2_URSACHE_NR, "\"0-n\""); short STAT_BF_DENORM_2_POS_HALL_WERT = (RXBUF_SINT(57)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_2_POS_HALL_WERT", STAT_BF_DENORM_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_DENORM_2_KM_WERT = (RXBUF_UINT32(59)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_2_KM_WERT", STAT_BF_DENORM_2_KM_WERT, "\"Ink\""); unsigned short STAT_BF_RESERVED_2_WERT = (RXBUF_UINT(63)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_RESERVED_2_WERT", STAT_BF_RESERVED_2_WERT, ""); unsigned char STAT_BF_DENORM_3_URSACHE_NR = (RXBUF_UCHAR(65)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_3_URSACHE_NR", STAT_BF_DENORM_3_URSACHE_NR, "\"0-n\""); short STAT_BF_DENORM_3_POS_HALL_WERT = (RXBUF_SINT(66)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_3_POS_HALL_WERT", STAT_BF_DENORM_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_DENORM_3_KM_WERT = (RXBUF_UINT32(68)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_3_KM_WERT", STAT_BF_DENORM_3_KM_WERT, "\"Ink\""); unsigned short STAT_BF_RESERVED_3_WERT = (RXBUF_UINT(72)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_RESERVED_3_WERT", STAT_BF_RESERVED_3_WERT, ""); unsigned char STAT_BF_DENORM_4_URSACHE_NR = (RXBUF_UCHAR(74)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_4_URSACHE_NR", STAT_BF_DENORM_4_URSACHE_NR, "\"0-n\""); short STAT_BF_DENORM_4_POS_HALL_WERT = (RXBUF_SINT(75)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_4_POS_HALL_WERT", STAT_BF_DENORM_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_DENORM_4_KM_WERT = (RXBUF_UINT32(77)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_4_KM_WERT", STAT_BF_DENORM_4_KM_WERT, "\"Ink\""); unsigned short STAT_BF_RESERVED_4_WERT = (RXBUF_UINT(81)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_RESERVED_4_WERT", STAT_BF_RESERVED_4_WERT, ""); unsigned char STAT_BF_DENORM_5_URSACHE_NR = (RXBUF_UCHAR(83)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_5_URSACHE_NR", STAT_BF_DENORM_5_URSACHE_NR, "\"0-n\""); short STAT_BF_DENORM_5_POS_HALL_WERT = (RXBUF_SINT(84)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_5_POS_HALL_WERT", STAT_BF_DENORM_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_DENORM_5_KM_WERT = (RXBUF_UINT32(86)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_DENORM_5_KM_WERT", STAT_BF_DENORM_5_KM_WERT, "\"Ink\""); unsigned short STAT_BF_RESERVED_5_WERT = (RXBUF_UINT(90)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_FRONT", "STAT_BF_RESERVED_5_WERT", STAT_BF_RESERVED_5_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_DENORMIERUNGS_LOGGER_LESEN_REAR: { // 0x603B if (datalen < 92) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_DENORMIERUNGS_LOGGER_LESEN_REAR", 92); break; } unsigned char STAT_FAH_DENORM_ZAEHLER_WERT = (RXBUF_UCHAR(0)); // The denormalization frequency is incremented with each denormalization / Die Denormierh¿ufigkeit wird bei // jeder Denormierung inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_ZAEHLER_WERT", STAT_FAH_DENORM_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_FAH_DENORM_1_URSACHE_NR = (RXBUF_UCHAR(1)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_1_URSACHE_NR", STAT_FAH_DENORM_1_URSACHE_NR, "\"0-n\""); short STAT_FAH_DENORM_1_POS_HALL_WERT = (RXBUF_SINT(2)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_1_POS_HALL_WERT", STAT_FAH_DENORM_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_DENORM_1_KM_WERT = (RXBUF_UINT32(4)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_1_KM_WERT", STAT_FAH_DENORM_1_KM_WERT, "\"Ink\""); unsigned short STAT_FAH_RESERVED_1_WERT = (RXBUF_UINT(8)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_RESERVED_1_WERT", STAT_FAH_RESERVED_1_WERT, ""); unsigned char STAT_FAH_DENORM_2_URSACHE_NR = (RXBUF_UCHAR(10)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_2_URSACHE_NR", STAT_FAH_DENORM_2_URSACHE_NR, "\"0-n\""); short STAT_FAH_DENORM_2_POS_HALL_WERT = (RXBUF_SINT(11)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_2_POS_HALL_WERT", STAT_FAH_DENORM_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_DENORM_2_KM_WERT = (RXBUF_UINT32(13)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_2_KM_WERT", STAT_FAH_DENORM_2_KM_WERT, "\"Ink\""); unsigned short STAT_FAH_RESERVED_2_WERT = (RXBUF_UINT(17)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_RESERVED_2_WERT", STAT_FAH_RESERVED_2_WERT, ""); unsigned char STAT_FAH_DENORM_3_URSACHE_NR = (RXBUF_UCHAR(19)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_3_URSACHE_NR", STAT_FAH_DENORM_3_URSACHE_NR, "\"0-n\""); short STAT_FAH_DENORM_3_POS_HALL_WERT = (RXBUF_SINT(20)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_3_POS_HALL_WERT", STAT_FAH_DENORM_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_DENORM_3_KM_WERT = (RXBUF_UINT32(22)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_3_KM_WERT", STAT_FAH_DENORM_3_KM_WERT, "\"Ink\""); unsigned short STAT_FAH_RESERVED_3_WERT = (RXBUF_UINT(26)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_RESERVED_3_WERT", STAT_FAH_RESERVED_3_WERT, ""); unsigned char STAT_FAH_DENORM_4_URSACHE_NR = (RXBUF_UCHAR(28)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_4_URSACHE_NR", STAT_FAH_DENORM_4_URSACHE_NR, "\"0-n\""); short STAT_FAH_DENORM_4_POS_HALL_WERT = (RXBUF_SINT(29)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_4_POS_HALL_WERT", STAT_FAH_DENORM_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_DENORM_4_KM_WERT = (RXBUF_UINT32(31)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_4_KM_WERT", STAT_FAH_DENORM_4_KM_WERT, "\"Ink\""); unsigned short STAT_FAH_RESERVED_4_WERT = (RXBUF_UINT(35)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_RESERVED_4_WERT", STAT_FAH_RESERVED_4_WERT, ""); unsigned char STAT_FAH_DENORM_5_URSACHE_NR = (RXBUF_UCHAR(37)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_5_URSACHE_NR", STAT_FAH_DENORM_5_URSACHE_NR, "\"0-n\""); short STAT_FAH_DENORM_5_POS_HALL_WERT = (RXBUF_SINT(38)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_5_POS_HALL_WERT", STAT_FAH_DENORM_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_DENORM_5_KM_WERT = (RXBUF_UINT32(40)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_DENORM_5_KM_WERT", STAT_FAH_DENORM_5_KM_WERT, "\"Ink\""); unsigned short STAT_FAH_RESERVED_5_WERT = (RXBUF_UINT(44)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_FAH_RESERVED_5_WERT", STAT_FAH_RESERVED_5_WERT, ""); unsigned char STAT_BFH_DENORM_ZAEHLER_WERT = (RXBUF_UCHAR(46)); // The denormalization frequency is incremented with each denormalization / Die Denormierh¿ufigkeit wird bei // jeder Denormierung inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_ZAEHLER_WERT", STAT_BFH_DENORM_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_BFH_DENORM_1_URSACHE_NR = (RXBUF_UCHAR(47)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_1_URSACHE_NR", STAT_BFH_DENORM_1_URSACHE_NR, "\"0-n\""); short STAT_BFH_DENORM_1_POS_HALL_WERT = (RXBUF_SINT(48)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_1_POS_HALL_WERT", STAT_BFH_DENORM_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_DENORM_1_KM_WERT = (RXBUF_UINT32(50)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_1_KM_WERT", STAT_BFH_DENORM_1_KM_WERT, "\"Ink\""); unsigned short STAT_BFH_RESERVED_1_WERT = (RXBUF_UINT(54)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_RESERVED_1_WERT", STAT_BFH_RESERVED_1_WERT, ""); unsigned char STAT_BFH_DENORM_2_URSACHE_NR = (RXBUF_UCHAR(56)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_2_URSACHE_NR", STAT_BFH_DENORM_2_URSACHE_NR, "\"0-n\""); short STAT_BFH_DENORM_2_POS_HALL_WERT = (RXBUF_SINT(57)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_2_POS_HALL_WERT", STAT_BFH_DENORM_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_DENORM_2_KM_WERT = (RXBUF_UINT32(59)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_2_KM_WERT", STAT_BFH_DENORM_2_KM_WERT, "\"Ink\""); unsigned short STAT_BFH_RESERVED_2_WERT = (RXBUF_UINT(63)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_RESERVED_2_WERT", STAT_BFH_RESERVED_2_WERT, ""); unsigned char STAT_BFH_DENORM_3_URSACHE_NR = (RXBUF_UCHAR(65)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_3_URSACHE_NR", STAT_BFH_DENORM_3_URSACHE_NR, "\"0-n\""); short STAT_BFH_DENORM_3_POS_HALL_WERT = (RXBUF_SINT(66)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_3_POS_HALL_WERT", STAT_BFH_DENORM_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_DENORM_3_KM_WERT = (RXBUF_UINT32(68)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_3_KM_WERT", STAT_BFH_DENORM_3_KM_WERT, "\"Ink\""); unsigned short STAT_BFH_RESERVED_3_WERT = (RXBUF_UINT(72)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_RESERVED_3_WERT", STAT_BFH_RESERVED_3_WERT, ""); unsigned char STAT_BFH_DENORM_4_URSACHE_NR = (RXBUF_UCHAR(74)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_4_URSACHE_NR", STAT_BFH_DENORM_4_URSACHE_NR, "\"0-n\""); short STAT_BFH_DENORM_4_POS_HALL_WERT = (RXBUF_SINT(75)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_4_POS_HALL_WERT", STAT_BFH_DENORM_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_DENORM_4_KM_WERT = (RXBUF_UINT32(77)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_4_KM_WERT", STAT_BFH_DENORM_4_KM_WERT, "\"Ink\""); unsigned short STAT_BFH_RESERVED_4_WERT = (RXBUF_UINT(81)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_RESERVED_4_WERT", STAT_BFH_RESERVED_4_WERT, ""); unsigned char STAT_BFH_DENORM_5_URSACHE_NR = (RXBUF_UCHAR(83)); // Cause of denormalization. / Ursache der Denormierung. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_5_URSACHE_NR", STAT_BFH_DENORM_5_URSACHE_NR, "\"0-n\""); short STAT_BFH_DENORM_5_POS_HALL_WERT = (RXBUF_SINT(84)); // Specification of the hall increments (2-byte) / Angabe der Hallinkremente (2-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_5_POS_HALL_WERT", STAT_BFH_DENORM_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_DENORM_5_KM_WERT = (RXBUF_UINT32(86)); // Mileage (3-byte) / Kilometerstand (3-Byte) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_DENORM_5_KM_WERT", STAT_BFH_DENORM_5_KM_WERT, "\"Ink\""); unsigned short STAT_BFH_RESERVED_5_WERT = (RXBUF_UINT(90)); // Implementation in the SW-C MT / Umsetzung in der SW-C MT ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_DENORMIERUNGS_LOGGER_LESEN_REAR", "STAT_BFH_RESERVED_5_WERT", STAT_BFH_RESERVED_5_WERT, ""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_REVERSIER_LOGGER_LESEN_FRONT: { // 0x603E if (datalen < 112) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_REVERSIER_LOGGER_LESEN_FRONT", 112); break; } unsigned char STAT_FA_REVERSIEREN_ZAEHLER_WERT = (RXBUF_UCHAR(0)); // The reversing frequency is incremented with each reversing / Die Reversierhaeufigkeit wird bei jedem Reversier // inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_ZAEHLER_WERT", STAT_FA_REVERSIEREN_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_FA_REVERSIEREN_1_URSACHE_NR = (RXBUF_UCHAR(1)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_1_URSACHE_NR", STAT_FA_REVERSIEREN_1_URSACHE_NR, "\"0-n\""); short STAT_FA_REVERSIEREN_1_POS_HALL_WERT = (RXBUF_SINT(2)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_1_POS_HALL_WERT", STAT_FA_REVERSIEREN_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_REVERSIEREN_1_KM_WERT = (RXBUF_UINT32(4)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_1_KM_WERT", STAT_FA_REVERSIEREN_1_KM_WERT, "\"km\""); char STAT_FA_REVERSIEREN_1_ATEMP_WERT = (RXBUF_SCHAR(8)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_1_ATEMP_WERT", STAT_FA_REVERSIEREN_1_ATEMP_WERT, "\"°C\""); unsigned char STAT_FA_REVERSIEREN_1_SPANNUNG_WERT = (RXBUF_UCHAR(9)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_1_SPANNUNG_WERT", STAT_FA_REVERSIEREN_1_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FA_REVERSIEREN_1_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(10)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_1_GESCHWINDIGKEIT_WERT", STAT_FA_REVERSIEREN_1_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FA_REVERSIEREN_2_URSACHE_NR = (RXBUF_UCHAR(12)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_2_URSACHE_NR", STAT_FA_REVERSIEREN_2_URSACHE_NR, "\"0-n\""); short STAT_FA_REVERSIEREN_2_POS_HALL_WERT = (RXBUF_SINT(13)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_2_POS_HALL_WERT", STAT_FA_REVERSIEREN_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_REVERSIEREN_2_KM_WERT = (RXBUF_UINT32(15)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_2_KM_WERT", STAT_FA_REVERSIEREN_2_KM_WERT, "\"km\""); char STAT_FA_REVERSIEREN_2_ATEMP_WERT = (RXBUF_SCHAR(19)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_2_ATEMP_WERT", STAT_FA_REVERSIEREN_2_ATEMP_WERT, "\"°C\""); unsigned char STAT_FA_REVERSIEREN_2_SPANNUNG_WERT = (RXBUF_UCHAR(20)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_2_SPANNUNG_WERT", STAT_FA_REVERSIEREN_2_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FA_REVERSIEREN_2_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(21)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_2_GESCHWINDIGKEIT_WERT", STAT_FA_REVERSIEREN_2_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FA_REVERSIEREN_3_URSACHE_NR = (RXBUF_UCHAR(23)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_3_URSACHE_NR", STAT_FA_REVERSIEREN_3_URSACHE_NR, "\"0-n\""); short STAT_FA_REVERSIEREN_3_POS_HALL_WERT = (RXBUF_SINT(24)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_3_POS_HALL_WERT", STAT_FA_REVERSIEREN_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_REVERSIEREN_3_KM_WERT = (RXBUF_UINT32(26)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_3_KM_WERT", STAT_FA_REVERSIEREN_3_KM_WERT, "\"km\""); char STAT_FA_REVERSIEREN_3_ATEMP_WERT = (RXBUF_SCHAR(30)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_3_ATEMP_WERT", STAT_FA_REVERSIEREN_3_ATEMP_WERT, "\"°C\""); unsigned char STAT_FA_REVERSIEREN_3_SPANNUNG_WERT = (RXBUF_UCHAR(31)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_3_SPANNUNG_WERT", STAT_FA_REVERSIEREN_3_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FA_REVERSIEREN_3_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(32)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_3_GESCHWINDIGKEIT_WERT", STAT_FA_REVERSIEREN_3_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FA_REVERSIEREN_4_URSACHE_NR = (RXBUF_UCHAR(34)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_4_URSACHE_NR", STAT_FA_REVERSIEREN_4_URSACHE_NR, "\"0-n\""); short STAT_FA_REVERSIEREN_4_POS_HALL_WERT = (RXBUF_SINT(35)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_4_POS_HALL_WERT", STAT_FA_REVERSIEREN_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_REVERSIEREN_4_KM_WERT = (RXBUF_UINT32(37)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_4_KM_WERT", STAT_FA_REVERSIEREN_4_KM_WERT, "\"km\""); char STAT_FA_REVERSIEREN_4_ATEMP_WERT = (RXBUF_SCHAR(41)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_4_ATEMP_WERT", STAT_FA_REVERSIEREN_4_ATEMP_WERT, "\"°C\""); unsigned char STAT_FA_REVERSIEREN_4_SPANNUNG_WERT = (RXBUF_UCHAR(42)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_4_SPANNUNG_WERT", STAT_FA_REVERSIEREN_4_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FA_REVERSIEREN_4_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(43)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_4_GESCHWINDIGKEIT_WERT", STAT_FA_REVERSIEREN_4_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FA_REVERSIEREN_5_URSACHE_NR = (RXBUF_UCHAR(45)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_5_URSACHE_NR", STAT_FA_REVERSIEREN_5_URSACHE_NR, "\"0-n\""); short STAT_FA_REVERSIEREN_5_POS_HALL_WERT = (RXBUF_SINT(46)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_5_POS_HALL_WERT", STAT_FA_REVERSIEREN_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FA_REVERSIEREN_5_KM_WERT = (RXBUF_UINT32(48)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_5_KM_WERT", STAT_FA_REVERSIEREN_5_KM_WERT, "\"km\""); char STAT_FA_REVERSIEREN_5_ATEMP_WERT = (RXBUF_SCHAR(52)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_5_ATEMP_WERT", STAT_FA_REVERSIEREN_5_ATEMP_WERT, "\"°C\""); unsigned char STAT_FA_REVERSIEREN_5_SPANNUNG_WERT = (RXBUF_UCHAR(53)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_5_SPANNUNG_WERT", STAT_FA_REVERSIEREN_5_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FA_REVERSIEREN_5_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(54)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_FA_REVERSIEREN_5_GESCHWINDIGKEIT_WERT", STAT_FA_REVERSIEREN_5_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BF_REVERSIEREN_ZAEHLER_WERT = (RXBUF_UCHAR(56)); // The reversing frequency is incremented with each reversing / Die Reversierhaeufigkeit wird bei jedem Reversier // inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_ZAEHLER_WERT", STAT_BF_REVERSIEREN_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_BF_REVERSIEREN_1_URSACHE_NR = (RXBUF_UCHAR(57)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_1_URSACHE_NR", STAT_BF_REVERSIEREN_1_URSACHE_NR, "\"0-n\""); short STAT_BF_REVERSIEREN_1_POS_HALL_WERT = (RXBUF_SINT(58)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_1_POS_HALL_WERT", STAT_BF_REVERSIEREN_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_REVERSIEREN_1_KM_WERT = (RXBUF_UINT32(60)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_1_KM_WERT", STAT_BF_REVERSIEREN_1_KM_WERT, "\"km\""); char STAT_BF_REVERSIEREN_1_ATEMP_WERT = (RXBUF_SCHAR(64)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_1_ATEMP_WERT", STAT_BF_REVERSIEREN_1_ATEMP_WERT, "\"°C\""); unsigned char STAT_BF_REVERSIEREN_1_SPANNUNG_WERT = (RXBUF_UCHAR(65)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_1_SPANNUNG_WERT", STAT_BF_REVERSIEREN_1_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BF_REVERSIEREN_1_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(66)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_1_GESCHWINDIGKEIT_WERT", STAT_BF_REVERSIEREN_1_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BF_REVERSIEREN_2_URSACHE_NR = (RXBUF_UCHAR(68)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_2_URSACHE_NR", STAT_BF_REVERSIEREN_2_URSACHE_NR, "\"0-n\""); short STAT_BF_REVERSIEREN_2_POS_HALL_WERT = (RXBUF_SINT(69)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_2_POS_HALL_WERT", STAT_BF_REVERSIEREN_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_REVERSIEREN_2_KM_WERT = (RXBUF_UINT32(71)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_2_KM_WERT", STAT_BF_REVERSIEREN_2_KM_WERT, "\"km\""); char STAT_BF_REVERSIEREN_2_ATEMP_WERT = (RXBUF_SCHAR(75)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_2_ATEMP_WERT", STAT_BF_REVERSIEREN_2_ATEMP_WERT, "\"°C\""); unsigned char STAT_BF_REVERSIEREN_2_SPANNUNG_WERT = (RXBUF_UCHAR(76)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_2_SPANNUNG_WERT", STAT_BF_REVERSIEREN_2_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BF_REVERSIEREN_2_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(77)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_2_GESCHWINDIGKEIT_WERT", STAT_BF_REVERSIEREN_2_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BF_REVERSIEREN_3_URSACHE_NR = (RXBUF_UCHAR(79)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_3_URSACHE_NR", STAT_BF_REVERSIEREN_3_URSACHE_NR, "\"0-n\""); short STAT_BF_REVERSIEREN_3_POS_HALL_WERT = (RXBUF_SINT(80)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_3_POS_HALL_WERT", STAT_BF_REVERSIEREN_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_REVERSIEREN_3_KM_WERT = (RXBUF_UINT32(82)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_3_KM_WERT", STAT_BF_REVERSIEREN_3_KM_WERT, "\"km\""); char STAT_BF_REVERSIEREN_3_ATEMP_WERT = (RXBUF_SCHAR(86)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_3_ATEMP_WERT", STAT_BF_REVERSIEREN_3_ATEMP_WERT, "\"°C\""); unsigned char STAT_BF_REVERSIEREN_3_SPANNUNG_WERT = (RXBUF_UCHAR(87)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_3_SPANNUNG_WERT", STAT_BF_REVERSIEREN_3_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BF_REVERSIEREN_3_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(88)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_3_GESCHWINDIGKEIT_WERT", STAT_BF_REVERSIEREN_3_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BF_REVERSIEREN_4_URSACHE_NR = (RXBUF_UCHAR(90)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_4_URSACHE_NR", STAT_BF_REVERSIEREN_4_URSACHE_NR, "\"0-n\""); short STAT_BF_REVERSIEREN_4_POS_HALL_WERT = (RXBUF_SINT(91)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_4_POS_HALL_WERT", STAT_BF_REVERSIEREN_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_REVERSIEREN_4_KM_WERT = (RXBUF_UINT32(93)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_4_KM_WERT", STAT_BF_REVERSIEREN_4_KM_WERT, "\"km\""); char STAT_BF_REVERSIEREN_4_ATEMP_WERT = (RXBUF_SCHAR(97)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_4_ATEMP_WERT", STAT_BF_REVERSIEREN_4_ATEMP_WERT, "\"°C\""); unsigned char STAT_BF_REVERSIEREN_4_SPANNUNG_WERT = (RXBUF_UCHAR(98)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_4_SPANNUNG_WERT", STAT_BF_REVERSIEREN_4_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BF_REVERSIEREN_4_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(99)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_4_GESCHWINDIGKEIT_WERT", STAT_BF_REVERSIEREN_4_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BF_REVERSIEREN_5_URSACHE_NR = (RXBUF_UCHAR(101)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_5_URSACHE_NR", STAT_BF_REVERSIEREN_5_URSACHE_NR, "\"0-n\""); short STAT_BF_REVERSIEREN_5_POS_HALL_WERT = (RXBUF_SINT(102)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_5_POS_HALL_WERT", STAT_BF_REVERSIEREN_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BF_REVERSIEREN_5_KM_WERT = (RXBUF_UINT32(104)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_5_KM_WERT", STAT_BF_REVERSIEREN_5_KM_WERT, "\"km\""); char STAT_BF_REVERSIEREN_5_ATEMP_WERT = (RXBUF_SCHAR(108)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_5_ATEMP_WERT", STAT_BF_REVERSIEREN_5_ATEMP_WERT, "\"°C\""); unsigned char STAT_BF_REVERSIEREN_5_SPANNUNG_WERT = (RXBUF_UCHAR(109)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_5_SPANNUNG_WERT", STAT_BF_REVERSIEREN_5_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BF_REVERSIEREN_5_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(110)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_FRONT", "STAT_BF_REVERSIEREN_5_GESCHWINDIGKEIT_WERT", STAT_BF_REVERSIEREN_5_GESCHWINDIGKEIT_WERT, "\"km/h\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_REVERSIER_LOGGER_LESEN_REAR: { // 0x603F if (datalen < 112) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_REVERSIER_LOGGER_LESEN_REAR", 112); break; } unsigned char STAT_FAH_REVERSIEREN_ZAEHLER_WERT = (RXBUF_UCHAR(0)); // The reversing frequency is incremented with each reversing / Die Reversierhaeufigkeit wird bei jedem Reversier // inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_ZAEHLER_WERT", STAT_FAH_REVERSIEREN_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_FAH_REVERSIEREN_1_URSACHE_NR = (RXBUF_UCHAR(1)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_1_URSACHE_NR", STAT_FAH_REVERSIEREN_1_URSACHE_NR, "\"0-n\""); short STAT_FAH_REVERSIEREN_1_POS_HALL_WERT = (RXBUF_SINT(2)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_1_POS_HALL_WERT", STAT_FAH_REVERSIEREN_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_REVERSIEREN_1_KM_WERT = (RXBUF_UINT32(4)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_1_KM_WERT", STAT_FAH_REVERSIEREN_1_KM_WERT, "\"km\""); char STAT_FAH_REVERSIEREN_1_ATEMP_WERT = (RXBUF_SCHAR(8)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_1_ATEMP_WERT", STAT_FAH_REVERSIEREN_1_ATEMP_WERT, "\"°C\""); unsigned char STAT_FAH_REVERSIEREN_1_SPANNUNG_WERT = (RXBUF_UCHAR(9)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_1_SPANNUNG_WERT", STAT_FAH_REVERSIEREN_1_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FAH_REVERSIEREN_1_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(10)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_1_GESCHWINDIGKEIT_WERT", STAT_FAH_REVERSIEREN_1_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FAH_REVERSIEREN_2_URSACHE_NR = (RXBUF_UCHAR(12)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_2_URSACHE_NR", STAT_FAH_REVERSIEREN_2_URSACHE_NR, "\"0-n\""); short STAT_FAH_REVERSIEREN_2_POS_HALL_WERT = (RXBUF_SINT(13)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_2_POS_HALL_WERT", STAT_FAH_REVERSIEREN_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_REVERSIEREN_2_KM_WERT = (RXBUF_UINT32(15)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_2_KM_WERT", STAT_FAH_REVERSIEREN_2_KM_WERT, "\"km\""); char STAT_FAH_REVERSIEREN_2_ATEMP_WERT = (RXBUF_SCHAR(19)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_2_ATEMP_WERT", STAT_FAH_REVERSIEREN_2_ATEMP_WERT, "\"°C\""); unsigned char STAT_FAH_REVERSIEREN_2_SPANNUNG_WERT = (RXBUF_UCHAR(20)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_2_SPANNUNG_WERT", STAT_FAH_REVERSIEREN_2_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FAH_REVERSIEREN_2_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(21)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_2_GESCHWINDIGKEIT_WERT", STAT_FAH_REVERSIEREN_2_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FAH_REVERSIEREN_3_URSACHE_NR = (RXBUF_UCHAR(23)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_3_URSACHE_NR", STAT_FAH_REVERSIEREN_3_URSACHE_NR, "\"0-n\""); short STAT_FAH_REVERSIEREN_3_POS_HALL_WERT = (RXBUF_SINT(24)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_3_POS_HALL_WERT", STAT_FAH_REVERSIEREN_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_REVERSIEREN_3_KM_WERT = (RXBUF_UINT32(26)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_3_KM_WERT", STAT_FAH_REVERSIEREN_3_KM_WERT, "\"km\""); char STAT_FAH_REVERSIEREN_3_ATEMP_WERT = (RXBUF_SCHAR(30)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_3_ATEMP_WERT", STAT_FAH_REVERSIEREN_3_ATEMP_WERT, "\"°C\""); unsigned char STAT_FAH_REVERSIEREN_3_SPANNUNG_WERT = (RXBUF_UCHAR(31)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_3_SPANNUNG_WERT", STAT_FAH_REVERSIEREN_3_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FAH_REVERSIEREN_3_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(32)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_3_GESCHWINDIGKEIT_WERT", STAT_FAH_REVERSIEREN_3_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FAH_REVERSIEREN_4_URSACHE_NR = (RXBUF_UCHAR(34)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_4_URSACHE_NR", STAT_FAH_REVERSIEREN_4_URSACHE_NR, "\"0-n\""); short STAT_FAH_REVERSIEREN_4_POS_HALL_WERT = (RXBUF_SINT(35)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_4_POS_HALL_WERT", STAT_FAH_REVERSIEREN_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_REVERSIEREN_4_KM_WERT = (RXBUF_UINT32(37)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_4_KM_WERT", STAT_FAH_REVERSIEREN_4_KM_WERT, "\"km\""); char STAT_FAH_REVERSIEREN_4_ATEMP_WERT = (RXBUF_SCHAR(41)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_4_ATEMP_WERT", STAT_FAH_REVERSIEREN_4_ATEMP_WERT, "\"°C\""); unsigned char STAT_FAH_REVERSIEREN_4_SPANNUNG_WERT = (RXBUF_UCHAR(42)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_4_SPANNUNG_WERT", STAT_FAH_REVERSIEREN_4_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FAH_REVERSIEREN_4_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(43)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_4_GESCHWINDIGKEIT_WERT", STAT_FAH_REVERSIEREN_4_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_FAH_REVERSIEREN_5_URSACHE_NR = (RXBUF_UCHAR(45)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_5_URSACHE_NR", STAT_FAH_REVERSIEREN_5_URSACHE_NR, "\"0-n\""); short STAT_FAH_REVERSIEREN_5_POS_HALL_WERT = (RXBUF_SINT(46)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_5_POS_HALL_WERT", STAT_FAH_REVERSIEREN_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_FAH_REVERSIEREN_5_KM_WERT = (RXBUF_UINT32(48)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_5_KM_WERT", STAT_FAH_REVERSIEREN_5_KM_WERT, "\"km\""); char STAT_FAH_REVERSIEREN_5_ATEMP_WERT = (RXBUF_SCHAR(52)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_5_ATEMP_WERT", STAT_FAH_REVERSIEREN_5_ATEMP_WERT, "\"°C\""); unsigned char STAT_FAH_REVERSIEREN_5_SPANNUNG_WERT = (RXBUF_UCHAR(53)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_5_SPANNUNG_WERT", STAT_FAH_REVERSIEREN_5_SPANNUNG_WERT, "\"V\""); unsigned short STAT_FAH_REVERSIEREN_5_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(54)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_FAH_REVERSIEREN_5_GESCHWINDIGKEIT_WERT", STAT_FAH_REVERSIEREN_5_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BFH_REVERSIEREN_ZAEHLER_WERT = (RXBUF_UCHAR(56)); // The reversing frequency is incremented with each reversing / Die Reversierhaeufigkeit wird bei jedem Reversier // inkrementiert ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_ZAEHLER_WERT", STAT_BFH_REVERSIEREN_ZAEHLER_WERT, "\"Ink\""); unsigned char STAT_BFH_REVERSIEREN_1_URSACHE_NR = (RXBUF_UCHAR(57)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_1_URSACHE_NR", STAT_BFH_REVERSIEREN_1_URSACHE_NR, "\"0-n\""); short STAT_BFH_REVERSIEREN_1_POS_HALL_WERT = (RXBUF_SINT(58)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_1_POS_HALL_WERT", STAT_BFH_REVERSIEREN_1_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_REVERSIEREN_1_KM_WERT = (RXBUF_UINT32(60)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_1_KM_WERT", STAT_BFH_REVERSIEREN_1_KM_WERT, "\"km\""); char STAT_BFH_REVERSIEREN_1_ATEMP_WERT = (RXBUF_SCHAR(64)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_1_ATEMP_WERT", STAT_BFH_REVERSIEREN_1_ATEMP_WERT, "\"°C\""); unsigned char STAT_BFH_REVERSIEREN_1_SPANNUNG_WERT = (RXBUF_UCHAR(65)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_1_SPANNUNG_WERT", STAT_BFH_REVERSIEREN_1_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BFH_REVERSIEREN_1_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(66)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_1_GESCHWINDIGKEIT_WERT", STAT_BFH_REVERSIEREN_1_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BFH_REVERSIEREN_2_URSACHE_NR = (RXBUF_UCHAR(68)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_2_URSACHE_NR", STAT_BFH_REVERSIEREN_2_URSACHE_NR, "\"0-n\""); short STAT_BFH_REVERSIEREN_2_POS_HALL_WERT = (RXBUF_SINT(69)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_2_POS_HALL_WERT", STAT_BFH_REVERSIEREN_2_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_REVERSIEREN_2_KM_WERT = (RXBUF_UINT32(71)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_2_KM_WERT", STAT_BFH_REVERSIEREN_2_KM_WERT, "\"km\""); char STAT_BFH_REVERSIEREN_2_ATEMP_WERT = (RXBUF_SCHAR(75)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_2_ATEMP_WERT", STAT_BFH_REVERSIEREN_2_ATEMP_WERT, "\"°C\""); unsigned char STAT_BFH_REVERSIEREN_2_SPANNUNG_WERT = (RXBUF_UCHAR(76)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_2_SPANNUNG_WERT", STAT_BFH_REVERSIEREN_2_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BFH_REVERSIEREN_2_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(77)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_2_GESCHWINDIGKEIT_WERT", STAT_BFH_REVERSIEREN_2_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BFH_REVERSIEREN_3_URSACHE_NR = (RXBUF_UCHAR(79)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_3_URSACHE_NR", STAT_BFH_REVERSIEREN_3_URSACHE_NR, "\"0-n\""); short STAT_BFH_REVERSIEREN_3_POS_HALL_WERT = (RXBUF_SINT(80)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_3_POS_HALL_WERT", STAT_BFH_REVERSIEREN_3_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_REVERSIEREN_3_KM_WERT = (RXBUF_UINT32(82)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_3_KM_WERT", STAT_BFH_REVERSIEREN_3_KM_WERT, "\"km\""); char STAT_BFH_REVERSIEREN_3_ATEMP_WERT = (RXBUF_SCHAR(86)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_3_ATEMP_WERT", STAT_BFH_REVERSIEREN_3_ATEMP_WERT, "\"°C\""); unsigned char STAT_BFH_REVERSIEREN_3_SPANNUNG_WERT = (RXBUF_UCHAR(87)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_3_SPANNUNG_WERT", STAT_BFH_REVERSIEREN_3_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BFH_REVERSIEREN_3_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(88)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_3_GESCHWINDIGKEIT_WERT", STAT_BFH_REVERSIEREN_3_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BFH_REVERSIEREN_4_URSACHE_NR = (RXBUF_UCHAR(90)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_4_URSACHE_NR", STAT_BFH_REVERSIEREN_4_URSACHE_NR, "\"0-n\""); short STAT_BFH_REVERSIEREN_4_POS_HALL_WERT = (RXBUF_SINT(91)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_4_POS_HALL_WERT", STAT_BFH_REVERSIEREN_4_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_REVERSIEREN_4_KM_WERT = (RXBUF_UINT32(93)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_4_KM_WERT", STAT_BFH_REVERSIEREN_4_KM_WERT, "\"km\""); char STAT_BFH_REVERSIEREN_4_ATEMP_WERT = (RXBUF_SCHAR(97)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_4_ATEMP_WERT", STAT_BFH_REVERSIEREN_4_ATEMP_WERT, "\"°C\""); unsigned char STAT_BFH_REVERSIEREN_4_SPANNUNG_WERT = (RXBUF_UCHAR(98)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_4_SPANNUNG_WERT", STAT_BFH_REVERSIEREN_4_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BFH_REVERSIEREN_4_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(99)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_4_GESCHWINDIGKEIT_WERT", STAT_BFH_REVERSIEREN_4_GESCHWINDIGKEIT_WERT, "\"km/h\""); unsigned char STAT_BFH_REVERSIEREN_5_URSACHE_NR = (RXBUF_UCHAR(101)); // Reversal cause (1 byte); Create a list with standardized values and then an area that can be occupied by the // supplier. / Reversier-Ursache (1Byte); Liste erstellen mit vereinheitlichten Werten und nachfolgend einem // Bereich der vom Lieferanten belegt werden kann. ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_5_URSACHE_NR", STAT_BFH_REVERSIEREN_5_URSACHE_NR, "\"0-n\""); short STAT_BFH_REVERSIEREN_5_POS_HALL_WERT = (RXBUF_SINT(102)); // Specification of hall increments / Angabe Hallinkremente ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%d%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_5_POS_HALL_WERT", STAT_BFH_REVERSIEREN_5_POS_HALL_WERT, "\"Ink\""); unsigned long STAT_BFH_REVERSIEREN_5_KM_WERT = (RXBUF_UINT32(104)); // Indication of mileage / Angabe Kilometerstand ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_5_KM_WERT", STAT_BFH_REVERSIEREN_5_KM_WERT, "\"km\""); char STAT_BFH_REVERSIEREN_5_ATEMP_WERT = (RXBUF_SCHAR(108)); // Outside temperature (from CAN signal) / Aussentemperatur (aus CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_5_ATEMP_WERT", STAT_BFH_REVERSIEREN_5_ATEMP_WERT, "\"°C\""); unsigned char STAT_BFH_REVERSIEREN_5_SPANNUNG_WERT = (RXBUF_UCHAR(109)); // Operating voltage (output to FH drive) / Betriebsspannung (Ausgang zu FH-Antrieb) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_5_SPANNUNG_WERT", STAT_BFH_REVERSIEREN_5_SPANNUNG_WERT, "\"V\""); unsigned short STAT_BFH_REVERSIEREN_5_GESCHWINDIGKEIT_WERT = (RXBUF_UINT(110)); // Vehicle speed (coding analogue to CAN signal) / Fahrzeuggeschwindigkeit (Codierung analog CAN-Signal) ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "BDC", "_FH_REVERSIER_LOGGER_LESEN_REAR", "STAT_BFH_REVERSIEREN_5_GESCHWINDIGKEIT_WERT", STAT_BFH_REVERSIEREN_5_GESCHWINDIGKEIT_WERT, "\"km/h\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_MOTORSTOP_LOGGER_LESEN_FRONT: { // 0x6042 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_MOTORSTOP_LOGGER_LESEN_FRONT", 20); break; } unsigned char STAT_FA_STOPREASON_1_NR = (RXBUF_UCHAR(0)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_1_NR", STAT_FA_STOPREASON_1_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_2_NR = (RXBUF_UCHAR(1)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_2_NR", STAT_FA_STOPREASON_2_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_3_NR = (RXBUF_UCHAR(2)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_3_NR", STAT_FA_STOPREASON_3_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_4_NR = (RXBUF_UCHAR(3)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_4_NR", STAT_FA_STOPREASON_4_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_5_NR = (RXBUF_UCHAR(4)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_5_NR", STAT_FA_STOPREASON_5_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_6_NR = (RXBUF_UCHAR(5)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_6_NR", STAT_FA_STOPREASON_6_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_7_NR = (RXBUF_UCHAR(6)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_7_NR", STAT_FA_STOPREASON_7_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_8_NR = (RXBUF_UCHAR(7)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_8_NR", STAT_FA_STOPREASON_8_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_9_NR = (RXBUF_UCHAR(8)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_9_NR", STAT_FA_STOPREASON_9_NR, "\"0-n\""); unsigned char STAT_FA_STOPREASON_10_NR = (RXBUF_UCHAR(9)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_FA_STOPREASON_10_NR", STAT_FA_STOPREASON_10_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_1_NR = (RXBUF_UCHAR(10)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_1_NR", STAT_BF_STOPREASON_1_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_2_NR = (RXBUF_UCHAR(11)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_2_NR", STAT_BF_STOPREASON_2_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_3_NR = (RXBUF_UCHAR(12)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_3_NR", STAT_BF_STOPREASON_3_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_4_NR = (RXBUF_UCHAR(13)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_4_NR", STAT_BF_STOPREASON_4_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_5_NR = (RXBUF_UCHAR(14)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_5_NR", STAT_BF_STOPREASON_5_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_6_NR = (RXBUF_UCHAR(15)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_6_NR", STAT_BF_STOPREASON_6_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_7_NR = (RXBUF_UCHAR(16)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_7_NR", STAT_BF_STOPREASON_7_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_8_NR = (RXBUF_UCHAR(17)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_8_NR", STAT_BF_STOPREASON_8_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_9_NR = (RXBUF_UCHAR(18)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_9_NR", STAT_BF_STOPREASON_9_NR, "\"0-n\""); unsigned char STAT_BF_STOPREASON_10_NR = (RXBUF_UCHAR(19)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_FRONT", "STAT_BF_STOPREASON_10_NR", STAT_BF_STOPREASON_10_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__FH_MOTORSTOP_LOGGER_LESEN_REAR: { // 0x6043 if (datalen < 20) { ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_BDC__FH_MOTORSTOP_LOGGER_LESEN_REAR", 20); break; } unsigned char STAT_FAH_STOPREASON_1_NR = (RXBUF_UCHAR(0)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_1_NR", STAT_FAH_STOPREASON_1_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_2_NR = (RXBUF_UCHAR(1)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_2_NR", STAT_FAH_STOPREASON_2_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_3_NR = (RXBUF_UCHAR(2)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_3_NR", STAT_FAH_STOPREASON_3_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_4_NR = (RXBUF_UCHAR(3)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_4_NR", STAT_FAH_STOPREASON_4_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_5_NR = (RXBUF_UCHAR(4)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_5_NR", STAT_FAH_STOPREASON_5_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_6_NR = (RXBUF_UCHAR(5)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_6_NR", STAT_FAH_STOPREASON_6_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_7_NR = (RXBUF_UCHAR(6)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_7_NR", STAT_FAH_STOPREASON_7_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_8_NR = (RXBUF_UCHAR(7)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_8_NR", STAT_FAH_STOPREASON_8_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_9_NR = (RXBUF_UCHAR(8)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_9_NR", STAT_FAH_STOPREASON_9_NR, "\"0-n\""); unsigned char STAT_FAH_STOPREASON_10_NR = (RXBUF_UCHAR(9)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_FAH_STOPREASON_10_NR", STAT_FAH_STOPREASON_10_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_1 = (RXBUF_UCHAR(10)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_1", STAT_BFH_STOPREASON_1, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_2 = (RXBUF_UCHAR(11)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_2", STAT_BFH_STOPREASON_2, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_3_NR = (RXBUF_UCHAR(12)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_3_NR", STAT_BFH_STOPREASON_3_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_4_NR = (RXBUF_UCHAR(13)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_4_NR", STAT_BFH_STOPREASON_4_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_5_NR = (RXBUF_UCHAR(14)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_5_NR", STAT_BFH_STOPREASON_5_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_6_NR = (RXBUF_UCHAR(15)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_6_NR", STAT_BFH_STOPREASON_6_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_7_NR = (RXBUF_UCHAR(16)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_7_NR", STAT_BFH_STOPREASON_7_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_8_NR = (RXBUF_UCHAR(17)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_8_NR", STAT_BFH_STOPREASON_8_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_9_NR = (RXBUF_UCHAR(18)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_9_NR", STAT_BFH_STOPREASON_9_NR, "\"0-n\""); unsigned char STAT_BFH_STOPREASON_10_NR = (RXBUF_UCHAR(19)); // Reason for the engine stop / Grund des Motorstops ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "BDC", "_FH_MOTORSTOP_LOGGER_LESEN_REAR", "STAT_BFH_STOPREASON_10_NR", STAT_BFH_STOPREASON_10_NR, "\"0-n\""); // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__STEUERN_DFZ_VERBINDUNGSENDE: { // 0xF003 // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__ECU_HW_RESET: { // 0xF005 // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; } case I3_PID_BDC__LWR_STATISTIK_RESET: { // 0xF105 // ========== Add your processing here ========== hexdump(rxbuf, type, pid); break; }