210 lines
13 KiB
C++
210 lines
13 KiB
C++
|
|
||
|
//
|
||
|
// Warning: don't edit - generated by generate_ecu_code.pl processing ../dev/sas_i1.json: SAS 22: Optional equipment system
|
||
|
// This generated code makes it easier to process CANBUS messages from the SAS ecu in a BMW i3
|
||
|
//
|
||
|
|
||
|
case I3_PID_SAS_LERNDATEN_RUECKSETZEN: { // 0xABC9
|
||
|
// ========== Add your processing here ==========
|
||
|
hexdump(rxbuf, type, pid);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
case I3_PID_SAS_VDC0_LESEN: { // 0xD817
|
||
|
if (datalen < 29) {
|
||
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SAS_VDC0_LESEN", 29);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_VL_WERT = (RXBUF_UINT(0));
|
||
|
// Target current of the VDC channel in the front left / Sollstrom des VDC Kanals vorne links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_SOLLSTROM_VL_WERT", STAT_VDC_SOLLSTROM_VL_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_VR_WERT = (RXBUF_UINT(2));
|
||
|
// Target current of the VDC channel in the front right / Sollstrom des VDC Kanals vorne rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_SOLLSTROM_VR_WERT", STAT_VDC_SOLLSTROM_VR_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_HL_WERT = (RXBUF_UINT(4));
|
||
|
// Target current of the VDC channel at the rear left / Sollstrom des VDC Kanals hinten links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_SOLLSTROM_HL_WERT", STAT_VDC_SOLLSTROM_HL_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_HR_WERT = (RXBUF_UINT(6));
|
||
|
// Set current of the VDC channel at the rear right / Sollstrom des VDC Kanals hinten rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_SOLLSTROM_HR_WERT", STAT_VDC_SOLLSTROM_HR_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_VL_WERT = (RXBUF_UINT(8));
|
||
|
// Actual current of the VDC channel front left / Iststrom des VDC Kanals vorne links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_ISTSTROM_VL_WERT", STAT_VDC_ISTSTROM_VL_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_VR_WERT = (RXBUF_UINT(10));
|
||
|
// Actual current of the VDC channel in the front right / Iststrom des VDC Kanals vorne rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_ISTSTROM_VR_WERT", STAT_VDC_ISTSTROM_VR_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_HL_WERT = (RXBUF_UINT(12));
|
||
|
// Actual current of the VDC channel at the rear left / Iststrom des VDC Kanals hinten links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_ISTSTROM_HL_WERT", STAT_VDC_ISTSTROM_HL_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_HR_WERT = (RXBUF_UINT(14));
|
||
|
// Actual current of the VDC channel at the rear right / Iststrom des VDC Kanals hinten rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_ISTSTROM_HR_WERT", STAT_VDC_ISTSTROM_HR_WERT, "\"mA\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_VL = (RXBUF_UCHAR(16));
|
||
|
// Status of the front left VDC channel / Status des VDC Kanals vorne links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_STATUS_VL", STAT_VDC_STATUS_VL, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_VR = (RXBUF_UCHAR(17));
|
||
|
// Status of the VDC channel in the front right / Status des VDC Kanals vorne rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_STATUS_VR", STAT_VDC_STATUS_VR, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_HL = (RXBUF_UCHAR(18));
|
||
|
// Status of the VDC channel in the back left / Status des VDC Kanals hinten links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_STATUS_HL", STAT_VDC_STATUS_HL, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_HR = (RXBUF_UCHAR(19));
|
||
|
// Status of the VDC channel in the back right / Status des VDC Kanals hinten rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN", "STAT_VDC_STATUS_HR", STAT_VDC_STATUS_HR, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_KLEMMEN = (RXBUF_UCHAR(20));
|
||
|
// Internal status of terminal KL15 0 = KL15 OFF 1 = KL15 ON / Interner Status der Klemme KL15 0 = KL15 AUS 1 =
|
||
|
// KL15 AN
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN", "STAT_KLEMMEN", STAT_KLEMMEN, "\"0-n\"");
|
||
|
|
||
|
float STAT_WHL_SPD_VL_WERT = (RXBUF_UINT(21)*0.0156f-511.984);
|
||
|
// Front left wheel speed (from FlexRay) / Radgeschwindigkeit vorne links (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN", "STAT_WHL_SPD_VL_WERT", STAT_WHL_SPD_VL_WERT, "\"rad/s\"");
|
||
|
|
||
|
float STAT_WHL_SPD_VR_WERT = (RXBUF_UINT(23)*0.0156f-511.984);
|
||
|
// Wheel speed front right (from FlexRay) / Radgeschwindigkeit vorne rechts (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN", "STAT_WHL_SPD_VR_WERT", STAT_WHL_SPD_VR_WERT, "\"rad/s\"");
|
||
|
|
||
|
float STAT_WHL_SPD_HL_WERT = (RXBUF_UINT(25)*0.0156f-511.984);
|
||
|
// Rear left wheel speed (from FlexRay) / Radgeschwindigkeit hinten links (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN", "STAT_WHL_SPD_HL_WERT", STAT_WHL_SPD_HL_WERT, "\"rad/s\"");
|
||
|
|
||
|
float STAT_WHL_SPD_HR_WERT = (RXBUF_UINT(27)*0.0156f-511.984);
|
||
|
// Wheel speed rear right (from FlexRay) / Radgeschwindigkeit hinten rechts (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN", "STAT_WHL_SPD_HR_WERT", STAT_WHL_SPD_HR_WERT, "\"rad/s\"");
|
||
|
|
||
|
// ========== Add your processing here ==========
|
||
|
hexdump(rxbuf, type, pid);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
case I3_PID_SAS_VDC0_LESEN_0XD817: { // 0xD817
|
||
|
if (datalen < 29) {
|
||
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SAS_VDC0_LESEN_0XD817", 29);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_VL_WERT_0XD817 = (RXBUF_UINT(0));
|
||
|
// Target current of the VDC channel in the front left / Sollstrom des VDC Kanals vorne links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_SOLLSTROM_VL_WERT_0XD817", STAT_VDC_SOLLSTROM_VL_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_VR_WERT_0XD817 = (RXBUF_UINT(2));
|
||
|
// Target current of the VDC channel in the front right / Sollstrom des VDC Kanals vorne rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_SOLLSTROM_VR_WERT_0XD817", STAT_VDC_SOLLSTROM_VR_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_HL_WERT_0XD817 = (RXBUF_UINT(4));
|
||
|
// Target current of the VDC channel at the rear left / Sollstrom des VDC Kanals hinten links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_SOLLSTROM_HL_WERT_0XD817", STAT_VDC_SOLLSTROM_HL_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_SOLLSTROM_HR_WERT_0XD817 = (RXBUF_UINT(6));
|
||
|
// Set current of the VDC channel at the rear right / Sollstrom des VDC Kanals hinten rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_SOLLSTROM_HR_WERT_0XD817", STAT_VDC_SOLLSTROM_HR_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_VL_WERT_0XD817 = (RXBUF_UINT(8));
|
||
|
// Actual current of the VDC channel front left / Iststrom des VDC Kanals vorne links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_ISTSTROM_VL_WERT_0XD817", STAT_VDC_ISTSTROM_VL_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_VR_WERT_0XD817 = (RXBUF_UINT(10));
|
||
|
// Actual current of the VDC channel in the front right / Iststrom des VDC Kanals vorne rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_ISTSTROM_VR_WERT_0XD817", STAT_VDC_ISTSTROM_VR_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_HL_WERT_0XD817 = (RXBUF_UINT(12));
|
||
|
// Actual current of the VDC channel at the rear left / Iststrom des VDC Kanals hinten links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_ISTSTROM_HL_WERT_0XD817", STAT_VDC_ISTSTROM_HL_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned short STAT_VDC_ISTSTROM_HR_WERT_0XD817 = (RXBUF_UINT(14));
|
||
|
// Actual current of the VDC channel at the rear right / Iststrom des VDC Kanals hinten rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_ISTSTROM_HR_WERT_0XD817", STAT_VDC_ISTSTROM_HR_WERT_0XD817, "\"mA\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_VL_0XD817 = (RXBUF_UCHAR(16));
|
||
|
// Status of the front left VDC channel / Status des VDC Kanals vorne links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_STATUS_VL_0XD817", STAT_VDC_STATUS_VL_0XD817, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_VR_0XD817 = (RXBUF_UCHAR(17));
|
||
|
// Status of the VDC channel in the front right / Status des VDC Kanals vorne rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_STATUS_VR_0XD817", STAT_VDC_STATUS_VR_0XD817, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_HL_0XD817 = (RXBUF_UCHAR(18));
|
||
|
// Status of the VDC channel in the back left / Status des VDC Kanals hinten links
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_STATUS_HL_0XD817", STAT_VDC_STATUS_HL_0XD817, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_VDC_STATUS_HR_0XD817 = (RXBUF_UCHAR(19));
|
||
|
// Status of the VDC channel in the back right / Status des VDC Kanals hinten rechts
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_VDC_STATUS_HR_0XD817", STAT_VDC_STATUS_HR_0XD817, "\"0-n\"");
|
||
|
|
||
|
unsigned char STAT_KLEMMEN_0XD817 = (RXBUF_UCHAR(20));
|
||
|
// Internal status of terminal KL15 0 = KL15 OFF 1 = KL15 ON / Interner Status der Klemme KL15 0 = KL15 AUS 1 =
|
||
|
// KL15 AN
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%x%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_KLEMMEN_0XD817", STAT_KLEMMEN_0XD817, "\"0-n\"");
|
||
|
|
||
|
float STAT_WHL_SPD_VL_WERT_0XD817 = (RXBUF_UINT(21)*0.0156f-511.984);
|
||
|
// Front left wheel speed (from FlexRay) / Radgeschwindigkeit vorne links (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_WHL_SPD_VL_WERT_0XD817", STAT_WHL_SPD_VL_WERT_0XD817, "\"rad/s\"");
|
||
|
|
||
|
float STAT_WHL_SPD_VR_WERT_0XD817 = (RXBUF_UINT(23)*0.0156f-511.984);
|
||
|
// Wheel speed front right (from FlexRay) / Radgeschwindigkeit vorne rechts (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_WHL_SPD_VR_WERT_0XD817", STAT_WHL_SPD_VR_WERT_0XD817, "\"rad/s\"");
|
||
|
|
||
|
float STAT_WHL_SPD_HL_WERT_0XD817 = (RXBUF_UINT(25)*0.0156f-511.984);
|
||
|
// Rear left wheel speed (from FlexRay) / Radgeschwindigkeit hinten links (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_WHL_SPD_HL_WERT_0XD817", STAT_WHL_SPD_HL_WERT_0XD817, "\"rad/s\"");
|
||
|
|
||
|
float STAT_WHL_SPD_HR_WERT_0XD817 = (RXBUF_UINT(27)*0.0156f-511.984);
|
||
|
// Wheel speed rear right (from FlexRay) / Radgeschwindigkeit hinten rechts (von FlexRay)
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%.4f%s\n", "SAS", "VDC0_LESEN_0XD817", "STAT_WHL_SPD_HR_WERT_0XD817", STAT_WHL_SPD_HR_WERT_0XD817, "\"rad/s\"");
|
||
|
|
||
|
// ========== Add your processing here ==========
|
||
|
hexdump(rxbuf, type, pid);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
case I3_PID_SAS_STATUS_SWC_VERSIONEN_LESEN_ANZAHL_DATENSAETZE: { // 0xDD33
|
||
|
if (datalen < 2) {
|
||
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SAS_STATUS_SWC_VERSIONEN_LESEN_ANZAHL_DATENSAETZE", 2);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
unsigned short STAT_INDEX_DATENSATZ_WERT = (RXBUF_UINT(0));
|
||
|
// - / -
|
||
|
ESP_LOGD(TAG, "From ECU %s, pid %s: got %s=%u%s\n", "SAS", "STATUS_SWC_VERSIONEN_LESEN_ANZAHL_DATENSAETZE", "STAT_INDEX_DATENSATZ_WERT", STAT_INDEX_DATENSATZ_WERT, "");
|
||
|
|
||
|
// ========== Add your processing here ==========
|
||
|
hexdump(rxbuf, type, pid);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
case I3_PID_SAS_READ_EXCEPTION_DATA: { // 0x4001
|
||
|
if (datalen < 50) {
|
||
|
ESP_LOGW(TAG, "Received %d bytes for %s, expected %d", datalen, "I3_PID_SAS_READ_EXCEPTION_DATA", 50);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
// ========== Add your processing here ==========
|
||
|
hexdump(rxbuf, type, pid);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
case I3_PID_SAS_CLEAR_EXCEPTION_DATA: { // 0xF000
|
||
|
// ========== Add your processing here ==========
|
||
|
hexdump(rxbuf, type, pid);
|
||
|
|
||
|
break;
|
||
|
}
|