546 lines
27 KiB
C++
546 lines
27 KiB
C++
|
|
//
|
|
// Warning: don't edit - generated by generate_ecu_code.pl processing ../dev/zbe6.json: ZBE 67: iDrive controller
|
|
// This generated code makes it easier to process CANBUS messages from the ZBE ecu in a BMW i3
|
|
//
|
|
|
|
case I3_PID_ZBE_PROGRAMMING_COUNTER: { // 0x2502
|
|
if (datalen < 4) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_PROGRAMMING_COUNTER", 4);
|
|
break;
|
|
}
|
|
|
|
unsigned char STAT_RESERVE_WERT = (RXBUF_UCHAR(0));
|
|
// Reserve. Constant = 0x00 / Reserve. Konstante = 0x00
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "ZBE", "PROGRAMMING_COUNTER", "STAT_RESERVE_WERT", STAT_RESERVE_WERT, "");
|
|
|
|
unsigned char STAT_PROG_ZAEHLER_STATUS = (RXBUF_UCHAR(1));
|
|
// ProgrammingCounterStatus / ProgrammingCounterStatus
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "ZBE", "PROGRAMMING_COUNTER", "STAT_PROG_ZAEHLER_STATUS", STAT_PROG_ZAEHLER_STATUS, "\"0-n\"");
|
|
|
|
unsigned short STAT_PROG_ZAEHLER_WERT = (RXBUF_UINT(2));
|
|
// ProgrammingCounter / ProgrammingCounter
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "PROGRAMMING_COUNTER", "STAT_PROG_ZAEHLER_WERT", STAT_PROG_ZAEHLER_WERT, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_PROGRAMMING_COUNTER_MAX_VALUE: { // 0x2503
|
|
if (datalen < 2) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_PROGRAMMING_COUNTER_MAX_VALUE", 2);
|
|
break;
|
|
}
|
|
|
|
unsigned short STAT_PROG_MAX_WERT = (RXBUF_UINT(0));
|
|
// maximum number of programming processes / maximalen Anzahl von Programmiervorgängen
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "PROGRAMMING_COUNTER_MAX_VALUE", "STAT_PROG_MAX_WERT", STAT_PROG_MAX_WERT, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_FLASH_TIMING_PARAMETER: { // 0x2504
|
|
if (datalen < 12) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_FLASH_TIMING_PARAMETER", 12);
|
|
break;
|
|
}
|
|
|
|
unsigned short STAT_ERASE_MEMORY_TIME_WERT = (RXBUF_UINT(0));
|
|
// EraseMemoryTime, maximum SWE deletion time with process control in the control unit. / EraseMemoryTime,
|
|
// maximale SWE-Löschzeit mit Ablaufkontrolle im Steuergerät.
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "FLASH_TIMING_PARAMETER", "STAT_ERASE_MEMORY_TIME_WERT", STAT_ERASE_MEMORY_TIME_WERT, "\"s\"");
|
|
|
|
unsigned short STAT_CHECK_MEMORY_TIME_WERT = (RXBUF_UINT(2));
|
|
// CheckMemoryTime (e.g. signature check), maximum memory check time with process control in the control unit. /
|
|
// CheckMemoryTime (Bsp.: Signaturprüfung), maximale Speicherprüfzeit mit Ablaufkontrolle im Steuergerät.
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "FLASH_TIMING_PARAMETER", "STAT_CHECK_MEMORY_TIME_WERT", STAT_CHECK_MEMORY_TIME_WERT, "\"s\"");
|
|
|
|
unsigned short STAT_BOOTLOADER_INSTALLATION_TIME_WERT = (RXBUF_UINT(4));
|
|
// BootloaderInstallationTime The time that is required after the reset so that the auxiliary bootloader is
|
|
// started, the bootloader is deleted, the new bootloader is copied, its signature is checked and the new
|
|
// bootloader is started until it can be diagnosed again. This information is mandatory for all control units,
|
|
// even if the control unit has not planned a bootloader update. A value of 0x0000 is prohibited. /
|
|
// BootloaderInstallationTime Die Zeit, die nach dem Reset benötigt wird, damit der Hilfsbootloader gestartet
|
|
// wird, den Bootloader löscht, den neuen Bootloader kopiert, dessen Signatur prüf und der neue Bootloader
|
|
// gestartet wird bis er wieder diagnosefähig ist. Angabe ist verpflichtend für alle Steuergeräte, auch wenn das
|
|
// Steuergerät keinen Bootloader Update geplant hat. Ein Wert von 0x0000 ist verboten.
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "FLASH_TIMING_PARAMETER", "STAT_BOOTLOADER_INSTALLATION_TIME_WERT", STAT_BOOTLOADER_INSTALLATION_TIME_WERT, "\"s\"");
|
|
|
|
unsigned short STAT_AUTHENTICATION_TIME_WERT = (RXBUF_UINT(6));
|
|
// AuthenticationTime, the maximum time that the control device needs to check the authentication (sendKey) with
|
|
// flow control in the control device. / AuthenticationTime, die maximale Zeit, die das Steuergerät zur Prüfung
|
|
// der Authentisierung (sendKey) benötigt mit Ablaufkontrolle im Steuergerät.
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "FLASH_TIMING_PARAMETER", "STAT_AUTHENTICATION_TIME_WERT", STAT_AUTHENTICATION_TIME_WERT, "\"s\"");
|
|
|
|
unsigned short STAT_RESET_TIME_WERT = (RXBUF_UINT(8));
|
|
// ResetTime The time refers to the transition from the ApplicationExtendedSession to the ProgrammingSession or
|
|
// to the transition from the ProgrammingSession to the DefaultSession. The maximum value is to be output. After
|
|
// the reset time has elapsed, the control unit can be addressed by diagnosis. / ResetTime Die Zeitangabe bezieht
|
|
// sich auf den Übergang von der ApplicationExtendedSesssion in die ProgrammingSession bzw. bei Übergang von der
|
|
// ProgrammingSession in die DefaultSession. Es ist der Maximalwert auszugeben. Nach Ablauf der ResetTime ist das
|
|
// Steuergerät durch Diagnose ansprechbar.
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "FLASH_TIMING_PARAMETER", "STAT_RESET_TIME_WERT", STAT_RESET_TIME_WERT, "\"s\"");
|
|
|
|
unsigned short STAT_TRANSFER_DATA_TIME_WERT = (RXBUF_UINT(10));
|
|
// TransferDataTime The specification has to refer to a TransferData with a maximum block length to the time span
|
|
// from the complete reception of the data in the control unit via the possibly necessary decompression and the
|
|
// complete storage in the non-volatile memory up to and including the sending of the positive response. /
|
|
// TransferDataTime Die Angabe hat sich zu beziehen auf einen TransferData mit maximaler Blocklänge auf die
|
|
// Zeitspanne vom vollständigen Empfang der Daten im Steuergerät über das ggf. erforderliche Dekomprimieren und
|
|
// dem vollständigen Speichern im nichtflüchtigen Speicher bis einschließlich dem Senden der positiven Response.
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "FLASH_TIMING_PARAMETER", "STAT_TRANSFER_DATA_TIME_WERT", STAT_TRANSFER_DATA_TIME_WERT, "\"s\"");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_MILE_KM_EEPROM: { // 0x2540
|
|
if (datalen < 3) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_MILE_KM_EEPROM", 3);
|
|
break;
|
|
}
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_VARIANTE_ZBE: { // 0xD137
|
|
if (datalen < 1) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_VARIANTE_ZBE", 1);
|
|
break;
|
|
}
|
|
|
|
unsigned char STAT_ZBE_VARIANTE_NR = (RXBUF_UCHAR(0));
|
|
// Variant ZBE: 0 = standard variant 1 = Asian variant 2 = standard variant with touchpad 3 = Asian variant with
|
|
// touchpad 255 = invalid value or ZBE not coded / Variante ZBE: 0 = Standardvariante 1 = Asiavariante 2 =
|
|
// Standardvariante mit Touchpad 3 = Asiavariante mit Touchpad 255 = Ungültiger Wert oder ZBE nicht codiert
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "ZBE", "VARIANTE_ZBE", "STAT_ZBE_VARIANTE_NR", STAT_ZBE_VARIANTE_NR, "\"0-n\"");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_SCHRITTE_ROTRAD: { // 0xD14E
|
|
if (datalen < 2) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_SCHRITTE_ROTRAD", 2);
|
|
break;
|
|
}
|
|
|
|
unsigned short STAT_REGISTER_ROTRAD_WERT = (RXBUF_UINT(0));
|
|
// Output of the current value for the position of the rotating wheel. Value 0 if the encoder has not been
|
|
// configured / Ausgabe vom aktuellen Wert für die Stellung des Rotationsrad. Wert 0, wenn Drehgeber nicht
|
|
// konfiguriert wurde
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "ZBE", "SCHRITTE_ROTRAD", "STAT_REGISTER_ROTRAD_WERT", STAT_REGISTER_ROTRAD_WERT, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE1: { // 0xD213
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE1", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE1", "STAT_ANZAHL_DRUCK_WERT", STAT_ANZAHL_DRUCK_WERT, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE1", "STAT_ANZAHL_LANGDRUCK_WERT", STAT_ANZAHL_LANGDRUCK_WERT, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE1", "STAT_ANZAHL_HAENGER_WERT", STAT_ANZAHL_HAENGER_WERT, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE2: { // 0xD214
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE2", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD214 = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE2", "STAT_ANZAHL_DRUCK_WERT_0XD214", STAT_ANZAHL_DRUCK_WERT_0XD214, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD214 = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE2", "STAT_ANZAHL_LANGDRUCK_WERT_0XD214", STAT_ANZAHL_LANGDRUCK_WERT_0XD214, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD214 = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE2", "STAT_ANZAHL_HAENGER_WERT_0XD214", STAT_ANZAHL_HAENGER_WERT_0XD214, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE3: { // 0xD215
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE3", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD215 = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE3", "STAT_ANZAHL_DRUCK_WERT_0XD215", STAT_ANZAHL_DRUCK_WERT_0XD215, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD215 = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE3", "STAT_ANZAHL_LANGDRUCK_WERT_0XD215", STAT_ANZAHL_LANGDRUCK_WERT_0XD215, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD215 = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE3", "STAT_ANZAHL_HAENGER_WERT_0XD215", STAT_ANZAHL_HAENGER_WERT_0XD215, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE4: { // 0xD216
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE4", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD216 = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE4", "STAT_ANZAHL_DRUCK_WERT_0XD216", STAT_ANZAHL_DRUCK_WERT_0XD216, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD216 = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE4", "STAT_ANZAHL_LANGDRUCK_WERT_0XD216", STAT_ANZAHL_LANGDRUCK_WERT_0XD216, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD216 = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE4", "STAT_ANZAHL_HAENGER_WERT_0XD216", STAT_ANZAHL_HAENGER_WERT_0XD216, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE5: { // 0xD217
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE5", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD217 = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE5", "STAT_ANZAHL_DRUCK_WERT_0XD217", STAT_ANZAHL_DRUCK_WERT_0XD217, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD217 = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE5", "STAT_ANZAHL_LANGDRUCK_WERT_0XD217", STAT_ANZAHL_LANGDRUCK_WERT_0XD217, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD217 = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE5", "STAT_ANZAHL_HAENGER_WERT_0XD217", STAT_ANZAHL_HAENGER_WERT_0XD217, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE6: { // 0xD218
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE6", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD218 = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE6", "STAT_ANZAHL_DRUCK_WERT_0XD218", STAT_ANZAHL_DRUCK_WERT_0XD218, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD218 = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE6", "STAT_ANZAHL_LANGDRUCK_WERT_0XD218", STAT_ANZAHL_LANGDRUCK_WERT_0XD218, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD218 = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE6", "STAT_ANZAHL_HAENGER_WERT_0XD218", STAT_ANZAHL_HAENGER_WERT_0XD218, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE7: { // 0xD219
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE7", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD219 = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE7", "STAT_ANZAHL_DRUCK_WERT_0XD219", STAT_ANZAHL_DRUCK_WERT_0XD219, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD219 = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE7", "STAT_ANZAHL_LANGDRUCK_WERT_0XD219", STAT_ANZAHL_LANGDRUCK_WERT_0XD219, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD219 = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE7", "STAT_ANZAHL_HAENGER_WERT_0XD219", STAT_ANZAHL_HAENGER_WERT_0XD219, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_TASTE8: { // 0xD21A
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_TASTE8", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD21A = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE8", "STAT_ANZAHL_DRUCK_WERT_0XD21A", STAT_ANZAHL_DRUCK_WERT_0XD21A, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD21A = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE8", "STAT_ANZAHL_LANGDRUCK_WERT_0XD21A", STAT_ANZAHL_LANGDRUCK_WERT_0XD21A, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD21A = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_TASTE8", "STAT_ANZAHL_HAENGER_WERT_0XD21A", STAT_ANZAHL_HAENGER_WERT_0XD21A, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_DREHSTELLER: { // 0xD21B
|
|
if (datalen < 36) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_DREHSTELLER", 36);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_RASTEN_IM_UHRZEIGERSINN_WERT = (RXBUF_UINT32(0));
|
|
// Number of notches in clockwise direction / Anzahl Rasten im Uhrzeigersinn
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER", "STAT_RASTEN_IM_UHRZEIGERSINN_WERT", STAT_RASTEN_IM_UHRZEIGERSINN_WERT, "");
|
|
|
|
unsigned long STAT_RASTEN_GEGEN_UHRZEIGERSINN_WERT = (RXBUF_UINT32(8));
|
|
// Number of notches counterclockwise / Anzahl Rasten gegen Uhrzeigersinn
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER", "STAT_RASTEN_GEGEN_UHRZEIGERSINN_WERT", STAT_RASTEN_GEGEN_UHRZEIGERSINN_WERT, "");
|
|
|
|
unsigned long STAT_UNDERFLOW_WERT = (RXBUF_UINT32(16));
|
|
// Number of underflows, stop on the left / Anzahl Underflow, Anschlag links
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER", "STAT_UNDERFLOW_WERT", STAT_UNDERFLOW_WERT, "");
|
|
|
|
unsigned long STAT_OVERFLOW_WERT = (RXBUF_UINT32(24));
|
|
// Number of overflows, stop on the right / Anzahl Overflow, Anschlag rechts
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER", "STAT_OVERFLOW_WERT", STAT_OVERFLOW_WERT, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_DREHSTELLER_NORD: { // 0xD21C
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_DREHSTELLER_NORD", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD21C = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_NORD", "STAT_ANZAHL_DRUCK_WERT_0XD21C", STAT_ANZAHL_DRUCK_WERT_0XD21C, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD21C = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_NORD", "STAT_ANZAHL_LANGDRUCK_WERT_0XD21C", STAT_ANZAHL_LANGDRUCK_WERT_0XD21C, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD21C = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_NORD", "STAT_ANZAHL_HAENGER_WERT_0XD21C", STAT_ANZAHL_HAENGER_WERT_0XD21C, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_DREHSTELLER_OST: { // 0xD21D
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_DREHSTELLER_OST", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD21D = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_OST", "STAT_ANZAHL_DRUCK_WERT_0XD21D", STAT_ANZAHL_DRUCK_WERT_0XD21D, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD21D = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_OST", "STAT_ANZAHL_LANGDRUCK_WERT_0XD21D", STAT_ANZAHL_LANGDRUCK_WERT_0XD21D, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD21D = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_OST", "STAT_ANZAHL_HAENGER_WERT_0XD21D", STAT_ANZAHL_HAENGER_WERT_0XD21D, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_DREHSTELLER_SUED: { // 0xD21E
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_DREHSTELLER_SUED", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD21E = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_SUED", "STAT_ANZAHL_DRUCK_WERT_0XD21E", STAT_ANZAHL_DRUCK_WERT_0XD21E, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD21E = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_SUED", "STAT_ANZAHL_LANGDRUCK_WERT_0XD21E", STAT_ANZAHL_LANGDRUCK_WERT_0XD21E, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD21E = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_SUED", "STAT_ANZAHL_HAENGER_WERT_0XD21E", STAT_ANZAHL_HAENGER_WERT_0XD21E, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_DREHSTELLER_WEST: { // 0xD21F
|
|
if (datalen < 28) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_DREHSTELLER_WEST", 28);
|
|
break;
|
|
}
|
|
|
|
unsigned long STAT_ANZAHL_DRUCK_WERT_0XD21F = (RXBUF_UINT32(0));
|
|
// Number of prints / Anzahl Druck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_WEST", "STAT_ANZAHL_DRUCK_WERT_0XD21F", STAT_ANZAHL_DRUCK_WERT_0XD21F, "");
|
|
|
|
unsigned long STAT_ANZAHL_LANGDRUCK_WERT_0XD21F = (RXBUF_UINT32(8));
|
|
// Number of long presses / Anzahl Langdruck
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_WEST", "STAT_ANZAHL_LANGDRUCK_WERT_0XD21F", STAT_ANZAHL_LANGDRUCK_WERT_0XD21F, "");
|
|
|
|
unsigned long STAT_ANZAHL_HAENGER_WERT_0XD21F = (RXBUF_UINT32(16));
|
|
// Number of hangers / Anzahl Hänger
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%lu%s\n", "ZBE", "LOGGING_DREHSTELLER_WEST", "STAT_ANZAHL_HAENGER_WERT_0XD21F", STAT_ANZAHL_HAENGER_WERT_0XD21F, "");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_LOGGING_VERBAU: { // 0xD228
|
|
if (datalen < 30) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_LOGGING_VERBAU", 30);
|
|
break;
|
|
}
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_TOUCHPAD_BERUEHRUNG: { // 0xD60D
|
|
if (datalen < 1) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_TOUCHPAD_BERUEHRUNG", 1);
|
|
break;
|
|
}
|
|
|
|
unsigned char STAT_TOUCHPAD_BERUEHRUNG = (RXBUF_UCHAR(0));
|
|
// Touch detection Touchpad: 0x00 = no touch detected 0x01 = touch detected / Berührungserkennung Touchpad: 0x00
|
|
// = keine Berührung erkannt 0x01 = Berührung erkannt
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "ZBE", "TOUCHPAD_BERUEHRUNG", "STAT_TOUCHPAD_BERUEHRUNG", STAT_TOUCHPAD_BERUEHRUNG, "\"0/1\"");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_TOUCHPAD_ANNAEHERUNG: { // 0xD68D
|
|
if (datalen < 1) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_TOUCHPAD_ANNAEHERUNG", 1);
|
|
break;
|
|
}
|
|
|
|
unsigned char STAT_TOUCHPAD_ANNAEHERUNG = (RXBUF_UCHAR(0));
|
|
// Proximity detection touchpad: 0x00 = no proximity detected 0x01 = proximity detected / Annäherungsserkennung
|
|
// Touchpad: 0x00 = keine Annäherung erkannt 0x01 = Annäherung erkannt
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "ZBE", "TOUCHPAD_ANNAEHERUNG", "STAT_TOUCHPAD_ANNAEHERUNG", STAT_TOUCHPAD_ANNAEHERUNG, "\"0/1\"");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_SPANNUNG_KLEMME_30B_WERT: { // 0xDAD9
|
|
if (datalen < 2) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_SPANNUNG_KLEMME_30B_WERT", 2);
|
|
break;
|
|
}
|
|
|
|
float STAT_SPANNUNG_KLEMME_30B_WERT = (RXBUF_UINT(0)/10.0f);
|
|
// Voltage value on the control unit at terminal 30B (accurate to one decimal place) / Spannungswert am
|
|
// Steuergerät an Klemme 30B (auf eine Nachkommastelle genau)
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "ZBE", "SPANNUNG_KLEMME_30B_WERT", "STAT_SPANNUNG_KLEMME_30B_WERT", STAT_SPANNUNG_KLEMME_30B_WERT, "\"V\"");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|
|
|
|
case I3_PID_ZBE_ACTIVE_DIAGNOSTIC_SESSION: { // 0xF186
|
|
if (datalen < 1) {
|
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_ZBE_ACTIVE_DIAGNOSTIC_SESSION", 1);
|
|
break;
|
|
}
|
|
|
|
unsigned char STAT_ACTIVE_DIAGNOSTIC_SESSION = (RXBUF_UCHAR(0));
|
|
// activeDiagnosticSession / activeDiagnosticSession
|
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "ZBE", "ACTIVE_DIAGNOSTIC_SESSION", "STAT_ACTIVE_DIAGNOSTIC_SESSION", STAT_ACTIVE_DIAGNOSTIC_SESSION, "\"0-n\"");
|
|
|
|
// ========== Add your processing here ==========
|
|
hexdump(rxbuf, type, pid);
|
|
|
|
break;
|
|
}
|